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-cognito-forms
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-cognito-forms` to build the library.

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-cognito-forms",
"version": "0.0.7"
}

View File

@@ -0,0 +1,65 @@
{
"name": "pieces-cognito-forms",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/cognito-forms/src",
"projectType": "library",
"release": {
"version": {
"currentVersionResolver": "git-tag",
"preserveLocalDependencyProtocols": false,
"manifestRootsToUpdate": [
"dist/{projectRoot}"
]
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/cognito-forms",
"tsConfig": "packages/pieces/community/cognito-forms/tsconfig.lib.json",
"packageJson": "packages/pieces/community/cognito-forms/package.json",
"main": "packages/pieces/community/cognito-forms/src/index.ts",
"assets": [
"packages/pieces/community/cognito-forms/*.md",
{
"input": "packages/pieces/community/cognito-forms/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"nx-release-publish": {
"options": {
"packageRoot": "dist/{projectRoot}"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/cognito-forms",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Klicken Sie auf den Namen Ihrer Organisation in der oberen linken Ecke und klicken Sie dann auf Einstellungen.\n 2. Gehen Sie zum Abschnitt Integrationen und wählen Sie + Neuer API-Schlüssel.\n 3. Kopieren und speichern Sie Ihren API-Schlüssel, da er später nicht abgerufen werden kann.\n ",
"Create Entry": "Eintrag erstellen",
"Update Entry": "Eintrag aktualisieren",
"Delete Entry": "Eintrag löschen",
"Get Entry": "Eintrag abrufen",
"Custom API Call": "Eigener API-Aufruf",
"Creates a new entry.": "Erstellt einen neuen Eintrag.",
"Update an existing entry.": "Aktualisiere einen existierenden Eintrag.",
"Deletes a specified entry.": "Löscht einen angegebenen Eintrag.",
"Gets a specified entry.": "Liefert einen angegebenen Eintrag.",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Form": "Formular",
"Fields": "Felder",
"Entry ID": "Eintrag-ID",
"Method": "Methode",
"Headers": "Kopfzeilen",
"Query Parameters": "Abfrageparameter",
"Body": "Körper",
"Response is Binary ?": "Antwort ist binär?",
"No Error on Failure": "Kein Fehler bei Fehler",
"Timeout (in seconds)": "Timeout (in Sekunden)",
"Enter the ID of the entry you want to update.": "Geben Sie die ID des Eintrags ein, den Sie aktualisieren möchten.",
"Enter the ID of the entry to delete.": "Geben Sie die ID des zu löschenden Eintrags ein.",
"Enter the ID of the entry to retrieve.": "Geben Sie die ID des abzuholenden Eintrags ein.",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD",
"New Entry": "Neuer Eintrag",
"Entry Updated": "Eintrag aktualisiert",
"Triggers when a new form entry is submitted.": "Wird ausgelöst, wenn ein neuer Formulareintrag abgeschickt wird.",
"Triggers when an existing form entry is updated.": "Wird ausgelöst, wenn ein bestehender Formulareintrag aktualisiert wird.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tUm diesen Auslöser nutzen zu können, müssen Sie manuell einen Webhook in Ihrem Cognito-Konto einrichten:\n\n\t\t\t1. Melden Sie sich in Ihr Konto bei Cognito Formularformularen an.\n\t\t\t2. Wählen Sie das gewünschte Formular aus und gehen Sie zu den Formulareinstellungen.\n\t\t\t3. Aktivieren Sie **JSON-Daten auf der Website** und fügen Sie folgende URL im Feld **Entry Endpoint** einreichen:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Klicken Sie auf Speichern, um die Formularänderungen zu speichern.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n Um diesen Auslöser zu verwenden, Sie müssen manuell einen Webhook in Ihrem Cognito-Formular-Konto einrichten:\n \n 1. Melden Sie sich mit Ihrem Cognito Formular-Konto an.\n 2. Wählen Sie das gewünschte Formular aus und gehen Sie zu den Formulareinstellungen.\n 3. Aktiviere **SON Daten auf der Website** und füge folgende URL im Feld **Update Entry Endpoint** hinzu:\n ```text\n {{webhookUrl}}\n ```\n 4. Klicken Sie auf Speichern, um die Formularänderungen zu speichern.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "Crear entrada",
"Update Entry": "Actualizar entrada",
"Delete Entry": "Eliminar entrada",
"Get Entry": "Obtener entrada",
"Custom API Call": "Llamada API personalizada",
"Creates a new entry.": "Crea una nueva entrada.",
"Update an existing entry.": "Actualizar una entrada existente.",
"Deletes a specified entry.": "Elimina una entrada especificada.",
"Gets a specified entry.": "Obtiene una entrada especificada.",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Form": "Forma",
"Fields": "Campos",
"Entry ID": "ID de entrada",
"Method": "Método",
"Headers": "Encabezados",
"Query Parameters": "Parámetros de consulta",
"Body": "Cuerpo",
"Response is Binary ?": "¿Respuesta es binaria?",
"No Error on Failure": "No hay ningún error en fallo",
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
"Enter the ID of the entry you want to update.": "Introduzca el ID de la entrada que desea actualizar.",
"Enter the ID of the entry to delete.": "Introduzca el ID de la entrada a eliminar.",
"Enter the ID of the entry to retrieve.": "Introduzca el ID de la entrada para recuperar.",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO",
"New Entry": "Nueva entrada",
"Entry Updated": "Entrada actualizada",
"Triggers when a new form entry is submitted.": "Se activa cuando se envía una nueva entrada de formulario.",
"Triggers when an existing form entry is updated.": "Se activa cuando se actualiza una entrada de formulario existente.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tPara usar este activador, necesita configurar manualmente un webhook en su cuenta de Cognito Forms:\n\n\t\t\t1. Inicie sesión en su cuenta de Formularios de Cognito.\n\t\t\t2. Seleccione el formulario deseado y vaya a Configuración de Formularios.\n\t\t\t3. Activa **Post JSON Data al sitio web** y añade la siguiente URL en el campo **Enviar entrada de entrada**:\n\t\t\t```texto\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Haga clic en Guardar para guardar los cambios del formulario.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n Para usar este disparador, necesita configurar manualmente un webhook en su cuenta de Formularios de Cognito:\n \n 1. Inicie sesión en su cuenta de Formularios de Cognito.\n 2. Seleccione el formulario deseado y vaya a Configuración del Formulario.\n 3. Activa **Post JSON Data a Website** y añade la siguiente URL en el campo **Update Entry Endpoint**:\n ```text\n {{webhookUrl}}\n ```\n 4. Haga clic en Guardar para guardar los cambios del formulario.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "Créer une entrée",
"Update Entry": "Mettre à jour l'entrée",
"Delete Entry": "Supprimer l'entrée",
"Get Entry": "Obtenir une entrée",
"Custom API Call": "Appel API personnalisé",
"Creates a new entry.": "Crée une nouvelle entrée.",
"Update an existing entry.": "Mettre à jour une entrée existante.",
"Deletes a specified entry.": "Supprime une entrée spécifiée.",
"Gets a specified entry.": "Renvoie une entrée spécifiée.",
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
"Form": "Forme",
"Fields": "Champs",
"Entry ID": "ID de l'entrée",
"Method": "Méthode",
"Headers": "En-têtes",
"Query Parameters": "Paramètres de requête",
"Body": "Corps",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'attente (en secondes)",
"Enter the ID of the entry you want to update.": "Entrez l'ID de l'entrée que vous souhaitez mettre à jour.",
"Enter the ID of the entry to delete.": "Entrez l'ID de l'entrée à supprimer.",
"Enter the ID of the entry to retrieve.": "Entrez l'ID de l'entrée à récupérer.",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "OBTENIR",
"POST": "POSTER",
"PATCH": "PATCH",
"PUT": "EFFACER",
"DELETE": "SUPPRIMER",
"HEAD": "TÊTE",
"New Entry": "Nouvelle entrée",
"Entry Updated": "Entrée mise à jour",
"Triggers when a new form entry is submitted.": "Déclenche quand une nouvelle entrée de formulaire est soumise.",
"Triggers when an existing form entry is updated.": "Déclenche quand une entrée de formulaire existante est mise à jour.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tPour utiliser ce déclencheur, vous devez configurer manuellement un webhook dans votre compte de formulaires Cognito :\n\n\t\t\t1. Connectez-vous à votre compte de formulaires Cognito.\n\t\t\t2. Sélectionnez le formulaire désiré et allez dans les paramètres du formulaire.\n\t\t\t3. Activez **Envoyer des données JSON sur le site Web** et ajoutez l'URL suivante dans le champ **Soumettre le point d'entrée** :\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Cliquez sur Enregistrer pour enregistrer les modifications de formulaire.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "エントリを作成",
"Update Entry": "エントリを更新",
"Delete Entry": "項目を削除",
"Get Entry": "エントリーを取得",
"Custom API Call": "カスタムAPI通話",
"Creates a new entry.": "新しいエントリを作成します。",
"Update an existing entry.": "既存のエントリを更新します。",
"Deletes a specified entry.": "指定した項目を削除します。",
"Gets a specified entry.": "指定されたエントリを取得します。",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Form": "フォーム",
"Fields": "フィールド",
"Entry ID": "エントリ ID",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"Enter the ID of the entry you want to update.": "更新するエントリの ID を入力します。",
"Enter the ID of the entry to delete.": "削除する項目のIDを入力します。",
"Enter the ID of the entry to retrieve.": "取得するエントリの ID を入力します。",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭",
"New Entry": "新規エントリ",
"Entry Updated": "エントリが更新されました",
"Triggers when a new form entry is submitted.": "新しいフォームエントリが送信されたときにトリガーします。",
"Triggers when an existing form entry is updated.": "既存のフォームエントリが更新されたときにトリガーされます。",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Klik op de naam van je organisatie in de linkerbovenhoek en klik vervolgens op Instellingen.\n 2. Ga naar de integraties sectie en selecteer + Nieuwe API Key.\n 3. Zorg ervoor dat u uw API-sleutel kopieert en opslaat, want deze kan later niet worden opgehaald.\n ",
"Create Entry": "Invoer aanmaken",
"Update Entry": "Invoer bijwerken",
"Delete Entry": "Vermelding verwijderen",
"Get Entry": "Krijg Invoer",
"Custom API Call": "Custom API Call",
"Creates a new entry.": "Maakt een nieuwe invoer aan.",
"Update an existing entry.": "Een bestaande invoer bijwerken.",
"Deletes a specified entry.": "Verwijdert een specifieke invoer.",
"Gets a specified entry.": "Haalt een opgegeven invoer op.",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Form": "Vorm",
"Fields": "Velden",
"Entry ID": "Invoer ID",
"Method": "Methode",
"Headers": "Kopteksten",
"Query Parameters": "Query parameters",
"Body": "Lichaam",
"Response is Binary ?": "Antwoord is binair?",
"No Error on Failure": "Geen fout bij fout",
"Timeout (in seconds)": "Time-out (in seconden)",
"Enter the ID of the entry you want to update.": "Vul de ID in van het item dat u wilt bijwerken.",
"Enter the ID of the entry to delete.": "Vul het ID van het te verwijderen item in.",
"Enter the ID of the entry to retrieve.": "Voer het ID in van de op te halen invoer.",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD",
"New Entry": "Nieuwe vermelding",
"Entry Updated": "Invoer bijgewerkt",
"Triggers when a new form entry is submitted.": "Triggert wanneer een nieuwe formulierinvoer wordt ingediend.",
"Triggers when an existing form entry is updated.": "Triggert wanneer een bestaande formulierinvoer wordt bijgewerkt.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tA3ρthat to use this trigger, you need to set manueel a webhook in your Cognito Forms account:\n\n\t\t\tA3-1. Log in op uw Cognito formulieraccount.\n\t\t\t½ ½ 2. Selecteer het gewenste formulier en ga naar Formulierinstellingen.\n\t\t\t## ## 3. Schakel **Post JSON gegevens in op Website** en voeg na URL toe in het **Submit Entry Endpoint** veld:\n\t\t\tρ```text\n\t\t\tρins. ins. ins.\t\t\t{{webhookUrl}}\n\t\t\t########½ `````\n\t\t\tgeneral. 4. Klik op Opslaan om de wijzigingen op het formulier op te slaan.\n\t\t\t+unnamed@@0\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n Om deze trigger te gebruiken, je moet handmatig een webhook instellen in je Cognito formulieraccount:\n \n 1. Log in op uw Cognito formulieraccount.\n 2. Selecteer het gewenste formulier en ga naar de formulierinstellingen.\n 3. Schakel **Post JSON gegevens op Website** in en voeg de volgende URL toe in **Update Entry Endpoint** veld:\n ```text\n {{webhookUrl}}\n ```\n 4. Klik op Opslaan om de wijzigingen op te slaan.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Clique no nome da sua organização no canto superior esquerdo e depois clique em Configurações.\n 2. Vá para a seção de integrações e selecione + Nova Chave de API.\n 3. Certifique-se de copiar e armazenar a sua chave de API, pois ela não pode ser recuperada mais tarde.\n ",
"Create Entry": "Criar Entrada",
"Update Entry": "Atualizar Entrada",
"Delete Entry": "Excluir registro",
"Get Entry": "Obter Entrada",
"Custom API Call": "Chamada de API personalizada",
"Creates a new entry.": "Cria uma nova entrada.",
"Update an existing entry.": "Atualizar uma entrada existente.",
"Deletes a specified entry.": "Exclui uma entrada especificada.",
"Gets a specified entry.": "Obtém uma entrada especificada.",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Form": "Formulário",
"Fields": "campos",
"Entry ID": "ID da postagem",
"Method": "Método",
"Headers": "Cabeçalhos",
"Query Parameters": "Parâmetros da consulta",
"Body": "Conteúdo",
"Response is Binary ?": "A resposta é binária ?",
"No Error on Failure": "Nenhum erro no Failure",
"Timeout (in seconds)": "Tempo limite (em segundos)",
"Enter the ID of the entry you want to update.": "Digite o ID do registro que você deseja atualizar.",
"Enter the ID of the entry to delete.": "Insira o ID da entrada para excluir.",
"Enter the ID of the entry to retrieve.": "Digite o ID da entrada para recuperar.",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA",
"New Entry": "Nova entrada",
"Entry Updated": "Entrada Atualizada",
"Triggers when a new form entry is submitted.": "Dispara quando uma nova entrada de formulário é enviada.",
"Triggers when an existing form entry is updated.": "Dispara quando uma entrada de formulário existente é atualizada.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tPara utilizar este Gatilho(Trigger), você precisa instalar um Webhook manualmente na sua conta do Cognito.\n\n\t\t\t1. Faça Login na sua conta Cognito.\n\t\t\t2. Selecione o formulário que deseja e vá para Configurações do Formulário.\n\t\t\t3. Habilite a opção **Post JSON Data to Website** e adicione a URL no campo **Submit Entry Endpoint**:\n ```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n4. Clique em Salvar para salvar suas alterações no formulário.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,40 @@
{
"Cognito Forms": "Копознавательные формы",
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Нажмите на название организации в левом верхнем углу и нажмите кнопку \"Настройки\".\n 2. Перейдите в раздел Интеграции и выберите + New API Key.\n 3. Убедитесь, что скопируйте и сохраните ваш API ключ, так как он не может быть получен позже.\n ",
"Create Entry": "Создать запись",
"Update Entry": "Обновить запись",
"Delete Entry": "Удалить запись",
"Get Entry": "Получить запись",
"Custom API Call": "Пользовательский вызов API",
"Creates a new entry.": "Создает новую запись.",
"Update an existing entry.": "Обновить существующую запись.",
"Deletes a specified entry.": "Удаляет указанную запись.",
"Gets a specified entry.": "Получает указанную запись.",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Form": "Форма",
"Fields": "Поля",
"Entry ID": "ID записи",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"Enter the ID of the entry you want to update.": "Введите ID записи, которую вы хотите обновить.",
"Enter the ID of the entry to delete.": "Введите ID записи для удаления.",
"Enter the ID of the entry to retrieve.": "Введите ID получаемой записи.",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD",
"New Entry": "Новая запись",
"Entry Updated": "Запись обновлена",
"Triggers when a new form entry is submitted.": "Триггеры при вводе новой формы.",
"Triggers when an existing form entry is updated.": "Триггеры при обновлении записи в форме.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n Для использования этого триггера вам нужно вручную настроить веб-хук в учетной записи Cognito Forms аккаунта:\n \n 1. Войдите в свой аккаунт Cognito Forms.\n 2. Выберите нужную форму и перейдите в Форму Настройки.\n 3. Включите **Пост JSON данных на сайт** и добавьте следующий URL в поле **Обновить Entry Endpoint**:\n ```text\n {{webhookUrl}}\n ```\n 4. Нажмите кнопку Сохранить, чтобы сохранить изменения в форме.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "Create Entry",
"Update Entry": "Update Entry",
"Delete Entry": "Delete Entry",
"Get Entry": "Get Entry",
"Custom API Call": "Custom API Call",
"Creates a new entry.": "Creates a new entry.",
"Update an existing entry.": "Update an existing entry.",
"Deletes a specified entry.": "Deletes a specified entry.",
"Gets a specified entry.": "Gets a specified entry.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Form": "Form",
"Fields": "Fields",
"Entry ID": "Entry ID",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Enter the ID of the entry you want to update.": "Enter the ID of the entry you want to update.",
"Enter the ID of the entry to delete.": "Enter the ID of the entry to delete.",
"Enter the ID of the entry to retrieve.": "Enter the ID of the entry to retrieve.",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New Entry": "New Entry",
"Entry Updated": "Entry Updated",
"Triggers when a new form entry is submitted.": "Triggers when a new form entry is submitted.",
"Triggers when an existing form entry is updated.": "Triggers when an existing form entry is updated.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,40 @@
{
"Cognito Forms": "Cognito Forms",
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "Create Entry",
"Update Entry": "Update Entry",
"Delete Entry": "Delete Entry",
"Get Entry": "Get Entry",
"Custom API Call": "Custom API Call",
"Creates a new entry.": "Creates a new entry.",
"Update an existing entry.": "Update an existing entry.",
"Deletes a specified entry.": "Deletes a specified entry.",
"Gets a specified entry.": "Gets a specified entry.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Form": "Form",
"Fields": "Fields",
"Entry ID": "Entry ID",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Enter the ID of the entry you want to update.": "Enter the ID of the entry you want to update.",
"Enter the ID of the entry to delete.": "Enter the ID of the entry to delete.",
"Enter the ID of the entry to retrieve.": "Enter the ID of the entry to retrieve.",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New Entry": "New Entry",
"Entry Updated": "Entry Updated",
"Triggers when a new form entry is submitted.": "Triggers when a new form entry is submitted.",
"Triggers when an existing form entry is updated.": "Triggers when an existing form entry is updated.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,41 @@
{
"\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ": "\n 1. Click your organization's name in the top left corner and then click Settings.\n 2. Go to the Integrations section and select + New API Key.\n 3. Make sure to copy and store your API key, as it cannot be retrieved later.\n ",
"Create Entry": "Create Entry",
"Update Entry": "Update Entry",
"Delete Entry": "Delete Entry",
"Get Entry": "Get Entry",
"Custom API Call": "自定义 API 呼叫",
"Creates a new entry.": "Creates a new entry.",
"Update an existing entry.": "Update an existing entry.",
"Deletes a specified entry.": "Deletes a specified entry.",
"Gets a specified entry.": "Gets a specified entry.",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Form": "Form",
"Fields": "Fields",
"Entry ID": "Entry ID",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"Enter the ID of the entry you want to update.": "Enter the ID of the entry you want to update.",
"Enter the ID of the entry to delete.": "Enter the ID of the entry to delete.",
"Enter the ID of the entry to retrieve.": "Enter the ID of the entry to retrieve.",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色",
"New Entry": "New Entry",
"Entry Updated": "Entry Updated",
"Triggers when a new form entry is submitted.": "Triggers when a new form entry is submitted.",
"Triggers when an existing form entry is updated.": "Triggers when an existing form entry is updated.",
"Markdown": "Markdown",
"\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t": "\n\t\t\tTo use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n\n\t\t\t1. Login to your Cognito Forms account.\n\t\t\t2. Select desired form and go to Form Settings.\n\t\t\t3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:\n\t\t\t```text\n\t\t\t{{webhookUrl}}\n\t\t\t```\n\t\t\t4. Click Save to save the form changes.\n\t\t\t",
"\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n ": "\n To use this trigger, you need to manually set up a webhook in your Cognito Forms account:\n \n 1. Login to your Cognito Forms account.\n 2. Select desired form and go to Form Settings.\n 3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:\n ```text\n {{webhookUrl}}\n ```\n 4. Click Save to save the form changes.\n "
}

View File

@@ -0,0 +1,59 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { AppConnectionType, PieceCategory } from '@activepieces/shared';
import { createEntryAction } from './lib/actions/create-entry';
import { updateEntryAction } from './lib/actions/update-entry';
import { deleteEntryAction } from './lib/actions/delete-entry';
import { getEntryAction } from './lib/actions/get-entry';
import { newEntryTrigger } from './lib/triggers/new-entry-submitted';
import { entryUpdatedTrigger } from './lib/triggers/entry-updated';
import {
createCustomApiCallAction,
HttpMethod,
} from '@activepieces/pieces-common';
import { makeRequest } from './lib/common';
export const cognitoFormsAuth = PieceAuth.SecretText({
displayName: 'API Key',
required: true,
description: `
1. Click your organization's name in the top left corner and then click Settings.
2. Go to the Integrations section and select + New API Key.
3. Make sure to copy and store your API key, as it cannot be retrieved later.
`,
validate: async ({ auth }) => {
try {
await makeRequest({secret_text: auth, type: AppConnectionType.SECRET_TEXT}, HttpMethod.GET, '/forms');
return { valid: true };
} catch {
return {
valid: false,
error: 'Invalid API Key.',
};
}
},
});
export const cognitoForms = createPiece({
displayName: 'Cognito Forms',
auth: cognitoFormsAuth,
logoUrl: 'https://cdn.activepieces.com/pieces/cognito-forms.png',
authors: ['krushnarout'],
categories: [PieceCategory.PRODUCTIVITY, PieceCategory.FORMS_AND_SURVEYS],
actions: [
createEntryAction,
updateEntryAction,
deleteEntryAction,
getEntryAction,
createCustomApiCallAction({
auth: cognitoFormsAuth,
baseUrl: () => 'https://www.cognitoforms.com/api',
authMapping: async (auth) => {
return {
Authorization: `Bearer ${auth}`,
};
},
}),
],
triggers: [newEntryTrigger, entryUpdatedTrigger],
});

View File

@@ -0,0 +1,27 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common';
import { cognitoFormsAuth } from '../../index';
import { formFields, formIdDropdown } from '../common/props';
export const createEntryAction = createAction({
auth: cognitoFormsAuth,
name: 'create_entry',
displayName: 'Create Entry',
description: 'Creates a new entry.',
props: {
formId: formIdDropdown,
entryData: formFields,
},
async run(context) {
const apiKey = context.auth;
const { formId, entryData } = context.propsValue;
return await makeRequest(
apiKey,
HttpMethod.POST,
`/forms/${formId}/entries`,
entryData
);
},
});

View File

@@ -0,0 +1,30 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common';
import { cognitoFormsAuth } from '../../index';
import { formIdDropdown } from '../common/props';
export const deleteEntryAction = createAction({
auth: cognitoFormsAuth,
name: 'delete_entry',
displayName: 'Delete Entry',
description: 'Deletes a specified entry.',
props: {
formId: formIdDropdown,
entryId: Property.ShortText({
displayName: 'Entry ID',
required: true,
description: 'Enter the ID of the entry to delete.',
}),
},
async run(context) {
const apiKey = context.auth;
const { formId, entryId } = context.propsValue;
return await makeRequest(
apiKey,
HttpMethod.DELETE,
`/forms/${formId}/entries/${entryId}`
);
},
});

View File

@@ -0,0 +1,30 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common';
import { cognitoFormsAuth } from '../../index';
import { formIdDropdown } from '../common/props';
export const getEntryAction = createAction({
auth: cognitoFormsAuth,
name: 'get_entry',
displayName: 'Get Entry',
description: 'Gets a specified entry.',
props: {
formId: formIdDropdown,
entryId: Property.ShortText({
displayName: 'Entry ID',
required: true,
description: 'Enter the ID of the entry to retrieve.',
}),
},
async run(context) {
const apiKey = context.auth;
const { formId, entryId } = context.propsValue;
return await makeRequest(
apiKey,
HttpMethod.GET,
`/forms/${formId}/entries/${entryId}`
);
},
});

View File

@@ -0,0 +1,32 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common';
import { cognitoFormsAuth } from '../../index';
import { formFields, formIdDropdown } from '../common/props';
export const updateEntryAction = createAction({
auth: cognitoFormsAuth,
name: 'update_entry',
displayName: 'Update Entry',
description: 'Update an existing entry.',
props: {
formId: formIdDropdown,
entryId: Property.ShortText({
displayName: 'Entry ID',
required: true,
description: 'Enter the ID of the entry you want to update.',
}),
entryData: formFields,
},
async run(context) {
const apiKey = context.auth;
const { formId, entryId, entryData } = context.propsValue;
return await makeRequest(
apiKey,
HttpMethod.PATCH,
`/forms/${formId}/entries/${entryId}`,
entryData
);
},
});

View File

@@ -0,0 +1,24 @@
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
import { cognitoFormsAuth } from '../..';
export const BASE_URL = 'https://www.cognitoforms.com/api';
export async function makeRequest(
{secret_text}: AppConnectionValueForAuthProperty<typeof cognitoFormsAuth>,
method: HttpMethod,
path: string,
body?: unknown
) {
const response = await httpClient.sendRequest({
method,
url: `${BASE_URL}${path}`,
headers: {
Authorization: `Bearer ${secret_text}`,
'Content-Type': 'application/json',
},
body,
});
return response.body;
}

View File

@@ -0,0 +1,107 @@
import {
Property,
DropdownOption,
DynamicPropsValue,
} from '@activepieces/pieces-framework';
import { makeRequest } from './index';
import { HttpMethod } from '@activepieces/pieces-common';
import { cognitoFormsAuth } from '../..';
export const formIdDropdown = Property.Dropdown({
auth: cognitoFormsAuth,
displayName: 'Form',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
placeholder: 'Please connect your Cognito Forms account',
options: [],
};
}
const apiKey = auth;
const forms = await makeRequest(apiKey, HttpMethod.GET, '/forms');
const options: DropdownOption<string>[] = forms.map((form: any) => ({
label: form.Name,
value: form.Id,
}));
return {
disabled: false,
options,
};
},
});
export const formFields = Property.DynamicProperties({
displayName: 'Fields',
auth: cognitoFormsAuth,
refreshers: ['formId'],
required: true,
props: async ({ auth, formId }) => {
if (!auth || !formId) return {};
const apiKey = auth;
const response = await makeRequest(
apiKey,
HttpMethod.GET,
`/forms/${formId}/schema`
);
const fields = response as FormSchemaResponse;
const props: DynamicPropsValue = {};
for (const [key, value] of Object.entries(fields.properties)) {
const fieldType = value.type;
const fieldName = key;
const fieldDes = value.description;
const isReadOnly = value.readOnly;
if (isReadOnly) continue;
switch (fieldType) {
case 'string':
props[fieldName] = Property.ShortText({
displayName: fieldName,
description: fieldDes ?? '',
required: false,
});
break;
case 'boolean':
props[fieldName] = Property.Checkbox({
displayName: fieldName,
description: fieldDes ?? '',
required: false,
});
break;
case 'number':
props[fieldName] = Property.Number({
displayName: fieldName,
description: fieldDes ?? '',
required: false,
});
break;
default:
break;
}
}
return props;
},
});
type FormSchemaResponse = {
type: string;
properties: {
[x: string]: {
type: string;
readOnly: boolean;
description: string;
};
};
};

