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,40 @@
{
"Retable": "Retable",
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Workspace": "Workspace",
"Project": "Project",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "Project Name",
"Project Description": "Project Description",
"Project Color": "Project Color",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Verwandeln Sie Ihre Tabellenkalkulationen in intelligente Datenbank-Apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nUm Ihren API-Schlüssel zu erhalten, folgen Sie diesen Schritten:\n\n1. Gehen Sie zur Kontoübersicht, indem Sie auf Ihr Profilbild (oben rechts).\n2. Gehen Sie zum API-Abschnitt und aktivieren Sie den API-Schlüssel.\n3. Kopieren Sie API-Schlüssel.",
"Create Retable Record": "Retable Datensatz erstellen",
"Get Workspaces": "Arbeitsbereiche abrufen",
"Get Projects": "Projekte abrufen",
"Get Retables": "Retables holen",
"Create a Workspace": "Arbeitsbereich erstellen",
"Create a Project": "Projekt erstellen",
"Custom API Call": "Eigener API-Aufruf",
"Adds a record into a retable": "Fügt einen Eintrag in eine retable Tabelle hinzu",
"Gets all workspaces": "Ruft alle Arbeitsbereiche ab",
"Gets all projects in given workspace": "Ruft alle Projekte im angegebenen Arbeitsbereich ab",
"Gets all retables in given project": "Ruft alle Retables im angegebenen Projekt ab",
"Creates a workspace": "Erstellt einen Arbeitsbereich",
"Creates a project in the given workspace": "Erstellt ein Projekt im angegebenen Arbeitsbereich",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Workspace": "Arbeitsbereich",
"Project": "Projekt",
"Retable": "Retabel",
"Fields": "Felder",
"Workspace Name": "Name des Arbeitsbereichs",
"Workspace Description": "Beschreibung des Arbeitsbereiches",
"Project Name": "Projekt Name",
"Project Description": "Projektbeschreibung",
"Project Color": "Projekt-Farbe",
"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)",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Convierte tus hojas de cálculo en aplicaciones inteligentes de base de datos",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Crear registro removible",
"Get Workspaces": "Obtener espacios de trabajo",
"Get Projects": "Obtener Proyectos",
"Get Retables": "Obtener reajustes",
"Create a Workspace": "Crear un espacio de trabajo",
"Create a Project": "Crear un proyecto",
"Custom API Call": "Llamada API personalizada",
"Adds a record into a retable": "Añade un registro a una tabla",
"Gets all workspaces": "Obtiene todas las áreas de trabajo",
"Gets all projects in given workspace": "Obtiene todos los proyectos en un área de trabajo dada",
"Gets all retables in given project": "Obtiene todas las retablas en un proyecto dado",
"Creates a workspace": "Crea un área de trabajo",
"Creates a project in the given workspace": "Crea un proyecto en el área de trabajo dado",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Workspace": "Espacio de trabajo",
"Project": "Projekt",
"Retable": "Retornable",
"Fields": "Campos",
"Workspace Name": "Nombre del área de trabajo",
"Workspace Description": "Descripción del espacio de trabajo",
"Project Name": "Nombre del proyecto",
"Project Description": "Descripción del proyecto",
"Project Color": "Color del proyecto",
"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)",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Transformez vos feuilles de calcul en applications de base de données intelligentes",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Créer un enregistrement réutilisable",
"Get Workspaces": "Obtenir des espaces de travail",
"Get Projects": "Obtenir des projets",
"Get Retables": "Obtenir des objets de vente au détail",
"Create a Workspace": "Créer un espace de travail",
"Create a Project": "Créer un projet",
"Custom API Call": "Appel d'API personnalisé",
"Adds a record into a retable": "Ajoute un enregistrement dans une nouvelle table",
"Gets all workspaces": "Récupère tous les workspaces",
"Gets all projects in given workspace": "Obtient tous les projets dans un espace de travail donné",
"Gets all retables in given project": "Obtient tous les retables dans un projet donné",
"Creates a workspace": "Crée un espace de travail",
"Creates a project in the given workspace": "Crée un projet dans l'espace de travail donné",
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
"Workspace": "Espace de travail",
"Project": "Projet",
"Retable": "Récupération",
"Fields": "Champs",
"Workspace Name": "Nom de l'espace de travail",
"Workspace Description": "Description de l'espace de travail",
"Project Name": "Project Name",
"Project Description": "Description du projet",
"Project Color": "Couleur du projet",
"Method": "Méthode",
"Headers": "En-têtes",
"Query Parameters": "Paramètres de requête",
"Body": "Corps",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,40 @@
{
"Retable": "Retable",
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Workspace": "Workspace",
"Project": "Project",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "Project Name",
"Project Description": "Project Description",
"Project Color": "Project Color",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,40 @@
{
"Retable": "Retable",
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Workspace": "Workspace",
"Project": "Project",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "Project Name",
"Project Description": "Project Description",
"Project Color": "Project Color",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "スプレッドシートをスマートなデータベースアプリに変えましょう",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "リテイブル・レコードを作成",
"Get Workspaces": "ワークスペースを取得",
"Get Projects": "プロジェクトを取得",
"Get Retables": "リテイブルを取得",
"Create a Workspace": "ワークスペースを作成",
"Create a Project": "プロジェクトを作成",
"Custom API Call": "カスタムAPI通話",
"Adds a record into a retable": "リテーブルにレコードを追加",
"Gets all workspaces": "すべてのワークスペースを取得します",
"Gets all projects in given workspace": "指定されたワークスペースのすべてのプロジェクトを取得します。",
"Gets all retables in given project": "指定されたプロジェクト内のすべての再販を取得します。",
"Creates a workspace": "ワークスペースを作成",
"Creates a project in the given workspace": "指定されたワークスペースにプロジェクトを作成します",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Workspace": "ワークスペース",
"Project": "プロジェクト",
"Retable": "リテイブル",
"Fields": "フィールド",
"Workspace Name": "ワークスペース名",
"Workspace Description": "ワークスペースの説明",
"Project Name": "プロジェクト名",
"Project Description": "プロジェクトの説明",
"Project Color": "プロジェクトの色",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Verander uw spreadsheets in slimme database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nOm uw API-sleutel te verkrijgen, volg deze stappen:\n\n1. Ga naar Accountoverzicht door op uw profiel-pic (rechtsboven) te klikken.\n2. Ga naar de API sectie en schakel API key in.\n3. Kopieer API key.",
"Create Retable Record": "Retour Record aanmaken",
"Get Workspaces": "Download werkruimtes",
"Get Projects": "Ophalen projecten",
"Get Retables": "Krijg Retables",
"Create a Workspace": "Maak een werkruimte aan",
"Create a Project": "Maak een project aan",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Voegt een record toe in een retable",
"Gets all workspaces": "Haalt alle werkruimtes op",
"Gets all projects in given workspace": "Haalt alle projecten in de gegeven workspace op",
"Gets all retables in given project": "Haalt alle retables in een bepaald project op",
"Creates a workspace": "Maakt een werkruimte",
"Creates a project in the given workspace": "Maakt een project in de gegeven werkruimte",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Workspace": "werkruimte",
"Project": "Project",
"Retable": "Wisselbaar",
"Fields": "Velden",
"Workspace Name": "Naam werkruimte",
"Workspace Description": "Werkruimte Beschrijving",
"Project Name": "Projectnaam",
"Project Description": "Project beschrijving",
"Project Color": "Project kleur",
"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)",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Transforme suas planilhas em aplicativos inteligentes para banco de dados",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nPara obter sua chave de API, siga estes passos:\n\n1. Vá para a Visão Geral da Conta clicando em seu perfil-pic (top-right).\n2. Vá para seção de API e ative a chave da API.\n3. Copiar chave da API.",
"Create Retable Record": "Criar registro Retavel",
"Get Workspaces": "Obter áreas de trabalho",
"Get Projects": "Obter projetos",
"Get Retables": "Obter Retáveis",
"Create a Workspace": "Criar um workspace",
"Create a Project": "Criar um projeto",
"Custom API Call": "Chamada de API personalizada",
"Adds a record into a retable": "Adiciona um registro a uma tabela remessável",
"Gets all workspaces": "Obtém todos os espaços de trabalho",
"Gets all projects in given workspace": "Obtém todos os projetos no espaço de trabalho determinado",
"Gets all retables in given project": "Obtém todas as tabelas de um determinado projeto",
"Creates a workspace": "Cria um espaço de trabalho",
"Creates a project in the given workspace": "Cria um projeto no espaço de trabalho fornecido",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Workspace": "Workspace",
"Project": "Projecto",
"Retable": "Retornável",
"Fields": "campos",
"Workspace Name": "Nome do projeto",
"Workspace Description": "Descrição do Workspace",
"Project Name": "Nome do Projeto",
"Project Description": "Descrição do Projeto",
"Project Color": "Cor do Projeto",
"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)",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA"
}

View File

@@ -0,0 +1,40 @@
{
"Retable": "Стоянка",
"Turn your spreadsheets into smart database apps": "Превратите ваши электронные таблицы в умные приложения базы данных",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nДля получения API ключа выполните следующие действия:\n\n1. Перейдите в обзор аккаунта, нажав на ваш профиль пик (сверху справа).\n2. Перейдите в раздел API и включите API ключ.\n3. Скопируйте ключ API.",
"Create Retable Record": "Создать запись из таблицы",
"Get Workspaces": "Получить рабочие области",
"Get Projects": "Получить проекты",
"Get Retables": "Получить повторы",
"Create a Workspace": "Создать рабочую область",
"Create a Project": "Создать проект",
"Custom API Call": "Пользовательский вызов API",
"Adds a record into a retable": "Добавляет запись в таблицу",
"Gets all workspaces": "Получает все рабочие области",
"Gets all projects in given workspace": "Получает все проекты в данном проекте",
"Gets all retables in given project": "Получает все retables в данном проекте",
"Creates a workspace": "Создать рабочую область",
"Creates a project in the given workspace": "Создает проект в данном проекте",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Workspace": "Рабочая область",
"Project": "Проект",
"Fields": "Поля",
"Workspace Name": "Название проекта",
"Workspace Description": "Описание проекта",
"Project Name": "Название проекта",
"Project Description": "Описание проекта",
"Project Color": "Цвет проекта",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Workspace": "Workspace",
"Project": "Project",
"Retable": "Retable",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "Project Name",
"Project Description": "Project Description",
"Project Color": "Project Color",
"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)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,40 @@
{
"Retable": "Retable",
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "Custom API Call",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Workspace": "Workspace",
"Project": "Project",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "Project Name",
"Project Description": "Project Description",
"Project Color": "Project Color",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,42 @@
{
"Turn your spreadsheets into smart database apps": "Turn your spreadsheets into smart database apps",
"\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.": "\nTo obtain your API key, follow these steps:\n\n1. Go to Account Overview by clicking your profile-pic (top-right).\n2. Go to API section and enable API key.\n3. Copy API key.",
"Create Retable Record": "Create Retable Record",
"Get Workspaces": "Get Workspaces",
"Get Projects": "Get Projects",
"Get Retables": "Get Retables",
"Create a Workspace": "Create a Workspace",
"Create a Project": "Create a Project",
"Custom API Call": "自定义 API 呼叫",
"Adds a record into a retable": "Adds a record into a retable",
"Gets all workspaces": "Gets all workspaces",
"Gets all projects in given workspace": "Gets all projects in given workspace",
"Gets all retables in given project": "Gets all retables in given project",
"Creates a workspace": "Creates a workspace",
"Creates a project in the given workspace": "Creates a project in the given workspace",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Workspace": "Workspace",
"Project": "项目",
"Retable": "Retable",
"Fields": "Fields",
"Workspace Name": "Workspace Name",
"Workspace Description": "Workspace Description",
"Project Name": "项目名称",
"Project Description": "Project Description",
"Project Color": "Project Color",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色"
}

View File

@@ -0,0 +1,59 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { retableCreateProjectAction } from './lib/actions/create-project';
import { retableCreateWorkspaceAction } from './lib/actions/create-workspace';
import { retableGetAllProjectsAction } from './lib/actions/get-all-projects';
import { retableGetAllRetablesAction } from './lib/actions/get-all-retables';
import { retableGetAllWorkspacesAction } from './lib/actions/get-all-workspaces';
import { retableCreateRecordAction } from './lib/actions/insert-record';
import { retableCommon } from './lib/common';
const markdown = `
To obtain your API key, follow these steps:
1. Go to Account Overview by clicking your profile-pic (top-right).
2. Go to API section and enable API key.
3. Copy API key.`;
export const retableAuth = PieceAuth.SecretText({
displayName: 'API Key',
required: true,
description: markdown,
validate: async ({ auth }) => {
if (auth.startsWith('RTBLv1-')) {
return {
valid: true,
};
}
return {
valid: false,
error: 'Invalid API Key',
};
},
});
export const retable = createPiece({
displayName: 'Retable',
description: 'Turn your spreadsheets into smart database apps',
auth: retableAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/retable.png',
categories: [PieceCategory.PRODUCTIVITY],
authors: ["kishanprmr","MoShizzle","abuaboud"],
actions: [
retableCreateRecordAction,
retableGetAllWorkspacesAction,
retableGetAllProjectsAction,
retableGetAllRetablesAction,
retableCreateWorkspaceAction,
retableCreateProjectAction,
createCustomApiCallAction({
baseUrl: () => retableCommon.baseUrl,
auth: retableAuth,
authMapping: async (auth) => ({
ApiKey: auth.secret_text,
}),
}),
],
triggers: [],
});

View File

@@ -0,0 +1,44 @@
import { Property, createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableCreateProjectAction = createAction({
auth: retableAuth,
name: 'retable_create_project',
displayName: 'Create a Project',
description: 'Creates a project in the given workspace',
props: {
workspace_id: retableCommon.workspace_id(),
name: Property.ShortText({
displayName: 'Project Name',
required: true,
}),
desc: Property.LongText({
displayName: 'Project Description',
required: false,
}),
color: Property.ShortText({
displayName: 'Project Color',
required: false,
}),
},
async run(context) {
const { workspace_id, name, desc, color } = context.propsValue;
return (
await httpClient.sendRequest({
method: HttpMethod.POST,
url: `${retableCommon.baseUrl}/workspace/${workspace_id}/project`,
headers: {
ApiKey: context.auth.secret_text,
},
body: {
name: name,
description: desc,
color: color,
},
})
).body;
},
});

View File

@@ -0,0 +1,38 @@
import { Property, createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableCreateWorkspaceAction = createAction({
auth: retableAuth,
name: 'retable_create_workspace',
displayName: 'Create a Workspace',
description: 'Creates a workspace',
props: {
name: Property.ShortText({
displayName: 'Workspace Name',
required: true,
}),
desc: Property.LongText({
displayName: 'Workspace Description',
required: false,
}),
},
async run(context) {
const { name, desc } = context.propsValue;
return (
await httpClient.sendRequest({
method: HttpMethod.POST,
url: `${retableCommon.baseUrl}/workspace`,
headers: {
ApiKey: context.auth.secret_text,
},
body: {
name: name,
description: desc,
},
})
).body;
},
});

View File

@@ -0,0 +1,27 @@
import { createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableGetAllProjectsAction = createAction({
auth: retableAuth,
name: 'retable_get_projects',
displayName: 'Get Projects',
description: 'Gets all projects in given workspace',
props: {
workspace_id: retableCommon.workspace_id(),
},
async run(context) {
const { workspace_id } = context.propsValue;
return (
await httpClient.sendRequest({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/workspace/${workspace_id}/project`,
headers: {
ApiKey: context.auth.secret_text,
},
})
).body;
},
});

View File

@@ -0,0 +1,28 @@
import { createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableGetAllRetablesAction = createAction({
auth: retableAuth,
name: 'retable_get_retables',
displayName: 'Get Retables',
description: 'Gets all retables in given project',
props: {
workspace_id: retableCommon.workspace_id(),
project_id: retableCommon.project_id(),
},
async run(context) {
const { project_id } = context.propsValue;
return (
await httpClient.sendRequest({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/project/${project_id}/retable`,
headers: {
ApiKey: context.auth.secret_text,
},
})
).body;
},
});

View File

@@ -0,0 +1,24 @@
import { createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableGetAllWorkspacesAction = createAction({
auth: retableAuth,
name: 'retable_get_workspaces',
displayName: 'Get Workspaces',
description: 'Gets all workspaces',
props: {},
async run(context) {
return (
await httpClient.sendRequest({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/workspace`,
headers: {
ApiKey: context.auth.secret_text,
},
})
).body;
},
});

View File

@@ -0,0 +1,46 @@
import { createAction } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { retableAuth } from '../..';
import { retableCommon } from '../common';
export const retableCreateRecordAction = createAction({
auth: retableAuth,
name: 'retable_create_record',
displayName: 'Create Retable Record',
description: 'Adds a record into a retable',
props: {
workspace_id: retableCommon.workspace_id(),
project_id: retableCommon.project_id(),
retable_id: retableCommon.retable_id(),
fields: retableCommon.fields,
},
async run(context) {
const { retable_id } = context.propsValue;
const fields = context.propsValue.fields;
const outputData = Object.entries(fields)
.map(([column_id, cell_value]) => {
if (cell_value !== '') {
return {
column_id,
cell_value,
};
}
return null; // Skip empty cell values
})
.filter((entry) => entry !== null);
return (
await httpClient.sendRequest({
method: HttpMethod.POST,
url: `${retableCommon.baseUrl}/retable/${retable_id}/data`,
headers: {
ApiKey: context.auth.secret_text,
},
body: {
data: [{ columns: outputData }],
},
})
).body;
},
});

View File

@@ -0,0 +1,169 @@
import { Property, DynamicPropsValue } from '@activepieces/pieces-framework';
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import {
RetableFieldMapping,
RetableField,
RetableNotSupportedFields,
RetableWorkspace,
RetableProject,
RetableTable,
} from './models';
import { isNil } from '@activepieces/shared';
import { retableAuth } from '../..';
export const retableCommon = {
baseUrl: 'https://api.retable.io/v1/public',
workspace_id: (required = true) =>
Property.Dropdown({
auth: retableAuth,
displayName: 'Workspace',
required,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account',
};
}
const response = await httpClient.sendRequest<{
data: {
workspaces: RetableWorkspace[];
};
}>({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/workspace`,
headers: {
ApiKey: auth.secret_text,
},
});
return {
disabled: false,
options: response.body.data.workspaces.map((workspace) => {
return {
label: workspace.name,
value: workspace.id,
};
}),
};
},
}),
project_id: (required = true) =>
Property.Dropdown({
auth: retableAuth,
displayName: 'Project',
required,
refreshers: ['workspace_id'],
options: async ({ auth, workspace_id }) => {
if (!auth || !workspace_id) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account and select workspace',
};
}
const response = await httpClient.sendRequest<{
data: {
projects: RetableProject[];
};
}>({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/workspace/${
workspace_id as string
}/project`,
headers: {
ApiKey: auth.secret_text,
},
});
return {
disabled: false,
options: response.body.data.projects.map((project) => {
return {
label: project.name,
value: project.id,
};
}),
};
},
}),
retable_id: (required = true) =>
Property.Dropdown({
auth: retableAuth,
displayName: 'Retable',
required,
refreshers: ['project_id'],
options: async ({ auth, project_id }) => {
if (!auth || !project_id) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account and select project',
};
}
const response = await httpClient.sendRequest<{
data: {
retables: RetableTable[];
};
}>({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/project/${
project_id as string
}/retable`,
headers: {
ApiKey: auth.secret_text,
},
});
return {
disabled: false,
options: response.body.data.retables.map((retable) => {
return {
label: retable.title,
value: retable.id,
};
}),
};
},
}),
fields: Property.DynamicProperties({
auth: retableAuth,
displayName: 'Fields',
required: true,
refreshers: ['retable_id'],
props: async ({ auth, retable_id }) => {
if (!auth || !retable_id) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account and select retable',
};
}
const fields: DynamicPropsValue = {};
const retable = await httpClient.sendRequest<{ data: RetableTable }>({
method: HttpMethod.GET,
url: `${retableCommon.baseUrl}/retable/${retable_id}`,
headers: {
ApiKey: auth as unknown as string,
},
});
retable.body.data.columns.forEach((field: RetableField) => {
if (!RetableNotSupportedFields.includes(field.type)) {
const params = {
displayName: field.title,
required: false,
};
if (isNil(RetableFieldMapping[field.type])) {
fields[field.column_id] = Property.ShortText({
...params,
});
} else {
fields[field.column_id] = RetableFieldMapping[field.type](params);
}
}
});
return fields;
},
}),
};

View File

@@ -0,0 +1,82 @@
import { Property } from '@activepieces/pieces-framework';
export interface RetableWorkspace {
id: string;
name: string;
}
export interface RetableProject {
id: string;
name: string;
}
export interface RetableField {
column_id: string;
title: string;
type: RetableFieldType;
created_at?: string;
}
export interface RetableTable {
id: string;
title: string;
description?: string;
columns: RetableField[];
project_id: string;
workspace_id: string;
}
export type RetableFieldType =
| 'url'
| 'updated_by'
// | 'Attachment'
// | 'Image'
| 'updated_at'
| 'created_by'
| 'created_at'
| 'user'
| 'url'
| 'formula'
| 'currency'
| 'phonenumber'
| 'email'
| 'color'
| 'calendar'
| 'dropdown'
| 'percent'
| 'checkbox'
| 'number'
| 'rating'
| 'text';
export const RetableFieldMapping = {
text: Property.ShortText,
updated_by: Property.ShortText,
updated_at: Property.ShortText,
created_by: Property.ShortText,
created_at: Property.ShortText,
user: Property.ShortText,
url: Property.ShortText,
formula: Property.ShortText,
rating: Property.ShortText,
dropdown: Property.ShortText,
percent: Property.ShortText,
email: Property.ShortText,
phonenumber: Property.ShortText,
currency: Property.ShortText,
color: Property.ShortText,
calendar: Property.ShortText,
checkbox: Property.Checkbox,
number: Property.ShortText,
};
export const RetableNotSupportedFields = [
'attachment',
'image',
'updated_by',
'updated_at',
'created_by',
'created_at',
'user',
'vote',
'qr_code',
'richtext',
];