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,18 @@
{
"extends": ["../../../../.eslintrc.base.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-krisp-call
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-krisp-call` to build the library.

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-krisp-call",
"version": "0.0.11"
}

View File

@@ -0,0 +1,57 @@
{
"name": "pieces-krisp-call",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/krisp-call/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/krisp-call",
"tsConfig": "packages/pieces/community/krisp-call/tsconfig.lib.json",
"packageJson": "packages/pieces/community/krisp-call/package.json",
"main": "packages/pieces/community/krisp-call/src/index.ts",
"assets": [
"packages/pieces/community/krisp-call/*.md",
{
"input": "packages/pieces/community/krisp-call/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"publish": {
"command": "node tools/scripts/publish.mjs pieces-KrispCall {args.ver} {args.tag}",
"dependsOn": [
"build"
]
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/krisp-call",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
},
"tags": []
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall ist ein Cloud-Telefonie-System für moderne Unternehmen, das hochentwickelte Funktionen für wachstumsstarke Startups und moderne Unternehmen bietet.",
"API key": "API-Schlüssel",
"Add Contact": "Neuer Kontakt",
"Delete Contacts": "Kontakte löschen",
"Send SMS": "SMS senden",
"Send MMS": "MMS senden",
"Add contact in Krispcall": "Kontakt in Krispcall hinzufügen",
"Delete contacts from krispcall.": "Kontakte von krispcall löschen.",
"Send sms in Krispcall.": "Senden Sie Sms in Krispcall.",
"Send mms in krispcall.": "Senden Sie mms in krispcall.",
"Name": "Name",
"Contact number": "Kontaktnummer",
"Address": "Adresse",
"Company": "Firma",
"Email": "E-Mail",
"Contacts": "Kontakte",
"From Number": "Absendernummer",
"To Number": "An Nummer",
"content": "inhalt",
"from number": "von Nummer",
"Medias url": "Medias url",
"Enter your name": "Gib deinen Namen ein",
"Enter contact number": "Kontaktnummer eingeben",
"Enter your address": "Geben Sie Ihre Adresse ein",
"Enter your company": "Geben Sie Ihre Firma ein",
"Enter your email": "E-Mail eingeben",
"Enter contact which you want to delete.": "Geben Sie den Kontakt ein, den Sie löschen möchten.",
"Select an Number": "Nummer auswählen",
"Enter the number to which you want to send sms.": "Geben Sie die Nummer ein, an die Sie sms senden möchten.",
"Enter your message here.": "Geben Sie hier Ihre Nachricht ein.",
"Select an number": "Nummer auswählen",
"Enter medias urls": "Media-Urls eingeben",
"New Voicemail": "Neue Voicemail",
"New MMS/SMS": "Neue MMS/SMS",
"New Contact": "Neuer Kontakt",
"New Call Log": "Neue Anrufliste",
"Outbound MMS/SMS": "Ausgehende MMS/SMS",
"Trigger when a new voicemail is received.": "Auslösen wenn eine neue Sprachnachricht empfangen wird.",
"Trigger when a new MMS/SMS is received.": "Auslösen wenn eine neue MMS/SMS empfangen wird.",
"Trigger when a new contact is added.": "Wird ausgelöst, wenn ein neuer Kontakt hinzugefügt wird.",
"Trigger when a new call log is recorded.": "Auslösen wenn eine neue Anrufliste aufgezeichnet wird.",
"Trigger when a new MMS/SMS is sent.": "Auslösen wenn eine neue MMS/SMS gesendet wird."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall es un sistema de nube de telefonía para empresas modernas, que ofrece características avanzadas para empresas emergentes y empresas modernas de alto crecimiento.",
"API key": "Clave API",
"Add Contact": "Añadir contacto",
"Delete Contacts": "Eliminar contactos",
"Send SMS": "Enviar SMS",
"Send MMS": "Enviar MMS",
"Add contact in Krispcall": "Añadir contacto en Krispcall",
"Delete contacts from krispcall.": "Eliminar contactos de krispcall.",
"Send sms in Krispcall.": "Enviar sms en Krispcall.",
"Send mms in krispcall.": "Enviar mms en krispcall.",
"Name": "Nombre",
"Contact number": "Número de contacto",
"Address": "Dirección",
"Company": "Empresa",
"Email": "E-mail",
"Contacts": "Contactos",
"From Number": "Desde el número",
"To Number": "A número",
"content": "contenido",
"from number": "desde el número",
"Medias url": "Medias url",
"Enter your name": "Introduce tu nombre",
"Enter contact number": "Introducir número de contacto",
"Enter your address": "Introduzca su dirección",
"Enter your company": "Introduzca su empresa",
"Enter your email": "Introduce tu email",
"Enter contact which you want to delete.": "Introduzca el contacto que desea eliminar.",
"Select an Number": "Seleccione un número",
"Enter the number to which you want to send sms.": "Introduzca el número al que desea enviar sms.",
"Enter your message here.": "Introduzca su mensaje aquí.",
"Select an number": "Seleccione un número",
"Enter medias urls": "Introducir urls de medios",
"New Voicemail": "Nuevo Voicemail",
"New MMS/SMS": "Nuevo MMS/SMS",
"New Contact": "Nuevo contacto",
"New Call Log": "Nuevo registro de llamadas",
"Outbound MMS/SMS": "MMS saliente/SMS",
"Trigger when a new voicemail is received.": "Activar cuando se recibe un nuevo buzón de voz.",
"Trigger when a new MMS/SMS is received.": "Activar cuando se recibe un nuevo MMS/SMS.",
"Trigger when a new contact is added.": "Activar cuando se añade un nuevo contacto.",
"Trigger when a new call log is recorded.": "Activar cuando se graba un nuevo registro de llamadas.",
"Trigger when a new MMS/SMS is sent.": "Activar cuando se envía un nuevo MMS/SMS."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall est un système de téléphonie cloud pour les entreprises modernes, offrant des fonctionnalités avancées pour les startups à forte croissance et les entreprises modernes.",
"API key": "Clé API",
"Add Contact": "Ajouter un contact",
"Delete Contacts": "Supprimer les contacts",
"Send SMS": "Envoyer un SMS",
"Send MMS": "Envoyer des MMS",
"Add contact in Krispcall": "Ajouter un contact dans Krispcall",
"Delete contacts from krispcall.": "Supprimer les contacts du krispcall.",
"Send sms in Krispcall.": "Envoyer un SMS à Krispcall.",
"Send mms in krispcall.": "Envoyer des mms en krispcall.",
"Name": "Nom",
"Contact number": "Numéro de contact",
"Address": "Adresses",
"Company": "Entreprise",
"Email": "Courriel",
"Contacts": "Contacts",
"From Number": "À partir du numéro",
"To Number": "Vers le numéro",
"content": "contenu",
"from number": "à partir du numéro",
"Medias url": "Medias url",
"Enter your name": "Entrez votre nom",
"Enter contact number": "Entrez le numéro de contact",
"Enter your address": "Entrez votre adresse",
"Enter your company": "Entrez votre entreprise",
"Enter your email": "Entrez votre adresse e-mail",
"Enter contact which you want to delete.": "Entrez le contact que vous souhaitez supprimer.",
"Select an Number": "Sélectionnez un numéro",
"Enter the number to which you want to send sms.": "Entrez le numéro auquel vous voulez envoyer des SMS.",
"Enter your message here.": "Entrez votre message ici.",
"Select an number": "Sélectionnez un numéro",
"Enter medias urls": "Entrez les URL des médias",
"New Voicemail": "Nouvelle messagerie vocale",
"New MMS/SMS": "Nouveaux MMS/SMS",
"New Contact": "Nouveau contact",
"New Call Log": "Nouveau journal d'appel",
"Outbound MMS/SMS": "MMS/SMS sortant",
"Trigger when a new voicemail is received.": "Déclencher quand un nouveau message vocal est reçu.",
"Trigger when a new MMS/SMS is received.": "Déclencher quand un nouveau MMS/SMS est reçu.",
"Trigger when a new contact is added.": "Déclencher lorsqu'un nouveau contact est ajouté.",
"Trigger when a new call log is recorded.": "Déclencher lorsqu'un nouveau journal d'appels est enregistré.",
"Trigger when a new MMS/SMS is sent.": "Déclencher quand un nouveau MMS/SMS est envoyé."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCallは、高成長スタートアップや現代企業向けの高度な機能を提供する、現代企業向けのクラウドテレフォニーシステムです。",
"API key": "API キー",
"Add Contact": "連絡先を追加",
"Delete Contacts": "連絡先を削除",
"Send SMS": "SMSの送信",
"Send MMS": "MMSを送信",
"Add contact in Krispcall": "Krispcall に連絡先を追加",
"Delete contacts from krispcall.": "krispcallから連絡先を削除します。",
"Send sms in Krispcall.": "KrispcallでSMSを送信します。",
"Send mms in krispcall.": "mms を krispcall で送信します。",
"Name": "Name",
"Contact number": "連絡先番号",
"Address": "住所",
"Company": "会社名",
"Email": "Eメールアドレス",
"Contacts": "連絡先",
"From Number": "番号から",
"To Number": "To Number",
"content": "コンテンツ",
"from number": "番号から",
"Medias url": "Medias url",
"Enter your name": "名前を入力してください",
"Enter contact number": "連絡先番号を入力してください",
"Enter your address": "住所を入力してください",
"Enter your company": "会社を入力してください",
"Enter your email": "メールアドレスを入力してください",
"Enter contact which you want to delete.": "削除する連絡先を入力します。",
"Select an Number": "数字を選択",
"Enter the number to which you want to send sms.": "SMSを送信する番号を入力します。",
"Enter your message here.": "ここにメッセージを入力してください。",
"Select an number": "数字を選択",
"Enter medias urls": "メディアの URL を入力",
"New Voicemail": "新しいボイスメール",
"New MMS/SMS": "新しいMMS/SMS",
"New Contact": "新しい連絡先",
"New Call Log": "新しい通話履歴",
"Outbound MMS/SMS": "アウトバウンドMMS/SMS",
"Trigger when a new voicemail is received.": "新しいボイスメールを受信したときにトリガーします。",
"Trigger when a new MMS/SMS is received.": "新しい MMS/SMS を受信したときにトリガーします。",
"Trigger when a new contact is added.": "新しい連絡先が追加されたときにトリガーします。",
"Trigger when a new call log is recorded.": "新しい通話履歴が録音されたときにトリガーします。",
"Trigger when a new MMS/SMS is sent.": "新しい MMS/SMS が送信されたときにトリガーします。"
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall is een cloud-telefonisch systeem voor moderne bedrijven, dat geavanceerde functies biedt voor hoog groeiende startups en moderne ondernemingen.",
"API key": "API sleutel",
"Add Contact": "Contactpersoon toevoegen",
"Delete Contacts": "Contacten verwijderen",
"Send SMS": "Sms verzenden",
"Send MMS": "MMS verzenden",
"Add contact in Krispcall": "Contactpersoon toevoegen in Krispcall",
"Delete contacts from krispcall.": "Contacten verwijderen uit krispcall.",
"Send sms in Krispcall.": "Stuur sms in Krispcall.",
"Send mms in krispcall.": "Stuur mms in krispcall.",
"Name": "Naam",
"Contact number": "Contact nummer",
"Address": "Adres:",
"Company": "Bedrijfsnaam",
"Email": "E-mail",
"Contacts": "Contactpersonen",
"From Number": "Van nummer",
"To Number": "Naar Nummer",
"content": "inhoud",
"from number": "van nummer",
"Medias url": "Medias url",
"Enter your name": "Voer uw naam in",
"Enter contact number": "Voer contactnummer in",
"Enter your address": "Voer uw adres in",
"Enter your company": "Voer uw bedrijf in",
"Enter your email": "Voer je e-mailadres in",
"Enter contact which you want to delete.": "Voer de contactpersoon in die u wilt verwijderen.",
"Select an Number": "Nummer selecteren",
"Enter the number to which you want to send sms.": "Voer het nummer in waarnaar je sms-berichten wilt sturen.",
"Enter your message here.": "Vul hier uw bericht in.",
"Select an number": "Kies een getal",
"Enter medias urls": "Voer medias URL's in",
"New Voicemail": "Nieuwe voicemail",
"New MMS/SMS": "Nieuwe MMS/SMS",
"New Contact": "Nieuw contactpersoon",
"New Call Log": "Nieuwe gesprekkenlijst",
"Outbound MMS/SMS": "Uitgaande MMS/SMS",
"Trigger when a new voicemail is received.": "Trigger wanneer een nieuwe voicemail is ontvangen.",
"Trigger when a new MMS/SMS is received.": "Trigger wanneer een nieuwe MMS/SMS is ontvangen.",
"Trigger when a new contact is added.": "Trigger wanneer een nieuwe contactpersoon wordt toegevoegd.",
"Trigger when a new call log is recorded.": "Trigger wanneer een nieuwe oproepgeschiedenis wordt opgenomen.",
"Trigger when a new MMS/SMS is sent.": "Activeer wanneer een nieuwe MMS/SMS wordt verzonden."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall é um sistema de telefonia em nuvem para empresas modernas, oferecendo recursos avançados para startups de alto crescimento e empresas modernas.",
"API key": "Chave da API",
"Add Contact": "Adicionar contacto",
"Delete Contacts": "Excluir contatos",
"Send SMS": "Enviar SMS",
"Send MMS": "Enviar MMS",
"Add contact in Krispcall": "Adicionar contato em Krispcall",
"Delete contacts from krispcall.": "Excluir contatos da krispcall.",
"Send sms in Krispcall.": "Enviar sms em Krispcall.",
"Send mms in krispcall.": "Enviar mms em krispcall.",
"Name": "Nome",
"Contact number": "Número de contato",
"Address": "Endereço",
"Company": "Empresas",
"Email": "e-mail",
"Contacts": "CONTATOS",
"From Number": "De Número",
"To Number": "Número para",
"content": "conteúdo",
"from number": "do número",
"Medias url": "Medias url",
"Enter your name": "Digite seu nome",
"Enter contact number": "Inserir número de contato",
"Enter your address": "Insira seu endereço",
"Enter your company": "Insira sua empresa",
"Enter your email": "Digite seu email",
"Enter contact which you want to delete.": "Digite o contato que deseja excluir.",
"Select an Number": "Selecione um número",
"Enter the number to which you want to send sms.": "Digite o número para o qual você deseja enviar SMS.",
"Enter your message here.": "Digite sua mensagem aqui.",
"Select an number": "Selecione um número",
"Enter medias urls": "Inserir URLs de mídia",
"New Voicemail": "Novo Voicemail",
"New MMS/SMS": "Novo MMS/SMS",
"New Contact": "Novo Contato",
"New Call Log": "Novo registro de chamadas",
"Outbound MMS/SMS": "MMS/SMS de saída",
"Trigger when a new voicemail is received.": "Aciona quando um novo correio de voz é recebido.",
"Trigger when a new MMS/SMS is received.": "Acionar quando um novo MMS/SMS for recebido.",
"Trigger when a new contact is added.": "Aciona quando um novo contato é adicionado.",
"Trigger when a new call log is recorded.": "Ativar quando um novo registro de chamadas for gravado.",
"Trigger when a new MMS/SMS is sent.": "Ativar quando um novo MMS/SMS for enviado."
}

View File

@@ -0,0 +1,45 @@
{
"KrispCall": "Крипвызов",
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall это облачная система телефонии для современного бизнеса, предлагающая передовые возможности для высокорастущих стартапов и современных предприятий.",
"API key": "API ключ",
"Add Contact": "Добавить контакт",
"Delete Contacts": "Удалить контакты",
"Send SMS": "Отправить СМС",
"Send MMS": "Отправить MMS",
"Add contact in Krispcall": "Добавить контакт в Krispcall",
"Delete contacts from krispcall.": "Удалить контакты из krispcall.",
"Send sms in Krispcall.": "Отправлять SMS в Krispcall.",
"Send mms in krispcall.": "Отправить mms в krispcall.",
"Name": "Наименование",
"Contact number": "Контактный номер",
"Address": "Адрес",
"Company": "Компания",
"Email": "Почта",
"Contacts": "Контакты",
"From Number": "От номера",
"To Number": "По номеру",
"content": "контент",
"from number": "от числа",
"Medias url": "Medias url",
"Enter your name": "Введите ваше имя",
"Enter contact number": "Введите номер контакта",
"Enter your address": "Введите ваш адрес",
"Enter your company": "Введите вашу компанию",
"Enter your email": "Введите ваш email",
"Enter contact which you want to delete.": "Введите контакт, который вы хотите удалить.",
"Select an Number": "Выберите номер",
"Enter the number to which you want to send sms.": "Введите число, на которое вы хотите отправить СМС.",
"Enter your message here.": "Введите ваше сообщение здесь.",
"Select an number": "Выберите номер",
"Enter medias urls": "Введите медиа-адреса",
"New Voicemail": "Новая голосовая почта",
"New MMS/SMS": "Новый MMS/SMS",
"New Contact": "Новый контакт",
"New Call Log": "Новый журнал вызовов",
"Outbound MMS/SMS": "Исходящие MMS/SMS",
"Trigger when a new voicemail is received.": "Срабатывать при получении нового голосового сообщения.",
"Trigger when a new MMS/SMS is received.": "Срабатывать при получении нового MMS/SMS.",
"Trigger when a new contact is added.": "Срабатывать при добавлении нового контакта.",
"Trigger when a new call log is recorded.": "Срабатывать при записи нового журнала звонков.",
"Trigger when a new MMS/SMS is sent.": "Запускать при отправке нового MMS/SMS."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.",
"API key": "API key",
"Add Contact": "Add Contact",
"Delete Contacts": "Delete Contacts",
"Send SMS": "Send SMS",
"Send MMS": "Send MMS",
"Add contact in Krispcall": "Add contact in Krispcall",
"Delete contacts from krispcall.": "Delete contacts from krispcall.",
"Send sms in Krispcall.": "Send sms in Krispcall.",
"Send mms in krispcall.": "Send mms in krispcall.",
"Name": "Name",
"Contact number": "Contact number",
"Address": "Address",
"Company": "Company",
"Email": "Email",
"Contacts": "Contacts",
"From Number": "From Number",
"To Number": "To Number",
"content": "content",
"from number": "from number",
"Medias url": "Medias url",
"Enter your name": "Enter your name",
"Enter contact number": "Enter contact number",
"Enter your address": "Enter your address",
"Enter your company": "Enter your company",
"Enter your email": "Enter your email",
"Enter contact which you want to delete.": "Enter contact which you want to delete.",
"Select an Number": "Select an Number",
"Enter the number to which you want to send sms.": "Enter the number to which you want to send sms.",
"Enter your message here.": "Enter your message here.",
"Select an number": "Select an number",
"Enter medias urls": "Enter medias urls",
"New Voicemail": "New Voicemail",
"New MMS/SMS": "New MMS/SMS",
"New Contact": "New Contact",
"New Call Log": "New Call Log",
"Outbound MMS/SMS": "Outbound MMS/SMS",
"Trigger when a new voicemail is received.": "Trigger when a new voicemail is received.",
"Trigger when a new MMS/SMS is received.": "Trigger when a new MMS/SMS is received.",
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
"Trigger when a new call log is recorded.": "Trigger when a new call log is recorded.",
"Trigger when a new MMS/SMS is sent.": "Trigger when a new MMS/SMS is sent."
}

View File

@@ -0,0 +1,45 @@
{
"KrispCall": "KrispCall",
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.",
"API key": "API key",
"Add Contact": "Add Contact",
"Delete Contacts": "Delete Contacts",
"Send SMS": "Send SMS",
"Send MMS": "Send MMS",
"Add contact in Krispcall": "Add contact in Krispcall",
"Delete contacts from krispcall.": "Delete contacts from krispcall.",
"Send sms in Krispcall.": "Send sms in Krispcall.",
"Send mms in krispcall.": "Send mms in krispcall.",
"Name": "Name",
"Contact number": "Contact number",
"Address": "Address",
"Company": "Company",
"Email": "Email",
"Contacts": "Contacts",
"From Number": "From Number",
"To Number": "To Number",
"content": "content",
"from number": "from number",
"Medias url": "Medias url",
"Enter your name": "Enter your name",
"Enter contact number": "Enter contact number",
"Enter your address": "Enter your address",
"Enter your company": "Enter your company",
"Enter your email": "Enter your email",
"Enter contact which you want to delete.": "Enter contact which you want to delete.",
"Select an Number": "Select an Number",
"Enter the number to which you want to send sms.": "Enter the number to which you want to send sms.",
"Enter your message here.": "Enter your message here.",
"Select an number": "Select an number",
"Enter medias urls": "Enter medias urls",
"New Voicemail": "New Voicemail",
"New MMS/SMS": "New MMS/SMS",
"New Contact": "New Contact",
"New Call Log": "New Call Log",
"Outbound MMS/SMS": "Outbound MMS/SMS",
"Trigger when a new voicemail is received.": "Trigger when a new voicemail is received.",
"Trigger when a new MMS/SMS is received.": "Trigger when a new MMS/SMS is received.",
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
"Trigger when a new call log is recorded.": "Trigger when a new call log is recorded.",
"Trigger when a new MMS/SMS is sent.": "Trigger when a new MMS/SMS is sent."
}

View File

@@ -0,0 +1,44 @@
{
"KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.": "KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.",
"API key": "API key",
"Add Contact": "Add Contact",
"Delete Contacts": "Delete Contacts",
"Send SMS": "Send SMS",
"Send MMS": "Send MMS",
"Add contact in Krispcall": "Add contact in Krispcall",
"Delete contacts from krispcall.": "Delete contacts from krispcall.",
"Send sms in Krispcall.": "Send sms in Krispcall.",
"Send mms in krispcall.": "Send mms in krispcall.",
"Name": "名称",
"Contact number": "Contact number",
"Address": "Address",
"Company": "Company",
"Email": "电子邮件地址",
"Contacts": "Contacts",
"From Number": "From Number",
"To Number": "To Number",
"content": "content",
"from number": "from number",
"Medias url": "Medias url",
"Enter your name": "Enter your name",
"Enter contact number": "Enter contact number",
"Enter your address": "Enter your address",
"Enter your company": "Enter your company",
"Enter your email": "Enter your email",
"Enter contact which you want to delete.": "Enter contact which you want to delete.",
"Select an Number": "Select an Number",
"Enter the number to which you want to send sms.": "Enter the number to which you want to send sms.",
"Enter your message here.": "Enter your message here.",
"Select an number": "Select an number",
"Enter medias urls": "Enter medias urls",
"New Voicemail": "New Voicemail",
"New MMS/SMS": "New MMS/SMS",
"New Contact": "New Contact",
"New Call Log": "New Call Log",
"Outbound MMS/SMS": "Outbound MMS/SMS",
"Trigger when a new voicemail is received.": "Trigger when a new voicemail is received.",
"Trigger when a new MMS/SMS is received.": "Trigger when a new MMS/SMS is received.",
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
"Trigger when a new call log is recorded.": "Trigger when a new call log is recorded.",
"Trigger when a new MMS/SMS is sent.": "Trigger when a new MMS/SMS is sent."
}

View File

@@ -0,0 +1,49 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { addContact } from './lib/actions/add-contact';
import { deleteContacts } from './lib/actions/delete-contacts';
import { sendSms } from './lib/actions/send-sms';
import { sendMms } from './lib/actions/send-mms';
import { triggers } from './lib/triggers';
import { PieceCategory } from '@activepieces/shared';
export const krispcallAuth = PieceAuth.CustomAuth({
props: {
apiKey: PieceAuth.SecretText({
displayName: 'API key',
required: true,
}),
},
validate: async ({ auth }) => {
try {
await httpClient.sendRequest<string[]>({
method: HttpMethod.GET,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/me',
headers: {
'X-API-KEY': auth.apiKey,
},
});
return { valid: true };
} catch (error: any) {
return { valid: false, error: error.message };
}
},
required: true,
});
export type krispcallAuth = {
apiKey: string;
};
export const KrispCall = createPiece({
displayName: 'KrispCall',
description:
'KrispCall is a cloud telephony system for modern businesses, offering advanced features for high-growth startups and modern enterprises.',
categories: [PieceCategory.COMMUNICATION],
auth: krispcallAuth,
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/krispcall.svg',
authors: ['deependra321'],
actions: [addContact, deleteContacts, sendSms, sendMms],
triggers: triggers,
});

View File

@@ -0,0 +1,54 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { krispcallAuth } from '../..';
export const addContact = createAction({
name: 'addContact',
displayName: 'Add Contact',
auth: krispcallAuth,
description: 'Add contact in Krispcall',
props: {
name: Property.ShortText({
displayName: 'Name',
description: 'Enter your name',
required: false,
}),
number: Property.ShortText({
displayName: 'Contact number',
description: 'Enter contact number',
required: true,
}),
address: Property.ShortText({
displayName: 'Address',
description: 'Enter your address',
required: false,
}),
company: Property.ShortText({
displayName: 'Company',
description: 'Enter your company',
required: false,
}),
email: Property.ShortText({
displayName: 'Email',
description: 'Enter your email',
required: false,
}),
},
async run({ auth, propsValue }) {
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/add-contact',
headers: {
'X-API-KEY': auth.props.apiKey,
},
body: {
name: propsValue.name,
number: propsValue.number,
company: propsValue.company,
email: propsValue.email,
address: propsValue.address,
},
});
return res.body;
},
});

View File

@@ -0,0 +1,30 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { krispcallAuth } from '../..';
export const deleteContacts = createAction({
name: 'deleteContacts',
displayName: 'Delete Contacts',
auth: krispcallAuth,
description: 'Delete contacts from krispcall.',
props: {
contacts: Property.Array({
displayName: 'Contacts',
description: 'Enter contact which you want to delete.',
required: false,
}),
},
async run({ auth, propsValue }) {
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.DELETE,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/delete-contacts',
headers: {
'X-API-KEY': auth.props.apiKey,
},
body: {
contacts: propsValue.contacts,
},
});
return res.body;
},
});

View File

@@ -0,0 +1,93 @@
import { createAction } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { krispcallAuth } from '../..';
import { Property, PiecePropValueSchema } from '@activepieces/pieces-framework';
interface Item {
name: string;
id: string;
number: string;
}
export const sendMms = createAction({
name: 'sendMms',
displayName: 'Send MMS',
auth: krispcallAuth,
description: 'Send mms in krispcall.',
props: {
from_number: Property.Dropdown({
auth: krispcallAuth,
displayName: 'from number',
description: 'Select an number',
required: true,
refreshers: ['auth'],
refreshOnSearch: false,
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first',
};
}
try {
const authVaue = auth.props;
const res = await httpClient.sendRequest<Item[]>({
method: HttpMethod.GET,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/get-numbers',
headers: {
'X-API-KEY': authVaue.apiKey,
},
});
const mappedOptions = res?.body?.map((item) => {
return {
label: item.name,
value: item.number,
};
});
return {
disabled: false,
options: mappedOptions,
};
} catch (error) {
// Handle error
console.error(error);
return { disabled: true, options: [] }; // Return empty options array or handle error accordingly
}
},
}),
to_number: Property.ShortText({
displayName: 'To Number',
description: 'Enter the number to which you want to send sms.',
required: true,
}),
content: Property.ShortText({
displayName: 'content',
description: 'Enter your message here.',
required: false,
}),
medias: Property.Array({
displayName: 'Medias url',
description: 'Enter medias urls',
required: true,
}),
},
async run({ auth, propsValue }) {
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/send-mms',
headers: {
'X-API-KEY': auth.props.apiKey,
},
body: {
from_number: propsValue.from_number,
to_number: propsValue.to_number,
content: propsValue.content,
medias: propsValue.medias,
},
});
return res.body;
},
});

View File

@@ -0,0 +1,87 @@
import { createAction } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { krispcallAuth } from '../..';
import { Property, PiecePropValueSchema } from '@activepieces/pieces-framework';
interface Item {
name: string;
id: string;
number: string;
}
export const sendSms = createAction({
name: 'sendSms',
displayName: 'Send SMS',
auth: krispcallAuth,
description: 'Send sms in Krispcall.',
props: {
from_number: Property.Dropdown({
displayName: 'From Number',
description: 'Select an Number',
required: true,
refreshers: ['auth'],
refreshOnSearch: false,
auth: krispcallAuth,
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first',
};
}
try {
const authVaue = auth.props;
const res = await httpClient.sendRequest<Item[]>({
method: HttpMethod.GET,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/get-numbers',
headers: {
'X-API-KEY': authVaue.apiKey,
},
});
const mappedOptions = res?.body?.map((item) => {
return {
label: item.name,
value: item.number,
};
});
return {
disabled: false,
options: mappedOptions,
};
} catch (error) {
// Handle error
console.error(error);
return { disabled: true, options: [] }; // Return empty options array or handle error accordingly
}
},
}),
to_number: Property.ShortText({
displayName: 'To Number',
description: 'Enter the number to which you want to send sms.',
required: true,
}),
content: Property.ShortText({
displayName: 'content',
description: 'Enter your message here.',
required: true,
}),
},
async run({ auth, propsValue }) {
const res = await httpClient.sendRequest<string[]>({
method: HttpMethod.POST,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/send-sms',
headers: {
'X-API-KEY': auth.props.apiKey,
},
body: {
from_number: propsValue.from_number,
to_number: propsValue.to_number,
content: propsValue.content,
},
});
return res.body;
},
});

View File

@@ -0,0 +1,114 @@
import { krispcallAuth } from '../../index';
import { HttpMethod, httpClient } from "@activepieces/pieces-common";
import { TriggerStrategy, createTrigger } from "@activepieces/pieces-framework"
export const triggers = [
{
name: 'newVoicemail',
displayName: 'New Voicemail',
description: 'Trigger when a new voicemail is received.',
action: 'new_voicemail',
sampleData: {
id: '',
from: '+9779821110987',
duration: '5 seconds',
call_time: '2000-10-31T01:30:00.000-05:00',
voicemail_audio: 'voicemail.mp4',
},
},
{
name: 'newMms',
displayName: 'New MMS/SMS',
description: 'Trigger when a new MMS/SMS is received.',
action: 'new_sms_or_mms',
sampleData: {
"id": "YiW2nyxqtJPYqkRKbrcJQ7",
"from_number": "+16466813538",
"to_number": "+12517327005",
"content": "Last testing",
"media_link": "https://api.twilio.com/2010-04-01/Accounts/LINK/Media/SOMETHING"
},
},
{
name: 'newContact',
displayName: 'New Contact',
description: 'Trigger when a new contact is added.',
action: 'new_contact',
sampleData: {
id: '1',
email: 'john@example.com',
company: 'KrispCall',
address: 'Singapore',
name: 'John Smith',
contactNumber: '+9779834509123',
},
},
{
name: 'newCallLog',
displayName: 'New Call Log',
description: 'Trigger when a new call log is recorded.',
action: 'new_call_log',
sampleData: {
id: '101',
callFrom: "+11234567890",
callTo: "+11234567891",
direction: "Outgoing",
duration : "0hr 01min 30sec",
outcome:"Completed",
callRecording: "http://example.com/recording.mp3",
},
},
{
name: 'OutboundSMS/MMS',
displayName: 'Outbound MMS/SMS',
description: 'Trigger when a new MMS/SMS is sent.',
action: 'outbound_sms_or_mms',
sampleData: {
"id": "YiW2nyxqtJPYqkRKbrcJQ7",
"from_number": "+16466813538",
"to_number": "+12517327005",
"content": "Last testing",
"media_link": "https://api.twilio.com/2010-04-01/Accounts/LINK/Media/SOMETHING"
},
},
].map(trigger => {
return createTrigger({
name: trigger.name,
displayName: trigger.displayName,
auth: krispcallAuth,
description: trigger.description,
props: {},
sampleData: trigger.sampleData,
type: TriggerStrategy.WEBHOOK,
async onEnable(context) {
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/subscribe',
body: {
hookUrl: context.webhookUrl,
action: trigger.action,
},
headers: {
'X-API-KEY': context.auth.props.apiKey,
},
});
await context.store.put('_webhook_id', response.body.id);
},
async onDisable(context) {
const webhookId = await context.store.get<string>('_webhook_id');
await httpClient.sendRequest({
method: HttpMethod.DELETE,
url: 'https://app.krispcall.com/api/v3/platform/activepiece/unsubscribe',
body: {
hookUrl: webhookId,
},
headers: {
'X-API-KEY': context.auth.props.apiKey,
},
});
},
async run(context) {
return [context.payload.body];
},
})
})

View File

@@ -0,0 +1,19 @@
{
"extends": "../../../../tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
},
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
]
}

View File

@@ -0,0 +1,11 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
"include": ["src/**/*.ts"]
}