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:
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Erstelle AI-basierte Präsentationen mit Presenton (https://presenton.ai). Unterstützt Templates, Themes, Bilder, synchrone und asynchrone Generation, Statusabfragen und Export in PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Präsentationen erzeugen (async)",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Erstellen Sie einen asynchronen Präsentationsauftrag bei Presenton und geben Sie die erstellte Aufgabe zurück.",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"Content": "Inhalt",
|
||||
"Instructions": "Anleitungen",
|
||||
"Tone": "Ton",
|
||||
"Verbosity": "Ausführlichkeit",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Markdown Betonung",
|
||||
"Enable web search": "Websuche aktivieren",
|
||||
"Image type": "Bildtyp",
|
||||
"Theme": "Thema",
|
||||
"Number of slides": "Anzahl der Folien",
|
||||
"Language": "Sprache",
|
||||
"Template": "Vorlage",
|
||||
"Include table of contents": "Inhaltsverzeichnis einbeziehen",
|
||||
"Include title slide": "Titelfolie einbeziehen",
|
||||
"Allow access to user's info": "Zugriff auf Benutzerinformationen erlauben",
|
||||
"Files": "Dateien",
|
||||
"Export as": "Exportieren als",
|
||||
"Trigger webhook": "Webhook auslösen",
|
||||
"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)",
|
||||
"The content for generating the presentation": "Der Inhalt für die Erstellung der Präsentation",
|
||||
"Instruction for generating the presentation (optional).": "Anleitung zur Erstellung der Präsentation (optional).",
|
||||
"Tone to use for the text": "Klang für den Text",
|
||||
"How verbose the text should be": "Wie detailliert der Text sein soll",
|
||||
"An array of markdown strings for each slide (optional).": "Ein Array mit Markdown Zeichenketten für jede Folie (optional).",
|
||||
"Whether to emphasize the markdown": "Ob das Markdown betont werden soll",
|
||||
"Whether to enable web search": "Ob Websuche aktiviert werden soll",
|
||||
"Type of image to generate": "Art des zu generierenden Bildes",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Thema für die Präsentation (z.B. kantengelb, hellrose)",
|
||||
"Number of slides to generate": "Anzahl der zu erstellenden Folien",
|
||||
"Language for the presentation": "Sprache für die Präsentation",
|
||||
"Template to use for the presentation": "Vorlage für die Präsentation",
|
||||
"Whether to include a table of contents": "Gibt an, ob ein Inhaltsverzeichnis enthalten soll",
|
||||
"Whether to include a title slide": "Gibt an, ob eine Titelfolie enthalten soll",
|
||||
"Whether to allow access to user's info": "Gibt an, ob der Zugriff auf Benutzerinformationen erlaubt ist",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array der Datei-Identifikatoren hochgeladen über Presenton-Dateien API (optional).",
|
||||
"Export format": "Exportformat",
|
||||
"Whether to trigger subscribed webhooks": "Gibt an, ob abonnierte Webhooks ausgelöst werden sollen",
|
||||
"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..",
|
||||
"Default": "Standard",
|
||||
"Casual": "Gelassene",
|
||||
"Professional": "Profi",
|
||||
"Funny": "Lustig",
|
||||
"Educational": "Erziehung",
|
||||
"Sales pitch": "Verkaufsstandort",
|
||||
"Concise": "Konkret",
|
||||
"Standard": "Standard",
|
||||
"Text-heavy": "Text-schwer",
|
||||
"Stock": "Bestand",
|
||||
"AI generated": "KI generiert",
|
||||
"General": "Allgemein",
|
||||
"Modern": "Modern",
|
||||
"Swift": "Swift",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD",
|
||||
"New Presentation": "Neue Präsentation",
|
||||
"Triggers when a new presentation is created in Presenton.": "Wird ausgelöst, wenn eine neue Präsentation in Presenton erstellt wird."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Generar presentaciones alimentadas por AIs usando Presenton (https://presenton.ai). Soporta plantillas, temas, imágenes, generación sincrónica y asincrónica, encuestas de estado y exporta a PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Generar presentaciones (asíncronas)",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Crear una tarea asíncrona de generación de presentaciones en Presenton y devolver la tarea creada.",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"Content": "Contenido",
|
||||
"Instructions": "Instrucciones",
|
||||
"Tone": "Tono",
|
||||
"Verbosity": "Verbosidad",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Enfoque Markdown",
|
||||
"Enable web search": "Activar búsqueda web",
|
||||
"Image type": "Tipo de imagen",
|
||||
"Theme": "Tema",
|
||||
"Number of slides": "Número de diapositivas",
|
||||
"Language": "Idioma",
|
||||
"Template": "Plantilla",
|
||||
"Include table of contents": "Incluye la tabla de contenidos",
|
||||
"Include title slide": "Incluye diapositiva de título",
|
||||
"Allow access to user's info": "Permitir el acceso a la información del usuario",
|
||||
"Files": "Archivos",
|
||||
"Export as": "Exportar como",
|
||||
"Trigger webhook": "Desencender webhook",
|
||||
"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)",
|
||||
"The content for generating the presentation": "El contenido para generar la presentación",
|
||||
"Instruction for generating the presentation (optional).": "Instrucción para generar la presentación (opcional).",
|
||||
"Tone to use for the text": "Tono a usar para el texto",
|
||||
"How verbose the text should be": "Qué tan detallado debe ser el texto",
|
||||
"An array of markdown strings for each slide (optional).": "Arreglo de cadenas de markdown para cada diapositiva (opcional).",
|
||||
"Whether to emphasize the markdown": "Si enfatizar el markdown",
|
||||
"Whether to enable web search": "Activar la búsqueda web",
|
||||
"Type of image to generate": "Tipo de imagen a generar",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Tema a usar para la presentación (ej: arista-amarillo, rosa-clara)",
|
||||
"Number of slides to generate": "Número de diapositivas a generar",
|
||||
"Language for the presentation": "Idioma de la presentación",
|
||||
"Template to use for the presentation": "Plantilla a utilizar para la presentación",
|
||||
"Whether to include a table of contents": "Si incluir o no una tabla de contenidos",
|
||||
"Whether to include a title slide": "Si incluir o no una diapositiva de título",
|
||||
"Whether to allow access to user's info": "Permitir el acceso a la información del usuario",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array de identificadores de archivo subidos a través de la API de archivos Presenton (opcional).",
|
||||
"Export format": "Formato de exportación",
|
||||
"Whether to trigger subscribed webhooks": "Si desencadenar webhooks suscritos",
|
||||
"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 PDF, imágenes, etc.",
|
||||
"Default": "Por defecto",
|
||||
"Casual": "Casual",
|
||||
"Professional": "Profesional",
|
||||
"Funny": "Divertido",
|
||||
"Educational": "Educativo",
|
||||
"Sales pitch": "Pitch de ventas",
|
||||
"Concise": "Conciso",
|
||||
"Standard": "Estándar",
|
||||
"Text-heavy": "Texto-pesado",
|
||||
"Stock": "Stock",
|
||||
"AI generated": "IA generada",
|
||||
"General": "General",
|
||||
"Modern": "Moderna",
|
||||
"Swift": "Rápido",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "DF",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO",
|
||||
"New Presentation": "Nueva presentación",
|
||||
"Triggers when a new presentation is created in Presenton.": "Se activa cuando se crea una nueva presentación en Presenton."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Générer des présentations basées sur les AI à l'aide de Presenton (https://presenton.ai). Supporte des modèles, des thèmes, des images, des générations synchrones et asynchrones, des sondages de statut et des exportations vers PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Générer des présentations (async)",
|
||||
"Custom API Call": "Appel d'API personnalisé",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Créez une tâche de génération de présentation asynchrone sur Presenton et renvoyez la tâche créée.",
|
||||
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
|
||||
"Content": "Contenus",
|
||||
"Instructions": "Instructions",
|
||||
"Tone": "Tonalité",
|
||||
"Verbosity": "Verbosité",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Mise en valeur de Markdown",
|
||||
"Enable web search": "Activer la recherche web",
|
||||
"Image type": "Type d'image",
|
||||
"Theme": "Thème",
|
||||
"Number of slides": "Nombre de diapositives",
|
||||
"Language": "Langue",
|
||||
"Template": "Gabarit",
|
||||
"Include table of contents": "Inclure la table des matières",
|
||||
"Include title slide": "Inclure la diapositive titre",
|
||||
"Allow access to user's info": "Autoriser l'accès aux informations de l'utilisateur",
|
||||
"Files": "Fichiers",
|
||||
"Export as": "Exporter en tant que",
|
||||
"Trigger webhook": "Déclenchement du webhook",
|
||||
"Method": "Méthode",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
|
||||
"The content for generating the presentation": "Le contenu pour générer la présentation",
|
||||
"Instruction for generating the presentation (optional).": "Instruction pour générer la présentation (facultatif).",
|
||||
"Tone to use for the text": "Tonalité à utiliser pour le texte",
|
||||
"How verbose the text should be": "À quel point le texte doit être détaillé",
|
||||
"An array of markdown strings for each slide (optional).": "Un tableau de chaînes de caractères markdown pour chaque diapositive (optionnel).",
|
||||
"Whether to emphasize the markdown": "S'il faut mettre l'accent sur le markdown",
|
||||
"Whether to enable web search": "Activer ou non la recherche web",
|
||||
"Type of image to generate": "Type d'image à générer",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Thème à utiliser pour la présentation (ex: jaune-bord, rose clair)",
|
||||
"Number of slides to generate": "Nombre de diapositives à générer",
|
||||
"Language for the presentation": "Langue de la présentation",
|
||||
"Template to use for the presentation": "Modèle à utiliser pour la présentation",
|
||||
"Whether to include a table of contents": "Inclure ou non une table des matières",
|
||||
"Whether to include a title slide": "Inclure ou non une diapositive titre",
|
||||
"Whether to allow access to user's info": "Autoriser ou non l'accès aux informations de l'utilisateur",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Tableau des identifiants de fichiers téléchargés via l'API des fichiers Presenton (optionnel).",
|
||||
"Export format": "Format d'exportation",
|
||||
"Whether to trigger subscribed webhooks": "Activer ou non les webhooks abonnés",
|
||||
"Authorization headers are injected automatically from your connection.": "Les Headers 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.",
|
||||
"Default": "Par défaut",
|
||||
"Casual": "Décontracté",
|
||||
"Professional": "Professionnel",
|
||||
"Funny": "drôle",
|
||||
"Educational": "Éducatif",
|
||||
"Sales pitch": "Pas de vente",
|
||||
"Concise": "Concise",
|
||||
"Standard": "Standard",
|
||||
"Text-heavy": "Texte lourd",
|
||||
"Stock": "Stock",
|
||||
"AI generated": "IA générée",
|
||||
"General": "Général",
|
||||
"Modern": "Moderne",
|
||||
"Swift": "Rapide",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Presentation": "Nouvelle présentation",
|
||||
"Triggers when a new presentation is created in Presenton.": "Déclenche quand une nouvelle présentation est créée dans Presenton."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Presenton (https://presenton.ai)を使用してAIで動作するプレゼンテーションを生成します。テンプレート、テーマ、画像、同期および非同期生成、ステータスポーリング、PPTX/PDFへのエクスポートに対応しています。",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "プレゼンテーションの生成 (非同期)",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Presentonで非同期プレゼンテーション生成タスクを作成し、作成したタスクを返します。",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"Content": "コンテンツ",
|
||||
"Instructions": "説明",
|
||||
"Tone": "Tone",
|
||||
"Verbosity": "詳細度",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "マークダウンの強調表示",
|
||||
"Enable web search": "Web 検索を有効にする",
|
||||
"Image type": "画像の種類",
|
||||
"Theme": "テーマ",
|
||||
"Number of slides": "スライドの数",
|
||||
"Language": "言語",
|
||||
"Template": "テンプレート",
|
||||
"Include table of contents": "目次を含める",
|
||||
"Include title slide": "タイトルスライドを含める",
|
||||
"Allow access to user's info": "ユーザー情報へのアクセスを許可する",
|
||||
"Files": "ファイル",
|
||||
"Export as": "としてエクスポート",
|
||||
"Trigger webhook": "Webhookのトリガー",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"The content for generating the presentation": "プレゼンテーションを生成するためのコンテンツ",
|
||||
"Instruction for generating the presentation (optional).": "プレゼンテーションを生成するための手順(任意)。",
|
||||
"Tone to use for the text": "テキストに使用する音",
|
||||
"How verbose the text should be": "テキストの詳細表示方法",
|
||||
"An array of markdown strings for each slide (optional).": "各スライドのマークダウン文字列の配列 (オプション)",
|
||||
"Whether to emphasize the markdown": "マークダウンを強調するかどうか",
|
||||
"Whether to enable web search": "ウェブ検索を有効にする",
|
||||
"Type of image to generate": "生成する画像の種類",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "プレゼンテーションに使用するテーマ(例:エッジ黄色、ライトローズ)",
|
||||
"Number of slides to generate": "生成するスライドの数",
|
||||
"Language for the presentation": "プレゼンテーションの言語",
|
||||
"Template to use for the presentation": "プレゼンテーションに使用するテンプレート",
|
||||
"Whether to include a table of contents": "目次を含めるかどうか",
|
||||
"Whether to include a title slide": "タイトルスライドを含めるかどうか",
|
||||
"Whether to allow access to user's info": "ユーザー情報へのアクセスを許可する",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "PresentonファイルAPI(オプション)を介してアップロードされたファイル識別子の配列。",
|
||||
"Export format": "エクスポートフォーマット",
|
||||
"Whether to trigger subscribed webhooks": "購読しているWebhookをトリガーするかどうか",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"Default": "デフォルト",
|
||||
"Casual": "カジュアルな",
|
||||
"Professional": "プロフェッショナル",
|
||||
"Funny": "面白いです",
|
||||
"Educational": "教育",
|
||||
"Sales pitch": "売り上げのピッチ数",
|
||||
"Concise": "Concise",
|
||||
"Standard": "標準",
|
||||
"Text-heavy": "Text-heavy",
|
||||
"Stock": "在庫数",
|
||||
"AI generated": "AIが生成されました",
|
||||
"General": "全般",
|
||||
"Modern": "モダンな",
|
||||
"Swift": "Swift",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭",
|
||||
"New Presentation": "新しいプレゼンテーション",
|
||||
"Triggers when a new presentation is created in Presenton.": "Presenton で新しいプレゼンテーションを作成したときにトリガーします。"
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Genereer AI-aangedreven presentaties met behulp van Presenton (https://presenton.ai). Ondersteunt templates, thema's, afbeeldingen, synchrone en asynchrone generatie, status polling, en exporteer naar PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Presentaties genereren (async)",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Maak een asynchrone presentatietaak aan bij Presenton en retourneer de gemaakte taak.",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"Content": "Inhoud",
|
||||
"Instructions": "Instructies",
|
||||
"Tone": "Toon",
|
||||
"Verbosity": "Verbossing",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Markdown nadruk",
|
||||
"Enable web search": "Web zoeken inschakelen",
|
||||
"Image type": "Afbeelding type",
|
||||
"Theme": "Thema",
|
||||
"Number of slides": "Aantal dia's",
|
||||
"Language": "Taal",
|
||||
"Template": "Sjabloon",
|
||||
"Include table of contents": "Inclusief inhoudsopgave",
|
||||
"Include title slide": "Titel slide opnemen",
|
||||
"Allow access to user's info": "Toegang tot informatie van gebruiker toestaan",
|
||||
"Files": "Bestanden",
|
||||
"Export as": "Exporteren als",
|
||||
"Trigger webhook": "Trigger webhook",
|
||||
"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)",
|
||||
"The content for generating the presentation": "De inhoud voor het genereren van de presentatie",
|
||||
"Instruction for generating the presentation (optional).": "Instructie voor het genereren van de presentatie (optioneel).",
|
||||
"Tone to use for the text": "Toon om te gebruiken voor de tekst",
|
||||
"How verbose the text should be": "Hoe uitgebreid de tekst moet zijn",
|
||||
"An array of markdown strings for each slide (optional).": "Een reeks markdown tekenreeksen voor elke slide (optioneel).",
|
||||
"Whether to emphasize the markdown": "Of de markdown moet worden benadrukt",
|
||||
"Whether to enable web search": "Zoeken via web inschakelen",
|
||||
"Type of image to generate": "Type afbeelding om te genereren",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Te gebruiken thema voor de presentatie (bijv. rand-geel, licht-roos)",
|
||||
"Number of slides to generate": "Aantal slides om te genereren",
|
||||
"Language for the presentation": "Taal voor de presentatie",
|
||||
"Template to use for the presentation": "Te gebruiken template voor de presentatie",
|
||||
"Whether to include a table of contents": "Of een inhoudsopgave moet worden toegevoegd",
|
||||
"Whether to include a title slide": "Of een titeldia moet worden toegevoegd",
|
||||
"Whether to allow access to user's info": "Geeft toegang tot de informatie van de gebruiker",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array van bestand-id's geüpload via Presenton-bestanden API (optioneel).",
|
||||
"Export format": "Export formaat",
|
||||
"Whether to trigger subscribed webhooks": "Of geabonneerde webhooks moeten worden geactiveerd",
|
||||
"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..",
|
||||
"Default": "Standaard",
|
||||
"Casual": "Vrijblijvend",
|
||||
"Professional": "Professioneel",
|
||||
"Funny": "Grappig",
|
||||
"Educational": "Educatief",
|
||||
"Sales pitch": "Teller verkoop",
|
||||
"Concise": "Concise",
|
||||
"Standard": "Standaard",
|
||||
"Text-heavy": "Tekstzwaar",
|
||||
"Stock": "Standaard",
|
||||
"AI generated": "AI gegenereerd",
|
||||
"General": "Algemeen",
|
||||
"Modern": "Vernieuwend",
|
||||
"Swift": "Snel",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF-bestand",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD",
|
||||
"New Presentation": "Nieuwe presentatie",
|
||||
"Triggers when a new presentation is created in Presenton.": "Triggert wanneer een nieuwe presentatie wordt gemaakt in Presenton."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Gerar apresentações com energia de AR usando o Presenton (https://presenton.ai). Suporta modelos, temas, imagens, geração síncrona e assíncrona, votação de status e exportação para PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Gerar Apresentações (async)",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Crie uma tarefa assíncrona de geração de apresentação em Apresententon e retorne a tarefa criada.",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"Content": "Conteúdo",
|
||||
"Instructions": "Instruções",
|
||||
"Tone": "Tom",
|
||||
"Verbosity": "Verbossidade",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Colocação de Markdown",
|
||||
"Enable web search": "Ativar pesquisa na web",
|
||||
"Image type": "Tipo de imagem",
|
||||
"Theme": "Tema",
|
||||
"Number of slides": "Número de slides",
|
||||
"Language": "IDIOMA",
|
||||
"Template": "Modelo",
|
||||
"Include table of contents": "Incluir tabela de conteúdos",
|
||||
"Include title slide": "Incluir slide de título",
|
||||
"Allow access to user's info": "Permitir acesso às informações do usuário",
|
||||
"Files": "arquivos",
|
||||
"Export as": "Exportar como",
|
||||
"Trigger webhook": "Ativar webhook",
|
||||
"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)",
|
||||
"The content for generating the presentation": "O conteúdo para gerar a apresentação",
|
||||
"Instruction for generating the presentation (optional).": "Instrução para gerar a apresentação (opcional).",
|
||||
"Tone to use for the text": "Tom a ser usado no texto",
|
||||
"How verbose the text should be": "Quão detalhado o texto deve ser",
|
||||
"An array of markdown strings for each slide (optional).": "Uma matriz de strings markdown para cada slide (opcional).",
|
||||
"Whether to emphasize the markdown": "Sublinhar o markdown",
|
||||
"Whether to enable web search": "Se deseja habilitar a pesquisa na web",
|
||||
"Type of image to generate": "Tipo de imagem a gerar",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Tema a ser usado para a apresentação (por exemplo, areia amarela e luminosa)",
|
||||
"Number of slides to generate": "Número de slides para gerar",
|
||||
"Language for the presentation": "Idioma para a apresentação",
|
||||
"Template to use for the presentation": "Modelo a ser usado para a apresentação",
|
||||
"Whether to include a table of contents": "Se deve incluir uma tabela de conteúdos",
|
||||
"Whether to include a title slide": "Se deve incluir um slide de título",
|
||||
"Whether to allow access to user's info": "Permitir acesso às informações do usuário",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array de identificadores de arquivos enviados via API de arquivos do Presenton (opcional).",
|
||||
"Export format": "Formato de exportação",
|
||||
"Whether to trigger subscribed webhooks": "Se acionar webhooks subscritos",
|
||||
"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..",
|
||||
"Default": "Padrão",
|
||||
"Casual": "Casual",
|
||||
"Professional": "Profissional",
|
||||
"Funny": "Engraçado",
|
||||
"Educational": "Educacional",
|
||||
"Sales pitch": "Tom de vendas",
|
||||
"Concise": "Conciso",
|
||||
"Standard": "Padrão",
|
||||
"Text-heavy": "Texto-pesado",
|
||||
"Stock": "Inventário",
|
||||
"AI generated": "Gerado pela IA",
|
||||
"General": "Geral",
|
||||
"Modern": "Moderno",
|
||||
"Swift": "Rapidez",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "Pdf",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA",
|
||||
"New Presentation": "Nova apresentação",
|
||||
"Triggers when a new presentation is created in Presenton.": "Aciona quando uma nova apresentação é criada no Apresentador."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Generate Presentations (async)",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Create an asynchronous presentation generation task at Presenton and return the created task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Content": "Content",
|
||||
"Instructions": "Instructions",
|
||||
"Tone": "Tone",
|
||||
"Verbosity": "Verbosity",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Markdown emphasis",
|
||||
"Enable web search": "Enable web search",
|
||||
"Image type": "Image type",
|
||||
"Theme": "Theme",
|
||||
"Number of slides": "Number of slides",
|
||||
"Language": "Language",
|
||||
"Template": "Template",
|
||||
"Include table of contents": "Include table of contents",
|
||||
"Include title slide": "Include title slide",
|
||||
"Allow access to user's info": "Allow access to user's info",
|
||||
"Files": "Files",
|
||||
"Export as": "Export as",
|
||||
"Trigger webhook": "Trigger webhook",
|
||||
"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)",
|
||||
"The content for generating the presentation": "The content for generating the presentation",
|
||||
"Instruction for generating the presentation (optional).": "Instruction for generating the presentation (optional).",
|
||||
"Tone to use for the text": "Tone to use for the text",
|
||||
"How verbose the text should be": "How verbose the text should be",
|
||||
"An array of markdown strings for each slide (optional).": "An array of markdown strings for each slide (optional).",
|
||||
"Whether to emphasize the markdown": "Whether to emphasize the markdown",
|
||||
"Whether to enable web search": "Whether to enable web search",
|
||||
"Type of image to generate": "Type of image to generate",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Theme to use for the presentation (e.g. edge-yellow, light-rose)",
|
||||
"Number of slides to generate": "Number of slides to generate",
|
||||
"Language for the presentation": "Language for the presentation",
|
||||
"Template to use for the presentation": "Template to use for the presentation",
|
||||
"Whether to include a table of contents": "Whether to include a table of contents",
|
||||
"Whether to include a title slide": "Whether to include a title slide",
|
||||
"Whether to allow access to user's info": "Whether to allow access to user's info",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array of file identifiers uploaded via Presenton files API (optional).",
|
||||
"Export format": "Export format",
|
||||
"Whether to trigger subscribed webhooks": "Whether to trigger subscribed webhooks",
|
||||
"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..",
|
||||
"Default": "Default",
|
||||
"Casual": "Casual",
|
||||
"Professional": "Professional",
|
||||
"Funny": "Funny",
|
||||
"Educational": "Educational",
|
||||
"Sales pitch": "Sales pitch",
|
||||
"Concise": "Concise",
|
||||
"Standard": "Standard",
|
||||
"Text-heavy": "Text-heavy",
|
||||
"Stock": "Stock",
|
||||
"AI generated": "AI generated",
|
||||
"General": "General",
|
||||
"Modern": "Modern",
|
||||
"Swift": "Swift",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD",
|
||||
"New Presentation": "New Presentation",
|
||||
"Triggers when a new presentation is created in Presenton.": "Triggers when a new presentation is created in Presenton."
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.": "Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.",
|
||||
"\n": "\n",
|
||||
"Generate Presentations (async)": "Generate Presentations (async)",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Create an asynchronous presentation generation task at Presenton and return the created task.": "Create an asynchronous presentation generation task at Presenton and return the created task.",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"Content": "Content",
|
||||
"Instructions": "Instructions",
|
||||
"Tone": "Tone",
|
||||
"Verbosity": "Verbosity",
|
||||
"Slides markdown": "Slides markdown",
|
||||
"Markdown emphasis": "Markdown emphasis",
|
||||
"Enable web search": "Enable web search",
|
||||
"Image type": "Image type",
|
||||
"Theme": "Theme",
|
||||
"Number of slides": "Number of slides",
|
||||
"Language": "Language",
|
||||
"Template": "模板",
|
||||
"Include table of contents": "Include table of contents",
|
||||
"Include title slide": "Include title slide",
|
||||
"Allow access to user's info": "Allow access to user's info",
|
||||
"Files": "Files",
|
||||
"Export as": "Export as",
|
||||
"Trigger webhook": "Trigger webhook",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"The content for generating the presentation": "The content for generating the presentation",
|
||||
"Instruction for generating the presentation (optional).": "Instruction for generating the presentation (optional).",
|
||||
"Tone to use for the text": "Tone to use for the text",
|
||||
"How verbose the text should be": "How verbose the text should be",
|
||||
"An array of markdown strings for each slide (optional).": "An array of markdown strings for each slide (optional).",
|
||||
"Whether to emphasize the markdown": "Whether to emphasize the markdown",
|
||||
"Whether to enable web search": "Whether to enable web search",
|
||||
"Type of image to generate": "Type of image to generate",
|
||||
"Theme to use for the presentation (e.g. edge-yellow, light-rose)": "Theme to use for the presentation (e.g. edge-yellow, light-rose)",
|
||||
"Number of slides to generate": "Number of slides to generate",
|
||||
"Language for the presentation": "Language for the presentation",
|
||||
"Template to use for the presentation": "Template to use for the presentation",
|
||||
"Whether to include a table of contents": "Whether to include a table of contents",
|
||||
"Whether to include a title slide": "Whether to include a title slide",
|
||||
"Whether to allow access to user's info": "Whether to allow access to user's info",
|
||||
"Array of file identifiers uploaded via Presenton files API (optional).": "Array of file identifiers uploaded via Presenton files API (optional).",
|
||||
"Export format": "Export format",
|
||||
"Whether to trigger subscribed webhooks": "Whether to trigger subscribed webhooks",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"Default": "Default",
|
||||
"Casual": "Casual",
|
||||
"Professional": "Professional",
|
||||
"Funny": "Funny",
|
||||
"Educational": "Educational",
|
||||
"Sales pitch": "Sales pitch",
|
||||
"Concise": "Concise",
|
||||
"Standard": "Standard",
|
||||
"Text-heavy": "Text-heavy",
|
||||
"Stock": "Stock",
|
||||
"AI generated": "AI generated",
|
||||
"General": "A. 概况",
|
||||
"Modern": "Modern",
|
||||
"Swift": "Swift",
|
||||
"PPTX": "PPTX",
|
||||
"PDF": "PDF",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色",
|
||||
"New Presentation": "New Presentation",
|
||||
"Triggers when a new presentation is created in Presenton.": "Triggers when a new presentation is created in Presenton."
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
import { createPiece } from '@activepieces/pieces-framework';
|
||||
import { generatePresentations } from './lib/actions/generate-presentations';
|
||||
|
||||
import { presentonAuth } from './lib/common/auth';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { newPresentation } from './lib/triggers/new-presentation';
|
||||
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
||||
|
||||
export const presentation = createPiece({
|
||||
displayName: 'Presenton',
|
||||
description:
|
||||
'Generate AI-powered presentations using Presenton (https://presenton.ai). Supports templates, themes, images, synchronous and asynchronous generation, status polling, and export to PPTX/PDF.',
|
||||
auth: presentonAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/presenton.png',
|
||||
categories: [
|
||||
PieceCategory.ARTIFICIAL_INTELLIGENCE,
|
||||
PieceCategory.CONTENT_AND_FILES,
|
||||
],
|
||||
authors: ['sanket-a11y'],
|
||||
actions: [
|
||||
generatePresentations,
|
||||
createCustomApiCallAction({
|
||||
auth: presentonAuth,
|
||||
baseUrl: () => 'https://api.presenton.ai/api/v1',
|
||||
authMapping: async (auth) => {
|
||||
return {
|
||||
Authorization: `Bearer ${auth.secret_text}`,
|
||||
};
|
||||
},
|
||||
}),
|
||||
],
|
||||
triggers: [newPresentation],
|
||||
});
|
||||
@@ -0,0 +1,253 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { presentonAuth } from '../common/auth';
|
||||
import { makeRequest } from '../common/client';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
export const generatePresentations = createAction({
|
||||
auth: presentonAuth,
|
||||
name: 'generate_presentations',
|
||||
displayName: 'Generate Presentations (async)',
|
||||
description:
|
||||
'Create an asynchronous presentation generation task at Presenton and return the created task.',
|
||||
props: {
|
||||
content: Property.LongText({
|
||||
displayName: 'Content',
|
||||
description: 'The content for generating the presentation',
|
||||
required: false,
|
||||
}),
|
||||
|
||||
instructions: Property.LongText({
|
||||
displayName: 'Instructions',
|
||||
description: 'Instruction for generating the presentation (optional).',
|
||||
required: false,
|
||||
}),
|
||||
tone: Property.StaticDropdown({
|
||||
displayName: 'Tone',
|
||||
description: 'Tone to use for the text',
|
||||
required: false,
|
||||
defaultValue: 'default',
|
||||
options: {
|
||||
options: [
|
||||
{ value: 'default', label: 'Default' },
|
||||
{ value: 'casual', label: 'Casual' },
|
||||
{ value: 'professional', label: 'Professional' },
|
||||
{ value: 'funny', label: 'Funny' },
|
||||
{ value: 'educational', label: 'Educational' },
|
||||
{ value: 'sales_pitch', label: 'Sales pitch' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
verbosity: Property.StaticDropdown({
|
||||
displayName: 'Verbosity',
|
||||
description: 'How verbose the text should be',
|
||||
required: false,
|
||||
defaultValue: 'standard',
|
||||
options: {
|
||||
options: [
|
||||
{ value: 'concise', label: 'Concise' },
|
||||
{ value: 'standard', label: 'Standard' },
|
||||
{ value: 'text-heavy', label: 'Text-heavy' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
slides_markdown: Property.Array({
|
||||
displayName: 'Slides markdown',
|
||||
description: 'An array of markdown strings for each slide (optional).',
|
||||
required: false,
|
||||
defaultValue: [],
|
||||
}),
|
||||
markdown_emphasis: Property.Checkbox({
|
||||
displayName: 'Markdown emphasis',
|
||||
description: 'Whether to emphasize the markdown',
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
web_search: Property.Checkbox({
|
||||
displayName: 'Enable web search',
|
||||
description: 'Whether to enable web search',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
image_type: Property.StaticDropdown({
|
||||
displayName: 'Image type',
|
||||
description: 'Type of image to generate',
|
||||
required: false,
|
||||
defaultValue: 'stock',
|
||||
options: {
|
||||
options: [
|
||||
{ value: 'stock', label: 'Stock' },
|
||||
{ value: 'ai-generated', label: 'AI generated' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
theme: Property.ShortText({
|
||||
displayName: 'Theme',
|
||||
description:
|
||||
'Theme to use for the presentation (e.g. edge-yellow, light-rose)',
|
||||
required: false,
|
||||
}),
|
||||
n_slides: Property.Number({
|
||||
displayName: 'Number of slides',
|
||||
description: 'Number of slides to generate',
|
||||
required: false,
|
||||
defaultValue: 8,
|
||||
}),
|
||||
language: Property.ShortText({
|
||||
displayName: 'Language',
|
||||
description: 'Language for the presentation',
|
||||
required: false,
|
||||
defaultValue: 'English',
|
||||
}),
|
||||
template: Property.StaticDropdown({
|
||||
displayName: 'Template',
|
||||
description: 'Template to use for the presentation',
|
||||
required: false,
|
||||
defaultValue: 'general',
|
||||
options: {
|
||||
options: [
|
||||
{ value: 'general', label: 'General' },
|
||||
{ value: 'modern', label: 'Modern' },
|
||||
{ value: 'standard', label: 'Standard' },
|
||||
{ value: 'swift', label: 'Swift' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
include_table_of_contents: Property.Checkbox({
|
||||
displayName: 'Include table of contents',
|
||||
description: 'Whether to include a table of contents',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
include_title_slide: Property.Checkbox({
|
||||
displayName: 'Include title slide',
|
||||
description: 'Whether to include a title slide',
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
allow_access_to_user_info: Property.Checkbox({
|
||||
displayName: "Allow access to user's info",
|
||||
description: "Whether to allow access to user's info",
|
||||
required: false,
|
||||
defaultValue: true,
|
||||
}),
|
||||
files: Property.Array({
|
||||
displayName: 'Files',
|
||||
description:
|
||||
'Array of file identifiers uploaded via Presenton files API (optional).',
|
||||
required: false,
|
||||
defaultValue: [],
|
||||
}),
|
||||
export_as: Property.StaticDropdown({
|
||||
displayName: 'Export as',
|
||||
description: 'Export format',
|
||||
required: false,
|
||||
defaultValue: 'pptx',
|
||||
options: {
|
||||
options: [
|
||||
{ value: 'pptx', label: 'PPTX' },
|
||||
{ value: 'pdf', label: 'PDF' },
|
||||
],
|
||||
},
|
||||
}),
|
||||
trigger_webhook: Property.Checkbox({
|
||||
displayName: 'Trigger webhook',
|
||||
description: 'Whether to trigger subscribed webhooks',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
async run({ auth, propsValue }) {
|
||||
const apiKey = auth.secret_text;
|
||||
const {
|
||||
content,
|
||||
slides_markdown,
|
||||
instructions,
|
||||
tone,
|
||||
verbosity,
|
||||
markdown_emphasis,
|
||||
web_search,
|
||||
image_type,
|
||||
theme,
|
||||
n_slides,
|
||||
language,
|
||||
template,
|
||||
include_table_of_contents,
|
||||
include_title_slide,
|
||||
allow_access_to_user_info,
|
||||
files,
|
||||
export_as,
|
||||
trigger_webhook,
|
||||
} = propsValue;
|
||||
|
||||
const body: any = {};
|
||||
|
||||
if (content) body['content'] = content;
|
||||
if (slides_markdown)
|
||||
body['slides_markdown'] = slides_markdown as unknown as string[];
|
||||
if (instructions) body['instructions'] = instructions;
|
||||
if (tone) body['tone'] = tone;
|
||||
if (verbosity) body['verbosity'] = verbosity;
|
||||
body['markdown_emphasis'] = markdown_emphasis ?? true;
|
||||
body['web_search'] = web_search ?? false;
|
||||
if (image_type) body['image_type'] = image_type;
|
||||
if (theme) body['theme'] = theme;
|
||||
body['n_slides'] = Number(n_slides ?? 8);
|
||||
body['language'] = language ?? 'English';
|
||||
body['template'] = template ?? 'general';
|
||||
body['include_table_of_contents'] = include_table_of_contents ?? false;
|
||||
body['include_title_slide'] = include_title_slide ?? true;
|
||||
body['allow_access_to_user_info'] = allow_access_to_user_info ?? true;
|
||||
if (files) body['files'] = files as unknown as string[];
|
||||
body['export_as'] = export_as ?? 'pptx';
|
||||
body['trigger_webhook'] = trigger_webhook ?? false;
|
||||
|
||||
try {
|
||||
const response = await makeRequest(
|
||||
apiKey,
|
||||
HttpMethod.POST,
|
||||
'/ppt/presentation/generate/async',
|
||||
body
|
||||
);
|
||||
|
||||
const pollIntervalSeconds = 5;
|
||||
|
||||
const taskId = response.id;
|
||||
if (!taskId) {
|
||||
throw new Error(
|
||||
`Presenton did not return a task id: ${JSON.stringify(response)}`
|
||||
);
|
||||
}
|
||||
|
||||
const start = Date.now();
|
||||
const timeoutMs = 120 * 1000;
|
||||
|
||||
const sleep = (ms: number) => new Promise((res) => setTimeout(res, ms));
|
||||
|
||||
while (Date.now() - start < timeoutMs) {
|
||||
const statusResp = await makeRequest(
|
||||
apiKey,
|
||||
HttpMethod.GET,
|
||||
`/ppt/presentation/status/${taskId}`
|
||||
);
|
||||
|
||||
if (statusResp.status === 'completed') {
|
||||
return statusResp;
|
||||
}
|
||||
|
||||
if (statusResp.status === 'failed') {
|
||||
throw new Error(
|
||||
`Presentation generation failed: ${JSON.stringify(statusResp)}`
|
||||
);
|
||||
}
|
||||
|
||||
await sleep(pollIntervalSeconds * 1000);
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`Timed out waiting for presentation generation after 120 seconds`
|
||||
);
|
||||
} catch (err) {
|
||||
throw new Error(`Presenton API error: ${err}`);
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,34 @@
|
||||
import { PieceAuth } from '@activepieces/pieces-framework';
|
||||
import { makeRequest } from './client';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
export const presentonAuth = PieceAuth.SecretText({
|
||||
displayName: 'Presenton API Key',
|
||||
description: `
|
||||
`,
|
||||
required: true,
|
||||
validate: async ({ auth }) => {
|
||||
if (auth) {
|
||||
try {
|
||||
await makeRequest(
|
||||
auth as string,
|
||||
HttpMethod.GET,
|
||||
'/ppt/presentation/all',
|
||||
{}
|
||||
);
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,25 @@
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
|
||||
export const BASE_URL = `https://api.presenton.ai/api/v1`;
|
||||
|
||||
export async function makeRequest(
|
||||
api_key: string,
|
||||
method: HttpMethod,
|
||||
path: string,
|
||||
body?: unknown
|
||||
) {
|
||||
try {
|
||||
const response = await httpClient.sendRequest({
|
||||
method,
|
||||
url: `${BASE_URL}${path}`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${api_key}`,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body,
|
||||
});
|
||||
return response.body;
|
||||
} catch (error: any) {
|
||||
throw new Error(`Unexpected error: ${error.message || String(error)}`);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
import {
|
||||
createTrigger,
|
||||
TriggerStrategy,
|
||||
PiecePropValueSchema,
|
||||
AppConnectionValueForAuthProperty,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import dayjs from 'dayjs';
|
||||
import { presentonAuth } from '../common/auth';
|
||||
import { makeRequest } from '../common/client';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
|
||||
const polling: Polling<
|
||||
AppConnectionValueForAuthProperty<typeof presentonAuth>,
|
||||
Record<string, never>
|
||||
> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
items: async ({ auth, propsValue, lastFetchEpochMS }) => {
|
||||
const apiKey = auth.secret_text;
|
||||
|
||||
const response: any = await makeRequest(
|
||||
apiKey,
|
||||
HttpMethod.GET,
|
||||
'/ppt/presentation/all'
|
||||
);
|
||||
|
||||
const itemsArray = response.results;
|
||||
|
||||
return itemsArray.map((item: any) => ({
|
||||
epochMilliSeconds: dayjs(item.created_at).valueOf(),
|
||||
data: item,
|
||||
}));
|
||||
},
|
||||
};
|
||||
|
||||
export const newPresentation = createTrigger({
|
||||
auth: presentonAuth,
|
||||
name: 'newPresentation',
|
||||
displayName: 'New Presentation',
|
||||
description: 'Triggers when a new presentation is created in Presenton.',
|
||||
props: {},
|
||||
sampleData: {
|
||||
id: '93d4092b-2a20-4637-bbe7-2addb6273761',
|
||||
user: 'fa86a74f-53b9-46fa-9ac9-e3a526d125ca',
|
||||
content: 'Indian society ',
|
||||
n_slides: 1,
|
||||
language: 'English',
|
||||
title: ' AI **Presented by:** Jon deo -',
|
||||
created_at: '2025-11-11T11:33:55.269027Z',
|
||||
updated_at: '2025-11-11T11:34:12.978847Z',
|
||||
tone: 'default',
|
||||
verbosity: 'standard',
|
||||
theme: null,
|
||||
slides: [
|
||||
{
|
||||
presentation: '93d4092b-2a20-4637-bbe7-2addb6273761',
|
||||
layout: 'general:general-intro-slide',
|
||||
index: 0,
|
||||
layout_group: 'general',
|
||||
speaker_note: '',
|
||||
id: '38ca1626-83ef-451f-8529-8b10725bcb3f',
|
||||
content: {
|
||||
title: 'AI Presentation',
|
||||
description: '',
|
||||
presenterName: 'Jon Deo',
|
||||
presentationDate: '2025-11-11',
|
||||
image: {
|
||||
__image_prompt__: 'r',
|
||||
__image_url__:
|
||||
'https://images.pexels.com/photos/17898879/pexels-photo-17898879.jpeg?auto=compress&cs=tinysrgb&h=650&w=940',
|
||||
},
|
||||
__speaker_note__: '',
|
||||
},
|
||||
html_content: null,
|
||||
properties: null,
|
||||
},
|
||||
],
|
||||
},
|
||||
type: TriggerStrategy.POLLING,
|
||||
async test(context) {
|
||||
return await pollingHelper.test(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.onDisable(polling, { store, auth, propsValue });
|
||||
},
|
||||
|
||||
async run(context) {
|
||||
return await pollingHelper.poll(polling, context);
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user