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,44 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { sevenAuth } from '../index';
import { callSevenApi } from '../common';
export const lookup = createAction({
auth: sevenAuth,
name: 'lookup',
displayName: 'Lookup Phone Numbers',
description: 'Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.',
props: {
type: Property.StaticDropdown<string, true>({
options: {
options: [
{label: 'CNAM', value: 'cnam'},
{label: 'HLR', value: 'hlr'},
{label: 'Format', value: 'format'},
{label: 'MNP', value: 'mnp'},
{label: 'RCS capabilities', value: 'rcs'}
]
},
displayName: 'Type',
required: true
}),
numbers: Property.Array({
description: 'The phone numbers to look up.',
displayName: 'Numbers',
required: true
}),
},
async run(context) {
const { numbers, type } = context.propsValue;
const response= await callSevenApi({
queryParams: {
number: numbers.join(','),
},
method: HttpMethod.GET
}, `lookup/${type}`, context.auth.secret_text);
return response.body;
}
});

View File

@@ -0,0 +1,94 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { sevenAuth } from '../index';
import { callSevenApi } from '../common';
export const sendRcsAction = createAction({
auth: sevenAuth,
name: 'send-rcs',
displayName: 'Send RCS',
description: 'Sends a Rich Communication Services message.',
props: {
to: Property.ShortText({
displayName: 'To',
description: 'Recipient phone number for the RCS message (e.g., 49176123456789).',
required: true
}),
text: Property.LongText({
displayName: 'Message Body',
description: 'The body of the message to send.',
required: true
}),
from: Property.ShortText({
displayName: 'From',
description: 'The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.',
required: false
}),
delay: Property.DateTime({
displayName: 'Delay',
description: 'Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.',
required: false
}),
fallback: Property.StaticDropdown({
displayName: 'Fallback',
description: 'Alternative channel if RCS is not available. If not specified, fallback is disabled.',
required: false,
options: {
options: [
{ label: 'SMS', value: 'sms' },
{ label: 'Webview', value: 'webview' }
]
}
}),
ttl: Property.Number({
displayName: 'TTL (Time to Live)',
description: 'Validity period of the RCS in minutes. Default is 2880 (48 hours).',
required: false
}),
label: Property.ShortText({
displayName: 'Label',
description: 'Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).',
required: false
}),
performance_tracking: Property.Checkbox({
displayName: 'Performance Tracking',
description: 'Activate click and performance tracking for URLs (also enables URL shortener).',
required: false
}),
foreign_id: Property.ShortText({
displayName: 'Foreign ID',
description: 'Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).',
required: false
}),
},
async run(context) {
const {
to,
text,
from,
delay,
fallback,
ttl,
label,
performance_tracking,
foreign_id
} = context.propsValue;
const response = await callSevenApi({
body: {
to,
text,
from,
delay: delay ? new Date(delay).toISOString().replace('T', ' ').substring(0, 19) : undefined,
fallback,
ttl,
label,
performance_tracking,
foreign_id
},
method: HttpMethod.POST
}, 'rcs/messages', context.auth.secret_text);
return response.body;
}
});

View File

@@ -0,0 +1,43 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { sevenAuth } from '../index';
import { callSevenApi } from '../common';
export const sendVoiceCallAction = createAction({
auth: sevenAuth,
name: 'send-voice-call',
displayName: 'Send Voice Call',
description: 'Creates a new Text-To-Speech call to a number.',
props: {
to: Property.ShortText({
description: 'Recipient number(s) of the voice calls.',
displayName: 'To',
required: true
}),
from: Property.ShortText({
displayName: 'From',
required: false
}),
text: Property.LongText({
displayName: 'Message Body',
description: 'Text message to be read out.',
required: true
}),
},
async run(context) {
const { from, text, to } = context.propsValue;
const response= await callSevenApi({
body: {
from,
text,
to
},
method: HttpMethod.POST
}, 'voice', context.auth.secret_text);
return response.body;
}
});

View File