View File

@@ -0,0 +1,40 @@
import {
createTrigger,
Property,
TriggerStrategy,
} from '@activepieces/pieces-framework';
import { cognitoFormsAuth } from '../../index';
export const entryUpdatedTrigger = createTrigger({
name: 'entry_updated',
displayName: 'Entry Updated',
description: 'Triggers when an existing form entry is updated.',
auth: cognitoFormsAuth,
props: {
webhookInstructions: Property.MarkDown({
value: `
To use this trigger, you need to manually set up a webhook in your Cognito Forms account:
1. Login to your Cognito Forms account.
2. Select desired form and go to Form Settings.
3. Enable **Post JSON Data to Website** and add following URL in **Update Entry Endpoint** field:
\`\`\`text
{{webhookUrl}}
\`\`\`
4. Click Save to save the form changes.
`,
}),
},
type: TriggerStrategy.WEBHOOK,
sampleData: undefined,
async onEnable(context) {
// No need to register webhooks programmatically as user will do it manually
},
async onDisable(context) {
// No need to unregister webhooks as user will do it manually
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,40 @@
import {
createTrigger,
Property,
TriggerStrategy,
} from '@activepieces/pieces-framework';
import { cognitoFormsAuth } from '../../index';
export const newEntryTrigger = createTrigger({
name: 'new_entry',
displayName: 'New Entry',
description: 'Triggers when a new form entry is submitted.',
auth: cognitoFormsAuth,
props: {
webhookInstructions: Property.MarkDown({
value: `
To use this trigger, you need to manually set up a webhook in your Cognito Forms account:
1. Login to your Cognito Forms account.
2. Select desired form and go to Form Settings.
3. Enable **Post JSON Data to Website** and add following URL in **Submit Entry Endpoint** field:
\`\`\`text
{{webhookUrl}}
\`\`\`
4. Click Save to save the form changes.
`,
}),
},
type: TriggerStrategy.WEBHOOK,
sampleData: undefined,
async onEnable(context) {
// No need to register webhooks programmatically as user will do it manually
},
async onDisable(context) {
// No need to unregister webhooks as user will do it manually
},
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,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noPropertyAccessFromIndexSignature": 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"]
}