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,58 @@
{
"Unified CRM for Marketing, Service & Payments": "Unified CRM für Marketing, Service & Zahlungen",
"API Key": "API-Schlüssel",
"Workspace ID": "Arbeitsbereich-ID",
"Channel ID": "Kanal-ID",
"Bird API Access Key from Settings > Security > Access Keys": "Vogel-API-Zugangsschlüssel unter Einstellungen > Sicherheit > Zugriffsschlüssel",
"Bird Workspace ID found in your workspace URL": "Vogel Arbeitsbereich-ID in Ihrer Arbeitsbereich-URL gefunden",
"Your SMS channel ID from Bird dashboard": "Ihre SMS-Kanal-ID vom Vogel-Dashboard",
"Send SMS": "SMS senden",
"List Messages": "Nachrichten auflisten",
"Custom API Call": "Eigener API-Aufruf",
"Sends an SMS message via Bird Channels API.": "Sendet eine SMS-Nachricht über die Bird-Channel-API.",
"Lists an Messages via Bird Channels API": "Listet eine Nachricht über die Vogel-Channel-API",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Recipient": "Empfänger",
"Message": "Nachricht",
"Reference": "Referenz",
"Scheduled For (UTC timestamp)": "Geplant für (UTC-Zeitstempel)",
"Status": "Status",
"Start Date and Time": "Startdatum und Uhrzeit",
"End Date and Time": "Enddatum und -zeit",
"Next Page Token": "Nächstes Seiten-Token",
"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 phone number to send the message to (with country code)": "Die Telefonnummer, an die die Nachricht gesendet wird (mit Landesvorwahl)",
"The body of the SMS message": "Der Text der SMS-Nachricht",
"Your own identifier for the message (optional)": "Ihre eigene Kennung für die Nachricht (optional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Nachrichten, die zu einem bestimmten Datum gesendet werden sollen, zB. 2025-04-27T15:08:18.613Z. Falls nicht gesetzt, wird die Nachricht sofort versendet.",
"The status of the messages to filter by (select \"All\" for all statuses)": "Der Status der zu filternden Nachrichten (wählen Sie \"Alle\" für alle Status)",
"The start date and time (in UTC) to filter messages": "Das Startdatum und die Uhrzeit (in UTC), um Nachrichten zu filtern",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "Das Enddatum und die Uhrzeit (in UTC), um Nachrichten zu filtern, sollte 7 Tage nach dem Startdatum nicht überschreiten",
"Token for pagination to fetch next set of results after 1000 messages": "Token für die Seitennummerierung zum Abrufen der nächsten Ergebnismenge nach 1000 Nachrichten",
"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..",
"All": "Alle",
"Pending": "Ausstehend",
"Accepted": "Akzeptiert",
"Rejected": "Abgelehnt",
"Processing": "Verarbeitung",
"Scheduled": "Geplant",
"Sent": "Gesendet",
"Sending Failed": "Senden fehlgeschlagen",
"Delivered": "Ausgestellt",
"Delivery Failed": "Lieferung fehlgeschlagen",
"Deleted": "Gelöscht",
"Skipped": "Übersprungen",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "CRM unificado para Marketing, Servicio y Pagos",
"API Key": "Clave API",
"Workspace ID": "ID del área de trabajo",
"Channel ID": "ID del canal",
"Bird API Access Key from Settings > Security > Access Keys": "Clave de acceso Bird API desde Ajustes > Seguridad > Claves de acceso",
"Bird Workspace ID found in your workspace URL": "ID de espacio de aves encontrado en la URL de tu espacio de trabajo",
"Your SMS channel ID from Bird dashboard": "Tu ID de canal SMS desde el panel de control de aves",
"Send SMS": "Enviar SMS",
"List Messages": "Listar mensajes",
"Custom API Call": "Llamada API personalizada",
"Sends an SMS message via Bird Channels API.": "Envía un mensaje SMS a través de la API de Canales de Bird.",
"Lists an Messages via Bird Channels API": "Muestra un mensaje a través de la API de canales de Bird",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Recipient": "Destinatario",
"Message": "Mensaje",
"Reference": "Referencia",
"Scheduled For (UTC timestamp)": "Programado para (hora UTC)",
"Status": "Estado",
"Start Date and Time": "Fecha y hora de inicio",
"End Date and Time": "Fecha y hora de fin",
"Next Page Token": "Siguiente token de página",
"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 phone number to send the message to (with country code)": "El número de teléfono al que enviar el mensaje (con el código de país)",
"The body of the SMS message": "El cuerpo del mensaje SMS",
"Your own identifier for the message (optional)": "Tu propio identificador para el mensaje (opcional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Mensaje que se enviará a una fecha específica, por ejemplo, 2025-04-27T15:08:18.613Z. Si no se establece, el mensaje se enviará inmediatamente.",
"The status of the messages to filter by (select \"All\" for all statuses)": "El estado de los mensajes por los que filtrar (seleccionar \"Todos\" para todos los estados)",
"The start date and time (in UTC) to filter messages": "La fecha y hora de inicio (en UTC) para filtrar mensajes",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "La fecha y hora de fin (en UTC) para filtrar los mensajes, no debe exceder de 7 días desde la fecha de inicio",
"Token for pagination to fetch next set of results after 1000 messages": "Token para la paginación para obtener el siguiente conjunto de resultados después de 1000 mensajes",
"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.",
"All": "Todos",
"Pending": "Pendiente",
"Accepted": "Aceptado",
"Rejected": "Rechazado",
"Processing": "Procesando",
"Scheduled": "Programado",
"Sent": "Enviado",
"Sending Failed": "Fallo al enviar",
"Delivered": "Entregado",
"Delivery Failed": "Error de entrega",
"Deleted": "Eliminado",
"Skipped": "Omitido",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "CRM unifié pour le marketing, le service et les paiements",
"API Key": "Clé API",
"Workspace ID": "ID de l'espace de travail",
"Channel ID": "ID du canal",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API Clé d'accès depuis Paramètres > Sécurité > Clés d'accès",
"Bird Workspace ID found in your workspace URL": "ID de l'espace de travail oiseau trouvé dans l'URL de votre espace de travail",
"Your SMS channel ID from Bird dashboard": "Votre ID de canal SMS depuis le tableau de bord Bird",
"Send SMS": "Envoyer un SMS",
"List Messages": "Lister les messages",
"Custom API Call": "Appel API personnalisé",
"Sends an SMS message via Bird Channels API.": "Envoie un message SMS via l'API Bird Channels.",
"Lists an Messages via Bird Channels API": "Liste des messages via l'API Bird Channels",
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
"Recipient": "Destinataire",
"Message": "Message",
"Reference": "Référence",
"Scheduled For (UTC timestamp)": "Planifié pour (horodatage UTC)",
"Status": "Statut",
"Start Date and Time": "Date et heure de début",
"End Date and Time": "Date et heure de fin",
"Next Page Token": "Jeton de la page suivante",
"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 phone number to send the message to (with country code)": "Le numéro de téléphone auquel envoyer le message (avec l'indicatif du pays)",
"The body of the SMS message": "Le corps du message SMS",
"Your own identifier for the message (optional)": "Votre propre identifiant pour le message (facultatif)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Message à envoyer à une date spécifique par exemple 2025-04-27T15:08:18.613Z. Si non défini, le message sera envoyé immédiatement.",
"The status of the messages to filter by (select \"All\" for all statuses)": "Le statut des messages à filtrer par (sélectionnez \"Tout\" pour tous les statuts)",
"The start date and time (in UTC) to filter messages": "La date et l'heure de début (en UTC) pour filtrer les messages",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "La date et l'heure de fin (en UTC) pour filtrer les messages, ne doit pas dépasser 7 jours à partir de la date de début",
"Token for pagination to fetch next set of results after 1000 messages": "Jeton pour la pagination afin de récupérer le prochain ensemble de résultats après 1000 messages",
"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.",
"All": "Tous",
"Pending": "En attente",
"Accepted": "Accepté",
"Rejected": "Rejeté",
"Processing": "Traitement en cours",
"Scheduled": "Planifié",
"Sent": "Envoyé",
"Sending Failed": "L'envoi a échoué",
"Delivered": "Livré",
"Delivery Failed": "Échec de la livraison",
"Deleted": "Supprimé",
"Skipped": "Ignoré",
"GET": "OBTENIR",
"POST": "POSTER",
"PATCH": "PATCH",
"PUT": "EFFACER",
"DELETE": "SUPPRIMER",
"HEAD": "TÊTE"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "マーケティング、サービス、支払いのための統合CRM",
"API Key": "API キー",
"Workspace ID": "ワークスペース ID",
"Channel ID": "チャンネル ID",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API Access Key from Settings > Security > Access Key",
"Bird Workspace ID found in your workspace URL": "ワークスペースURLにバードワークスペースIDが見つかりました",
"Your SMS channel ID from Bird dashboard": "Bird ダッシュボードからの SMS チャンネル ID",
"Send SMS": "SMSの送信",
"List Messages": "メッセージの一覧",
"Custom API Call": "カスタムAPI通話",
"Sends an SMS message via Bird Channels API.": "Bird Channels API経由でSMSメッセージを送信します。",
"Lists an Messages via Bird Channels API": "Bird Channels API経由のメッセージ一覧",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Recipient": "受信者",
"Message": "メッセージ",
"Reference": "参照",
"Scheduled For (UTC timestamp)": "スケジュールされた時間 (UTC timestamp)",
"Status": "ステータス",
"Start Date and Time": "開始日時",
"End Date and Time": "終了日時",
"Next Page Token": "次のページトークン",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"The phone number to send the message to (with country code)": "メッセージを送信する電話番号 (国コード付き)",
"The body of the SMS message": "SMSメッセージの本文",
"Your own identifier for the message (optional)": "メッセージのあなた自身の識別子 (オプション)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "特定の日時に送信されるメッセージ。たとえば、2025-04-27T15:08:08:18.613Z。設定されていない場合、メッセージは直ちに送信されます。",
"The status of the messages to filter by (select \"All\" for all statuses)": "フィルタリングするメッセージのステータス (すべてのステータスで「すべて」を選択)",
"The start date and time (in UTC) to filter messages": "メッセージをフィルタリングする開始日時 (UTC)",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "メッセージをフィルタリングする終了日時UTCは開始日から7日間を超えてはいけません",
"Token for pagination to fetch next set of results after 1000 messages": "1000通のメッセージの後に次の結果セットを取得するためのページネーション用トークン",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"All": "すべて",
"Pending": "処理待ち",
"Accepted": "承認済み",
"Rejected": "拒否",
"Processing": "処理中",
"Scheduled": "スケジュール済み",
"Sent": "送信済み",
"Sending Failed": "送信に失敗しました",
"Delivered": "配送済み",
"Delivery Failed": "配信失敗",
"Deleted": "削除しました",
"Skipped": "スキップ",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "Gecombineerde CRM voor Marketing, Service & Betalingen",
"API Key": "API Sleutel",
"Workspace ID": "Werkruimte ID",
"Channel ID": "Kanaal ID",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API toegangssleutel vanuit Instellingen > Beveiliging > Toegangstoets",
"Bird Workspace ID found in your workspace URL": "Vogel werkruimte ID gevonden in uw workspace URL",
"Your SMS channel ID from Bird dashboard": "Uw SMS kanaal ID vanaf het Bird dashboard",
"Send SMS": "Sms verzenden",
"List Messages": "Lijst van berichten",
"Custom API Call": "Custom API Call",
"Sends an SMS message via Bird Channels API.": "Stuurt een SMS-bericht via de API van vogelkanalen.",
"Lists an Messages via Bird Channels API": "Geeft een bericht op via de API van Vogel Kanalen",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Recipient": "Ontvanger",
"Message": "bericht",
"Reference": "Referentie",
"Scheduled For (UTC timestamp)": "Gepland voor (UTC timestamp)",
"Status": "status",
"Start Date and Time": "Startdatum en -tijd",
"End Date and Time": "Eind datum en tijd",
"Next Page Token": "Volgende Pagina Token",
"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 phone number to send the message to (with country code)": "Het telefoonnummer om het bericht naar te sturen (met landcode)",
"The body of the SMS message": "Het tekstgedeelte van het SMS-bericht",
"Your own identifier for the message (optional)": "Uw eigen identificatie voor het bericht (optioneel)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Bericht verzonden op een specifieke datetime bijv. 2025-04-27T15:08:18.613Z. Indien niet ingesteld wordt het bericht onmiddellijk verzonden.",
"The status of the messages to filter by (select \"All\" for all statuses)": "De status van de berichten waarop u wilt filteren (selecteer \"Alle\" voor alle statussen)",
"The start date and time (in UTC) to filter messages": "De startdatum en -tijd (in UTC) om berichten te filteren",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "De einddatum en tijd (in UTC) om berichten te filteren, mag niet meer dan 7 dagen vanaf de startdatum",
"Token for pagination to fetch next set of results after 1000 messages": "Token voor paginering om volgende reeks resultaten op te halen na 1000 berichten",
"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..",
"All": "Allemaal",
"Pending": "In behandeling",
"Accepted": "Geaccepteerd",
"Rejected": "Geweigerd",
"Processing": "Verwerken",
"Scheduled": "Gepland",
"Sent": "Verzonden",
"Sending Failed": "Verzenden mislukt",
"Delivered": "Geleverd",
"Delivery Failed": "Aflevering mislukt",
"Deleted": "Verwijderd",
"Skipped": "Overgeslagen",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "CRM unificado para Marketing, Serviço e Pagamentos",
"API Key": "Chave de API",
"Workspace ID": "ID do workspace",
"Channel ID": "ID do canal",
"Bird API Access Key from Settings > Security > Access Keys": "Chave de Acesso à API do Bird em Configurações > Segurança > Chaves de Acesso",
"Bird Workspace ID found in your workspace URL": "ID da área de trabalho do pássaro encontrado na URL do seu espaço de trabalho",
"Your SMS channel ID from Bird dashboard": "Seu ID de canal SMS do Painel de Aves",
"Send SMS": "Enviar SMS",
"List Messages": "Listar Mensagens",
"Custom API Call": "Chamada de API personalizada",
"Sends an SMS message via Bird Channels API.": "Envia uma mensagem SMS através da API Bird Channels.",
"Lists an Messages via Bird Channels API": "Lista uma mensagem via API de canais de aves",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Recipient": "Destinatário",
"Message": "mensagem",
"Reference": "Referência",
"Scheduled For (UTC timestamp)": "Agendado para o (UTC timestamp)",
"Status": "Estado",
"Start Date and Time": "Data e Hora Inicial",
"End Date and Time": "Data e Hora de Término",
"Next Page Token": "Token da Próxima Página",
"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 phone number to send the message to (with country code)": "O número de telefone para enviar a mensagem (com o código do país)",
"The body of the SMS message": "O corpo da mensagem SMS",
"Your own identifier for the message (optional)": "Seu próprio identificador para a mensagem (opcional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Mensagem a ser enviada em uma data específica, por exemplo. 2025-04-27T15:08:18.613Z. Se não for definido, a mensagem será enviada imediatamente.",
"The status of the messages to filter by (select \"All\" for all statuses)": "O status das mensagens a serem filtradas por (selecione \"Todos\" para todos os status)",
"The start date and time (in UTC) to filter messages": "A data e hora de início (em UTC) para filtrar mensagens",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "A data e hora de término (em UTC) para filtrar mensagens, não deve exceder 7 dias a partir da data de início",
"Token for pagination to fetch next set of results after 1000 messages": "Token para paginação para buscar o próximo conjunto de resultados após 1000 mensagens",
"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..",
"All": "TODOS",
"Pending": "Pendente",
"Accepted": "Aceitou",
"Rejected": "Rejeitados",
"Processing": "Processando",
"Scheduled": "Agendado",
"Sent": "Enviado",
"Sending Failed": "Falha ao enviar",
"Delivered": "Entregue",
"Delivery Failed": "Falha na entrega",
"Deleted": "Excluído",
"Skipped": "Ignorado",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA"
}

