Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Erweiterbare Markup Sprache für die Speicherung und Übertragung von Daten",
"Convert JSON to XML": "JSON in XML konvertieren",
"JSON": "JSON",
"Attribute field": "Attributfeld",
"Header": "Kopfzeile",
"Field to add your tag's attributes": "Feld, um die Attribute des Tags hinzuzufügen",
"Add XML header": "XML-Header hinzufügen"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Lenguaje de marcado extensible para almacenar y transportar datos",
"Convert JSON to XML": "Convertir JSON a XML",
"JSON": "JSON",
"Attribute field": "Campo de atributo",
"Header": "Cabecera",
"Field to add your tag's attributes": "Campo para agregar los atributos de la etiqueta",
"Add XML header": "Añadir encabezado XML"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Langue de balisage extensible pour le stockage et le transport des données",
"Convert JSON to XML": "Convertir JSON en XML",
"JSON": "JSON",
"Attribute field": "Champ d'attribut",
"Header": "En-tête",
"Field to add your tag's attributes": "Champ pour ajouter les attributs de votre tag",
"Add XML header": "Ajouter un en-tête XML"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "データの保存と転送のための拡張可能なマークアップ言語",
"Convert JSON to XML": "JSONをXMLに変換する",
"JSON": "JSON",
"Attribute field": "属性フィールド",
"Header": "ヘッダー",
"Field to add your tag's attributes": "タグの属性を追加するフィールド",
"Add XML header": "XML ヘッダーを追加"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Extensible Markup Language voor het opslaan en transporteren van gegevens",
"Convert JSON to XML": "JSON converteren naar XML",
"JSON": "JSON",
"Attribute field": "Attribuut veld",
"Header": "Koptekst",
"Field to add your tag's attributes": "Veld om attributen van uw tag toe te voegen",
"Add XML header": "XML koptekst toevoegen"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Linguagem de Marcação Estendida para armazenar e transportar dados",
"Convert JSON to XML": "Converter JSON para XML",
"JSON": "JSON",
"Attribute field": "Campo atributo",
"Header": "Cabeçalho",
"Field to add your tag's attributes": "Campo para adicionar atributos da sua etiqueta",
"Add XML header": "Adicionar cabeçalho XML"
}

View File

@@ -0,0 +1,10 @@
{
"XML": "XML",
"Extensible Markup Language for storing and transporting data": "Расширенный язык разметки для хранения и переноса данных",
"Convert JSON to XML": "Конвертировать JSON в XML",
"JSON": "JSON",
"Attribute field": "Поле атрибута",
"Header": "Заголовок",
"Field to add your tag's attributes": "Поле для добавления атрибутов тэга",
"Add XML header": "Добавить XML заголовок"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Extensible Markup Language for storing and transporting data",
"Convert JSON to XML": "Convert JSON to XML",
"JSON": "JSON",
"Attribute field": "Attribute field",
"Header": "Header",
"Field to add your tag's attributes": "Field to add your tag's attributes",
"Add XML header": "Add XML header"
}

View File

@@ -0,0 +1,10 @@
{
"XML": "XML",
"Extensible Markup Language for storing and transporting data": "Extensible Markup Language for storing and transporting data",
"Convert JSON to XML": "Convert JSON to XML",
"JSON": "JSON",
"Attribute field": "Attribute field",
"Header": "Header",
"Field to add your tag's attributes": "Field to add your tag's attributes",
"Add XML header": "Add XML header"
}

View File

@@ -0,0 +1,9 @@
{
"Extensible Markup Language for storing and transporting data": "Extensible Markup Language for storing and transporting data",
"Convert JSON to XML": "Convert JSON to XML",
"JSON": "JSON",
"Attribute field": "Attribute field",
"Header": "Header",
"Field to add your tag's attributes": "Field to add your tag's attributes",
"Add XML header": "Add XML header"
}

View File

@@ -0,0 +1,16 @@
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { convertJsonToXml } from './lib/actions/convert-json-to-xml';
export const xml = createPiece({
displayName: 'XML',
description: 'Extensible Markup Language for storing and transporting data',
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/xml.png',
categories: [PieceCategory.CORE],
auth: PieceAuth.None(),
authors: ["Willianwg","kishanprmr","AbdulTheActivePiecer","khaledmashaly","abuaboud"],
actions: [convertJsonToXml],
triggers: [],
});

View File

@@ -0,0 +1,36 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import js2xml from 'json2xml';
export const convertJsonToXml = createAction({
name: 'convert-json-to-xml',
displayName: 'Convert JSON to XML',
description: 'Convert JSON to XML',
props: {
json: Property.Json({
displayName: 'JSON',
required: true,
}),
attributes_key: Property.ShortText({
displayName: 'Attribute field',
description: "Field to add your tag's attributes",
required: false,
}),
header: Property.Checkbox({
displayName: 'Header',
description: 'Add XML header',
required: false,
}),
},
async run(context) {
const { json } = context.propsValue;
const attributes_key = context.propsValue.attributes_key
? context.propsValue.attributes_key
: 'attr';
const header = context.propsValue.header
? context.propsValue.header
: false;
return js2xml(JSON.parse(JSON.stringify(json)), { attributes_key, header });
},
});