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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "KI Driven Pop-up Builder, der Besucher in Kunden konvertieren kann, die Anzahl der Abonnenten erhöhen und den Verkauf von Raketen erhöhen kann.",
"New Lead": "Neuer Lead",
"Triggers when a new lead is obtained from popup.": "Wird ausgelöst, wenn ein neuer Blei durch Popup gewonnen wird.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Melden Sie sich bei Ihrem [Poper Account](https://app.poper.ai/).\n2. Klicken Sie auf das Popup, für das Sie einen Trigger einrichten möchten.\n3. Klicken Sie im linken Menü auf Integrationen und suchen Sie nach **Webhook**.\nGib einen passenden Webhook-Namen ein und füge die folgende URL ein:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "Construidor de Pop-up de IA que puede convertir a los visitantes en clientes, aumentar el número de suscriptores y ventas de skyrocket.",
"New Lead": "Nuevo plomo",
"Triggers when a new lead is obtained from popup.": "Se activa cuando se obtiene un nuevo plomo a partir de la ventana emergente.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "Le constructeur de fenêtres pop-up AI Driven permet de convertir les visiteurs en clients, d'augmenter le nombre d'abonnés et les ventes de fusées.",
"New Lead": "Nouveau prospect",
"Triggers when a new lead is obtained from popup.": "Déclenche lorsqu'un nouveau plomb est obtenu à partir d'un popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "訪問者を顧客に変換したり、加入者数を増やしたり、急増したりできるAI駆動型ポップアップビルダー。",
"New Lead": "新しいリード",
"Triggers when a new lead is obtained from popup.": "ポップアップから新しいリードが取得されたときにトリガーします。",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI rijden Pop-up Builder die bezoekers kan omzetten in klanten, tellen abonnees en skyraket verkopen.",
"New Lead": "Nieuwe Lead",
"Triggers when a new lead is obtained from popup.": "Triggert wanneer een nieuwe lead wordt verkregen door popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in op uw [Poper Account](https://app.poper.ai/).\n2. Klik op de pop-up waarvoor je een trigger wilt instellen.\n3. Klik links in het menu op integraties en zoek naar **Webhook**.\n4. Voer een geschikte webhook naam in en plak de volgende URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI Driven Pop-up Builder que pode converter visitantes em clientes, aumentar a contagem de assinantes e vendas de Skyrocket.",
"New Lead": "Novo Potencial",
"Triggers when a new lead is obtained from popup.": "Aciona quando um novo lead é obtido do popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Entre na sua [Conta Poper](https://app.poper.ai/).\n2. Clique no pop-up para o qual deseja configurar um gatilho.\n3. No menu do lado esquerdo, clique em Integrações e procure por **Webhook**.\n4. Digite um nome de webhook apropriado e cole a seguinte URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,8 @@
{
"Poper": "Популярный",
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI Driven Pop-up Builder, который может конвертировать посетителей в клиентов, увеличить количество абонентов и продажу ракет.",
"New Lead": "Новый предв. контакт",
"Triggers when a new lead is obtained from popup.": "Триггеры при получении нового свинца из всплывающего окна.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Войдите в [Poper Account](https://app.poper.ai/).\n2. Нажмите на всплывающее окно, для которого вы хотите настроить триггер.\n3. В меню слева нажмите на Интеграции и ищите **Webhook**.\n4. Введите соответствующее имя вебхука и вставьте следующий URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.",
"New Lead": "New Lead",
"Triggers when a new lead is obtained from popup.": "Triggers when a new lead is obtained from popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,8 @@
{
"Poper": "Poper",
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.",
"New Lead": "New Lead",
"Triggers when a new lead is obtained from popup.": "Triggers when a new lead is obtained from popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,7 @@
{
"AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.": "AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.",
"New Lead": "New Lead",
"Triggers when a new lead is obtained from popup.": "Triggers when a new lead is obtained from popup.",
"Markdown": "Markdown",
"\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n": "\n1. Log in to your [Poper Account](https://app.poper.ai/).\n2. Click on the popup for which you want to set up a trigger.\n3. On the left-side menu, click on Integrations and search for **Webhook**.\n4. Enter an appropriate webhook name and paste the following URL:\n ```text\n {{webhookUrl}}\n ```\n"
}

View File

@@ -0,0 +1,16 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { newLead } from './lib/triggers/new-lead';
import { PieceCategory } from '@activepieces/shared';
export const poper = createPiece({
displayName: 'Poper',
auth: PieceAuth.None(),
minimumSupportedRelease: '0.30.0',
categories: [PieceCategory.MARKETING],
description:
'AI Driven Pop-up Builder that can convert visitors into customers,increase subscriber count, and skyrocket sales.',
logoUrl: 'https://cdn.activepieces.com/pieces/poper.png',
authors: ['thirstycode'],
actions: [],
triggers: [newLead],
});

View File

@@ -0,0 +1,37 @@
import {
createTrigger,
TriggerStrategy,
Property,
} from '@activepieces/pieces-framework';
const message = `
1. Log in to your [Poper Account](https://app.poper.ai/).
2. Click on the popup for which you want to set up a trigger.
3. On the left-side menu, click on Integrations and search for **Webhook**.
4. Enter an appropriate webhook name and paste the following URL:
\`\`\`text
{{webhookUrl}}
\`\`\`
`;
export const newLead = createTrigger({
name: 'newLead',
displayName: 'New Lead',
description: 'Triggers when a new lead is obtained from popup.',
props: {
markdown: Property.MarkDown({
value: message,
}),
},
sampleData: {},
type: TriggerStrategy.WEBHOOK,
async onEnable() {
// ignore
},
async onDisable() {
// ignore
},
async run(context) {
return [context.payload.body];
},
});

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"]
}