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,35 @@
{
"Open source alternative to Google Analytics": "Open Source Alternative zu Google Analytics",
"Matomo Domain": "Piwik-Domain",
"Token Auth": "Token-Auh",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "Die Domäne Ihres Matomo-Kontos: https://matomo.example.com",
"The Token Auth key from your Matomo account": "Der Token Auth Schlüssel von Ihrem Matomo Konto",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "Die Site-ID, die mit dieser Verbindung verknüpft wird. Site-IDs finden Sie auf der Hauptseite.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthentifizieren Sie sich mit Matomo.\n\nIhre Matomo Domain ist die URL Ihres Matomo Accounts, z.B. https://matomo.example. om\n\nIhr Token Auth Schlüssel finden Sie in Ihrem Matomo Konto unter Einstellungen > API.\n\nIhre Website-ID finden Sie in Ihrem Matomo-Konto unter Administration > Websites.\n",
"Add Annotation": "Anmerkung hinzufügen",
"Custom API Call": "Eigener API-Aufruf",
"Add an annotation to a Matomo site": "Eine Anmerkung zu einer Matomo-Seite hinzufügen",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Note": "Notiz",
"Date": "Datum",
"Starred": "Markiert",
"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 note to add": "Die Notiz hinzufügen",
"The date to add the note to. Format: YYYY-MM-DD": "Das Datum, zu dem die Notiz hinzugefügt werden soll. Format: JJJJ-MM-TT",
"Whether or not the note should be starred": "Ob die Notiz markiert werden soll oder nicht",
"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,35 @@
{
"Open source alternative to Google Analytics": "Alternativa de código abierto a Google Analytics",
"Matomo Domain": "Dominio Matomo",
"Token Auth": "Autorización del Token",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "El dominio de su cuenta Matomo: https://matomo.example.com",
"The Token Auth key from your Matomo account": "La clave de autenticación del token de su cuenta de Matomo",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "El ID del sitio que se asociará a esta conexión. ID del sitio puede encontrarse en la página principal de sitios web.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Añadir Anuncio",
"Custom API Call": "Llamada API personalizada",
"Add an annotation to a Matomo site": "Añadir una anotación a un sitio de Matomo",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Note": "Nota",
"Date": "Fecha",
"Starred": "Favoritos",
"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 note to add": "La nota a añadir",
"The date to add the note to. Format: YYYY-MM-DD": "La fecha a la que agregar la nota. Formato: AAA-MM-DD",
"Whether or not the note should be starred": "Si la nota debe o no ser protagonizada",
"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,35 @@
{
"Open source alternative to Google Analytics": "Alternative Open Source à Google Analytics",
"Matomo Domain": "Domaine Matomo",
"Token Auth": "Authentification du jeton",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "Le domaine de votre compte Matomo : https://matomo.example.com",
"The Token Auth key from your Matomo account": "La clé d'authentification du jeton de votre compte Matomo",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "L'identifiant du site qui sera associé à cette connexion. Les identifiants du site peuvent être trouvés sur la page principale des sites Web.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Ajouter une annotation",
"Custom API Call": "Appel API personnalisé",
"Add an annotation to a Matomo site": "Ajouter une annotation à un site Matomo",
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
"Note": "Note",
"Date": "Date",
"Starred": "Favoris",
"Method": "Méthode",
"Headers": "En-têtes",
"Query Parameters": "Paramètres de requête",
"Body": "Corps",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'attente (en secondes)",
"The note to add": "La note à ajouter",
"The date to add the note to. Format: YYYY-MM-DD": "La date à laquelle la note doit être ajoutée. Format: AAAA-MM-JJ",
"Whether or not the note should be starred": "Si oui ou non la note doit être mise en vedette",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "OBTENIR",
"POST": "POSTER",
"PATCH": "PATCH",
"PUT": "EFFACER",
"DELETE": "SUPPRIMER",
"HEAD": "TÊTE"
}

View File

@@ -0,0 +1,35 @@
{
"Open source alternative to Google Analytics": "Google Analyticsに代わるオープンソース",
"Matomo Domain": "的茂藩",
"Token Auth": "トークン認証",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "Matomoアカウントのドメイン: https://matomo.example.com",
"The Token Auth key from your Matomo account": "Matomoアカウントからのトークン認証キー",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "この接続に関連付けられるサイト ID 。サイト ID はメインの format@@0 ページにあります。",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "注釈を追加",
"Custom API Call": "カスタムAPI通話",
"Add an annotation to a Matomo site": "Matomoサイトにアテーションを追加",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Note": "メモ",
"Date": "日付",
"Starred": "スター付き",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"The note to add": "追加するノート",
"The date to add the note to. Format: YYYY-MM-DD": "ノートを追加する日付。書式: YYYY-MM-DD",
"Whether or not the note should be starred": "ノートをスターリングするかどうか",
"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,35 @@
{
"Open source alternative to Google Analytics": "Open source alternatief voor Google Analytics",
"Matomo Domain": "Matomo domein",
"Token Auth": "Token Authenticatie",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "Het domein van uw Matomo account: https://matomo.example.com",
"The Token Auth key from your Matomo account": "De Token Auth sleutel van uw Matomo account",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "De website-ID die gekoppeld wordt aan deze verbinding. Site IDs kunnen worden gevonden op de pagina met de hoofd websites.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nVerifieer met Matomo.\n\nUw Matomo domein is de URL van uw Matomo account, bijvoorbeeld https://matomo.a. om\n\nJe Token Auth sleutel is te vinden in je Matomo account onder Instellingen > API.\n\nUw Site ID kan worden gevonden in uw Matomo account onder Beheer > Websites.\n",
"Add Annotation": "Voeg aantekening toe",
"Custom API Call": "Custom API Call",
"Add an annotation to a Matomo site": "Voeg een aantekening toe aan een Matomo site",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Note": "Notitie",
"Date": "Datum:",
"Starred": "Sterren",
"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 note to add": "De toe te voegen notitie",
"The date to add the note to. Format: YYYY-MM-DD": "De datum waarop de notitie moet worden toegevoegd. Formaat: JJJJ-MM-DD",
"Whether or not the note should be starred": "Of de notitie al dan niet sterren moet zijn",
"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,35 @@
{
"Open source alternative to Google Analytics": "Alternativa de código aberto para o Google Analytics",
"Matomo Domain": "Domínio Matomo",
"Token Auth": "Autenticação de Token",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "O domínio da sua conta Matomo: https://matomo.example.com",
"The Token Auth key from your Matomo account": "A chave de Autenticação Token da sua conta Matomo",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "O ID do site que será associado a esta conexão. Os IDs de sites podem ser encontrados na página principal de sites.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Adicionar anotação",
"Custom API Call": "Chamada de API personalizada",
"Add an annotation to a Matomo site": "Adicionar uma anotação a um site Matomo",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Note": "Observação",
"Date": "Encontro",
"Starred": "Marcado",
"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 note to add": "A nota a adicionar",
"The date to add the note to. Format: YYYY-MM-DD": "A data para adicionar a nota. Formato: YYYY-MM-DD",
"Whether or not the note should be starred": "Se a nota deve ou não ser marcada como estrela",
"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,34 @@
{
"Matomo": "Matomo",
"Open source alternative to Google Analytics": "Вариант с открытым исходным кодом для Google Analytics",
"Matomo Domain": "Домен Matomo",
"Token Auth": "Аутентификация токена",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "Домен вашего аккаунта Matomo: https://matomo.example.com",
"The Token Auth key from your Matomo account": "Ключ аутентификации токена из вашего аккаунта Matomo",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "ID сайта, который будет связан с этим подключением. ID сайта может быть найден на главной странице сайта.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nАутентификация с помощью Matomo.\n\nВаш домен Matomo является URL-адресом вашей учетной записи Matomo, например https://matomo.example. om\n\nКлюч Авторизации Токена можно найти в вашем аккаунте Matomo в меню Настройки > API.\n\nВаш ID сайта можно найти в учетной записи Matomo в разделе Администрирование > Сайты.\n",
"Add Annotation": "Добавить аннотацию",
"Custom API Call": "Пользовательский вызов API",
"Add an annotation to a Matomo site": "Добавить аннотацию на сайт Matomo",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Note": "Примечание",
"Date": "Дата",
"Starred": "Помеченные",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"The note to add": "Добавляемая заметка",
"The date to add the note to. Format: YYYY-MM-DD": "Дата добавления примечания. Формат: ГГГГ-ММ-ДД",
"Whether or not the note should be starred": "Должна ли заметка быть отмечена",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,35 @@
{
"Open source alternative to Google Analytics": "Open source alternative to Google Analytics",
"Matomo Domain": "Matomo Domain",
"Token Auth": "Token Auth",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "The domain of your Matomo account: https://matomo.example.com",
"The Token Auth key from your Matomo account": "The Token Auth key from your Matomo account",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Add Annotation",
"Custom API Call": "Custom API Call",
"Add an annotation to a Matomo site": "Add an annotation to a Matomo site",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Note": "Note",
"Date": "Date",
"Starred": "Starred",
"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 note to add": "The note to add",
"The date to add the note to. Format: YYYY-MM-DD": "The date to add the note to. Format: YYYY-MM-DD",
"Whether or not the note should be starred": "Whether or not the note should be starred",
"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,34 @@
{
"Matomo": "Matomo",
"Open source alternative to Google Analytics": "Open source alternative to Google Analytics",
"Matomo Domain": "Matomo Domain",
"Token Auth": "Token Auth",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "The domain of your Matomo account: https://matomo.example.com",
"The Token Auth key from your Matomo account": "The Token Auth key from your Matomo account",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Add Annotation",
"Custom API Call": "Custom API Call",
"Add an annotation to a Matomo site": "Add an annotation to a Matomo site",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Note": "Note",
"Date": "Date",
"Starred": "Starred",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"The note to add": "The note to add",
"The date to add the note to. Format: YYYY-MM-DD": "The date to add the note to. Format: YYYY-MM-DD",
"Whether or not the note should be starred": "Whether or not the note should be starred",
"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,35 @@
{
"Open source alternative to Google Analytics": "Open source alternative to Google Analytics",
"Matomo Domain": "Matomo Domain",
"Token Auth": "Token Auth",
"Site ID": "Site ID",
"The domain of your Matomo account: https://matomo.example.com": "The domain of your Matomo account: https://matomo.example.com",
"The Token Auth key from your Matomo account": "The Token Auth key from your Matomo account",
"The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.": "The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.",
"\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n": "\nAuthenticate with Matomo.\n\nYour Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com\n\nYour Token Auth key can be found in your Matomo account under Settings > API.\n\nYour Site ID can be found in your Matomo account under Administration > Websites.\n",
"Add Annotation": "Add Annotation",
"Custom API Call": "自定义 API 呼叫",
"Add an annotation to a Matomo site": "Add an annotation to a Matomo site",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Note": "说明",
"Date": "Date",
"Starred": "Starred",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"The note to add": "The note to add",
"The date to add the note to. Format: YYYY-MM-DD": "The date to add the note to. Format: YYYY-MM-DD",
"Whether or not the note should be starred": "Whether or not the note should be starred",
"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,29 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { createPiece } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { addAnnotationAction } from './lib/actions/add-annotation';
import { matomoAuth } from './lib/auth';
export const matomo = createPiece({
displayName: 'Matomo',
description: 'Open source alternative to Google Analytics',
auth: matomoAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/matomo.png',
categories: [PieceCategory.BUSINESS_INTELLIGENCE],
authors: ["joeworkman","kishanprmr","MoShizzle","abuaboud"],
actions: [
addAnnotationAction,
createCustomApiCallAction({
baseUrl: (auth) => (auth?.props .domain ?? ''),
auth: matomoAuth,
authMapping: async (auth) => ({
Authorization: `Bearer ${(auth ).props .tokenAuth}`,
}),
}),
],
triggers: [],
});
// Matomo API Docs: https://developer.matomo.org/api-reference/reporting-api

View File

@@ -0,0 +1,34 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { addAnnotation } from '../api';
import { matomoAuth } from '../auth';
export const addAnnotationAction = createAction({
name: 'add_annotation',
auth: matomoAuth,
displayName: 'Add Annotation',
description: 'Add an annotation to a Matomo site',
props: {
note: Property.ShortText({
displayName: 'Note',
description: 'The note to add',
required: true,
}),
date: Property.DateTime({
displayName: 'Date',
description: 'The date to add the note to. Format: YYYY-MM-DD',
required: true,
}),
starred: Property.Checkbox({
displayName: 'Starred',
description: 'Whether or not the note should be starred',
required: true,
}),
},
async run(context) {
return await addAnnotation(context.auth.props, {
note: context.propsValue.note,
date: context.propsValue.date,
starred: context.propsValue.starred ? '1' : '0',
});
},
});

View File

@@ -0,0 +1,54 @@
import {
httpClient,
HttpMethod,
HttpRequest,
QueryParams,
} from '@activepieces/pieces-common';
import { MatomoAuthType } from './auth';
const matomoAPI = async (
api : string,
auth : MatomoAuthType,
queryParams : QueryParams = {}
) => {
queryParams['module'] = 'API';
queryParams['format'] = 'JSON';
queryParams['method'] = api;
queryParams['idSite'] = auth.siteId;
const formData = new FormData();
formData.append('token_auth', auth.tokenAuth);
const request: HttpRequest = {
method : HttpMethod.POST,
url : `${auth.domain}`,
queryParams : queryParams,
body : formData,
headers : {
'Content-Type': 'multipart/form-data',
},
};
const response = await httpClient.sendRequest(request);
if (
response.status !== 200 ||
(response.body['result'] && response.body['result'] === 'error')
) {
throw new Error(`Matomo API request failed: ${response.body['message']}`);
}
return {
success: true,
data: response.body,
};
};
export async function getVersion(auth: MatomoAuthType) {
const api = 'API.getMatomoVersion';
return matomoAPI(api, auth);
}
export async function addAnnotation(auth: MatomoAuthType, data: QueryParams) {
const api = 'Annotations.add';
return matomoAPI(api, auth, data);
}

View File

@@ -0,0 +1,75 @@
import {
PieceAuth,
Property,
} from '@activepieces/pieces-framework';
import { z } from 'zod';
import { propsValidation } from '@activepieces/pieces-common';
import { getVersion } from './api';
export type MatomoAuthType = {
tokenAuth: string;
domain: string;
siteId: string;
};
const description = `
Authenticate with Matomo.
Your Matomo domain is the URL of your Matomo account, e.g. https://matomo.example.com
Your Token Auth key can be found in your Matomo account under Settings > API.
Your Site ID can be found in your Matomo account under Administration > Websites.
`;
export const matomoAuth = PieceAuth.CustomAuth({
description: description,
props: {
domain: Property.ShortText({
displayName: 'Matomo Domain',
description:
'The domain of your Matomo account: https://matomo.example.com',
required: true,
}),
tokenAuth: PieceAuth.SecretText({
displayName: 'Token Auth',
description: 'The Token Auth key from your Matomo account',
required: true,
}),
siteId: Property.ShortText({
displayName: 'Site ID',
description:
'The site ID that will be associated to this connection. Site IDs can be found on the main Websites page.',
required: true,
}),
},
validate: async ({ auth }) => {
try {
await validateAuth(auth);
return {
valid: true,
};
} catch (e) {
return {
valid: false,
error: (e as Error)?.message,
};
}
},
required: true,
});
const validateAuth = async (auth: MatomoAuthType) => {
await propsValidation.validateZod(auth, {
domain: z.string().url(),
tokenAuth: z.string().regex(/^[a-zA-Z0-9]+$/),
siteId: z.string().regex(/^[0-9]+$/),
});
const response = await getVersion(auth);
if (response.success !== true) {
throw new Error(
'Authentication failed. Please check your setup and try again.'
);
}
};