@@ -0,0 +1,53 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { sevenAuth } from '../index';
import { callSevenApi } from '../common';
export const sendSmsAction = createAction({
auth: sevenAuth,
name: 'send-sms',
displayName: 'Send SMS',
description: 'Sends an SMS to one or more recipients.',
props: {
to: Property.Array({
displayName: 'To',
description: 'Recipient numbers of the SMS.',
required: true
}),
delay: Property.DateTime({
displayName: 'Delay',
required: false
}),
flash: Property.Checkbox({
displayName: 'Flash SMS ?',
required: false
}),
from: Property.ShortText({
displayName: 'From',
required: false
}),
text: Property.LongText({
displayName: 'Message Body',
description: 'The body of the message to send.',
required: true
}),
},
async run(context) {
const { delay, flash, from, text, to } = context.propsValue;
const response = await callSevenApi({
body: {
delay: delay ? new Date(delay).toISOString().replace('T', ' ').substring(0, 19) : undefined,
flash,
from,
text,
to
},
method: HttpMethod.POST
}, 'sms', context.auth.secret_text);
return response.body;
}
});

View File

@@ -0,0 +1,23 @@
import {
type HttpResponse,
type HttpRequest,
httpClient
} from '@activepieces/pieces-common';
export const callSevenApi = async <T>(
httpRequest: Omit<HttpRequest, 'url'>,
path: string,
apiKey: string
): Promise<HttpResponse<T>> => {
return await httpClient.sendRequest<T>({
...httpRequest,
headers: {
...httpRequest.headers,
Accept: 'application/json',
'Content-Type': 'application/json',
SentWith: 'Activepieces',
'X-Api-Key': apiKey
},
url: `https://gateway.seven.io/api/${path}`
});
};

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Gateway für Geschäftsnachrichten",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Du findest deinen API-Schlüssel im [Developer Menu](https://app.seven.io/developer).",
"Send SMS": "SMS senden",
"Send Voice Call": "Sprachanruf senden",
"Lookup Phone Numbers": "Telefonnummern suchen",
"Send RCS": "RCS senden",
"Sends an SMS to one or more recipients.": "Sendet eine SMS an einen oder mehrere Empfänger.",
"Creates a new Text-To-Speech call to a number.": "Erstellt einen neuen Text-zu-Sprach-Aufruf mit einer Nummer.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Informieren Sie sich über CNAM, HLR, MNP, RCS und Nummernformate.",
"Sends a Rich Communication Services message.": "Sendet eine Nachricht von Rich Communication Services.",
"To": "An",
"Delay": "Verzögerung",
"Flash SMS ?": "SMS flashen ?",
"From": "Von",
"Message Body": "Nachrichtentext",
"Type": "Typ",
"Numbers": "Nummern",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Zeit zum Live)",
"Label": "Label",
"Performance Tracking": "Leistungsverfolgung",
"Foreign ID": "Fremde ID",
"Recipient numbers of the SMS.": "Empfängernummern der SMS.",
"The body of the message to send.": "Der Inhalt der zu sendenden Nachricht.",
"Recipient number(s) of the voice calls.": "Empfängernummer(n) der Sprachanrufe.",
"Text message to be read out.": "Textnachricht zum Auslesen.",
"The phone numbers to look up.": "Die Telefonnummern, um nach oben zu schauen.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Empfängernummer für die RCS-Nachricht (z. B. 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "Die eindeutige ID Ihres RCS-Agenten. Wenn nicht angegeben, wird der erste RCS-fähige Absender verwendet.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Datum/Zeit für verzögerten Versand. Format: yyyy-mm-dd hh:ii oder Unix-Zeitstempel.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Alternativer Kanal, wenn RCS nicht verfügbar ist. Falls nicht angegeben, ist Fallback deaktiviert.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Gültigkeitsdauer des RCS in Minuten. Standard ist 2880 (48 Stunden).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Bezeichnung für Statistik-Tracking. Maximal 100 Zeichen (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Aktivieren Sie Klicken und Performance-Tracking für URLs (auch URL-Verkürzung aktiviert).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Ihre eigene ID für diese Nachricht (wird in Callbacks verwendet). Maximal 64 Zeichen (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Format",
"MNP": "MNP",
"RCS capabilities": "RCS-Fähigkeiten",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "Neue eingehende SMS",
"Triggers when a new SMS message is received": "Wird ausgelöst, wenn eine neue SMS empfangen wird",
"Phone Number": "Telefonnummer",
"Optionally limit inbound SMS to this particular phone number.": "Begrenzen Sie eingehende SMS optional auf diese bestimmte Telefonnummer."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Portal de Mensajería de Negocio",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Puedes encontrar tu clave API en [Menú de Desarrollador](https://app.seven.io/developer).",
"Send SMS": "Enviar SMS",
"Send Voice Call": "Enviar llamada de voz",
"Lookup Phone Numbers": "Buscar números de teléfono",
"Send RCS": "Enviar RCS",
"Sends an SMS to one or more recipients.": "Envía un SMS a uno o más destinatarios.",
"Creates a new Text-To-Speech call to a number.": "Crea una nueva llamada de Texto a Voz a un número.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Obtenga información sobre CNAM, HLR, MNP, capacidades RCS y formatos numéricos.",
"Sends a Rich Communication Services message.": "Envía un mensaje de servicios de comunicación enriquecidos.",
"To": "A",
"Delay": "Retraso",
"Flash SMS ?": "Flash SMS?",
"From": "De",
"Message Body": "Cuerpo",
"Type": "Tipo",
"Numbers": "Números",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (hora de vivir)",
"Label": "Etiqueta",
"Performance Tracking": "Seguimiento de rendimiento",
"Foreign ID": "ID Extranjero",
"Recipient numbers of the SMS.": "Número de destinatarios del SMS.",
"The body of the message to send.": "El cuerpo del mensaje a enviar.",
"Recipient number(s) of the voice calls.": "Número de destino(s) de las llamadas de voz.",
"Text message to be read out.": "Mensaje de texto para ser leído.",
"The phone numbers to look up.": "Los números de teléfono a buscar.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Número de teléfono del destinatario del mensaje RCS (por ejemplo, 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "El ID único de su agente RCS. Si no se especifica, se utilizará el primer remitente capaz de RCS.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Fecha/hora para el envío retrasado. Formato: yyyy-mm-dd hh:ii o marca de tiempo Unix.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Canal alternativo si RCS no está disponible. Si no se especifica, fallback está deshabilitado.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Período de validez del RCS en minutos. Por defecto es 2880 (48 horas).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Etiqueta para el seguimiento de estadísticas. Máximo 100 caracteres (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Activar clic y seguimiento de rendimiento para URLs (también permite acortar URLs).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Tu propio ID para este mensaje (usado en callbacks). Máximo 64 caracteres (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Formatear",
"MNP": "MNP",
"RCS capabilities": "Capacidades RCS",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "Nuevo SMS entrante",
"Triggers when a new SMS message is received": "Dispara cuando se recibe un nuevo mensaje SMS",
"Phone Number": "Número de teléfono",
"Optionally limit inbound SMS to this particular phone number.": "Opcionalmente limitar los SMS entrantes a este número de teléfono en particular."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Passerelle de messagerie professionnelle",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Vous pouvez trouver votre clé API dans [Menu Développeur] (https://app.seven.io/developer).",
"Send SMS": "Envoyer un SMS",
"Send Voice Call": "Envoyer un appel vocal",
"Lookup Phone Numbers": "Rechercher des numéros de téléphone",
"Send RCS": "Envoyer le RCS",
"Sends an SMS to one or more recipients.": "Envoie un SMS à un ou plusieurs destinataires.",
"Creates a new Text-To-Speech call to a number.": "Crée un nouvel appel textuel à voix sur un numéro.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Obtenez des informations sur les formats CNAM, HLR, MNP, RCS et Numéros.",
"Sends a Rich Communication Services message.": "Envoie un message de services de communication enrichis.",
"To": "À",
"Delay": "Délai",
"Flash SMS ?": "Flash SMS ?",
"From": "A partir de",
"Message Body": "Corps du message",
"Type": "Type de texte",
"Numbers": "Numéros",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Temps en direct)",
"Label": "Étiquette",
"Performance Tracking": "Suivi des performances",
"Foreign ID": "ID étranger",
"Recipient numbers of the SMS.": "Nombre de destinataires du SMS.",
"The body of the message to send.": "Le corps du message à envoyer.",
"Recipient number(s) of the voice calls.": "Numéro(s) destinataire(s) des appels vocaux.",
"Text message to be read out.": "Message texte à lire.",
"The phone numbers to look up.": "Les numéros de téléphone à rechercher.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Numéro de téléphone du destinataire du message RCS (par exemple, 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "L'ID unique de votre agent RCS. Si non spécifié, le premier expéditeur capable de RCS sera utilisé.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Date/heure pour l'envoi retardé. Format: yyyy-mm-dd hh:ii ou timestamp Unix.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Canal alternatif si RCS n'est pas disponible. S'il n'est pas spécifié, la valeur de secours est désactivée.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Durée de validité du RCS en minutes. La valeur par défaut est 2880 (48 heures).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Étiquette pour le suivi des statistiques. Maximum 100 caractères (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Activer le suivi des clics et des performances des URLs (permet également de raccourcir les URLs).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Votre propre ID pour ce message (utilisé dans les rappels). Maximum 64 caractères (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Formater",
"MNP": "MNP",
"RCS capabilities": "Capacités RCS",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "Nouveau SMS entrant",
"Triggers when a new SMS message is received": "Déclenche quand un nouveau SMS est reçu",
"Phone Number": "Numéro de téléphone",
"Optionally limit inbound SMS to this particular phone number.": "Vous pouvez éventuellement limiter les SMS entrants à ce numéro de téléphone particulier."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Business Messaging Gateway",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "API キーは [Developer Menu](https://app.seven.io/developer) にあります。",
"Send SMS": "SMSの送信",
"Send Voice Call": "音声通話を送信",
"Lookup Phone Numbers": "電話番号を検索",
"Send RCS": "RCS を送信",
"Sends an SMS to one or more recipients.": "1 つまたは複数の受信者に SMS を送信します。",
"Creates a new Text-To-Speech call to a number.": "番号に新しいテキスト読み上げコールを作成します。",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "CNAM、HLR、MNP、RCS機能と数値フォーマットに関する情報を取得します。",
"Sends a Rich Communication Services message.": "リッチ・コミュニケーション・サービス・メッセージを送信します。",
"To": "終了日",
"Delay": "遅延",
"Flash SMS ?": "SMSのフラッシュ",
"From": "差出人:",
"Message Body": "メッセージ本文",
"Type": "タイプ",
"Numbers": "数値",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Time to Live)",
"Label": "ラベル",
"Performance Tracking": "パフォーマンストラッキング",
"Foreign ID": "外部ID",
"Recipient numbers of the SMS.": "SMSの受信者番号",
"The body of the message to send.": "送信するメッセージの本文.",
"Recipient number(s) of the voice calls.": "音声通話の受信者番号",
"Text message to be read out.": "読み上げるテキストメッセージ。",
"The phone numbers to look up.": "上を見るための電話番号。",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "RCS メッセージの受信者電話番号 (例: 49176123456789)",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "RCS エージェントの一意の ID です。指定しない場合は、最初の RCS 対応の送信者が使用されます。",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "発送の遅延日時。フォーマットyyyy-mm-dd hh:ii または Unix タイムスタンプ。",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "RCS が利用できない場合の代替チャンネル。指定しない場合は、フォールバックは無効になります。",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "RCS の有効期間を分単位で指定します。デフォルトは 2880 (48 時間) です。",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "統計トラッキングのラベル。最大100文字a-z、A-Z、0-9、.-_@)。",
"Activate click and performance tracking for URLs (also enables URL shortener).": "URLのクリックとパフォーマンストラッキングを有効にします (URL短縮も有効にします)。",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "このメッセージの独自のIDコールバックで使用。最大64文字a-z、A-Z、0-9、.-_@)。",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "書式",
"MNP": "MNP",
"RCS capabilities": "RCS 機能",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "新しいSMS着信",
"Triggers when a new SMS message is received": "新しいSMSメッセージを受信したときにトリガーします",
"Phone Number": "電話番号",
"Optionally limit inbound SMS to this particular phone number.": "必要に応じて、着信SMSをこの電話番号に制限します。"
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Business Messaging Gateway",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Je kunt je API-sleutel vinden in [Developer Menu](https://app.seven.io/developer).",
"Send SMS": "Sms verzenden",
"Send Voice Call": "Spraakoproep verzenden",
"Lookup Phone Numbers": "Telefoonnummers opzoeken",
"Send RCS": "Stuur RCS",
"Sends an SMS to one or more recipients.": "Stuurt een sms naar één of meer ontvangers.",
"Creates a new Text-To-Speech call to a number.": "Maakt een nieuwe Text-To-Spraak-oproep naar een nummer.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Krijg informatie over CNAM, HLR, MNP, RCS mogelijkheden en Number formaten.",
"Sends a Rich Communication Services message.": "Verstuurt een Rich Communication Services bericht.",
"To": "tot",
"Delay": "Vertraging",
"Flash SMS ?": "Sms laten knipperen?",
"From": "van",
"Message Body": "Bericht Body",
"Type": "Type",
"Numbers": "Nummers",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Tijd tot leven)",
"Label": "Omschrijving",
"Performance Tracking": "Prestaties volgen",
"Foreign ID": "Vreemde ID",
"Recipient numbers of the SMS.": "Aantal geadresseerden van de SMS.",
"The body of the message to send.": "De inhoud van het te verzenden bericht.",
"Recipient number(s) of the voice calls.": "Ontvanger nummer(s) van de spraakoproepen.",
"Text message to be read out.": "Tekstbericht om uit te lezen.",
"The phone numbers to look up.": "De telefoonnummers om op te zoeken.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Telefoonnummer van de ontvanger voor het RCS-bericht (bijv. 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "Het unieke ID van uw RCS-agent. Indien niet opgegeven, zal de eerste RCS-geschikte afzender worden gebruikt.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Datum/tijd voor vertraagd verzenden. Formaat: yyyy-mm-dd hh:ii of Unix tijdstempel.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Alternatief kanaal als RCS niet beschikbaar is. Indien niet opgegeven, dan is fallback uitgeschakeld.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Geldigheid van de RCS in minuten. Standaard is 2880 (48 uur).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Label voor het volgen van statistieken. Max 100 tekens (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Activeer klik en performance tracking voor URLs (schakelt ook URL verkorter in).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Uw eigen ID voor dit bericht (gebruikt in callbacks). Maximaal 64 tekens (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Formatteren",
"MNP": "MNP",
"RCS capabilities": "RCS mogelijkheden",
"SMS": "sms",
"Webview": "Webview",
"New Incoming SMS": "Nieuwe inkomende SMS",
"Triggers when a new SMS message is received": "Triggert wanneer een nieuw SMS-bericht wordt ontvangen",
"Phone Number": "Telefoon nummer",
"Optionally limit inbound SMS to this particular phone number.": "Optioneel beperken van inkomende SMS tot dit specifieke telefoonnummer."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Gateway Business Messaging",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Você pode encontrar sua chave de API no [Menu do Desenvolvedor](https://app.seven.io/developer).",
"Send SMS": "Enviar SMS",
"Send Voice Call": "Enviar chamada de voz",
"Lookup Phone Numbers": "Procurar números de telefone",
"Send RCS": "Enviar RCS",
"Sends an SMS to one or more recipients.": "Envia um SMS para um ou mais destinatários.",
"Creates a new Text-To-Speech call to a number.": "Cria uma nova chamada de texto para fala para um número.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Obter informações sobre CNAM, HLR, MNP, recursos RCS e formatos numéricos.",
"Sends a Rich Communication Services message.": "Envia uma mensagem de Serviços de Comunicação Riica.",
"To": "Para",
"Delay": "Atraso",
"Flash SMS ?": "Flash SMS?",
"From": "De",
"Message Body": "Corpo da Mensagem",
"Type": "tipo",
"Numbers": "Números",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Tempo para Viver)",
"Label": "Descrição",
"Performance Tracking": "Rastreamento de Desempenho",
"Foreign ID": "ID Externo",
"Recipient numbers of the SMS.": "Números destinatários do SMS.",
"The body of the message to send.": "O corpo da mensagem a enviar.",
"Recipient number(s) of the voice calls.": "Número(s) destinatário(s) das chamadas de voz.",
"Text message to be read out.": "Mensagem de texto a ser lida.",
"The phone numbers to look up.": "Os números de telefone para procurar.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Número de telefone destinatário para a mensagem RCS (por exemplo, 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "O ID exclusivo do seu agente RCS. Se não for especificado, o primeiro remetente compatível com RCS será usado.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Data/hora para envio atrasado. Formato: aaaa-mm-dd hh:ii ou Unix timestamp.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Canal alternativo se RCS não está disponível. Se não for especificado, o fallback está desativado.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Período de validade do RCS em minutos. O padrão é 2880 (48 horas).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Rótulo para estatísticas de rastreamento. Máximo de 100 caracteres (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Ativar rastreamento de clique e desempenho para URLs (também ativa encurtador de URL).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Seu próprio ID para esta mensagem (usado em callbacks). Máximo de 64 caracteres (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "FLR",
"Format": "Formato",
"MNP": "MNP",
"RCS capabilities": "Capacidades RCS",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "Novo SMS de entrada",
"Triggers when a new SMS message is received": "Aciona quando uma nova mensagem SMS é recebida",
"Phone Number": "Número de telefone",
"Optionally limit inbound SMS to this particular phone number.": "Limite opcional de entrada de SMS para este número de telefone específico."
}

View File

@@ -0,0 +1,32 @@
{
"seven": "семь",
"Business Messaging Gateway": "Шлюз бизнес-обмена сообщениями",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "Ключ API можно найти в [меню разработчика](https://app.seven.io/developer).",
"Send SMS": "Отправить СМС",
"Send Voice Call": "Отправить голосовой вызов",
"Lookup Phone Numbers": "Поиск номеров телефонов",
"Sends an SMS to one or more recipients.": "Отправляет SMS одному или нескольким получателям.",
"Creates a new Text-To-Speech call to a number.": "Создает новый вызов для речи текста на номер.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Получить информацию о CNAM, HLR, MNP, RCS и числовых форматах.",
"To": "Кому",
"Delay": "Задержка",
"Flash SMS ?": "Установить СМС?",
"From": "От",
"Message Body": "Тело сообщения",
"Type": "Тип",
"Numbers": "Числа",
"Recipient numbers of the SMS.": "Номера получателей СМС.",
"The body of the message to send.": "Тело сообщения для отправки.",
"Recipient number(s) of the voice calls.": "Номер (номера) получателя голосовых звонков.",
"Text message to be read out.": "Текстовое сообщение для чтения.",
"The phone numbers to look up.": "Телефонные номера для поиска.",
"CNAM": "ЧПУ",
"HLR": "HLR",
"Format": "Формат",
"MNP": "MNP",
"RCS capabilities": "Возможности RCS",
"New Incoming SMS": "Новые входящие SMS",
"Triggers when a new SMS message is received": "Включает при получении нового SMS-сообщения",
"Phone Number": "Номер телефона",
"Optionally limit inbound SMS to this particular phone number.": "При необходимости ограничить входящие SMS определенным номером телефона."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Business Messaging Gateway",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "You can find your API key in [Developer Menu](https://app.seven.io/developer).",
"Send SMS": "Send SMS",
"Send Voice Call": "Send Voice Call",
"Lookup Phone Numbers": "Lookup Phone Numbers",
"Send RCS": "Send RCS",
"Sends an SMS to one or more recipients.": "Sends an SMS to one or more recipients.",
"Creates a new Text-To-Speech call to a number.": "Creates a new Text-To-Speech call to a number.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.",
"Sends a Rich Communication Services message.": "Sends a Rich Communication Services message.",
"To": "To",
"Delay": "Delay",
"Flash SMS ?": "Flash SMS ?",
"From": "From",
"Message Body": "Message Body",
"Type": "Type",
"Numbers": "Numbers",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Time to Live)",
"Label": "Label",
"Performance Tracking": "Performance Tracking",
"Foreign ID": "Foreign ID",
"Recipient numbers of the SMS.": "Recipient numbers of the SMS.",
"The body of the message to send.": "The body of the message to send.",
"Recipient number(s) of the voice calls.": "Recipient number(s) of the voice calls.",
"Text message to be read out.": "Text message to be read out.",
"The phone numbers to look up.": "The phone numbers to look up.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Recipient phone number for the RCS message (e.g., 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Alternative channel if RCS is not available. If not specified, fallback is disabled.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Validity period of the RCS in minutes. Default is 2880 (48 hours).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Activate click and performance tracking for URLs (also enables URL shortener).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Format",
"MNP": "MNP",
"RCS capabilities": "RCS capabilities",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "New Incoming SMS",
"Triggers when a new SMS message is received": "Triggers when a new SMS message is received",
"Phone Number": "Phone Number",
"Optionally limit inbound SMS to this particular phone number.": "Optionally limit inbound SMS to this particular phone number."
}

View File

@@ -0,0 +1,32 @@
{
"seven": "seven",
"Business Messaging Gateway": "Business Messaging Gateway",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "You can find your API key in [Developer Menu](https://app.seven.io/developer).",
"Send SMS": "Send SMS",
"Send Voice Call": "Send Voice Call",
"Lookup Phone Numbers": "Lookup Phone Numbers",
"Sends an SMS to one or more recipients.": "Sends an SMS to one or more recipients.",
"Creates a new Text-To-Speech call to a number.": "Creates a new Text-To-Speech call to a number.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.",
"To": "To",
"Delay": "Delay",
"Flash SMS ?": "Flash SMS ?",
"From": "From",
"Message Body": "Message Body",
"Type": "Type",
"Numbers": "Numbers",
"Recipient numbers of the SMS.": "Recipient numbers of the SMS.",
"The body of the message to send.": "The body of the message to send.",
"Recipient number(s) of the voice calls.": "Recipient number(s) of the voice calls.",
"Text message to be read out.": "Text message to be read out.",
"The phone numbers to look up.": "The phone numbers to look up.",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Format",
"MNP": "MNP",
"RCS capabilities": "RCS capabilities",
"New Incoming SMS": "New Incoming SMS",
"Triggers when a new SMS message is received": "Triggers when a new SMS message is received",
"Phone Number": "Phone Number",
"Optionally limit inbound SMS to this particular phone number.": "Optionally limit inbound SMS to this particular phone number."
}

View File

@@ -0,0 +1,48 @@
{
"Business Messaging Gateway": "Business Messaging Gateway",
"You can find your API key in [Developer Menu](https://app.seven.io/developer).": "You can find your API key in [Developer Menu](https://app.seven.io/developer).",
"Send SMS": "Send SMS",
"Send Voice Call": "Send Voice Call",
"Lookup Phone Numbers": "Lookup Phone Numbers",
"Send RCS": "Send RCS",
"Sends an SMS to one or more recipients.": "Sends an SMS to one or more recipients.",
"Creates a new Text-To-Speech call to a number.": "Creates a new Text-To-Speech call to a number.",
"Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.": "Get information about CNAM, HLR, MNP, RCS capabilities and Number formats.",
"Sends a Rich Communication Services message.": "Sends a Rich Communication Services message.",
"To": "To",
"Delay": "Delay",
"Flash SMS ?": "Flash SMS ?",
"From": "From",
"Message Body": "Message Body",
"Type": "类型",
"Numbers": "Numbers",
"Fallback": "Fallback",
"TTL (Time to Live)": "TTL (Time to Live)",
"Label": "Label",
"Performance Tracking": "Performance Tracking",
"Foreign ID": "Foreign ID",
"Recipient numbers of the SMS.": "Recipient numbers of the SMS.",
"The body of the message to send.": "The body of the message to send.",
"Recipient number(s) of the voice calls.": "Recipient number(s) of the voice calls.",
"Text message to be read out.": "Text message to be read out.",
"The phone numbers to look up.": "The phone numbers to look up.",
"Recipient phone number for the RCS message (e.g., 49176123456789).": "Recipient phone number for the RCS message (e.g., 49176123456789).",
"The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.": "The unique ID of your RCS agent. If not specified, the first RCS-capable sender will be used.",
"Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.": "Date/time for delayed dispatch. Format: yyyy-mm-dd hh:ii or Unix timestamp.",
"Alternative channel if RCS is not available. If not specified, fallback is disabled.": "Alternative channel if RCS is not available. If not specified, fallback is disabled.",
"Validity period of the RCS in minutes. Default is 2880 (48 hours).": "Validity period of the RCS in minutes. Default is 2880 (48 hours).",
"Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).": "Label for statistics tracking. Max 100 characters (a-z, A-Z, 0-9, .-_@).",
"Activate click and performance tracking for URLs (also enables URL shortener).": "Activate click and performance tracking for URLs (also enables URL shortener).",
"Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).": "Your own ID for this message (used in callbacks). Max 64 characters (a-z, A-Z, 0-9, .-_@).",
"CNAM": "CNAM",
"HLR": "HLR",
"Format": "Format",
"MNP": "MNP",
"RCS capabilities": "RCS capabilities",
"SMS": "SMS",
"Webview": "Webview",
"New Incoming SMS": "New Incoming SMS",
"Triggers when a new SMS message is received": "Triggers when a new SMS message is received",
"Phone Number": "Phone Number",
"Optionally limit inbound SMS to this particular phone number.": "Optionally limit inbound SMS to this particular phone number."
}

View File

@@ -0,0 +1,26 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { sendSmsAction } from './action/sms-send';
import { sendRcsAction } from './action/rcs-send';
import { sendVoiceCallAction } from './action/send-voice-call';
import { lookup } from './action/lookup';
import { smsInbound } from './trigger/sms-inbound';
import { PieceCategory } from '@activepieces/shared';
export const sevenAuth = PieceAuth.SecretText({
description:
'You can find your API key in [Developer Menu](https://app.seven.io/developer).',
displayName: 'API key',
required: true,
});
export const seven = createPiece({
displayName: 'seven',
description: 'Business Messaging Gateway',
auth: sevenAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/seven.jpg',
categories: [PieceCategory.MARKETING],
authors: ['seven-io'],
actions: [sendSmsAction, sendVoiceCallAction, lookup, sendRcsAction],
triggers: [smsInbound],
});

View File

@@ -0,0 +1,81 @@
import { createTrigger, Property, TriggerStrategy } from '@activepieces/pieces-framework';
import { callSevenApi } from '../common';
import { sevenAuth } from '../index';
import { HttpMethod } from '@activepieces/pieces-common';
interface SubscribeHookResponse {
id: number | null;
success: boolean;
}
interface UnsubscribeHookResponse {
success: boolean;
}
interface SevenWebhookInformation {
webhookId: number;
}
const triggerNameInStore = 'seven_new_sms_trigger';
export const smsInbound = createTrigger({
auth: sevenAuth,
description: 'Triggers when a new SMS message is received',
displayName: 'New Incoming SMS',
name: 'new_incoming_sms',
props: {
from: Property.ShortText({
displayName: 'Phone Number',
description: 'Optionally limit inbound SMS to this particular phone number.',
required: false
})
},
sampleData: {
data: {
id: '681590',
sender: 'SMS',
system: '491771783130',
text: 'Hello. I am an example for demonstrating a webhook payload.',
time: '1605878104'
},
webhook_event: 'sms_mo',
webhook_timestamp: '2020-12-02 11:55:44'
},
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const { from = '' } = context.propsValue;
const { body } = await callSevenApi<SubscribeHookResponse>({
body: {
event_filter: from,
event_type: 'sms_mo',
target_url: context.webhookUrl
},
method: HttpMethod.POST
}, 'hooks', context.auth.secret_text);
if (!body.success) return;
await context.store?.put<SevenWebhookInformation>(triggerNameInStore, {
webhookId: body.id!
});
},
async onDisable(context) {
const info = await context.store?.get<SevenWebhookInformation>(triggerNameInStore);
if (!info) return;
const { body } = await callSevenApi<UnsubscribeHookResponse>({
body: {
action: 'unsubscribe',
id: info.webhookId
},
method: HttpMethod.POST
}, 'hooks', context.auth.secret_text);
if (!body.success) return;
await context.store.put(triggerNameInStore, null);
},
async run(context) {
return [context.payload.body];
}
});