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

View File

@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-gamma",
"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-gamma",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/gamma/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/gamma",
"tsConfig": "packages/pieces/community/gamma/tsconfig.lib.json",
"packageJson": "packages/pieces/community/gamma/package.json",
"main": "packages/pieces/community/gamma/src/index.ts",
"assets": [
"packages/pieces/community/gamma/*.md",
{
"input": "packages/pieces/community/gamma/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/gamma",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "Ein AI-basierter Design-Partner, der Benutzern dabei hilft, Präsentationen, Dokumente, Social Media Posts, Karten, etc. in natürlicher Sprache zu generieren.",
"API Key": "API-Schlüssel",
"Paste your API key here.": "Fügen Sie Ihren API-Schlüssel hier ein.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFolge diesen Schritten, um deinen Gamma-API-Schlüssel zu erhalten:\n\n1. Melden Sie sich bei Ihrem Gamma-Konto an. Sie müssen einen **Pro oder Ultra Plan** haben, um auf die API zuzugreifen.\n2. Navigieren Sie zu **Einstellungen & Mitglieder** (klicken Sie auf Ihren Arbeitsbereichsnamen oben links).\n3. Gehen Sie zum **API-Schlüssel** Tab.\n4. Klicken Sie auf **Erstelle API-Schlüssel** und geben Sie ihm einen Namen (z.B. \"Activepieces\").\n5. Kopieren Sie den Schlüssel (er beginnt mit `sk-gamma-`) und fügen Sie ihn unten ein.\n\n**Direkter Link zu API-Einstellungen:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Gamma generieren",
"Get Generation": "Generierung erhalten",
"Create a new Gamma generation job.": "Erstelle einen neuen Job zur Gamma-Generation.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Geben Sie eine Generation-ID ein, holen Sie den Status, die Ausgabe, die Metadaten usw.",
"Input Text": "Input Text",
"Text Mode": "Textmodus",
"Format": "Format",
"Theme Name": "Theme-Name",
"Number of Cards": "Anzahl der Karten",
"Card Split": "Karte aufgeteilt",
"Additional Instructions": "Zusätzliche Anweisungen",
"Export As": "Exportieren als",
"Text Options": "Textoptionen",
"Image Options": "Bildoptionen",
"Card Options": "Kartenoptionen",
"Sharing Options": "Freigabeoptionen",
"Generation ID": "Generierungs-ID",
"Text used to generate your gamma (1-750,000 characters).": "Text zum Generieren Ihres Gammas (1-750.000 Zeichen).",
"How you want your inputText to be modified.": "Wie Sie Ihren InputText ändern wollen.",
"The type of artifact you want to create.": "Die Art des Artefakts, das du erstellen möchtest.",
"The theme from Gamma to be used. Defaults to workspace default.": "Das Theme von Gamma, das verwendet werden soll. Standardmäßig ist der Arbeitsbereich.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "Wie viele Karten erstellt werden sollen (Standard 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "Wie Ihr Inhalt in Karten aufgeteilt wird. Benutzen Sie '--' im Text für Pausen.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Zusätzliche Spezifikationen zu den gewünschten Inhalten und Layouts (1-500 Zeichen).",
"Additional file types for saving your gamma.": "Zusätzliche Dateitypen zum Speichern Ihres Gammas.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "JSON-Objekt für Texteigenschaften (z.B. Betrag, Ton, Publikum, Sprache).",
"JSON object for image attributes (e.g., source, model, style).": "JSON-Objekt für Bildattribute (z.B. Quelle, Modell, Stil).",
"JSON object for card attributes (e.g., dimensions).": "JSON-Objekt für Kartenattribute (z.B. Dimensionen).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "JSON-Objekt zum Teilen von Attributen (z.B. WorkspaceAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "Die ID des Generation-Jobs (aus der Aktion \"Generate Gamma\").",
"Generate": "Generieren",
"Condense": "Kondense",
"Preserve": "Bewahren",
"Presentation": "Präsentation",
"Document": "Dokument",
"Social": "Soziale",
"Auto": "Auto",
"Input Text Breaks": "Eingabetext-Pausen",
"PDF": "PDF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "Un socio de diseño impulsado por la AIE que ayuda a los usuarios a generar presentaciones, documentos, publicaciones en los medios de comunicación social, tarjetas, etc., a través del lenguaje natural.",
"API Key": "Clave API",
"Paste your API key here.": "Pegue su clave API aquí.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Generar Gamma",
"Get Generation": "Generar",
"Create a new Gamma generation job.": "Crear un nuevo empleo de generación de Gamma.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Dado un ID de Generación, obtener el estado, las salidas, los metadatos, etc.",
"Input Text": "Input Text",
"Text Mode": "Modo texto",
"Format": "Formatear",
"Theme Name": "Nombre del tema",
"Number of Cards": "Número de tarjetas",
"Card Split": "Dividir tarjeta",
"Additional Instructions": "Instrucciones adicionales",
"Export As": "Exportar como",
"Text Options": "Opciones de texto",
"Image Options": "Opciones de imagen",
"Card Options": "Opciones de tarjeta",
"Sharing Options": "Opciones de compartir",
"Generation ID": "ID de generación",
"Text used to generate your gamma (1-750,000 characters).": "Texto usado para generar tu gamma (1-750.000 caracteres).",
"How you want your inputText to be modified.": "Cómo quieres que tu inputText sea modificado.",
"The type of artifact you want to create.": "El tipo de artefacto que quieres crear.",
"The theme from Gamma to be used. Defaults to workspace default.": "El tema de Gamma a ser utilizado. Por defecto es el predeterminado.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "Cuántas tarjetas crear (por defecto 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "Cómo se dividirá tu contenido en tarjetas. Usa '---' en texto para los descansos.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Especificaciones adicionales sobre el contenido y los diseños deseados (1-500 caracteres).",
"Additional file types for saving your gamma.": "Tipos de archivo adicionales para guardar su gamma.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "Objeto JSON para atributos de texto (por ejemplo, cantidad, tono, audiencia, idioma).",
"JSON object for image attributes (e.g., source, model, style).": "Objeto JSON para atributos de imagen (por ejemplo, fuente, modelo, estilo).",
"JSON object for card attributes (e.g., dimensions).": "Objeto JSON para atributos de tarjeta (por ejemplo, dimensiones).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "Objeto JSON para compartir atributos (por ejemplo, espacio de trabajoAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "El ID del trabajo de generación (de la acción \"Generar Gamma\").",
"Generate": "Generar",
"Condense": "Condenado",
"Preserve": "Conservar",
"Presentation": "Presentación",
"Document": "Documento",
"Social": "Social",
"Auto": "Auto",
"Input Text Breaks": "Saltos de texto de entrada",
"PDF": "DF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "Un partenaire de conception propulsé par l'IA qui aide les utilisateurs à générer des présentations, des documents, des publications sur les médias sociaux, des cartes, etc., via le langage naturel.",
"API Key": "Clé API",
"Paste your API key here.": "Collez votre clé API ici.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Générer un Gamma",
"Get Generation": "Obtenir la génération",
"Create a new Gamma generation job.": "Créer un nouveau job de génération Gamma.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Donne un ID de génération, récupère le statut, les sorties, les métadonnées, etc.",
"Input Text": "Input Text",
"Text Mode": "Mode texte",
"Format": "Formater",
"Theme Name": "Nom du thème",
"Number of Cards": "Nombre de cartes",
"Card Split": "Diviser la carte",
"Additional Instructions": "Instructions supplémentaires",
"Export As": "Exporter en tant que",
"Text Options": "Options de texte",
"Image Options": "Options de l'image",
"Card Options": "Options de la carte",
"Sharing Options": "Options de partage",
"Generation ID": "ID de génération",
"Text used to generate your gamma (1-750,000 characters).": "Texte utilisé pour générer votre gamma (1-750 000 caractères).",
"How you want your inputText to be modified.": "Comment vous voulez que votre inputText soit modifié.",
"The type of artifact you want to create.": "Le type d'artefact que vous voulez créer.",
"The theme from Gamma to be used. Defaults to workspace default.": "Le thème de Gamma à utiliser. Par défaut, l'espace de travail est par défaut.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "Combien de cartes créer (par défaut 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "Comment votre contenu sera divisé en cartes. Utilisez '---' en texte pour les pauses.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Spécifications supplémentaires sur le contenu et les mises en page souhaitées (1-500 caractères).",
"Additional file types for saving your gamma.": "Types de fichiers supplémentaires pour enregistrer votre gamma.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "Objet JSON pour les attributs de texte (par exemple, quantité, tonalité, audience, langue).",
"JSON object for image attributes (e.g., source, model, style).": "Objet JSON pour les attributs d'image (par exemple, source, modèle, style).",
"JSON object for card attributes (e.g., dimensions).": "Objet JSON pour les attributs de la carte (par exemple, dimensions).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "Objet JSON pour le partage d'attributs (par exemple, workspaceAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "L'ID de la tâche de génération (à partir de l'action \"Générer le Gamma\").",
"Generate": "Générer",
"Condense": "Condensé",
"Preserve": "Conserver",
"Presentation": "Présentation",
"Document": "Document",
"Social": "Réseaux sociaux",
"Auto": "Automatique",
"Input Text Breaks": "Interruptions de texte",
"PDF": "PDF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "AIを活用したデザインパートナーで、ユーザーは自然言語を介してプレゼンテーション、文書、ソーシャルメディアの投稿、カードなどを生成することができます。",
"API Key": "API キー",
"Paste your API key here.": "APIキーをここに貼り付けてください。",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "ガンマを生成",
"Get Generation": "生成を取得",
"Create a new Gamma generation job.": "新しいガンマ生成ジョブを作成します。",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "ジェネレーションIDが与えられ、ステータス、出力、メタデータなどを取得します。",
"Input Text": "Input Text",
"Text Mode": "テキストモード",
"Format": "書式",
"Theme Name": "テーマ名",
"Number of Cards": "カードの数",
"Card Split": "カード分割",
"Additional Instructions": "追加の説明",
"Export As": "別名でエクスポート",
"Text Options": "テキストオプション",
"Image Options": "画像オプション",
"Card Options": "カードオプション",
"Sharing Options": "共有オプション",
"Generation ID": "生成ID",
"Text used to generate your gamma (1-750,000 characters).": "ガンマを生成するために使用されるテキスト (1-750,000 文字)。",
"How you want your inputText to be modified.": "入力テキストを変更する方法。",
"The type of artifact you want to create.": "作成するアーティファクトの種類。",
"The theme from Gamma to be used. Defaults to workspace default.": "ガンマのテーマを使用します。デフォルトはワークスペースのデフォルトです。",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "作成するカードの枚数デフォルト10枚。 Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "コンテンツをカードに分割する方法。テキストで「---」を使用してください。",
"Extra specifications about the desired content and layouts (1-500 characters).": "目的のコンテンツとレイアウト(1〜500文字)に関する追加仕様。",
"Additional file types for saving your gamma.": "ガンマを保存するための追加のファイルタイプ。",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "テキスト属性のJSONオブジェクト (金額、トーン、オーディエンス、言語など)",
"JSON object for image attributes (e.g., source, model, style).": "画像属性のための JSON オブジェクト (例: ソース、モデル、スタイル)。",
"JSON object for card attributes (e.g., dimensions).": "カード属性のJSONオブジェクト (例: ディメンション)。",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "属性を共有するためのJSONオブジェクト (たとえば、workspaceAccess、externalAccess)。",
"The ID of the generation job (from the \"Generate Gamma\" action).": "生成ジョブの ID (「ガンマの生成」アクションから)。",
"Generate": "生成",
"Condense": "Condense",
"Preserve": "保全する",
"Presentation": "プレゼンテーション",
"Document": "ドキュメント",
"Social": "ソーシャル",
"Auto": "自動",
"Input Text Breaks": "テキストの区切りを入力",
"PDF": "PDF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "Een AI-aangedreven ontwerppartner die gebruikers helpt presentaties, documenten, social media-berichten, kaarten, enz. te maken via de natuurlijke taal.",
"API Key": "API Sleutel",
"Paste your API key here.": "Plak uw API-sleutel hier.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nVolg deze stappen om je Gamma API Key te verkrijgen:\n\n1. Log in op je Gamma account. Je moet een **Pro of Ultra abonnement** hebben om toegang te krijgen tot de API.\n2. Navigeer naar **Instellingen & leden** (klik op je workspace naam linksboven).\n3. Ga naar het tabblad **API Key**.\n4. Klik op **API-sleutel maken** en geef het een naam (bijvoorbeeld \"Activepieces\").\n5. Kopieer de sleutel (het begint met `sk-gamma-`) en plak deze hieronder.\n\n**Directe Link naar API-instellingen:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Gamma genereren",
"Get Generation": "Ophalen Generatie",
"Create a new Gamma generation job.": "Maak een nieuwe taak voor de Gamma generatie.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Gegeven een generatie-ID, haal de status, outputs, metadata, etc. op.",
"Input Text": "Input Text",
"Text Mode": "Tekst modus",
"Format": "Formatteren",
"Theme Name": "Thema naam",
"Number of Cards": "Aantal kaarten",
"Card Split": "Kaart splitsen",
"Additional Instructions": "Aanvullende instructies",
"Export As": "Exporteren als",
"Text Options": "Tekst opties",
"Image Options": "Afbeelding opties",
"Card Options": "Kaart opties",
"Sharing Options": "Opties voor delen",
"Generation ID": "Genereer ID",
"Text used to generate your gamma (1-750,000 characters).": "Tekst gebruikt om uw gamma te genereren (1-750.000 tekens).",
"How you want your inputText to be modified.": "Hoe wilt u dat uw inputtekst wordt gewijzigd.",
"The type of artifact you want to create.": "Het type artefact dat je wilt maken.",
"The theme from Gamma to be used. Defaults to workspace default.": "Het thema van Gamma om te gebruiken. Standaard naar de standaard werkruimte.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "Hoeveel kaarten je wilt maken (standaard 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "Hoe je inhoud in kaarten wordt verdeeld. Gebruik '---' in tekst voor breuken.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Extra specificaties over de gewenste inhoud en lay-outs (1-500 tekens).",
"Additional file types for saving your gamma.": "Extra bestandstypen om je game op te slaan.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "JSON object voor tekst attributen (bijv. aantal, toon, publiek, taal).",
"JSON object for image attributes (e.g., source, model, style).": "JSON object voor afbeeldingsattributen (bijv. bron, model, stijl).",
"JSON object for card attributes (e.g., dimensions).": "JSON object voor kaart attributen (bijv. dimensies).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "JSON object voor het delen van attributen (bijv. workspaceAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "De ID van de taak die wordt gegenereerd (van de actie \"Generate Gamma\".",
"Generate": "Genereren",
"Condense": "Samenvatting",
"Preserve": "Behoud",
"Presentation": "Presentatie",
"Document": "Document",
"Social": "Sociaal",
"Auto": "Automatisch",
"Input Text Breaks": "Tekst breuken invoeren",
"PDF": "PDF-bestand",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "Um parceiro de design com tecnologia IA que ajude os usuários a gerar apresentações, documentos, postagens, cartões nas mídias sociais, etc., através de linguagem natural.",
"API Key": "Chave de API",
"Paste your API key here.": "Cole sua chave de API aqui.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Gerar Gama",
"Get Generation": "Obter geração",
"Create a new Gamma generation job.": "Crie um novo trabalho de geração Gmá.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Dado um ID de Geração, buscar o status, saídas, metadados, etc.",
"Input Text": "Input Text",
"Text Mode": "Modo de Texto",
"Format": "Formato",
"Theme Name": "Nome do Tema",
"Number of Cards": "Número de Cartões",
"Card Split": "Divisão de Cartões",
"Additional Instructions": "Instruções adicionais",
"Export As": "Exportar como",
"Text Options": "Opções de Texto",
"Image Options": "Opções de Imagem",
"Card Options": "Opções de Cartão",
"Sharing Options": "Opções de Compartilhamento",
"Generation ID": "ID de geração",
"Text used to generate your gamma (1-750,000 characters).": "Texto usado para gerar sua gama (1-750.000 caracteres).",
"How you want your inputText to be modified.": "Como você deseja que seu texto de entrada seja modificado.",
"The type of artifact you want to create.": "O tipo de artefato que você quer criar.",
"The theme from Gamma to be used. Defaults to workspace default.": "O tema Gama a ser usado. O padrão é área de trabalho padrão.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "Quantos cartões para criar (padrão 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "Como seu conteúdo será dividido em cartões. Use '---' no texto para quebras.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Especificações extras sobre o conteúdo e os layouts desejados (1-500 caracteres).",
"Additional file types for saving your gamma.": "Tipos de arquivos adicionais para salvar seu gamma.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "Objeto JSON para atributos de texto (ex.: quantia, tom, audiência, linguagem).",
"JSON object for image attributes (e.g., source, model, style).": "Objeto JSON para atributos de imagem (por exemplo, fonte, modelo, estilo).",
"JSON object for card attributes (e.g., dimensions).": "Objeto JSON para atributos do cartão (por exemplo, dimensões).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "Objeto JSON para compartilhar atributos (ex.: acessos de espaço de trabalho, acessório externo).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "A ID da tarefa de geração (a partir da ação \"Gerar Gama\").",
"Generate": "Gerar",
"Condense": "Condensar",
"Preserve": "Preservar",
"Presentation": "Apresentação",
"Document": "Documento",
"Social": "Sócio",
"Auto": "Automático",
"Input Text Breaks": "Inserir Quebra de Texto",
"PDF": "Pdf",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.",
"API Key": "API Key",
"Paste your API key here.": "Paste your API key here.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Generate Gamma",
"Get Generation": "Get Generation",
"Create a new Gamma generation job.": "Create a new Gamma generation job.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Given a Generation ID, fetch the status, outputs, metadata, etc.",
"Input Text": "Input Text",
"Text Mode": "Text Mode",
"Format": "Format",
"Theme Name": "Theme Name",
"Number of Cards": "Number of Cards",
"Card Split": "Card Split",
"Additional Instructions": "Additional Instructions",
"Export As": "Export As",
"Text Options": "Text Options",
"Image Options": "Image Options",
"Card Options": "Card Options",
"Sharing Options": "Sharing Options",
"Generation ID": "Generation ID",
"Text used to generate your gamma (1-750,000 characters).": "Text used to generate your gamma (1-750,000 characters).",
"How you want your inputText to be modified.": "How you want your inputText to be modified.",
"The type of artifact you want to create.": "The type of artifact you want to create.",
"The theme from Gamma to be used. Defaults to workspace default.": "The theme from Gamma to be used. Defaults to workspace default.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "How your content will be divided into cards. Use '---' in text for breaks.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Extra specifications about the desired content and layouts (1-500 characters).",
"Additional file types for saving your gamma.": "Additional file types for saving your gamma.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "JSON object for text attributes (e.g., amount, tone, audience, language).",
"JSON object for image attributes (e.g., source, model, style).": "JSON object for image attributes (e.g., source, model, style).",
"JSON object for card attributes (e.g., dimensions).": "JSON object for card attributes (e.g., dimensions).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "The ID of the generation job (from the \"Generate Gamma\" action).",
"Generate": "Generate",
"Condense": "Condense",
"Preserve": "Preserve",
"Presentation": "Presentation",
"Document": "Document",
"Social": "Social",
"Auto": "Auto",
"Input Text Breaks": "Input Text Breaks",
"PDF": "PDF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,46 @@
{
"An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.": "An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.",
"API Key": "API 密钥",
"Paste your API key here.": "Paste your API key here.",
"\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n": "\nFollow these steps to get your Gamma API Key:\n\n1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.\n2. Navigate to **Settings & Members** (click your workspace name in the top-left).\n3. Go to the **API Key** tab.\n4. Click **Create API key** and give it a name (e.g., \"Activepieces\").\n5. Copy the key (it starts with `sk-gamma-`) and paste it below.\n\n**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)\n",
"Generate Gamma": "Generate Gamma",
"Get Generation": "Get Generation",
"Create a new Gamma generation job.": "Create a new Gamma generation job.",
"Given a Generation ID, fetch the status, outputs, metadata, etc.": "Given a Generation ID, fetch the status, outputs, metadata, etc.",
"Input Text": "Input Text",
"Text Mode": "Text Mode",
"Format": "Format",
"Theme Name": "Theme Name",
"Number of Cards": "Number of Cards",
"Card Split": "Card Split",
"Additional Instructions": "Additional Instructions",
"Export As": "Export As",
"Text Options": "Text Options",
"Image Options": "Image Options",
"Card Options": "Card Options",
"Sharing Options": "Sharing Options",
"Generation ID": "Generation ID",
"Text used to generate your gamma (1-750,000 characters).": "Text used to generate your gamma (1-750,000 characters).",
"How you want your inputText to be modified.": "How you want your inputText to be modified.",
"The type of artifact you want to create.": "The type of artifact you want to create.",
"The theme from Gamma to be used. Defaults to workspace default.": "The theme from Gamma to be used. Defaults to workspace default.",
"How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.": "How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.",
"How your content will be divided into cards. Use '---' in text for breaks.": "How your content will be divided into cards. Use '---' in text for breaks.",
"Extra specifications about the desired content and layouts (1-500 characters).": "Extra specifications about the desired content and layouts (1-500 characters).",
"Additional file types for saving your gamma.": "Additional file types for saving your gamma.",
"JSON object for text attributes (e.g., amount, tone, audience, language).": "JSON object for text attributes (e.g., amount, tone, audience, language).",
"JSON object for image attributes (e.g., source, model, style).": "JSON object for image attributes (e.g., source, model, style).",
"JSON object for card attributes (e.g., dimensions).": "JSON object for card attributes (e.g., dimensions).",
"JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).": "JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).",
"The ID of the generation job (from the \"Generate Gamma\" action).": "The ID of the generation job (from the \"Generate Gamma\" action).",
"Generate": "Generate",
"Condense": "Condense",
"Preserve": "Preserve",
"Presentation": "Presentation",
"Document": "Document",
"Social": "Social",
"Auto": "Auto",
"Input Text Breaks": "Input Text Breaks",
"PDF": "PDF",
"PowerPoint (PPTX)": "PowerPoint (PPTX)"
}

View File

@@ -0,0 +1,23 @@
import { createPiece } from "@activepieces/pieces-framework";
import { PieceCategory } from "@activepieces/shared";
import { gammaAuth } from "./lib/common/auth";
import { generateGamma } from "./lib/actions/generate-gamma";
import { getGeneration } from "./lib/actions/get-generation";
export const gamma = createPiece({
displayName: "Gamma",
auth: gammaAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: "https://cdn.activepieces.com/pieces/gamma.png",
authors: ['Pranith124'],
description: "An AI-powered design partner that helps users generate presentations, documents, social media posts, cards, etc., via natural language.",
categories: [
PieceCategory.CONTENT_AND_FILES,
PieceCategory.ARTIFICIAL_INTELLIGENCE
],
actions: [
generateGamma,
getGeneration
],
triggers: [],
});

View File

@@ -0,0 +1,162 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { gammaAuth } from '../common/auth';
export const generateGamma = createAction({
auth: gammaAuth,
name: 'generateGamma',
displayName: 'Generate Gamma',
description: 'Create a new Gamma generation job.',
props: {
inputText: Property.LongText({
displayName: 'Input Text',
description:
'Text used to generate your gamma (1-750,000 characters).',
required: true,
}),
textMode: Property.StaticDropdown({
displayName: 'Text Mode',
description: 'How you want your inputText to be modified.',
required: false,
options: {
options: [
{ label: 'Generate', value: 'generate' },
{ label: 'Condense', value: 'condense' },
{ label: 'Preserve', value: 'preserve' },
],
},
}),
format: Property.StaticDropdown({
displayName: 'Format',
description: 'The type of artifact you want to create.',
required: false,
options: {
options: [
{ label: 'Presentation', value: 'presentation' },
{ label: 'Document', value: 'document' },
{ label: 'Social', value: 'social' },
],
},
}),
themeName: Property.ShortText({
displayName: 'Theme Name',
description:
'The theme from Gamma to be used. Defaults to workspace default.',
required: false,
}),
numCards: Property.Number({
displayName: 'Number of Cards',
description:
'How many cards to create (default 10). Pro: 1-50, Ultra: 1-75.',
required: false,
}),
cardSplit: Property.StaticDropdown({
displayName: 'Card Split',
description: "How your content will be divided into cards. Use '---' in text for breaks.",
required: false,
options: {
options: [
{ label: 'Auto', value: 'auto' },
{ label: 'Input Text Breaks', value: 'inputTextBreaks' },
],
},
}),
additionalInstructions: Property.LongText({
displayName: 'Additional Instructions',
description:
'Extra specifications about the desired content and layouts (1-500 characters).',
required: false,
}),
exportAs: Property.StaticDropdown({
displayName: 'Export As',
description: 'Additional file types for saving your gamma.',
required: false,
options: {
placeholder: "Don't export",
options: [
{ label: 'PDF', value: 'pdf' },
{ label: 'PowerPoint (PPTX)', value: 'pptx' },
],
},
}),
textOptions: Property.Json({
displayName: 'Text Options',
description:
'JSON object for text attributes (e.g., amount, tone, audience, language).',
required: false,
defaultValue: {},
}),
imageOptions: Property.Json({
displayName: 'Image Options',
description:
'JSON object for image attributes (e.g., source, model, style).',
required: false,
defaultValue: {},
}),
cardOptions: Property.Json({
displayName: 'Card Options',
description: 'JSON object for card attributes (e.g., dimensions).',
required: false,
defaultValue: {},
}),
sharingOptions: Property.Json({
displayName: 'Sharing Options',
description:
'JSON object for sharing attributes (e.g., workspaceAccess, externalAccess).',
required: false,
defaultValue: {},
}),
},
async run(context) {
const {
inputText,
textMode,
format,
themeName,
numCards,
cardSplit,
additionalInstructions,
exportAs,
textOptions,
imageOptions,
cardOptions,
sharingOptions,
} = context.propsValue;
const body: Record<string, unknown> = {
inputText,
};
if (textMode) body['textMode'] = textMode;
if (format) body['format'] = format;
if (themeName) body['themeName'] = themeName;
if (numCards) body['numCards'] = numCards;
if (cardSplit) body['cardSplit'] = cardSplit;
if (additionalInstructions)
body['additionalInstructions'] = additionalInstructions;
if (exportAs) body['exportAs'] = exportAs;
if (textOptions && Object.keys(textOptions).length > 0)
body['textOptions'] = textOptions;
if (imageOptions && Object.keys(imageOptions).length > 0)
body['imageOptions'] = imageOptions;
if (cardOptions && Object.keys(cardOptions).length > 0)
body['cardOptions'] = cardOptions;
if (sharingOptions && Object.keys(sharingOptions).length > 0)
body['sharingOptions'] = sharingOptions;
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://public-api.gamma.app/v0.2/generations',
headers: {
'X-API-KEY': context.auth.props.apiKey,
'Content-Type': 'application/json',
},
body: body,
});
return response.body;
},
});

View File

@@ -0,0 +1,34 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { gammaAuth } from '../common/auth';
export const getGeneration = createAction({
auth: gammaAuth,
name: 'getGeneration',
displayName: 'Get Generation',
description: 'Given a Generation ID, fetch the status, outputs, metadata, etc.',
props: {
generationId: Property.ShortText({
displayName: 'Generation ID',
description: 'The ID of the generation job (from the "Generate Gamma" action).',
required: true,
}),
},
async run(context) {
const { generationId } = context.propsValue;
const apiKey = context.auth.props.apiKey;
const response = await httpClient.sendRequest({
method: HttpMethod.GET,
url: `https://public-api.gamma.app/v0.2/generations/${generationId}`,
headers: {
'X-API-KEY': apiKey,
'accept': 'application/json',
},
});
return response.body;
},
});

View File

@@ -0,0 +1,50 @@
import { PieceAuth } from "@activepieces/pieces-framework";
import { HttpError, HttpMethod, httpClient } from "@activepieces/pieces-common";
const markdownDescription = `
Follow these steps to get your Gamma API Key:
1. Log in to your Gamma account. You must have a **Pro or Ultra plan** to access the API.
2. Navigate to **Settings & Members** (click your workspace name in the top-left).
3. Go to the **API Key** tab.
4. Click **Create API key** and give it a name (e.g., "Activepieces").
5. Copy the key (it starts with \`sk-gamma-\`) and paste it below.
**Direct Link to API Settings:** [**https://gamma.app/settings/api**](https://gamma.app/settings/api)
`;
export const gammaAuth = PieceAuth.CustomAuth({
description: markdownDescription,
required: true,
props: {
apiKey: PieceAuth.SecretText({
displayName: "API Key",
description: "Paste your API key here.",
required: true,
}),
},
async validate(auth) {
const apiKey = auth.auth.apiKey;
try {
await httpClient.sendRequest({
method: HttpMethod.GET,
url: 'https://public-api.gamma.app/v0.2/generations/1',
headers: {
'X-API-KEY': apiKey,
},
});
return { valid: true };
} catch (e) {
if (e instanceof HttpError) {
if (e.response.status === 404) {
return { valid: true };
}
if (e.response.status === 401) {
return { valid: false, error: 'Invalid API Key' };
}
}
return { valid: false, error: 'Failed to connect to Gamma API' };
}
},
});

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