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,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce ist ein E-Mail-Validierungsdienst, der Ihnen hilft, Bounces zu reduzieren, die Zustellbarkeit von E-Mails zu verbessern und E-Mail-Marketing ROI zu erhöhen.",
"Validate Email": "Validate Email",
"Email": "E-Mail",
"Cache Response": "Cache-Antwort",
"Store the response in the project store for future use.": "Speichern Sie die Antwort im Projektspeicher für zukünftige Nutzung."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce es un servicio de validación de correo electrónico que te ayuda a reducir rebotes, mejorar la entregabilidad del correo electrónico y aumentar la ROI de marketing de correo electrónico.",
"Validate Email": "Validate Email",
"Email": "E-mail",
"Cache Response": "Respuesta de caché",
"Store the response in the project store for future use.": "Almacena la respuesta en la tienda de proyectos para su uso futuro."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce est un service de validation de courriel qui vous aide à réduire les rebondissements, à améliorer la délivrabilité des e-mails et à augmenter le ROI de marketing par courriel.",
"Validate Email": "Validate Email",
"Email": "Courriel",
"Cache Response": "Mettre en cache la réponse",
"Store the response in the project store for future use.": "Stockez la réponse dans la boutique du projet pour une utilisation future."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounceは、バウンスを減らし、メール配信を改善し、メールマーケティングのROIを向上させるのに役立つ電子メール検証サービスです。",
"Validate Email": "Validate Email",
"Email": "Eメールアドレス",
"Cache Response": "キャッシュ応答",
"Store the response in the project store for future use.": "今後使用するためにプロジェクトストアに応答を保存します。"
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce is een e-mail validatie service die helpt om bounces, de afleverbaarheid van e-mail te verbeteren en de ROI van e-mail marketing te verhogen.",
"Validate Email": "Validate Email",
"Email": "E-mail",
"Cache Response": "Cache antwoord",
"Store the response in the project store for future use.": "Sla het antwoord op in de projectopslag op voor toekomstig gebruik."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce é um serviço de validação de e-mail que ajuda a reduzir devoluções, melhorar a entrega de e-mails e aumentar a ROI de marketing por e-mail.",
"Validate Email": "Validate Email",
"Email": "e-mail",
"Cache Response": "Resposta em cache",
"Store the response in the project store for future use.": "Armazene a resposta na loja do projeto para uso futuro."
}

View File

@@ -0,0 +1,8 @@
{
"ZeroBounce": "Жеробунс",
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce это сервис проверки электронной почты, который помогает вам уменьшить отказы, улучшить доставку электронной почты и увеличить ROI маркетинга.",
"Validate Email": "Validate Email",
"Email": "Почта",
"Cache Response": "Ответ кэша",
"Store the response in the project store for future use.": "Сохранять ответ в магазине проекта для последующего использования."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.",
"Validate Email": "Validate Email",
"Email": "Email",
"Cache Response": "Cache Response",
"Store the response in the project store for future use.": "Store the response in the project store for future use."
}

View File

@@ -0,0 +1,8 @@
{
"ZeroBounce": "ZeroBounce",
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.",
"Validate Email": "Validate Email",
"Email": "Email",
"Cache Response": "Cache Response",
"Store the response in the project store for future use.": "Store the response in the project store for future use."
}

View File

@@ -0,0 +1,7 @@
{
"ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.": "ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.",
"Validate Email": "Validate Email",
"Email": "电子邮件地址",
"Cache Response": "Cache Response",
"Store the response in the project store for future use.": "Store the response in the project store for future use."
}

View File

@@ -0,0 +1,19 @@
import { createPiece, PieceAuth } from "@activepieces/pieces-framework";
import { validateEmail } from "./lib/actions/validate-email";
export const zerobounceAuth = PieceAuth.SecretText({
displayName: 'API Key',
required: true,
});
export const zerobounce = createPiece({
displayName: "ZeroBounce",
auth: zerobounceAuth,
description: "ZeroBounce is an email validation service that helps you reduce bounces, improve email deliverability and increase email marketing ROI.",
minimumSupportedRelease: '0.30.0',
logoUrl: "https://cdn.activepieces.com/pieces/zerobounce.png",
authors: ["abuaboud"],
actions: [validateEmail],
triggers: [],
});

View File

@@ -0,0 +1,40 @@
import { zerobounceAuth } from '../..';
import { createAction, Property, StoreScope } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { isNil } from '@activepieces/shared';
export const validateEmail = createAction({
name: 'validateEmail',
displayName: 'Validate Email',
description: '',
props: {
email: Property.ShortText({
displayName: 'Email',
required: true,
}),
cacheResponse: Property.Checkbox({
displayName: 'Cache Response',
description: 'Store the response in the project store for future use.',
required: false,
defaultValue: true,
}),
},
auth: zerobounceAuth,
async run({ store, propsValue, auth }) {
const key = `_zerobounce_${propsValue.email}`;
if (propsValue.cacheResponse) {
const cachedResponse = await store.get(key, StoreScope.PROJECT);
if (!isNil(cachedResponse)) {
return cachedResponse
}
}
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.GET,
url: `https://api.zerobounce.net/v2/validate?email=${propsValue.email}&api_key=${auth.secret_text}`,
});
if (propsValue.cacheResponse) {
await store.put(key, res.body, StoreScope.PROJECT);
}
return res.body;
},
});