View File

@@ -0,0 +1,57 @@
{
"Bird": "Птица",
"Unified CRM for Marketing, Service & Payments": "Unified CRM for Marketing, Service & Payments",
"API Key": "Ключ API",
"Workspace ID": "ID проекта",
"Channel ID": "ID канала",
"Bird API Access Key from Settings > Security > Access Keys": "Ключ доступа к API Bird из настроек > Безопасность > Ключи доступа",
"Bird Workspace ID found in your workspace URL": "ID рабочего пространства птиц найден в вашем URL рабочей области",
"Your SMS channel ID from Bird dashboard": "Ваш SMS-канал ID из приборной панели",
"Send SMS": "Отправить СМС",
"List Messages": "Список сообщений",
"Custom API Call": "Пользовательский вызов API",
"Sends an SMS message via Bird Channels API.": "Отправляет SMS-сообщение через Bird Channels API.",
"Lists an Messages via Bird Channels API": "Список сообщений через API каналов птиц",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Recipient": "Получатель",
"Message": "Сообщение",
"Reference": "Артикул",
"Scheduled For (UTC timestamp)": "Запланировано на время (UTC)",
"Status": "Status",
"Start Date and Time": "Дата и время начала",
"End Date and Time": "Дата и время окончания",
"Next Page Token": "Следующий маркер страницы",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"The phone number to send the message to (with country code)": "Телефонный номер для отправки сообщения (с кодом страны)",
"The body of the SMS message": "Тело SMS сообщения",
"Your own identifier for the message (optional)": "Ваш собственный идентификатор для сообщения (необязательно)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Сообщение для отправки на определенную дату, например. 2025-04-27T15:08:18.613Z. Если не установлено, сообщение будет отправлено немедленно.",
"The status of the messages to filter by (select \"All\" for all statuses)": "Статус сообщений для фильтрации (выберите \"Все\" для всех статусов)",
"The start date and time (in UTC) to filter messages": "Дата и время начала (в UTC) для фильтрации сообщений",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "Дата и время окончания (в UTC) для фильтрации сообщений, не должны превышать 7 дней с даты начала",
"Token for pagination to fetch next set of results after 1000 messages": "Токен для пагинации для получения следующего набора результатов после 1000 сообщений",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"All": "Все",
"Pending": "В ожидании",
"Accepted": "Принято",
"Rejected": "Отклонено",
"Processing": "Обработка",
"Scheduled": "Запланированный",
"Sent": "Отправлено",
"Sending Failed": "Отправка не удалась",
"Delivered": "Доставлено",
"Delivery Failed": "Доставка не удалась",
"Deleted": "Удалено",
"Skipped": "Пропущено",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "Unified CRM for Marketing, Service & Payments",
"API Key": "API Key",
"Workspace ID": "Workspace ID",
"Channel ID": "Channel ID",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API Access Key from Settings > Security > Access Keys",
"Bird Workspace ID found in your workspace URL": "Bird Workspace ID found in your workspace URL",
"Your SMS channel ID from Bird dashboard": "Your SMS channel ID from Bird dashboard",
"Send SMS": "Send SMS",
"List Messages": "List Messages",
"Custom API Call": "Custom API Call",
"Sends an SMS message via Bird Channels API.": "Sends an SMS message via Bird Channels API.",
"Lists an Messages via Bird Channels API": "Lists an Messages via Bird Channels API",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Recipient": "Recipient",
"Message": "Message",
"Reference": "Reference",
"Scheduled For (UTC timestamp)": "Scheduled For (UTC timestamp)",
"Status": "Status",
"Start Date and Time": "Start Date and Time",
"End Date and Time": "End Date and Time",
"Next Page Token": "Next Page Token",
"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 phone number to send the message to (with country code)": "The phone number to send the message to (with country code)",
"The body of the SMS message": "The body of the SMS message",
"Your own identifier for the message (optional)": "Your own identifier for the message (optional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.",
"The status of the messages to filter by (select \"All\" for all statuses)": "The status of the messages to filter by (select \"All\" for all statuses)",
"The start date and time (in UTC) to filter messages": "The start date and time (in UTC) to filter messages",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "The end date and time (in UTC) to filter messages, should not exceed 7 days from start date",
"Token for pagination to fetch next set of results after 1000 messages": "Token for pagination to fetch next set of results after 1000 messages",
"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..",
"All": "All",
"Pending": "Pending",
"Accepted": "Accepted",
"Rejected": "Rejected",
"Processing": "Processing",
"Scheduled": "Scheduled",
"Sent": "Sent",
"Sending Failed": "Sending Failed",
"Delivered": "Delivered",
"Delivery Failed": "Delivery Failed",
"Deleted": "Deleted",
"Skipped": "Skipped",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,57 @@
{
"Bird": "Bird",
"Unified CRM for Marketing, Service & Payments": "Unified CRM for Marketing, Service & Payments",
"API Key": "API Key",
"Workspace ID": "Workspace ID",
"Channel ID": "Channel ID",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API Access Key from Settings > Security > Access Keys",
"Bird Workspace ID found in your workspace URL": "Bird Workspace ID found in your workspace URL",
"Your SMS channel ID from Bird dashboard": "Your SMS channel ID from Bird dashboard",
"Send SMS": "Send SMS",
"List Messages": "List Messages",
"Custom API Call": "Custom API Call",
"Sends an SMS message via Bird Channels API.": "Sends an SMS message via Bird Channels API.",
"Lists an Messages via Bird Channels API": "Lists an Messages via Bird Channels API",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Recipient": "Recipient",
"Message": "Message",
"Reference": "Reference",
"Scheduled For (UTC timestamp)": "Scheduled For (UTC timestamp)",
"Status": "Status",
"Start Date and Time": "Start Date and Time",
"End Date and Time": "End Date and Time",
"Next Page Token": "Next Page Token",
"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 phone number to send the message to (with country code)": "The phone number to send the message to (with country code)",
"The body of the SMS message": "The body of the SMS message",
"Your own identifier for the message (optional)": "Your own identifier for the message (optional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.",
"The status of the messages to filter by (select \"All\" for all statuses)": "The status of the messages to filter by (select \"All\" for all statuses)",
"The start date and time (in UTC) to filter messages": "The start date and time (in UTC) to filter messages",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "The end date and time (in UTC) to filter messages, should not exceed 7 days from start date",
"Token for pagination to fetch next set of results after 1000 messages": "Token for pagination to fetch next set of results after 1000 messages",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"All": "Tất cả",
"Pending": "Đang chờ",
"Accepted": "Accepted",
"Rejected": "Rejected",
"Processing": "Processing",
"Scheduled": "Scheduled",
"Sent": "Sent",
"Sending Failed": "Sending Failed",
"Delivered": "Delivered",
"Delivery Failed": "Delivery Failed",
"Deleted": "Deleted",
"Skipped": "Skipped",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,58 @@
{
"Unified CRM for Marketing, Service & Payments": "Unified CRM for Marketing, Service & Payments",
"API Key": "API 密钥",
"Workspace ID": "Workspace ID",
"Channel ID": "Channel ID",
"Bird API Access Key from Settings > Security > Access Keys": "Bird API Access Key from Settings > Security > Access Keys",
"Bird Workspace ID found in your workspace URL": "Bird Workspace ID found in your workspace URL",
"Your SMS channel ID from Bird dashboard": "Your SMS channel ID from Bird dashboard",
"Send SMS": "Send SMS",
"List Messages": "List Messages",
"Custom API Call": "自定义 API 呼叫",
"Sends an SMS message via Bird Channels API.": "Sends an SMS message via Bird Channels API.",
"Lists an Messages via Bird Channels API": "Lists an Messages via Bird Channels API",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Recipient": "Recipient",
"Message": "Message",
"Reference": "Reference",
"Scheduled For (UTC timestamp)": "Scheduled For (UTC timestamp)",
"Status": "状态",
"Start Date and Time": "Start Date and Time",
"End Date and Time": "End Date and Time",
"Next Page Token": "Next Page Token",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"The phone number to send the message to (with country code)": "The phone number to send the message to (with country code)",
"The body of the SMS message": "The body of the SMS message",
"Your own identifier for the message (optional)": "Your own identifier for the message (optional)",
"Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.": "Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.",
"The status of the messages to filter by (select \"All\" for all statuses)": "The status of the messages to filter by (select \"All\" for all statuses)",
"The start date and time (in UTC) to filter messages": "The start date and time (in UTC) to filter messages",
"The end date and time (in UTC) to filter messages, should not exceed 7 days from start date": "The end date and time (in UTC) to filter messages, should not exceed 7 days from start date",
"Token for pagination to fetch next set of results after 1000 messages": "Token for pagination to fetch next set of results after 1000 messages",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"All": "所有的",
"Pending": "待處理",
"Accepted": "Accepted",
"Rejected": "Rejected",
"Processing": "Processing",
"Scheduled": "Scheduled",
"Sent": "Sent",
"Sending Failed": "Sending Failed",
"Delivered": "Delivered",
"Delivery Failed": "Delivery Failed",
"Deleted": "Deleted",
"Skipped": "跳过",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色"
}

View File

@@ -0,0 +1,32 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { sendSMSAction } from './lib/actions/send-sms.action';
import { PieceCategory } from '@activepieces/shared';
import { listMessages } from './lib/actions/list-messages';
import { birdAuth, BirdAuthValue } from './lib/auth';
import { createCustomApiCallAction } from '@activepieces/pieces-common';
export const messagebird = createPiece({
displayName: 'Bird',
description: 'Unified CRM for Marketing, Service & Payments',
auth: birdAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/messagebird.png',
categories: [PieceCategory.MARKETING, PieceCategory.COMMUNICATION],
authors: ['kishanprmr', 'geekyme','prasanna2000-max'],
actions: [
sendSMSAction,
listMessages,
createCustomApiCallAction({
baseUrl: (auth)=> {
return auth ? 'https://api.bird.com/workspaces/' + (auth.props as BirdAuthValue).workspaceId : '';
},
auth: birdAuth,
authMapping: async (auth) => {
return {
Authorization: `Bearer ${(auth.props as BirdAuthValue).apiKey}`,
};
}
}),
],
triggers: [],
});

View File

@@ -0,0 +1,76 @@
import { birdAuth } from '../auth';
import { createAction, Property } from '@activepieces/pieces-framework';
import {
httpClient,
HttpMethod,
} from '@activepieces/pieces-common';
import dayjs from 'dayjs';
export const listMessages = createAction({
auth: birdAuth,
name: 'listMessages',
displayName: 'List Messages',
description: 'Lists an Messages via Bird Channels API',
props: {
status : Property.StaticDropdown({
displayName: 'Status',
description: 'The status of the messages to filter by (select "All" for all statuses)',
required: true,
options: {
options: [
{ label: 'All', value: 'all' },
{ label: 'Pending', value: 'pending' },
{ label: 'Accepted', value: 'accepted' },
{ label: 'Rejected', value: 'rejected' },
{ label: 'Processing', value: 'processing' },
{ label: 'Scheduled', value: 'scheduled' },
{ label: 'Sent', value: 'sent' },
{ label: 'Sending Failed', value: 'sending_failed' },
{ label: 'Delivered', value: 'delivered' },
{ label: 'Delivery Failed', value: 'delivery_failed' },
{ label: 'Deleted', value: 'deleted' },
{ label: 'Skipped', value: 'skipped' },
]},
}),
startAt: Property.DateTime({
displayName: 'Start Date and Time',
description: 'The start date and time (in UTC) to filter messages',
required: true,
defaultValue: dayjs().subtract(1, 'day').format('YYYY-MM-DDTHH:mm:ss[Z]'),
}),
endAt: Property.DateTime({
displayName: 'End Date and Time',
description: 'The end date and time (in UTC) to filter messages, should not exceed 7 days from start date',
required: true,
defaultValue: dayjs().format('YYYY-MM-DDTHH:mm:ss[Z]'),
}),
pageToken: Property.ShortText({
displayName: 'Next Page Token',
description: 'Token for pagination to fetch next set of results after 1000 messages',
required: false,
}),
},
async run(context) {
const { status, startAt, endAt, pageToken } = context.propsValue;
const auth = context.auth.props;
const response = await httpClient.sendRequest<any>({
method: HttpMethod.GET,
url: `https://api.bird.com/workspaces/${auth.workspaceId}/channels/${auth.channelId}/messages`,
queryParams: {
limit: '1000',
...(status === 'all' ? {} : { status: status }),
startAt: startAt,
endAt: endAt,
...(pageToken ? { pageToken: pageToken } : {}),
},
headers: {
'Authorization': `Bearer ${auth.apiKey}`,
'Content-Type': 'application/json',
},
});
return response.body
},
});

View File

@@ -0,0 +1,69 @@
import { birdAuth } from '../auth';
import { createAction, Property } from '@activepieces/pieces-framework';
import {
httpClient,
HttpMethod,
HttpRequest,
} from '@activepieces/pieces-common';
export const sendSMSAction = createAction({
auth: birdAuth,
name: 'send-sms',
displayName: 'Send SMS',
description: 'Sends an SMS message via Bird Channels API.',
props: {
recipient: Property.ShortText({
displayName: 'Recipient',
description: 'The phone number to send the message to (with country code)',
required: true,
}),
message: Property.LongText({
displayName: 'Message',
description: 'The body of the SMS message',
required: true,
}),
reference: Property.ShortText({
displayName: 'Reference',
description: 'Your own identifier for the message (optional)',
required: false,
}),
scheduledFor: Property.DateTime({
displayName: 'Scheduled For (UTC timestamp)',
description: 'Message to be sent at a specific datetime eg. 2025-04-27T15:08:18.613Z. If not set, the message will be sent immediately.',
required: false,
}),
},
async run(context) {
const { recipient, message, reference, scheduledFor } = context.propsValue;
const auth = context.auth.props;
// Format request for Bird Channels API
const request: HttpRequest = {
method: HttpMethod.POST,
url: `https://api.bird.com/workspaces/${auth.workspaceId}/channels/${auth.channelId}/messages`,
headers: {
'Authorization': `Bearer ${auth.apiKey}`,
'Content-Type': 'application/json'
},
body: {
receiver: {
contacts: [
{
identifierValue: recipient
}
]
},
body: {
type: 'text',
text: {
text: message
}
},
...(reference && { reference }),
...(scheduledFor && { scheduledFor }),
},
};
return await httpClient.sendRequest(request);
},
});

View File

@@ -0,0 +1,28 @@
import { PieceAuth } from '@activepieces/pieces-framework';
export interface BirdAuthValue {
apiKey: string;
workspaceId: string;
channelId: string;
}
export const birdAuth = PieceAuth.CustomAuth({
props: {
apiKey: PieceAuth.SecretText({
displayName: 'API Key',
description: 'Bird API Access Key from Settings > Security > Access Keys',
required: true,
}),
workspaceId: PieceAuth.SecretText({
displayName: 'Workspace ID',
description: 'Bird Workspace ID found in your workspace URL',
required: true,
}),
channelId: PieceAuth.SecretText({
displayName: 'Channel ID',
description: 'Your SMS channel ID from Bird dashboard',
required: true,
}),
},
required: true,
});