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

View File

@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-wonderchat",
"version": "0.0.2",
"type": "commonjs",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"dependencies": {
"tslib": "^2.3.0"
}
}

View File

@@ -0,0 +1,65 @@
{
"name": "pieces-wonderchat",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/wonderchat/src",
"projectType": "library",
"release": {
"version": {
"manifestRootsToUpdate": [
"dist/{projectRoot}"
],
"currentVersionResolver": "git-tag",
"fallbackCurrentVersionResolver": "disk"
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/wonderchat",
"tsConfig": "packages/pieces/community/wonderchat/tsconfig.lib.json",
"packageJson": "packages/pieces/community/wonderchat/package.json",
"main": "packages/pieces/community/wonderchat/src/index.ts",
"assets": [
"packages/pieces/community/wonderchat/*.md",
{
"input": "packages/pieces/community/wonderchat/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/wonderchat",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat ist eine No-Code-Chatbot-Plattform, mit der Sie auf Webseiten schnell KI-gestützte Chatbots bereitstellen können.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Melden Sie sich bei Ihrem Wonderchat-Konto an.\n 2. Klicke auf deine **Profilkarte**.\n 2. Gehe zu deinen **Benutzereinstellungen**.\n 3. Klicken Sie auf die Registerkarte **API-Schlüssel**\n 3. Wenn Sie bereits über einen Schlüssel verfügen, kopieren Sie ihn, wenn er nicht generiert wird.\n ",
"Ask Question": "Frage stellen",
"Add Page": "Seite hinzufügen",
"Add Tag": "Tag hinzufügen",
"Remove Tag": "Tag entfernen",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Sendet eine Frage an einen Wonderchat-Bot; gibt die Antwort des Bots zurück.",
"Add new pages to your chatbots knowledge base.": "Fügen Sie der Wissensdatenbank Ihres Chatbots neue Seiten hinzu.",
"Add custom tags to a specific chatlog.": "Füge benutzerdefinierte Tags zu einem bestimmten Chatlog hinzu.",
"Remove specific tags from a chatlog.": "Entferne bestimmte Tags aus einem Chatlog.",
"Chatbot Id": "Chatbot-Id",
"Question": "Frage",
"Chatlog Id": "Chatlog Id",
"Custom context": "Eigener Kontext",
"Context URL": "Kontext-URL",
"URLs": "URLs",
"Session cookie": "Sitzungs-Cookie",
"Tags": "Tags",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "Die ID deines Chatbots (kann in der URL gefunden werden, wenn du deinen Bot siehst: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "Die Frage, die du deinem Chatbot stellen möchtest",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "Die ID deiner Chat-Sitzung (finden Sie im Abschnitt Chatlog Details, als \"ID\" bezeichnet)",
"Additional custom context about the chat session (e.g., user information)": "Zusätzlicher benutzerdefinierter Kontext über die Chat-Sitzung (z. B. Benutzerinformation)",
"URL of the page the user is on to provide additional context": "URL der Seite, auf der der Benutzer ist, um einen zusätzlichen Kontext anzugeben",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "Liste der URLs der Webseite, die zur Wissensdatenbank deines Chatbots hinzugefügt werden sollen (z.B. \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Sitzungs-Cookie für das Crawlen von Seiten hinter dem Login",
"List of URLs to add to your chatbot": "Liste der URLs die Ihrem Chatbot hinzugefügt werden sollen",
"List of tags to remove": "Liste der zu entfernenden Tags",
"New User Message": "Neue Benutzernachricht",
"Triggers when a new message is sent by a user in a specific chatlog.": "Wird ausgelöst, wenn eine neue Nachricht von einem Benutzer in einem bestimmten Chatlog gesendet wird.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat es una plataforma chatbot sin código que te permite desplegar chatbots alimentados por AIs para sitios web rápidamente.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ",
"Ask Question": "Hacer pregunta",
"Add Page": "Añadir página",
"Add Tag": "Añadir etiqueta",
"Remove Tag": "Eliminar etiqueta",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Envía una pregunta a un bot de Wonderchat; devuelve la respuesta del bot.",
"Add new pages to your chatbots knowledge base.": "Añade nuevas páginas a la base de conocimiento de tu chatbot.",
"Add custom tags to a specific chatlog.": "Añadir etiquetas personalizadas a un chatlog específico.",
"Remove specific tags from a chatlog.": "Elimina etiquetas específicas de un chatlog.",
"Chatbot Id": "Id del Chatbot",
"Question": "Pregunta",
"Chatlog Id": "Chatlog Id",
"Custom context": "Contexto personalizado",
"Context URL": "URL del contexto",
"URLs": "URLs",
"Session cookie": "Cookie de sesión",
"Tags": "Etiquetas",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "El ID de tu chatbot (se puede encontrar en la URL al ver tu bot: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "La pregunta que deseas hacer a tu chatbot",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "El ID de tu sesión de chat (se puede encontrar en la sección Detalles de Chatlog, etiquetados como \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Contexto personalizado adicional sobre la sesión de chat (por ejemplo, información del usuario)",
"URL of the page the user is on to provide additional context": "URL de la página en la que el usuario está para proporcionar contexto adicional",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "Lista de URLs de páginas web para añadir a la base de conocimiento de tu chatbot (por ejemplo, \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Cookie de sesión para rasgar sitios detrás del inicio de sesión",
"List of URLs to add to your chatbot": "Lista de URLs a añadir a tu chatbot",
"List of tags to remove": "Lista de etiquetas a eliminar",
"New User Message": "Nuevo mensaje de usuario",
"Triggers when a new message is sent by a user in a specific chatlog.": "Dispara cuando un nuevo mensaje es enviado por un usuario en un chatlog específico.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat est une plate-forme de chatbot sans code qui vous permet de déployer rapidement des chatbots optimisés par les IA.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ",
"Ask Question": "Poser une question",
"Add Page": "Ajouter une page",
"Add Tag": "Ajouter une étiquette",
"Remove Tag": "Supprimer le tag",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Envoie une question à un robot Wonderchat ; retourne la réponse du bot.",
"Add new pages to your chatbots knowledge base.": "Ajoutez de nouvelles pages à la base de connaissances de votre chatbot.",
"Add custom tags to a specific chatlog.": "Ajouter des tags personnalisés à un journal de chat spécifique.",
"Remove specific tags from a chatlog.": "Retirer des tags spécifiques d'un journal de chat.",
"Chatbot Id": "Id Chatbot",
"Question": "Question",
"Chatlog Id": "Chatlog Id",
"Custom context": "Contexte personnalisé",
"Context URL": "URL du contexte",
"URLs": "URLs",
"Session cookie": "Cookie de session",
"Tags": "Tags",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "L'ID de votre chatbot (peut être trouvé dans l'URL lors de la visualisation de votre bot: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "La question que vous souhaitez poser à votre chatbot",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "L'ID de votre session de chat (peut être trouvé dans la section Détails du Chatlog , étiquetée comme \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Contexte personnalisé supplémentaire à propos de la session de chat (par exemple, les informations de l'utilisateur)",
"URL of the page the user is on to provide additional context": "URL de la page sur laquelle l'utilisateur est connecté pour fournir un contexte supplémentaire",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "Liste des URL de la page Web à ajouter à la base de connaissances de votre chatbot (par exemple, \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Cookie de session pour les sites d'exploration derrière la connexion",
"List of URLs to add to your chatbot": "Liste des URL à ajouter à votre chatbot",
"List of tags to remove": "Liste des tags à supprimer",
"New User Message": "Nouveau message utilisateur",
"Triggers when a new message is sent by a user in a specific chatlog.": "Déclenche lorsqu'un nouveau message est envoyé par un utilisateur dans un journal de discussion spécifique.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchatはコード不要のチャットボットプラットフォームで、AIを搭載したチャットボットを迅速にウェブサイトに展開できます。",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ",
"Ask Question": "質問する",
"Add Page": "ページを追加",
"Add Tag": "タグを追加",
"Remove Tag": "タグを削除",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Wonderchat ボットに質問を送信します。ボットの答えを返します。",
"Add new pages to your chatbots knowledge base.": "チャットボットのナレッジベースに新しいページを追加します。",
"Add custom tags to a specific chatlog.": "特定のチャットログにカスタムタグを追加します。",
"Remove specific tags from a chatlog.": "チャットログから特定のタグを削除します",
"Chatbot Id": "チャットボットID",
"Question": "質問",
"Chatlog Id": "Chatlog Id",
"Custom context": "カスタム コンテキスト",
"Context URL": "コンテキスト URL",
"URLs": "URL",
"Session cookie": "セッションクッキー",
"Tags": "タグ",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "チャットボットのID/bot/YOUR_BOT_IDを表示するときはURLに記載されています",
"The question you wish to ask your chatbot": "チャットボットに質問する",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "チャット セッションの ID (「チャットログの詳細」セクションに「ID」と表示されています)",
"Additional custom context about the chat session (e.g., user information)": "チャットセッションに関する追加のカスタムコンテキスト (ユーザー情報など)",
"URL of the page the user is on to provide additional context": "ユーザーが追加のコンテキストを提供するために使用しているページの URL",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "チャットボットのナレッジベースに追加するウェブページURLのリスト (例: \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "ログインの背後にあるサイトをクロールするセッションクッキー",
"List of URLs to add to your chatbot": "チャットボットに追加するURLのリスト",
"List of tags to remove": "削除するタグのリスト",
"New User Message": "新しいユーザーメッセージ",
"Triggers when a new message is sent by a user in a specific chatlog.": "特定のチャットログ内のユーザーが新しいメッセージを送信したときにトリガーします。",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat is een niet-code chatbot platform waarmee je snel chatbots met AI-aangedreven chatbots naar websites kunt deployen.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in op je Wonderchat-account.\n 2. Klik op je **Profielkaart**.\n 2. Ga naar je **Gebruikersinstellingen**.\n 3. Klik op het tabblad **API keys**.\n 3. Als je al een sleutel hebt, kopieer deze als je er geen maakt.\n ",
"Ask Question": "Vraag stellen",
"Add Page": "Pagina toevoegen",
"Add Tag": "Label toevoegen",
"Remove Tag": "Tag verwijderen",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Stuurt een vraag naar een Wonderchat bot; retourneert het antwoord van de bot.",
"Add new pages to your chatbots knowledge base.": "Voeg nieuwe pagina's toe aan de kennisbasis van je chatbots.",
"Add custom tags to a specific chatlog.": "Voeg aangepaste tags toe aan een specifieke chatlog.",
"Remove specific tags from a chatlog.": "Verwijder specifieke tags uit een chatlog.",
"Chatbot Id": "Chatbot ID",
"Question": "Vraag",
"Chatlog Id": "Chatlog Id",
"Custom context": "Aangepaste context",
"Context URL": "Context URL",
"URLs": "URL's",
"Session cookie": "Sessie cookie",
"Tags": "Labels",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "De ID van je chatbot (kan gevonden worden in de URL wanneer je je bot bekijkt: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "De vraag die je wilt stellen",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "Het ID van uw chatsessie (kan worden gevonden in het gedeelte Chatlog Details gelabeld als \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Extra aangepaste context over de chatsessie (bijv. gebruikersinformatie)",
"URL of the page the user is on to provide additional context": "URL van de pagina waar de gebruiker een extra context aan geeft",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "Lijst van webpagina-URL's om toe te voegen aan de kennisbank van je chatbot (bijv. \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Sessie cookie voor crawling sites achter inloggen",
"List of URLs to add to your chatbot": "Lijst met URL's om toe te voegen aan je chatbot",
"List of tags to remove": "Lijst van tags te verwijderen",
"New User Message": "Nieuw gebruikersbericht",
"Triggers when a new message is sent by a user in a specific chatlog.": "Triggert wanneer een nieuw bericht wordt verzonden door een gebruiker in een specifieke chatlog.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat é uma plataforma no ChatBot sem código que permite que você implante chatbots baseados em IA para sites rapidamente.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Entre na sua conta Wonderchat.\n 2. Clique no seu **Perfil de perfil**.\n 2. Vá para suas **Configurações do Usuário**.\n 3. Clique na aba **Chaves de API**.\n 3. Se você já tem uma chave, copie-a, se não gerá-la.\n ",
"Ask Question": "Fazer Pergunta",
"Add Page": "Adicionar página",
"Add Tag": "Adicionar Tag",
"Remove Tag": "Remover Marca",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Envia uma pergunta a um bot Wonderchat; retorna a resposta do bot.",
"Add new pages to your chatbots knowledge base.": "Adicione novas páginas à base de conhecimento do seu ChatBot.",
"Add custom tags to a specific chatlog.": "Adicionar tags personalizadas a um log de bate-papo específico.",
"Remove specific tags from a chatlog.": "Remover tags específicas de um log de bate-papo.",
"Chatbot Id": "ID do Chatbot",
"Question": "Questão",
"Chatlog Id": "Chatlog Id",
"Custom context": "Contexto personalizado",
"Context URL": "URL do contexto",
"URLs": "Links",
"Session cookie": "Cookie da sessão",
"Tags": "Etiquetas",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "O ID do seu ChatBot (pode ser encontrado na URL ao visualizar o seu bot: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "A pergunta que você deseja fazer ao seu ChatBot",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "A ID da sua sessão de bate-papo (pode ser encontrada na seção Detalhes do Chatlog, rotulada como \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Contexto personalizado adicional sobre a sessão de bate-papo (por exemplo, informações do usuário)",
"URL of the page the user is on to provide additional context": "URL da página que o usuário está para fornecer contexto adicional",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "Lista de URLs de páginas da Web para adicionar à base de conhecimento do seu ChatBot (ex: \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Cookie da sessão para crawling sites atrás do login",
"List of URLs to add to your chatbot": "Lista de URLs para adicionar ao seu ChatBot",
"List of tags to remove": "Lista de etiquetas para remover",
"New User Message": "Nova mensagem de usuário",
"Triggers when a new message is sent by a user in a specific chatlog.": "Aciona quando uma nova mensagem é enviada por um usuário em um chat específico.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ",
"Ask Question": "Ask Question",
"Add Page": "Add Page",
"Add Tag": "Add Tag",
"Remove Tag": "Remove Tag",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Sends a question to a Wonderchat bot; returns the bots answer.",
"Add new pages to your chatbots knowledge base.": "Add new pages to your chatbots knowledge base.",
"Add custom tags to a specific chatlog.": "Add custom tags to a specific chatlog.",
"Remove specific tags from a chatlog.": "Remove specific tags from a chatlog.",
"Chatbot Id": "Chatbot Id",
"Question": "Question",
"Chatlog Id": "Chatlog Id",
"Custom context": "Custom context",
"Context URL": "Context URL",
"URLs": "URLs",
"Session cookie": "Session cookie",
"Tags": "Tags",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "The question you wish to ask your chatbot",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Additional custom context about the chat session (e.g., user information)",
"URL of the page the user is on to provide additional context": "URL of the page the user is on to provide additional context",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Session cookie for crawling sites behind login",
"List of URLs to add to your chatbot": "List of URLs to add to your chatbot",
"List of tags to remove": "List of tags to remove",
"New User Message": "New User Message",
"Triggers when a new message is sent by a user in a specific chatlog.": "Triggers when a new message is sent by a user in a specific chatlog.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,32 @@
{
"Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.": "Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.",
"\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ": "\n 1. Log in to your Wonderchat account.\n 2. Click on your **Profile card**.\n 2. Go to your **User settings**.\n 3. Click on the the **API keys** tab.\n 3. If you already have a key, copy it, if not generate one.\n ",
"Ask Question": "Ask Question",
"Add Page": "Add Page",
"Add Tag": "Add Tag",
"Remove Tag": "Remove Tag",
"Sends a question to a Wonderchat bot; returns the bots answer.": "Sends a question to a Wonderchat bot; returns the bots answer.",
"Add new pages to your chatbots knowledge base.": "Add new pages to your chatbots knowledge base.",
"Add custom tags to a specific chatlog.": "Add custom tags to a specific chatlog.",
"Remove specific tags from a chatlog.": "Remove specific tags from a chatlog.",
"Chatbot Id": "Chatbot Id",
"Question": "Question",
"Chatlog Id": "Chatlog Id",
"Custom context": "Custom context",
"Context URL": "Context URL",
"URLs": "URLs",
"Session cookie": "Session cookie",
"Tags": "标签",
"The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)": "The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)",
"The question you wish to ask your chatbot": "The question you wish to ask your chatbot",
"The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")": "The ID of your chat session (can be found under Chatlog Details section, labeled as \"ID\")",
"Additional custom context about the chat session (e.g., user information)": "Additional custom context about the chat session (e.g., user information)",
"URL of the page the user is on to provide additional context": "URL of the page the user is on to provide additional context",
"List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")": "List of webpage URLs to add to your chatbot's knowledge base (e.g., \"https://wonderchat.io\")",
"Session cookie for crawling sites behind login": "Session cookie for crawling sites behind login",
"List of URLs to add to your chatbot": "List of URLs to add to your chatbot",
"List of tags to remove": "List of tags to remove",
"New User Message": "New User Message",
"Triggers when a new message is sent by a user in a specific chatlog.": "Triggers when a new message is sent by a user in a specific chatlog.",
"Chatlog ID": "Chatlog ID"
}

View File

@@ -0,0 +1,34 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { askQuestion } from './lib/actions/ask-question';
import { addPage } from './lib/actions/add-page';
import { addTag } from './lib/actions/add-tag';
import { removeTag } from './lib/actions/remove-tag';
import { newUserMessage } from './lib/triggers/new-user-message';
export const wonderchatAuth = PieceAuth.SecretText({
displayName: 'API Key',
description: `
1. Log in to your Wonderchat account.
2. Click on your **Profile card**.
2. Go to your **User settings**.
3. Click on the the **API keys** tab.
3. If you already have a key, copy it, if not generate one.
`,
required: true,
});
export const wonderchat = createPiece({
displayName: 'Wonderchat',
description:
'Wonderchat is a no-code chatbot platform that lets you deploy AI-powered chatbots for websites quickly.',
auth: wonderchatAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/wonderchat.png',
categories: [
PieceCategory.ARTIFICIAL_INTELLIGENCE,
],
authors: ['devroy10', 'sanket-a11y'],
actions: [askQuestion, addPage, addTag, removeTag],
triggers: [newUserMessage],
});

View File

@@ -0,0 +1,49 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { wonderchatAuth } from '../..';
export const addPage = createAction({
name: 'addPage',
displayName: 'Add Page',
description: 'Add new pages to your chatbots knowledge base.',
auth: wonderchatAuth,
props: {
chatbotId: Property.ShortText({
displayName: 'Chatbot Id',
description: 'The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)',
required: true,
}),
urls: Property.Array({
displayName: 'URLs',
description: 'List of webpage URLs to add to your chatbot\'s knowledge base (e.g., "https://wonderchat.io")',
required: false,
}),
sessionCookie: Property.LongText({
displayName: 'Session cookie',
description: 'Session cookie for crawling sites behind login',
required: false,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth.secret_text;
const { chatbotId, urls, sessionCookie } = propsValue;
const requestbody: any = {
apiKey,
chatbotId,
};
if (sessionCookie) {
requestbody.sessionCookie = sessionCookie;
}
if (urls) {
requestbody.urls = urls;
}
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://app.wonderchat.io/api/v1/add-pages',
headers: { 'Content-Type': 'application/json'},
body: requestbody,
});
return response.body;
},
});

View File

@@ -0,0 +1,40 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { wonderchatAuth } from '../..';
export const addTag = createAction({
name: 'addTag',
displayName: 'Add Tag',
description: 'Add custom tags to a specific chatlog.',
auth: wonderchatAuth,
props: {
chatlogId: Property.ShortText({
displayName: 'Chatlog Id',
description:
'The ID of your chat session (can be found under Chatlog Details section, labeled as "ID")',
required: true,
}),
tags: Property.Array({
displayName: 'Tags',
description: 'List of URLs to add to your chatbot',
required: true,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth.secret_text;
const { chatlogId, tags } = propsValue;
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://app.wonderchat.io/api/v1/add-tags-to-chatlog',
headers: { 'Content-Type': 'application/json' },
body: {
apiKey,
chatlogId,
tags,
},
});
return response.body;
},
});

View File

@@ -0,0 +1,65 @@
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { createAction, Property } from '@activepieces/pieces-framework';
import { wonderchatAuth } from '../..';
export const askQuestion = createAction({
name: 'askQuestion',
displayName: 'Ask Question',
description:
'Sends a question to a Wonderchat bot; returns the bots answer.',
auth: wonderchatAuth,
props: {
chatbotId: Property.ShortText({
displayName: 'Chatbot Id',
description: 'The ID of your chatbot (can be found in the URL when viewing your bot: /bot/YOUR_BOT_ID)',
required: true,
}),
question: Property.LongText({
displayName: 'Question',
description: 'The question you wish to ask your chatbot',
required: true,
}),
chatlogId: Property.ShortText({
displayName: 'Chatlog Id',
description:
'The ID of your chat session (can be found under Chatlog Details section, labeled as "ID")',
required: false,
}),
context: Property.LongText({
displayName: 'Custom context',
description: 'Additional custom context about the chat session (e.g., user information)',
required: false,
}),
contextUrl: Property.LongText({
displayName: 'Context URL',
description: 'URL of the page the user is on to provide additional context',
required: false,
}),
},
async run({propsValue}) {
const { chatbotId, question, chatlogId, context, contextUrl } = propsValue;
const requestbody: any = {
chatbotId,
question,
};
if (chatlogId) {
requestbody.chatlogId = chatlogId;
}
if (context) {
requestbody.context = context;
}
if (contextUrl) {
requestbody.contextUrl = contextUrl;
}
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://app.wonderchat.io/api/v1/chat',
headers: { 'Content-Type': 'application/json' },
body: requestbody,
});
return response.body;
},
});

View File

@@ -0,0 +1,40 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { wonderchatAuth } from '../..';
export const removeTag = createAction({
name: 'removeTag',
displayName: 'Remove Tag',
description: 'Remove specific tags from a chatlog.',
auth: wonderchatAuth,
props: {
chatlogId: Property.ShortText({
displayName: 'Chatlog Id',
description:
'The ID of your chat session (can be found under Chatlog Details section, labeled as "ID")',
required: true,
}),
tags: Property.Array({
displayName: 'Tags',
description: 'List of tags to remove',
required: true,
}),
},
async run({ auth, propsValue }) {
const apiKey = auth.secret_text;
const { chatlogId, tags } = propsValue;
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://app.wonderchat.io/api/v1/delete-tags-from-chatlog',
headers: { 'Content-Type': 'application/json' },
body: {
apiKey,
chatlogId,
tags,
},
});
return response.body;
},
});

View File

@@ -0,0 +1,91 @@
import {
PiecePropValueSchema,
createTrigger,
TriggerStrategy,
Property,
AppConnectionValueForAuthProperty
} from '@activepieces/pieces-framework';
import {
Polling,
pollingHelper,
DedupeStrategy,
httpClient,
HttpMethod
} from '@activepieces/pieces-common';
import { wonderchatAuth } from '../..';
interface Message {
content: string;
type: 'user' | 'bot';
createdAt: string;
}
const polling: Polling<
AppConnectionValueForAuthProperty<typeof wonderchatAuth>,
{ chatlogId: string }
> = {
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, propsValue, lastFetchEpochMS }) => {
const response = await httpClient.sendRequest<{ messages: Message[] }>({
method: HttpMethod.POST,
url: 'https://app.wonderchat.io/api/v1/messages',
headers: { 'Content-Type': 'application/json' },
body: {
apiKey: auth.secret_text,
chatlogId: propsValue.chatlogId
}
});
const messages = response.body.messages;
const newMessages = messages
.filter((message) => message.type === 'user')
.filter(
(message) => new Date(message.createdAt).getTime() > lastFetchEpochMS
);
return newMessages.map((message) => ({
epochMilliSeconds: new Date(message.createdAt).getTime(),
data: message
}));
}
};
export const newUserMessage = createTrigger({
auth: wonderchatAuth,
name: 'newUserMessage',
displayName: 'New User Message',
description:
'Triggers when a new message is sent by a user in a specific chatlog.',
props: {
chatlogId: Property.ShortText({
displayName: 'Chatlog ID',
description:
'The ID of your chat session (can be found under Chatlog Details section, labeled as "ID")',
required: true,
}),
},
sampleData: {
content: 'I would want to now more about the products pricing strategy',
type: 'user',
createdAt: '2023-12-01T06:35:15.456Z'
},
type: TriggerStrategy.POLLING,
async test(context) {
return await pollingHelper.poll(polling, context);
},
async onEnable(context) {
const { store, auth, propsValue } = context;
await pollingHelper.onEnable(polling, { store, auth, propsValue });
},
async onDisable(context) {
const { store, auth, propsValue } = context;
await pollingHelper.onEnable(polling, { store, auth, propsValue });
},
async run(context) {
return await pollingHelper.poll(polling, context);
}
});

View File

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

View File

@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"include": ["src/**/*.ts"]
}