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,33 @@
{
"extends": [
"../../../../.eslintrc.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-acumbamail
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-acumbamail` to build the library.

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-acumbamail",
"version": "0.1.5"
}

View File

@@ -0,0 +1,57 @@
{
"name": "pieces-acumbamail",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/acumbamail/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/acumbamail",
"tsConfig": "packages/pieces/community/acumbamail/tsconfig.lib.json",
"packageJson": "packages/pieces/community/acumbamail/package.json",
"main": "packages/pieces/community/acumbamail/src/index.ts",
"assets": [
"packages/pieces/community/acumbamail/*.md",
{
"input": "packages/pieces/community/acumbamail/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"publish": {
"command": "node tools/scripts/publish.mjs pieces-acumbamail {args.ver} {args.tag}",
"dependsOn": [
"build"
]
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/acumbamail",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
},
"tags": []
}

View File

@@ -0,0 +1,35 @@
{
"Acumbamail": "Acumbamail",
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Nom de l'empresa",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "Email",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Activates the send of a confirmation email when the subscriber is added.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Senden Sie einfach E-Mail- und SMS-Kampagnen und steigern Sie Ihr Geschäft",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n Um Ihr Auth Token zu erhalten, folgen Sie diesen Schritten:\n 1. Melden Sie sich bei Ihrem Acumbamail Konto an.\n 2. Gehe zu **https://acumbamail.com/apidoc/**.\n 3. Unter **Customer Identifier** findest du auth token;\n ",
"Add/Update Subscriber": "Abonnent hinzufügen/aktualisieren",
"Create Subscriber List": "Abonnentenliste erstellen",
"Unsuscribe Subscriber": "Abonnent abbestellen",
"Delete Subscriber List": "Abonnentenliste löschen",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Abonnent suchen",
"Remove Subscriber": "Abonnent entfernen",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Fügt einen neuen Abonnenten zu einer Liste Ihrer Wahl hinzu. Kann auch verwendet werden, um einen bestehenden Abonnenten zu aktualisieren.",
"Creates a new subscriber list.": "Erstellt eine neue Abonnentenliste.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Abbestellt eine E-Mail-Adresse von der Liste der Abonnenten Ihrer Wahl.",
"Deletes an existing subscriber list.": "Löscht eine vorhandene Abonnentenliste.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Dupliziert eine vorhandene Vorlage für eine E-Mail-Marketing-Kampagne.",
"Returns the subscriber's advanced data in each list to which they belong.": "Gibt die erweiterten Daten des Abonnenten in jeder Liste zurück, zu der er gehört.",
"Removes a subscriber from a list": "Entfernt einen Abonnenten von einer Liste",
"Subscriber List": "Abonnentenliste",
"Merge Fields": "Felder zusammenführen",
"Update Existing Subscriber Data": "Aktualisiere vorhandene Abonnentendaten",
"Double Option": "Doppelte Option",
"List Name": "Listenname",
"Sener Email": "Sener Email",
"Company Name": "Firmenname",
"Company Address": "Firmenadresse",
"Company Phone": "Firmentelefon",
"Email": "E-Mail",
"New Template Name": "Neuer Vorlagenname",
"Origin Template": "Ursprungsvorlage",
"Subscriber Email": "Abonnenten-E-Mail",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Aktualisiert die Merge-Felder über die existierenden Felder, wenn der Abonnent in der Teilnehmerliste vorhanden ist.",
"Activates the send of a confirmation email when the subscriber is added.": "Aktiviert das Senden einer Bestätigungs-E-Mail, wenn der Abonnent hinzugefügt wird.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Absender-E-Mail, die den Abonnenten der Liste angezeigt wird, wenn E-Mail-Marketing-Kampagnen an sie gesendet werden."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Envíe fácilmente campañas de correo electrónico y SMS e impulse su negocio",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n Para obtener tu token de identificación, sigue estos pasos:\n 1. Inicia sesión en tu cuenta de Acumbamail.\n 2. Vaya a **https://acumbamail.com/apidoc/**.\n 3. Bajo **identificador de cliente**, puede encontrar el token de auth;\n ",
"Add/Update Subscriber": "Añadir/Actualizar suscriptor",
"Create Subscriber List": "Crear lista de suscriptores",
"Unsuscribe Subscriber": "Dar de baja al suscriptor",
"Delete Subscriber List": "Eliminar lista de suscriptores",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Buscar suscriptor",
"Remove Subscriber": "Eliminar suscriptor",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Añade un nuevo suscriptor a una lista de suscriptores de tu elección. También se puede utilizar para actualizar un suscriptor existente.",
"Creates a new subscriber list.": "Crea una nueva lista de suscriptores.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Darse de baja de una dirección de correo electrónico de una lista de suscriptores de su elección.",
"Deletes an existing subscriber list.": "Elimina una lista de suscriptores existentes.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplica una plantilla existente para usarla en el envío de una campaña de marketing por correo electrónico.",
"Returns the subscriber's advanced data in each list to which they belong.": "Devuelve los datos avanzados del suscriptor en cada lista a la que pertenecen.",
"Removes a subscriber from a list": "Elimina un suscriptor de una lista",
"Subscriber List": "Lista de suscriptores",
"Merge Fields": "Fusionar Campos",
"Update Existing Subscriber Data": "Actualizar datos de suscriptores existentes",
"Double Option": "Doble opción",
"List Name": "Nombre de lista",
"Sener Email": "Sener Email",
"Company Name": "Nombre De La Empresa",
"Company Address": "Dirección de la empresa",
"Company Phone": "Teléfono de empresa",
"Email": "E-mail",
"New Template Name": "Nuevo nombre de plantilla",
"Origin Template": "Plantilla de origen",
"Subscriber Email": "Email del suscriptor",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Actualiza los campos de fusión sobre los existentes si el suscriptor existe en la lista de suscriptores.",
"Activates the send of a confirmation email when the subscriber is added.": "Activa el envío de un correo electrónico de confirmación cuando el suscriptor es añadido.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Enviar correo electrónico a los suscriptores de la lista cuando se les envían campañas de marketing por correo electrónico."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Envoyez facilement des campagnes e-mail et SMS et boostez votre entreprise",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Ajouter/Mettre à jour l'abonné",
"Create Subscriber List": "Créer une liste d'abonnés",
"Unsuscribe Subscriber": "Inscrire un abonné",
"Delete Subscriber List": "Supprimer la liste des abonnés",
"Duplicate Template": "Duplication de modèle",
"Search Subscriber": "Rechercher un abonné",
"Remove Subscriber": "Supprimer l'abonné",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Ajoute un nouvel abonné à une liste d'abonnés de votre choix. Peut également être utilisé pour mettre à jour un abonné existant.",
"Creates a new subscriber list.": "Crée une nouvelle liste d'abonnés.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Désabonne une adresse e-mail d'une liste d'abonnés de votre choix.",
"Deletes an existing subscriber list.": "Supprime une liste d'abonnés existante.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplique un modèle existant pour l'utiliser sur une expédition de campagne de marketing par e-mail.",
"Returns the subscriber's advanced data in each list to which they belong.": "Retourne les données avancées de l'abonné dans chaque liste à laquelle ils appartiennent.",
"Removes a subscriber from a list": "Supprime un abonné d'une liste",
"Subscriber List": "Liste des abonnés",
"Merge Fields": "Fusionner les champs",
"Update Existing Subscriber Data": "Mettre à jour les données d'abonné existantes",
"Double Option": "Double option",
"List Name": "Nom de la liste",
"Sener Email": "Sener Email",
"Company Name": "Nom de lentreprise",
"Company Address": "Adresse de la société",
"Company Phone": "Téléphone de la société",
"Email": "Courriel",
"New Template Name": "Nom du nouveau modèle",
"Origin Template": "Modèle d'origine",
"Subscriber Email": "Courriel de l'abonné",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Met à jour les champs de fusion sur les champs existants si l'abonné existe dans la liste des abonnés.",
"Activates the send of a confirmation email when the subscriber is added.": "Active l'envoi d'un e-mail de confirmation lorsque l'abonné est ajouté.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "L'expéditeur de l'e-mail affiché aux abonnés de la liste lorsque des campagnes de marketing par e-mail leur sont envoyées."
}

View File

@@ -0,0 +1,35 @@
{
"Acumbamail": "Acumbamail",
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Company Name",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "Email",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Activates the send of a confirmation email when the subscriber is added.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,35 @@
{
"Acumbamail": "Acumbamail",
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Company Name",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "Email",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Mengaktifkan pengiriman email konfirmasi saat pelanggan ditambahkan.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "メールやSMSキャンペーンを簡単に送信し、ビジネスを活性化します。",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "購読者の追加/更新",
"Create Subscriber List": "購読者リストを作成",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "購読者リストを削除",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "購読者を検索",
"Remove Subscriber": "購読者を削除",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "選択した購読者リストに新しい購読者を追加します。既存の購読者も更新できます。",
"Creates a new subscriber list.": "新しい購読者リストを作成します。",
"Unsubscribes an email address from a subscriber list of your choosing.": "選択した購読者リストからメールアドレスの購読を解除します。",
"Deletes an existing subscriber list.": "既存の登録者リストを削除します。",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "既存のテンプレートをメールマーケティングキャンペーンの出荷時に使用するために複製します。",
"Returns the subscriber's advanced data in each list to which they belong.": "登録者の高度なデータを各リストに返します。",
"Removes a subscriber from a list": "購読者をリストから削除します",
"Subscriber List": "購読者一覧",
"Merge Fields": "フィールドの結合",
"Update Existing Subscriber Data": "既存の購読者データを更新",
"Double Option": "Double Option",
"List Name": "リスト名",
"Sener Email": "Sener Email",
"Company Name": "会社名",
"Company Address": "住所",
"Company Phone": "勤務先電話番号",
"Email": "Eメールアドレス",
"New Template Name": "新規テンプレート名",
"Origin Template": "原点テンプレート",
"Subscriber Email": "購読者メールアドレス",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "契約者が契約者リストに存在する場合、既存のものよりも差し込み項目を更新します。",
"Activates the send of a confirmation email when the subscriber is added.": "購読者が追加されたときに確認メールの送信を有効にします。",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "メールマーケティングキャンペーンが送信されたときにリストの購読者に表示される送信者のメール。"
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Stuur gemakkelijk e-mail en SMS campagnes en boost uw bedrijf",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n Om je Auth Token te verkrijgen, volg deze stappen:\n 1. Log in op je Acumbamail account.\n 2. Ga naar **https://acumbamail.com/apidoc/**.\n 3. Onder **Customer identifier** kunt u de authenticatie vinden token;\n ",
"Add/Update Subscriber": "Abonnee toevoegen/bijwerken",
"Create Subscriber List": "Aanmaken Abonnee Lijst",
"Unsuscribe Subscriber": "Unsuscribe Abonnee",
"Delete Subscriber List": "Abonnee lijst verwijderen",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Zoek abonnee",
"Remove Subscriber": "Abonnee verwijderen",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Voegt een nieuwe abonnee toe aan een ontvangerslijst van uw keuze. Kan ook gebruikt worden om een bestaande abonnee bij te werken.",
"Creates a new subscriber list.": "Maakt een nieuwe ontvangerslijst aan.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Schrijf een e-mailadres uit op een keuzelijst voor ontvangers.",
"Deletes an existing subscriber list.": "Verwijdert een bestaande abonneelijst.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Dupliceert een bestaande template om deze te gebruiken op e-mail marketing campagne verzending.",
"Returns the subscriber's advanced data in each list to which they belong.": "Geeft de geavanceerde gegevens van de abonnee terug in elke lijst waartoe ze behoren.",
"Removes a subscriber from a list": "Verwijdert een abonnee uit een lijst",
"Subscriber List": "Lijst met abonnees",
"Merge Fields": "Velden samenvoegen",
"Update Existing Subscriber Data": "Bestaande abonnee gegevens bijwerken",
"Double Option": "Dubbele Optie",
"List Name": "Lijst Naam",
"Sener Email": "Sener Email",
"Company Name": "Bedrijfsnaam",
"Company Address": "Bedrijfs adres",
"Company Phone": "Telefoon bedrijf",
"Email": "E-mail",
"New Template Name": "Nieuwe sjabloonnaam",
"Origin Template": "Oorsprong sjabloon",
"Subscriber Email": "E-mailadres ontvanger",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Werkt de samenvoegvelden over de bestaande als de abonnee bestaat op de abonneelijst.",
"Activates the send of a confirmation email when the subscriber is added.": "Activeert het verzenden van een bevestigingsmail wanneer de ontvanger wordt toegevoegd.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Afzender e-mail die wordt getoond aan de abonnees van de lijst wanneer e-mail marketing campagnes worden verzonden."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Envie facilmente campanhas de e-mail e SMS e acelere seus negócios",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "Para obter sua chave de autenticação, siga esses passos:\n1. Entre na sua conta Tambacumba\n2. Vá para **https://acumbamail.com/apidoc/**.\n3. Abaixo de **Identificador de Cliente**, você pode encontrar seu token de autenticação;",
"Add/Update Subscriber": "Adicionar/Atualizar Assinante",
"Create Subscriber List": "Criar Lista De Assinantes",
"Unsuscribe Subscriber": "Cancelar assinatura",
"Delete Subscriber List": "Excluir Lista De Assinantes",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Pesquisar Assinante",
"Remove Subscriber": "Remover Assinante",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adiciona um novo assinante a lista de assinantes de sua escolha. Pode ser usado para atualizar um assinante existente também.",
"Creates a new subscriber list.": "Cria uma nova lista de inscritos.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Desinscreve um endereço de e-mail de uma lista de assinantes da sua escolha.",
"Deletes an existing subscriber list.": "Exclui uma lista de membros existente.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplica um modelo existente para usá-lo em um envio de campanha de marketing por e-mail.",
"Returns the subscriber's advanced data in each list to which they belong.": "Retorna os dados avançados do assinante em cada lista à qual eles pertencem.",
"Removes a subscriber from a list": "Remove um assinante de uma lista",
"Subscriber List": "Lista De Assinantes",
"Merge Fields": "Mesclar Campos",
"Update Existing Subscriber Data": "Atualizar Dados de Assinante Existentes",
"Double Option": "Opção Dupla",
"List Name": "Lista de nomes",
"Sener Email": "Sener Email",
"Company Name": "Nome da Empresa",
"Company Address": "Endereço da Empresa",
"Company Phone": "Telefone da Empresa",
"Email": "e-mail",
"New Template Name": "Novo Nome do Modelo",
"Origin Template": "Modelo de origem",
"Subscriber Email": "E-mail do Assinante",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Atualiza os campos de mesclagem sobre os existentes, se o assinante existir na lista de inscritos.",
"Activates the send of a confirmation email when the subscriber is added.": "Ativa o envio de um e-mail de confirmação quando o assinante é adicionado.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "E-mail remetente mostrado aos assinantes da lista quando campanhas de marketing por e-mail são enviadas para eles."
}

View File

@@ -0,0 +1,35 @@
{
"Acumbamail": "Acumbamail",
"Easily send email and SMS campaigns and boost your business": "Отправляйте рассылку по электронной почте и SMS и развивайте свой бизнес",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Добавить/Обновить подписчика",
"Create Subscriber List": "Создать список подписчиков",
"Unsuscribe Subscriber": "Отказаться от подписки",
"Delete Subscriber List": "Удалить список подписчиков",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Поиск Абонента",
"Remove Subscriber": "Удалить подписчика",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Добавляет нового абонента в список подписчиков по вашему выбору. Может использоваться также для обновления существующего абонента.",
"Creates a new subscriber list.": "Создает новый список подписчиков.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Отписаться от выбранного вами списка подписчиков на адрес электронной почты.",
"Deletes an existing subscriber list.": "Удаляет существующий список подписчиков.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Дублирует существующий шаблон для использования на рассылке по электронной почте.",
"Returns the subscriber's advanced data in each list to which they belong.": "Возвращает дополнительные данные абонента в каждом списке, к которому он принадлежит.",
"Removes a subscriber from a list": "Удаляет подписчика из списка",
"Subscriber List": "Список подписчиков",
"Merge Fields": "Объединить поля",
"Update Existing Subscriber Data": "Обновить существующие данные абонента",
"Double Option": "Двойной вариант",
"List Name": "Название списка",
"Sener Email": "Sener Email",
"Company Name": "Название компании",
"Company Address": "Адрес компании",
"Company Phone": "Телефон компании",
"Email": "Почта",
"New Template Name": "Имя нового шаблона",
"Origin Template": "Исходный шаблон",
"Subscriber Email": "Email подписчика",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Обновляет поля слияния над существующими, если абонент существует в списке подписчиков.",
"Activates the send of a confirmation email when the subscriber is added.": "Активирует отправку письма с подтверждением при добавлении абонента.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Электронная почта отправителя, показываемая подписчикам списка, когда к ним отправляются рекламные кампании."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Company Name",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "Email",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Activates the send of a confirmation email when the subscriber is added.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,35 @@
{
"Acumbamail": "Acumbamail",
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Tên công ty",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "Email",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Activates the send of a confirmation email when the subscriber is added.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,34 @@
{
"Easily send email and SMS campaigns and boost your business": "Easily send email and SMS campaigns and boost your business",
"\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ": "\n To obtain your Auth Token, follow these steps:\n 1. Login to your Acumbamail account.\n 2. Go to **https://acumbamail.com/apidoc/**.\n 3. Under **Customer identifier**, you can find auth token;\n ",
"Add/Update Subscriber": "Add/Update Subscriber",
"Create Subscriber List": "Create Subscriber List",
"Unsuscribe Subscriber": "Unsuscribe Subscriber",
"Delete Subscriber List": "Delete Subscriber List",
"Duplicate Template": "Duplicate Template",
"Search Subscriber": "Search Subscriber",
"Remove Subscriber": "Remove Subscriber",
"Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.": "Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.",
"Creates a new subscriber list.": "Creates a new subscriber list.",
"Unsubscribes an email address from a subscriber list of your choosing.": "Unsubscribes an email address from a subscriber list of your choosing.",
"Deletes an existing subscriber list.": "Deletes an existing subscriber list.",
"Duplicates an existing template to use it on a email marketing campaign shipping.": "Duplicates an existing template to use it on a email marketing campaign shipping.",
"Returns the subscriber's advanced data in each list to which they belong.": "Returns the subscriber's advanced data in each list to which they belong.",
"Removes a subscriber from a list": "Removes a subscriber from a list",
"Subscriber List": "Subscriber List",
"Merge Fields": "Merge Fields",
"Update Existing Subscriber Data": "Update Existing Subscriber Data",
"Double Option": "Double Option",
"List Name": "List Name",
"Sener Email": "Sener Email",
"Company Name": "Company Name",
"Company Address": "Company Address",
"Company Phone": "Company Phone",
"Email": "电子邮件地址",
"New Template Name": "New Template Name",
"Origin Template": "Origin Template",
"Subscriber Email": "Subscriber Email",
"Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.": "Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.",
"Activates the send of a confirmation email when the subscriber is added.": "Activates the send of a confirmation email when the subscriber is added.",
"Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.": "Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them."
}

View File

@@ -0,0 +1,38 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { addUpdateSubscriberAction } from './lib/actions/add-subscriber';
import { createSubscriberListAction } from './lib/actions/create-subscriber-list';
import { unsubscribeAction } from './lib/actions/unsubscribe-subscriber';
import { deleteSubscriberListAction } from './lib/actions/delete-subscriber-list';
import { duplicateTemplateAction } from './lib/actions/duplicate-template';
import { searchSubscriberAction } from './lib/actions/search-subscriber';
import { removeSubscribeAction } from './lib/actions/delete-subscriber';
export const acumbamailAuth = PieceAuth.SecretText({
displayName: 'Auth Token',
required: true,
description: `
To obtain your Auth Token, follow these steps:
1. Login to your Acumbamail account.
2. Go to **https://acumbamail.com/apidoc/**.
3. Under **Customer identifier**, you can find auth token;
`,
});
export const acumbamail = createPiece({
displayName: 'Acumbamail',
description: 'Easily send email and SMS campaigns and boost your business',
auth: acumbamailAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/acumbamail.png',
authors: ["kishanprmr","abuaboud"],
actions: [
addUpdateSubscriberAction,
createSubscriberListAction,
unsubscribeAction,
deleteSubscriberListAction,
duplicateTemplateAction,
searchSubscriberAction,
removeSubscribeAction,
],
triggers: [],
});

View File

@@ -0,0 +1,59 @@
import { Property, createAction } from '@activepieces/pieces-framework';
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import FormData from 'form-data';
import { acumbamailAuth } from '../../';
import { acumbamailCommon } from '../common';
export const addUpdateSubscriberAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_add_update_subscriber',
displayName: 'Add/Update Subscriber',
description:
'Adds a new subscriber to a subscriber list of your choosing.Can be used to update an existing subscriber too.',
props: {
listId: acumbamailCommon.listId,
listMergeFields: acumbamailCommon.listMergeFields,
update_subscriber: Property.Checkbox({
displayName: 'Update Existing Subscriber Data',
description:
'Updates the merge fields over the existent ones if the subscriber exists on the subscriber list.',
required: false,
}),
double_option: Property.Checkbox({
displayName: 'Double Option',
description:
'Activates the send of a confirmation email when the subscriber is added.',
required: false,
}),
},
async run(context) {
const { listId, listMergeFields, update_subscriber, double_option } =
context.propsValue;
const formData = new FormData();
Object.entries(listMergeFields).forEach(([key, value]) => {
formData.append(`merge_fields[${key}]`, value.toString());
});
formData.append('auth_token', context.auth.secret_text);
formData.append('list_id', listId.toString());
formData.append('double_option', double_option ? '1' : '0');
formData.append('update_subscriber', update_subscriber ? '1' : '0');
formData.append('complete_json ', '1');
const request: HttpRequest = {
method: HttpMethod.POST,
url: acumbamailCommon.baseUrl + '/addSubscriber/',
headers: { ...formData.getHeaders() },
body: formData,
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,62 @@
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { Property, createAction } from '@activepieces/pieces-framework';
import FormData from 'form-data';
import { acumbamailAuth } from '../../';
import { acumbamailCommon } from '../common';
export const createSubscriberListAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_create_subscriber_list',
displayName: 'Create Subscriber List',
description: 'Creates a new subscriber list.',
props: {
listname: Property.ShortText({
displayName: 'List Name',
required: true,
}),
sender_email: Property.ShortText({
displayName: 'Sener Email',
description:
'Sender e-mail shown to the subscribers of the list when e-mail marketing campaigns are sent to them.',
required: true,
}),
company: Property.ShortText({
displayName: 'Company Name',
required: false,
}),
address: Property.ShortText({
displayName: 'Company Address',
required: false,
}),
phone: Property.ShortText({
displayName: 'Company Phone',
required: false,
}),
},
async run(context) {
const { listname, sender_email, company, address, phone } =
context.propsValue;
const form = new FormData();
form.append('auth_token', context.auth.secret_text);
form.append('name', listname);
form.append('sender_email', sender_email);
form.append('company', company ?? '');
form.append('address', address ?? '');
form.append('phone', phone ?? '');
const request: HttpRequest = {
method: HttpMethod.POST,
url: acumbamailCommon.baseUrl + '/createList/',
headers: form.getHeaders(),
body: form,
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,31 @@
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { createAction } from '@activepieces/pieces-framework';
import { acumbamailAuth } from '../../';
import { acumbamailCommon } from '../common';
export const deleteSubscriberListAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_delete_subscriber_list',
displayName: 'Delete Subscriber List',
description: 'Deletes an existing subscriber list.',
props: {
listId: acumbamailCommon.listId,
},
async run(context) {
const { listId } = context.propsValue;
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: acumbamailCommon.baseUrl + '/deleteList/',
queryParams: { auth_token: context.auth.secret_text, list_id: listId.toString() },
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,37 @@
import { acumbamailAuth } from '../..';
import { Property, createAction } from '@activepieces/pieces-framework';
import { acumbamailCommon } from '../common';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
export const removeSubscribeAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_remove_subscriber',
displayName: 'Remove Subscriber',
description:
'Removes a subscriber from a list',
props: {
email: Property.ShortText({
displayName: 'Email',
required: true,
}),
listId: acumbamailCommon.listId,
},
async run(context) {
const { listId, email } = context.propsValue;
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: acumbamailCommon.baseUrl + '/deleteSubscriber/',
queryParams: {
auth_token: context.auth.secret_text,
list_id: listId.toString(),
email: email,
},
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,42 @@
import { acumbamailAuth } from '../../';
import { Property, createAction } from '@activepieces/pieces-framework';
import { acumbamailCommon } from '../common';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import FormData from 'form-data';
export const duplicateTemplateAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_duplicate_template',
displayName: 'Duplicate Template',
description:
'Duplicates an existing template to use it on a email marketing campaign shipping.',
props: {
template_name: Property.ShortText({
displayName: 'New Template Name',
required: true,
}),
templateId: acumbamailCommon.templateId,
},
async run(context) {
const { templateId, template_name } = context.propsValue;
const formData = new FormData();
formData.append('auth_token', context.auth.secret_text);
formData.append('template_name', template_name);
formData.append('origin_template_id', templateId.toString());
const request: HttpRequest = {
method: HttpMethod.POST,
url: acumbamailCommon.baseUrl + '/duplicateTemplate/',
headers: formData.getHeaders(),
body: formData,
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,33 @@
import { acumbamailAuth } from '../../';
import { Property, createAction } from '@activepieces/pieces-framework';
import { acumbamailCommon } from '../common';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
export const searchSubscriberAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_search_subscriber',
displayName: 'Search Subscriber',
description:
"Returns the subscriber's advanced data in each list to which they belong.",
props: {
subscriber: Property.ShortText({
displayName: 'Subscriber Email',
required: true,
}),
},
async run(context) {
const { subscriber } = context.propsValue;
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: acumbamailCommon.baseUrl + '/searchSubscriber/',
queryParams: { auth_token: context.auth.secret_text, subscriber: subscriber },
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,38 @@
import { acumbamailAuth } from '../..';
import { Property, createAction } from '@activepieces/pieces-framework';
import { acumbamailCommon } from '../common';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
export const unsubscribeAction = createAction({
auth: acumbamailAuth,
name: 'acumbamail_unsubscribe_subscriber',
displayName: 'Unsuscribe Subscriber',
description:
'Unsubscribes an email address from a subscriber list of your choosing.',
props: {
email: Property.ShortText({
displayName: 'Email',
required: true,
}),
listId: acumbamailCommon.listId,
},
async run(context) {
const { listId, email } = context.propsValue;
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: acumbamailCommon.baseUrl + '/unsubscribeSubscriber/',
queryParams: {
auth_token: context.auth.secret_text,
list_id: listId.toString(),
email: email,
},
};
const res = await httpClient.sendRequest(request);
return res.body;
},
});

View File

@@ -0,0 +1,12 @@
export const enum SubscriberListFieldType {
URL = 'url',
LIST = 'single list',
DECIMAL = 'decimal',
CHECKBOX = 'name',
EMAIL = 'email',
DATE = 'date',
WHOLE_NUMBER = 'integer',
IP = 'ip',
TEXT = 'char',
LONG_TEXT = 'text',
}

View File

@@ -0,0 +1,171 @@
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { DynamicPropsValue, Property } from '@activepieces/pieces-framework';
import { SubscriberListFieldType } from './constants';
import {
GetListsResponse,
GetTemplatesResponse,
SubscriberListField,
} from './types';
import { acumbamailAuth } from '../..';
export const acumbamailCommon = {
baseUrl: 'https://acumbamail.com/api/1',
listId: Property.Dropdown({
auth: acumbamailAuth,
displayName: 'Subscriber List',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
placeholder: 'Please connect your account',
options: [],
};
}
const request: HttpRequest = {
method: HttpMethod.GET,
url: acumbamailCommon.baseUrl + '/getLists/',
queryParams: { auth_token: auth.secret_text },
};
const res = await httpClient.sendRequest<GetListsResponse>(request);
return {
disabled: false,
options: Object.entries(res.body).map(([key, val]) => {
return {
value: Number(key),
label: val.name,
};
}),
};
},
}),
listMergeFields: Property.DynamicProperties({
auth: acumbamailAuth,
displayName: 'Merge Fields',
refreshers: ['listId'],
required: true,
props: async ({ auth, listId }) => {
if (!auth) return {};
if (!listId) return {};
const fields: DynamicPropsValue = {};
const request: HttpRequest = {
method: HttpMethod.GET,
url: acumbamailCommon.baseUrl + '/getListFields/',
queryParams: {
auth_token: auth.secret_text,
list_id: listId as unknown as string,
},
};
const res = await httpClient.sendRequest<{
fields: SubscriberListField[];
}>(request);
for (const field of res.body.fields) {
switch (field.type) {
case SubscriberListFieldType.CHECKBOX:
fields[field.tag] = Property.Checkbox({
displayName: field.label,
required: false,
});
break;
case SubscriberListFieldType.DATE:
fields[field.tag] = Property.DateTime({
displayName: field.label,
required: false,
description: 'Use dd/mm/yyy mm:ss format.',
});
break;
case SubscriberListFieldType.EMAIL:
fields[field.tag] = Property.ShortText({
displayName: field.label,
required: true,
});
break;
case SubscriberListFieldType.TEXT:
case SubscriberListFieldType.IP:
case SubscriberListFieldType.URL:
fields[field.tag] = Property.ShortText({
displayName: field.label,
required: false,
});
break;
case SubscriberListFieldType.DECIMAL:
case SubscriberListFieldType.WHOLE_NUMBER:
fields[field.tag] = Property.Number({
displayName: field.label,
required: false,
});
break;
case SubscriberListFieldType.LONG_TEXT:
fields[field.tag] = Property.LongText({
displayName: field.label,
required: false,
});
break;
case SubscriberListFieldType.LIST:
fields[field.tag] = Property.StaticDropdown({
displayName: field.label,
required: false,
options: {
disabled: false,
options: field.options
? field.options.map((option) => {
return {
label: option.label,
value: option.label,
};
})
: [],
},
});
break;
default:
break;
}
}
return fields;
},
}),
templateId: Property.Dropdown({
auth: acumbamailAuth,
displayName: 'Origin Template',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
placeholder: 'Please connect your account',
options: [],
};
}
const request: HttpRequest = {
method: HttpMethod.GET,
url: acumbamailCommon.baseUrl + '/getTemplates/',
queryParams: { auth_token: auth.secret_text },
};
const res = await httpClient.sendRequest<GetTemplatesResponse[]>(request);
return {
disabled: false,
options: res.body.map((template) => {
return {
label: template.name,
value: template.id,
};
}),
};
},
}),
};

View File

@@ -0,0 +1,30 @@
import { SubscriberListFieldType } from './constants';
export type CreateListParams = {
sender_email: string;
name: string;
company?: string;
address?: string;
phone?: string;
};
export type GetListsResponse = {
[key: string]: {
name: string;
};
};
export type GetTemplatesResponse = {
id: number;
name: string;
};
export type SubscriberListField = {
name: string;
label: string;
readonly: boolean;
tag: string;
hidden: boolean;
type: SubscriberListFieldType;
options?: { label: string }[];
};

View File

@@ -0,0 +1,19 @@
{
"extends": "../../../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}

View File

@@ -0,0 +1,11 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
"include": ["src/**/*.ts"]
}