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-instantly-ai
This library was generated with [Nx](https://nx.dev).
## Running lint
Run `nx build pieces-instantly-ai` to build the library.

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-instantly-ai",
"version": "0.0.6"
}

View File

@@ -0,0 +1,60 @@
{
"name": "pieces-instantly-ai",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/instantly-ai/src",
"projectType": "library",
"release": {
"version": {
"currentVersionResolver": "git-tag",
"preserveLocalDependencyProtocols": false,
"manifestRootsToUpdate": [
"dist/{projectRoot}"
]
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/instantly-ai",
"tsConfig": "packages/pieces/community/instantly-ai/tsconfig.lib.json",
"packageJson": "packages/pieces/community/instantly-ai/package.json",
"main": "packages/pieces/community/instantly-ai/src/index.ts",
"assets": [
"packages/pieces/community/instantly-ai/*.md"
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"nx-release-publish": {
"options": {
"packageRoot": "dist/{projectRoot}"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/instantly-ai",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
}
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Leistungsstarker eMail-Outtreach und Lead-Verlobungs-Plattform.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nDu kannst einen API-Schlüssel unter **Einstellungen->Integrations->API-Schlüssel**.\n",
"Create Campaign": "Kampagne erstellen",
"Create Lead List": "Lead-Liste erstellen",
"Add Lead to Campaign": "Lead zur Kampagne hinzufügen",
"Search Campaigns": "Suchkampagnen",
"Search Leads": "Leads suchen",
"Custom API Call": "Eigener API-Aufruf",
"Create a new cold email campaign in Instantly": "Erstellen Sie eine neue Kalte E-Mail-Kampagne in Sofort",
"Creates a new lead list.": "Erstellt eine neue Leadliste.",
"Adds a lead to a campaign.": "Fügt eine Lead zu einer Kampagne hinzu.",
"Searchs for campaigns using various filters.": "Sucht nach Kampagnen mit verschiedenen Filtern.",
"Search for leads in Instantly by name or email.": "Suchen Sie nach Leads in Sofort nach Namen oder E-Mail.",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Campaign Name": "Kampagnenname",
"Schedule Time From": "Zeitplanzeit ab",
"Schedule Time To": "Planungszeit bis",
"Schedule Timezone": "Zeitzone planen",
"Send on Weekdays": "An Wochentagen senden",
"Send on Weekends": "An Wochenenden senden",
"Start Date": "Startdatum",
"End Date": "Enddatum",
"Positive Lead Value": "Positiver Lead Wert",
"Is Evergreen": "Ist Evergreen",
"Email Gap": "E-Mail-Lücke",
"Maximum Random Wait Time": "Maximale zufällige Wartezeit",
"Text Only": "Nur Text",
"Daily Limit": "Tägliches Limit",
"Stop on Reply": "Bei Antwort stoppen",
"Link Tracking": "Linkverfolgung",
"Open Tracking": "Tracking öffnen",
"Stop on Auto Reply": "Stoppen bei Auto-Antwort",
"Daily Maximum Leads": "Tägliche maximale Leads",
"Prioritize New Leads": "Neue Leads priorisieren",
"Match Lead ESP": "Lead ESP Match",
"Stop for Company": "Unternehmen stoppen",
"Insert Unsubscribe Header": "Header abbestellen",
"Allow Risky Contacts": "Erlaube riskante Kontakte",
"Disable Bounce Protection": "Bounce-Schutz deaktivieren",
"List Name": "Listenname",
"Enable Enrichment": "Bereicherung aktivieren",
"Lead": "Lead",
"Campaign": "Kampagne",
"Skip if in Campaign": "Überspringen wenn in der Kampagne",
"Search": "Suche",
"List": "Liste",
"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)",
"Name of the campaign": "Name der Kampagne",
"Start time in 24-hour format (e.g., \"09:00\")": "Startzeit im 24-Stunden-Format (z.B. \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Endzeit im 24-Stunden-Format (z. B. \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Zeitzone für den Zeitplan, d.h. \"America/Dawson\".",
"Whether to send emails Monday-Friday": "Ob E-Mails von Montag bis Freitag versendet werden sollen",
"Whether to send emails Saturday-Sunday": "Ob E-Mails Samstag-Sonntag gesendet werden sollen",
"Date to start the campaign": "Startdatum der Kampagne",
"Date to end the campaign": "Enddatum der Kampagne",
"Value of every positive lead": "Wert jeder positiven Lead",
"Whether the campaign is evergreen": "Ob die Kampagne immer grün ist",
"Gap between emails in minutes": "Lücke zwischen E-Mails in Minuten",
"Maximum random wait time in minutes": "Maximale zufällige Wartezeit in Minuten",
"Whether the campaign is text-only": "Ob die Kampagne nur Text ist",
"Daily limit for sending emails": "Tägliches Limit für das Senden von E-Mails",
"Whether to stop campaign on reply": "Ob die Kampagne bei Antwort gestoppt werden soll",
"Whether to track links in emails": "Ob Links in E-Mails verfolgt werden sollen",
"Whether to track opens in emails": "Ob in E-Mails geöffnet werden soll",
"Whether to stop campaign on auto-reply": "Ob die Kampagne bei Auto-Antwort angehalten werden soll",
"Maximum daily new leads to contact": "Maximale Anzahl von täglich neuen Kontakten",
"Whether to prioritize new leads": "Ob neue Leads priorisiert werden sollen",
"Whether to match leads by ESP": "Ob Leads von ESP übereinstimmen sollen",
"Stop campaign for the company (domain) when a lead replies": "Kampagne für die Firma (Domain) stoppen, wenn ein Lead antwortet",
"Insert unsubscribe header in emails": "Abmeldekopf in E-Mails einfügen",
"Allow risky contacts": "Erlaube riskante Kontakte",
"Disable bounce protection": "Bounce-Schutz deaktivieren",
"Whether this list runs the enrichment process on every added lead or not.": "Ob diese Liste den Anreicherungsprozess bei jedem hinzugefügten Blei ausführt oder nicht.",
"Skip lead if it exists in the campaign.": "Lead überspringen, wenn es in der Kampagne existiert.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Suchstring um Leads zu finden - kann Vorname, Nachname oder E-Mail sein (z.B. \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD",
"Campaign Status Changed": "Kampagnen-Status geändert",
"New Lead Added": "Neuer Lead hinzugefügt",
"Triggers when a campaign status changes (completed, paused, etc.).": "Wird ausgelöst, wenn sich der Status der Kampagne ändert (abgeschlossen, pausiert, etc.).",
"Triggers when a new lead is added to a campaign": "Löst aus, wenn ein neuer Lead einer Kampagne hinzugefügt wird",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n Um diesen Trigger zu verwenden, konfigurieren Sie manuell einen Webhook in Sofort. i:\n\n 1. Gehen Sie zu Sofort Einstellungen.\n 2. Navigieren Sie zum Tab Integrationen und finden Sie Webhooks.\n 3. Klicken Sie auf \"Webhook hinzufügen\".\n 4. Geben Sie die Webhook-URL unten ein:\n ```text\n {{webhookUrl}}\n ```\n 5. Wählen Sie den Kampagnen- und Ereignistyp \"Kampagne abgeschlossen\".\n 6. Klicken Sie auf \"Webhook hinzufügen\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Poderoso servicio de correo electrónico frío y plataforma líder de participación.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Crear Campaña",
"Create Lead List": "Crear lista de clientes potenciales",
"Add Lead to Campaign": "Añadir jefe a la campaña",
"Search Campaigns": "Buscar en la campaña",
"Search Leads": "Buscar clientes potenciales",
"Custom API Call": "Llamada API personalizada",
"Create a new cold email campaign in Instantly": "Crear una nueva campaña de correo electrónico en frío al instante",
"Creates a new lead list.": "Crea una nueva lista de inicio.",
"Adds a lead to a campaign.": "Añade un plomo a una campaña.",
"Searchs for campaigns using various filters.": "Busca campañas usando varios filtros.",
"Search for leads in Instantly by name or email.": "Buscar clientes potenciales al instante por nombre o correo electrónico.",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Campaign Name": "Nombre de Campaña",
"Schedule Time From": "Programar tiempo desde",
"Schedule Time To": "Programar tiempo a",
"Schedule Timezone": "Programar zona horaria",
"Send on Weekdays": "Enviar en días semanales",
"Send on Weekends": "Enviar en Semanas",
"Start Date": "Fecha de inicio",
"End Date": "Fecha de fin",
"Positive Lead Value": "Valor de plomo positivo",
"Is Evergreen": "Es Eterna",
"Email Gap": "Desfase de Email",
"Maximum Random Wait Time": "Tiempo máximo de espera aleatoria",
"Text Only": "Sólo texto",
"Daily Limit": "Límite diario",
"Stop on Reply": "Detener en respuesta",
"Link Tracking": "Rastreo de enlaces",
"Open Tracking": "Abrir seguimiento",
"Stop on Auto Reply": "Detener respuesta automática",
"Daily Maximum Leads": "Líderes máximos diarios",
"Prioritize New Leads": "Priorizar nuevos plomos",
"Match Lead ESP": "Coincidir ESP jefe",
"Stop for Company": "Detener para la empresa",
"Insert Unsubscribe Header": "Insertar cabecera de desuscripción",
"Allow Risky Contacts": "Permitir contactos arriesgados",
"Disable Bounce Protection": "Desactivar protección contra rebotes",
"List Name": "Nombre de lista",
"Enable Enrichment": "Activar Enrichment",
"Lead": "Plomo",
"Campaign": "Campaña",
"Skip if in Campaign": "Saltar si está en la campaña",
"Search": "Buscar",
"List": "Lista",
"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)",
"Name of the campaign": "Nombre de la campaña",
"Start time in 24-hour format (e.g., \"09:00\")": "Hora de inicio en formato 24 horas (por ejemplo, \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Hora de finalización en formato 24 horas (por ejemplo, \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Zona horaria para el horario por ejemplo \"América/Dawson\".",
"Whether to send emails Monday-Friday": "Si enviar correos electrónicos de lunes a viernes",
"Whether to send emails Saturday-Sunday": "Si enviar correos electrónicos sábado-domingo",
"Date to start the campaign": "Fecha de inicio de la campaña",
"Date to end the campaign": "Fecha para finalizar la campaña",
"Value of every positive lead": "Valor de cada ventaja positiva",
"Whether the campaign is evergreen": "Si la campaña es siempre verde",
"Gap between emails in minutes": "Salto entre correos electrónicos en minutos",
"Maximum random wait time in minutes": "Tiempo máximo de espera aleatorio en minutos",
"Whether the campaign is text-only": "Si la campaña es de solo texto",
"Daily limit for sending emails": "Límite diario para enviar correos electrónicos",
"Whether to stop campaign on reply": "Detener la campaña en respuesta",
"Whether to track links in emails": "Si desea rastrear enlaces en correos electrónicos",
"Whether to track opens in emails": "Si se abre o no el seguimiento en correos electrónicos",
"Whether to stop campaign on auto-reply": "Detener la campaña en respuesta automática",
"Maximum daily new leads to contact": "Número máximo diario de nuevos clientes potenciales al contacto",
"Whether to prioritize new leads": "Si priorizar nuevos clientes potenciales",
"Whether to match leads by ESP": "Si coincidir con prospectos por ESP",
"Stop campaign for the company (domain) when a lead replies": "Detener campaña para la empresa (dominio) cuando una respuesta principal",
"Insert unsubscribe header in emails": "Insertar cabecera de desuscripción en correos",
"Allow risky contacts": "Permitir contactos arriesgados",
"Disable bounce protection": "Desactivar protección contra rebotes",
"Whether this list runs the enrichment process on every added lead or not.": "Si esta lista ejecuta el proceso de enrichment en cada ventaja añadida o no.",
"Skip lead if it exists in the campaign.": "Saltar el plomo si existe en la campaña.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Buscar cadenas para encontrar clientes potenciales - puede ser el Primer Nombre, Apellido o Correo Electrónico (por ejemplo, \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO",
"Campaign Status Changed": "Estado de la campaña cambiado",
"New Lead Added": "Nuevo plomo añadido",
"Triggers when a campaign status changes (completed, paused, etc.).": "Dispara cuando el estado de una campaña cambia (completado, pausado, etc.).",
"Triggers when a new lead is added to a campaign": "Dispara cuando se agrega un nuevo líder a una campaña",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Puissante plateforme d'engagement pour les courriels froids.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Créer une campagne",
"Create Lead List": "Créer une liste de prospects",
"Add Lead to Campaign": "Ajouter un prospect à la campagne",
"Search Campaigns": "Rechercher des campagnes",
"Search Leads": "Rechercher des prospects",
"Custom API Call": "Appel API personnalisé",
"Create a new cold email campaign in Instantly": "Créer une nouvelle campagne d'email froide instantanément",
"Creates a new lead list.": "Crée une nouvelle liste de leaders.",
"Adds a lead to a campaign.": "Ajoute un lien vers une campagne.",
"Searchs for campaigns using various filters.": "Recherche des campagnes en utilisant différents filtres.",
"Search for leads in Instantly by name or email.": "Recherchez des prospects instantanément par nom ou par email.",
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
"Campaign Name": "Nom de la campagne",
"Schedule Time From": "Planifier l'heure à partir de",
"Schedule Time To": "Planifier le temps à",
"Schedule Timezone": "Planifier le fuseau horaire",
"Send on Weekdays": "Envoyer les jours de la semaine",
"Send on Weekends": "Envoyer les week-ends",
"Start Date": "Date de début",
"End Date": "Date de fin",
"Positive Lead Value": "Valeur positive du prospect",
"Is Evergreen": "Est Evergreen",
"Email Gap": "Gap de l'email",
"Maximum Random Wait Time": "Temps d'attente maximum aléatoire",
"Text Only": "Texte uniquement",
"Daily Limit": "Limite Quotidienne",
"Stop on Reply": "Arrêter sur la réponse",
"Link Tracking": "Suivi des liens",
"Open Tracking": "Ouvrir le suivi",
"Stop on Auto Reply": "Arrêt sur réponse automatique",
"Daily Maximum Leads": "Dates maximales journalières",
"Prioritize New Leads": "Prioriser les nouveaux prospects",
"Match Lead ESP": "Piste de correspondance ESP",
"Stop for Company": "Arrêt pour la société",
"Insert Unsubscribe Header": "Insérer l'en-tête de désinscription",
"Allow Risky Contacts": "Autoriser les contacts à risque",
"Disable Bounce Protection": "Désactiver la protection contre les rebonds",
"List Name": "Nom de la liste",
"Enable Enrichment": "Activer l'enrichissement",
"Lead": "Prospect",
"Campaign": "Campagnes",
"Skip if in Campaign": "Sauter si dans la campagne",
"Search": "Rechercher",
"List": "Liste",
"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)",
"Name of the campaign": "Nom de la campagne",
"Start time in 24-hour format (e.g., \"09:00\")": "Heure de début au format 24 heures (par exemple, \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Heure de fin au format 24 heures (par exemple \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Fuseau horaire par exemple \"Amérique/Dawson\".",
"Whether to send emails Monday-Friday": "Si vous souhaitez envoyer des e-mails du lundi au vendredi",
"Whether to send emails Saturday-Sunday": "Si vous souhaitez envoyer des e-mails le samedi et dimanche",
"Date to start the campaign": "Date de début de la campagne",
"Date to end the campaign": "Date de fin de la campagne",
"Value of every positive lead": "Valeur de chaque plomb positif",
"Whether the campaign is evergreen": "Si la campagne est toujours verte",
"Gap between emails in minutes": "Écart entre les emails en minutes",
"Maximum random wait time in minutes": "Temps d'attente maximum aléatoire en minutes",
"Whether the campaign is text-only": "Si la campagne est en mode texte",
"Daily limit for sending emails": "Limite quotidienne d'envoi d'emails",
"Whether to stop campaign on reply": "Arrêter ou non la campagne en réponse",
"Whether to track links in emails": "S'il faut suivre les liens dans les e-mails",
"Whether to track opens in emails": "Si le suivi s'ouvre dans les e-mails",
"Whether to stop campaign on auto-reply": "Arrêter ou non la campagne en réponse automatique",
"Maximum daily new leads to contact": "Nombre maximum de nouveaux contacts quotidiens à contacter",
"Whether to prioritize new leads": "S'il faut prioriser les nouveaux prospects",
"Whether to match leads by ESP": "Si vous souhaitez faire correspondre les prospects par ESP",
"Stop campaign for the company (domain) when a lead replies": "Arrêter la campagne pour l'entreprise (domaine) quand un prospect répond",
"Insert unsubscribe header in emails": "Insérer l'en-tête de désinscription dans les e-mails",
"Allow risky contacts": "Autoriser les contacts à risque",
"Disable bounce protection": "Désactiver la protection contre les rebonds",
"Whether this list runs the enrichment process on every added lead or not.": "Si cette liste exécute le processus d'enrichissement sur chaque piste ajoutée ou non.",
"Skip lead if it exists in the campaign.": "Ignorer le plomb s'il existe dans la campagne.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Chaîne de recherche pour trouver des prospects - peut être Prénom, Nom, ou Email (par exemple \"Jean Doe\").",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "OBTENIR",
"POST": "POSTER",
"PATCH": "PATCH",
"PUT": "EFFACER",
"DELETE": "SUPPRIMER",
"HEAD": "TÊTE",
"Campaign Status Changed": "Statut de la campagne modifié",
"New Lead Added": "Nouveau prospect ajouté",
"Triggers when a campaign status changes (completed, paused, etc.).": "Déclenche quand le statut d'une campagne change (terminé, mis en pause, etc.).",
"Triggers when a new lead is added to a campaign": "Déclenche lorsqu'un nouveau prospect est ajouté à une campagne",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "強力な冷たい電子メールアウトリーチとリードエンゲージメントプラットフォーム。",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\n**設定->統合->APIキー**からAPIキーを取得できます。\n",
"Create Campaign": "キャンペーンを作成",
"Create Lead List": "リードリストを作成",
"Add Lead to Campaign": "キャンペーンにリードを追加",
"Search Campaigns": "キャンペーンを検索",
"Search Leads": "リードを検索",
"Custom API Call": "カスタムAPI通話",
"Create a new cold email campaign in Instantly": "即座に新しい冷たいメールキャンペーンを作成します",
"Creates a new lead list.": "新しいリードリストを作成します。",
"Adds a lead to a campaign.": "キャンペーンにリードを追加します。",
"Searchs for campaigns using various filters.": "様々なフィルターを使用したキャンペーンの検索。",
"Search for leads in Instantly by name or email.": "名前または電子メールで即座にリードを検索します。",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Campaign Name": "キャンペーン名",
"Schedule Time From": "スケジュール時間 から",
"Schedule Time To": "スケジュール時間",
"Schedule Timezone": "スケジュールタイムゾーン",
"Send on Weekdays": "平日に送信",
"Send on Weekends": "週末に送信",
"Start Date": "開始日",
"End Date": "終了日",
"Positive Lead Value": "鉛のプラス値",
"Is Evergreen": "エバーグリーン",
"Email Gap": "Eメールのギャップ数",
"Maximum Random Wait Time": "最大ランダム待機時間",
"Text Only": "テキストのみ",
"Daily Limit": "毎日の制限",
"Stop on Reply": "返信を停止する",
"Link Tracking": "トラッキングリンク",
"Open Tracking": "トラッキングを開く",
"Stop on Auto Reply": "自動返信を停止する",
"Daily Maximum Leads": "毎日の最大リード数",
"Prioritize New Leads": "新しいリードを優先する",
"Match Lead ESP": "リードESPに一致",
"Stop for Company": "会社のために停止",
"Insert Unsubscribe Header": "購読解除ヘッダの挿入",
"Allow Risky Contacts": "危険な連絡先を許可する",
"Disable Bounce Protection": "バウンス保護を無効にする",
"List Name": "リスト名",
"Enable Enrichment": "Enrichmentを有効にする",
"Lead": "リード",
"Campaign": "キャンペーン",
"Skip if in Campaign": "キャンペーンでスキップする",
"Search": "検索",
"List": "リスト",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"Name of the campaign": "キャンペーン名",
"Start time in 24-hour format (e.g., \"09:00\")": "24時間形式で開始時間「09:00」",
"End time in 24-hour format (e.g., \"17:00\")": "終了時刻(例:\"17:00\"",
"Timezone for the schedule i.e. \"America/Dawson\".": "スケジュールのタイムゾーン、すなわち「アメリカ/ドーソン」。",
"Whether to send emails Monday-Friday": "月曜日-金曜日に電子メールを送信するかどうか",
"Whether to send emails Saturday-Sunday": "土曜日-日曜日に電子メールを送信するかどうか",
"Date to start the campaign": "キャンペーン開始日",
"Date to end the campaign": "キャンペーン終了日",
"Value of every positive lead": "すべてのポジティブリードの価値",
"Whether the campaign is evergreen": "キャンペーンが常緑であるかどうか",
"Gap between emails in minutes": "メール間のギャップ(分単位)",
"Maximum random wait time in minutes": "最大ランダム待機時間 (分単位)",
"Whether the campaign is text-only": "キャンペーンがテキストのみであるかどうか",
"Daily limit for sending emails": "メール送信の日数制限",
"Whether to stop campaign on reply": "返信時にキャンペーンを停止するかどうか",
"Whether to track links in emails": "メール内のリンクを追跡するかどうか",
"Whether to track opens in emails": "メールで開封を追跡するかどうか",
"Whether to stop campaign on auto-reply": "自動返信時にキャンペーンを停止するかどうか",
"Maximum daily new leads to contact": "毎日の新しい連絡先の最大数",
"Whether to prioritize new leads": "新しいリードを優先するかどうか",
"Whether to match leads by ESP": "ESPでリードを一致させるかどうか",
"Stop campaign for the company (domain) when a lead replies": "リードが返信したときに会社(ドメイン)のキャンペーンを停止する",
"Insert unsubscribe header in emails": "メールに登録解除ヘッダーを挿入する",
"Allow risky contacts": "危険な連絡先を許可する",
"Disable bounce protection": "バウンス保護を無効にする",
"Whether this list runs the enrichment process on every added lead or not.": "このリストが追加されたすべてのリードでエンリッチメントプロセスを実行するかどうか。",
"Skip lead if it exists in the campaign.": "キャンペーンにリードが存在する場合はスキップします。",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "リードを見つけるための検索文字列 - 姓、姓、または電子メール(例えば、\"ジョンDoe\")であることができます。",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭",
"Campaign Status Changed": "キャンペーンステータスが変更されました",
"New Lead Added": "新しいリードが追加されました",
"Triggers when a campaign status changes (completed, paused, etc.).": "キャンペーンのステータスが変更されたとき(完了、一時停止など)、トリガーします。",
"Triggers when a new lead is added to a campaign": "新しいリードがキャンペーンに追加されたときに発生する",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Krachtige koude e-mail outreach en lead engagement platform.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nJe kunt een API-sleutel verkrijgen via **Instellingen->Integrations->API Keys**.\n",
"Create Campaign": "Nieuwe campagne",
"Create Lead List": "Maak Lead Lijst",
"Add Lead to Campaign": "Voeg Lead toe aan Campagne",
"Search Campaigns": "Zoek campagnes",
"Search Leads": "Zoek leads",
"Custom API Call": "Custom API Call",
"Create a new cold email campaign in Instantly": "Maak direct een nieuwe koude e-mail campagne",
"Creates a new lead list.": "Maakt een nieuwe lead list aan.",
"Adds a lead to a campaign.": "Voegt een lead toe aan een campagne.",
"Searchs for campaigns using various filters.": "Zoekt voor campagnes met verschillende filters.",
"Search for leads in Instantly by name or email.": "Zoeken naar leads in direct via naam of e-mail.",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Campaign Name": "Campagne Naam",
"Schedule Time From": "Schema tijd van",
"Schedule Time To": "Schema Tijd Tot",
"Schedule Timezone": "Schema Tijdzone",
"Send on Weekdays": "Verzenden op weekdagen",
"Send on Weekends": "Verzenden op weekenden",
"Start Date": "Start datum",
"End Date": "Eind datum",
"Positive Lead Value": "Positieve lead waarde",
"Is Evergreen": "Is Evergreen",
"Email Gap": "E-mail Gap",
"Maximum Random Wait Time": "Maximale willekeurige wachttijd",
"Text Only": "Alleen tekst",
"Daily Limit": "Dagelijks limiet",
"Stop on Reply": "Stop bij antwoord",
"Link Tracking": "Link Volgen",
"Open Tracking": "Open volgen",
"Stop on Auto Reply": "Stop bij automatisch antwoord",
"Daily Maximum Leads": "Dagelijkse Maximum Leads",
"Prioritize New Leads": "Prioriteer nieuwe Leads",
"Match Lead ESP": "Wedstrijd leider ESP",
"Stop for Company": "Stop voor bedrijf",
"Insert Unsubscribe Header": "Koptekst uitschrijven invoegen",
"Allow Risky Contacts": "Risicovolle contacten toestaan",
"Disable Bounce Protection": "Bounce bescherming uitschakelen",
"List Name": "Lijst Naam",
"Enable Enrichment": "Verrijking inschakelen",
"Lead": "Lood",
"Campaign": "Campagne",
"Skip if in Campaign": "Overslaan als in Campagne",
"Search": "Zoeken",
"List": "Klantenlijst",
"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)",
"Name of the campaign": "Naam van de campagne",
"Start time in 24-hour format (e.g., \"09:00\")": "Start tijd in 24-uurs formaat (bijv. \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Eindtijd in 24-uurs formaat (bijv. \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Tijdzone voor het tijdsplan, dat wil zeggen \"Amerika/Dρon\".",
"Whether to send emails Monday-Friday": "Verzenden van e-mails maandag-vrijdag",
"Whether to send emails Saturday-Sunday": "Stuur e-mails zaterday-zondag",
"Date to start the campaign": "Startdatum van de campagne",
"Date to end the campaign": "Datum waarop de campagne wordt beëindigd",
"Value of every positive lead": "Waarde van elke positieve lead",
"Whether the campaign is evergreen": "Of de campagne ooit groen is",
"Gap between emails in minutes": "Splits tussen e-mails in minuten",
"Maximum random wait time in minutes": "Maximum willekeurige wachttijd in minuten",
"Whether the campaign is text-only": "Of de campagne alleen text-only is",
"Daily limit for sending emails": "Dagelijkse limiet voor het verzenden van e-mails",
"Whether to stop campaign on reply": "Of de campagne te stoppen bij antwoord",
"Whether to track links in emails": "Of links in e-mails moeten worden bijgehouden",
"Whether to track opens in emails": "Of u wilt volgen opent in e-mails",
"Whether to stop campaign on auto-reply": "Of de campagne moet stoppen bij automatisch antwoord",
"Maximum daily new leads to contact": "Maximum aantal dagelijkse nieuwe leads in contact",
"Whether to prioritize new leads": "Of prioriteit geven aan nieuwe leads",
"Whether to match leads by ESP": "Of je gelijk moet rijden, leidt door ESP",
"Stop campaign for the company (domain) when a lead replies": "Stop campagne voor het bedrijf (domein) wanneer een lead antwoordt",
"Insert unsubscribe header in emails": "Voeg afmeldkop in in e-mails",
"Allow risky contacts": "Riskante contacten toestaan",
"Disable bounce protection": "Bounce beveiliging uitschakelen",
"Whether this list runs the enrichment process on every added lead or not.": "Of deze lijst het verrijkingsproces op elke toegevoegde lead uitvoert of niet.",
"Skip lead if it exists in the campaign.": "Sla de leiding over als die in de campagne bestaat.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Zoek een string om leads te vinden - kan een voornaam, achternaam of e-mailadres zijn (bijv. \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD",
"Campaign Status Changed": "Campagnestatus gewijzigd",
"New Lead Added": "Nieuwe Lead toegevoegd",
"Triggers when a campaign status changes (completed, paused, etc.).": "Triggert wanneer een campagne status verandert (voltooid, gepauzeerd, etc.).",
"Triggers when a new lead is added to a campaign": "Triggert wanneer een nieuwe lead wordt toegevoegd aan een campagne",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n Om deze trigger te gebruiken, stel onmiddellijk een webhook handmatig in. i:\n\n 1. Ga naar Instant instellingen.\n 2. Navigeer naar het tabblad Integraties en zoek webhooks.\n 3. Klik op \"Webhook toevoegen\".\n 4. Vul hieronder de webhook URL in:\n ```text\n {{webhookUrl}}\n ```\n 5. Selecteer campagne en event type \"Campagne voltooid\".\n 6. Klik op \"Webhook toevoegen\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Poderosos e-mails frios divulgam e levam a plataforma de engajamento.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nVocê pode obter uma chave de API em **Configurações->Integrações->Chaves de API**.\n",
"Create Campaign": "Criar Campanha",
"Create Lead List": "Criar Lista de Líderes",
"Add Lead to Campaign": "Adicionar Lead para Campanha",
"Search Campaigns": "Campanhas de Busca",
"Search Leads": "Pesquisar Potenciais",
"Custom API Call": "Chamada de API personalizada",
"Create a new cold email campaign in Instantly": "Criar uma nova campanha de e-mail fria em instantaneamente",
"Creates a new lead list.": "Cria uma nova lista de leads.",
"Adds a lead to a campaign.": "Adiciona um líder a uma campanha.",
"Searchs for campaigns using various filters.": "Procurar por campanhas usando vários filtros.",
"Search for leads in Instantly by name or email.": "Pesquisar por leads em instantaneamente por nome ou e-mail.",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Campaign Name": "Nome Da Campanha",
"Schedule Time From": "Agendar horário de",
"Schedule Time To": "Agendar hora para",
"Schedule Timezone": "Agendar fuso horário",
"Send on Weekdays": "Enviar nos dias úteis",
"Send on Weekends": "Enviar nos Semanais",
"Start Date": "Data Inicial",
"End Date": "Data de Término",
"Positive Lead Value": "Valor positivo do Potencial",
"Is Evergreen": "É Perene",
"Email Gap": "E-mail Gap",
"Maximum Random Wait Time": "Tempo de espera máximo aleatório",
"Text Only": "Somente Texto",
"Daily Limit": "Limite Diário",
"Stop on Reply": "Parar na resposta",
"Link Tracking": "Rastreamento de links",
"Open Tracking": "Abrir o Rastreamento",
"Stop on Auto Reply": "Parar na Resposta Automática",
"Daily Maximum Leads": "Máximo diário de Potenciais",
"Prioritize New Leads": "Priorizar Novos Leads",
"Match Lead ESP": "Corresponder ESP do Líder",
"Stop for Company": "Parar para empresa",
"Insert Unsubscribe Header": "Inserir Cabeçalho para Desinscrever",
"Allow Risky Contacts": "Permitir contatos perigosos",
"Disable Bounce Protection": "Desativar Proteção para Rejeição",
"List Name": "Lista de nomes",
"Enable Enrichment": "Habilitar Enriquecimento",
"Lead": "Conduzir",
"Campaign": "Campanha",
"Skip if in Campaign": "Pular se na Campanha",
"Search": "Pesquisar",
"List": "Lista",
"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)",
"Name of the campaign": "Nome da campanha",
"Start time in 24-hour format (e.g., \"09:00\")": "Hora de início em formato de 24 horas (ex: \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Hora de término em formato de 24 horas (ex: \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Fuso horário para o cronograma, ou seja, \"América/Dawson\".",
"Whether to send emails Monday-Friday": "Se deve enviar emails na segunda-feira-sexta-feira",
"Whether to send emails Saturday-Sunday": "Enviar emails ao sábado-domingo",
"Date to start the campaign": "Data para iniciar a campanha",
"Date to end the campaign": "Data para terminar a campanha",
"Value of every positive lead": "Valor de cada Lead positivo",
"Whether the campaign is evergreen": "Se a campanha é sempre verde",
"Gap between emails in minutes": "Espaço entre e-mails em minutos",
"Maximum random wait time in minutes": "Tempo máximo de espera aleatória em minutos",
"Whether the campaign is text-only": "Se a campanha é apenas de texto",
"Daily limit for sending emails": "Limite diário para envio de e-mails",
"Whether to stop campaign on reply": "Interromper campanha na resposta",
"Whether to track links in emails": "Controlar links em e-mails",
"Whether to track opens in emails": "Se deseja rastrear abre em e-mails",
"Whether to stop campaign on auto-reply": "Interromper a campanha na resposta automática",
"Maximum daily new leads to contact": "Máximo de novos leads diários para contato",
"Whether to prioritize new leads": "Priorizar novos leads",
"Whether to match leads by ESP": "Para combinar leads por ESP",
"Stop campaign for the company (domain) when a lead replies": "Parar campanha para a empresa (domínio) quando um líder responder",
"Insert unsubscribe header in emails": "Insira o cabeçalho de cancelamento em emails",
"Allow risky contacts": "Permitir contatos com risco",
"Disable bounce protection": "Desativar proteção contra devolução",
"Whether this list runs the enrichment process on every added lead or not.": "Se esta lista executa o processo de enriquecimento em cada Lead adicionado ou não.",
"Skip lead if it exists in the campaign.": "Pule o lead se existir na campanha.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Sequência de pesquisa para encontrar leads - pode ser o Primeiro Nome, Sobrenome ou E-mail (por exemplo, \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA",
"Campaign Status Changed": "Status da Campanha Alterado",
"New Lead Added": "Novo Potencial Adicionado",
"Triggers when a campaign status changes (completed, paused, etc.).": "Aciona quando um estado da campanha muda (concluído, pausado, etc.).",
"Triggers when a new lead is added to a campaign": "Dispara quando um novo lead é adicionado a uma campanha",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,96 @@
{
"Instantly.ai": "Мгновенно",
"Powerful cold email outreach and lead engagement platform.": "Мощный холодный обмен информацией по электронной почте и поддержка ведущих партнеров.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nВы можете получить ключ API через **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Создать Кампанию",
"Create Lead List": "Создать список предварительных контактов",
"Add Lead to Campaign": "Добавить Обращение к Кампании",
"Search Campaigns": "Поиск кампаний",
"Search Leads": "Поиск предварительных контактов",
"Custom API Call": "Пользовательский вызов API",
"Create a new cold email campaign in Instantly": "Создать новую кампанию по электронной почте мгновенно",
"Creates a new lead list.": "Создает новый список лидеров.",
"Adds a lead to a campaign.": "Добавляет сдвиг к кампании.",
"Searchs for campaigns using various filters.": "Поиск кампаний с использованием различных фильтров.",
"Search for leads in Instantly by name or email.": "Поиск проводов в Мгновенно по имени или электронной почте.",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Campaign Name": "Название кампании",
"Schedule Time From": "График времени от",
"Schedule Time To": "Запланировать время",
"Schedule Timezone": "График часового пояса",
"Send on Weekdays": "Отправить в будние дни",
"Send on Weekends": "Отправить в выходные дни",
"Start Date": "Дата начала",
"End Date": "Дата окончания",
"Positive Lead Value": "Положительное Ведущее значение",
"Is Evergreen": "Вечнозеленый",
"Email Gap": "Провал по электронной почте",
"Maximum Random Wait Time": "Максимальное время случайного ожидания",
"Text Only": "Только текст",
"Daily Limit": "Ежедневный лимит",
"Stop on Reply": "Остановить ответ",
"Link Tracking": "Отслеживание ссылок",
"Open Tracking": "Открыть отслеживание",
"Stop on Auto Reply": "Остановить автоответ",
"Daily Maximum Leads": "Ежедневное максимальное число предварительных контактов",
"Prioritize New Leads": "Приоритет новых предварительных контактов",
"Match Lead ESP": "ESP Лидера матча",
"Stop for Company": "Стоп для Компании",
"Insert Unsubscribe Header": "Вставить заголовок отписки",
"Allow Risky Contacts": "Разрешить рискивать контакты",
"Disable Bounce Protection": "Отключить защиту от отказов",
"List Name": "Название списка",
"Enable Enrichment": "Включить обогащение",
"Lead": "Предв. контакт",
"Campaign": "Кампания",
"Skip if in Campaign": "Пропустить, если в Кампании",
"Search": "Search",
"List": "Список",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"Name of the campaign": "Название кампании",
"Start time in 24-hour format (e.g., \"09:00\")": "Время начала в 24-часовом формате (например, \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "Конец времени в 24-часовом формате (например, \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Часовой пояс для расписания, т.е. \"Америка/Доусон\".",
"Whether to send emails Monday-Friday": "Отправлять письма с понедельника по пятницу",
"Whether to send emails Saturday-Sunday": "Отправлять письма в субботу - воскресенье",
"Date to start the campaign": "Дата начала кампании",
"Date to end the campaign": "Дата завершения кампании",
"Value of every positive lead": "Значение каждого положительного свинца",
"Whether the campaign is evergreen": "Является ли кампания вечнозеленой",
"Gap between emails in minutes": "Разрыв между письмами в минутах",
"Maximum random wait time in minutes": "Максимальное время случайного ожидания в минутах",
"Whether the campaign is text-only": "Доступна ли кампания только текстовая",
"Daily limit for sending emails": "Дневной лимит для отправки писем",
"Whether to stop campaign on reply": "Остановить ли рассылку на ответ",
"Whether to track links in emails": "Отслеживать ли ссылки в письмах",
"Whether to track opens in emails": "Открывать ли отслеживать в письмах",
"Whether to stop campaign on auto-reply": "Остановить рассылку при автоматическом ответе",
"Maximum daily new leads to contact": "Максимальное количество ежедневных новых контактов",
"Whether to prioritize new leads": "Приоритет ли новых контактов",
"Whether to match leads by ESP": "Совпадение проводов по ESP",
"Stop campaign for the company (domain) when a lead replies": "Остановить кампанию компании (домен), когда руководство отвечает",
"Insert unsubscribe header in emails": "Вставить заголовок отписки в письмах",
"Allow risky contacts": "Разрешить рискованные контакты",
"Disable bounce protection": "Отключить защиту отказов",
"Whether this list runs the enrichment process on every added lead or not.": "Работает ли этот список с процессом обогащения на каждом добавленном свинце или нет.",
"Skip lead if it exists in the campaign.": "Пропустить, если он существует в кампании.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Строка поиска для поиска проводов - может быть Имя, Фамилия или Электронная почта (например, \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD",
"Campaign Status Changed": "Статус кампании изменен",
"New Lead Added": "Добавлен новый контакт",
"Triggers when a campaign status changes (completed, paused, etc.).": "Срабатывает при изменении статуса кампании (завершено, приостановлено и т.д.).",
"Triggers when a new lead is added to a campaign": "Включает при добавлении нового свинца в кампанию",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n Чтобы использовать этот триггер, вручную настройте вебхук в мгновенно. i:\n\n 1. Перейдите к настройкам мгновенно.\n 2. Перейдите на вкладку Интеграции и найдите вебхуки.\n 3. Нажмите \"Add Webhook\".\n 4. Введите URL-адрес webhook, указанный ниже:\n ```text\n {{webhookUrl}}\n ```\n 5. Выберите кампанию и тип события \"Завершено\".\n 6. Нажмите \"Добавить Webhook\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Powerful cold email outreach and lead engagement platform.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Create Campaign",
"Create Lead List": "Create Lead List",
"Add Lead to Campaign": "Add Lead to Campaign",
"Search Campaigns": "Search Campaigns",
"Search Leads": "Search Leads",
"Custom API Call": "Custom API Call",
"Create a new cold email campaign in Instantly": "Create a new cold email campaign in Instantly",
"Creates a new lead list.": "Creates a new lead list.",
"Adds a lead to a campaign.": "Adds a lead to a campaign.",
"Searchs for campaigns using various filters.": "Searchs for campaigns using various filters.",
"Search for leads in Instantly by name or email.": "Search for leads in Instantly by name or email.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Campaign Name": "Campaign Name",
"Schedule Time From": "Schedule Time From",
"Schedule Time To": "Schedule Time To",
"Schedule Timezone": "Schedule Timezone",
"Send on Weekdays": "Send on Weekdays",
"Send on Weekends": "Send on Weekends",
"Start Date": "Start Date",
"End Date": "End Date",
"Positive Lead Value": "Positive Lead Value",
"Is Evergreen": "Is Evergreen",
"Email Gap": "Email Gap",
"Maximum Random Wait Time": "Maximum Random Wait Time",
"Text Only": "Text Only",
"Daily Limit": "Daily Limit",
"Stop on Reply": "Stop on Reply",
"Link Tracking": "Link Tracking",
"Open Tracking": "Open Tracking",
"Stop on Auto Reply": "Stop on Auto Reply",
"Daily Maximum Leads": "Daily Maximum Leads",
"Prioritize New Leads": "Prioritize New Leads",
"Match Lead ESP": "Match Lead ESP",
"Stop for Company": "Stop for Company",
"Insert Unsubscribe Header": "Insert Unsubscribe Header",
"Allow Risky Contacts": "Allow Risky Contacts",
"Disable Bounce Protection": "Disable Bounce Protection",
"List Name": "List Name",
"Enable Enrichment": "Enable Enrichment",
"Lead": "Lead",
"Campaign": "Campaign",
"Skip if in Campaign": "Skip if in Campaign",
"Search": "Search",
"List": "List",
"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)",
"Name of the campaign": "Name of the campaign",
"Start time in 24-hour format (e.g., \"09:00\")": "Start time in 24-hour format (e.g., \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "End time in 24-hour format (e.g., \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Timezone for the schedule i.e. \"America/Dawson\".",
"Whether to send emails Monday-Friday": "Whether to send emails Monday-Friday",
"Whether to send emails Saturday-Sunday": "Whether to send emails Saturday-Sunday",
"Date to start the campaign": "Date to start the campaign",
"Date to end the campaign": "Date to end the campaign",
"Value of every positive lead": "Value of every positive lead",
"Whether the campaign is evergreen": "Whether the campaign is evergreen",
"Gap between emails in minutes": "Gap between emails in minutes",
"Maximum random wait time in minutes": "Maximum random wait time in minutes",
"Whether the campaign is text-only": "Whether the campaign is text-only",
"Daily limit for sending emails": "Daily limit for sending emails",
"Whether to stop campaign on reply": "Whether to stop campaign on reply",
"Whether to track links in emails": "Whether to track links in emails",
"Whether to track opens in emails": "Whether to track opens in emails",
"Whether to stop campaign on auto-reply": "Whether to stop campaign on auto-reply",
"Maximum daily new leads to contact": "Maximum daily new leads to contact",
"Whether to prioritize new leads": "Whether to prioritize new leads",
"Whether to match leads by ESP": "Whether to match leads by ESP",
"Stop campaign for the company (domain) when a lead replies": "Stop campaign for the company (domain) when a lead replies",
"Insert unsubscribe header in emails": "Insert unsubscribe header in emails",
"Allow risky contacts": "Allow risky contacts",
"Disable bounce protection": "Disable bounce protection",
"Whether this list runs the enrichment process on every added lead or not.": "Whether this list runs the enrichment process on every added lead or not.",
"Skip lead if it exists in the campaign.": "Skip lead if it exists in the campaign.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"Campaign Status Changed": "Campaign Status Changed",
"New Lead Added": "New Lead Added",
"Triggers when a campaign status changes (completed, paused, etc.).": "Triggers when a campaign status changes (completed, paused, etc.).",
"Triggers when a new lead is added to a campaign": "Triggers when a new lead is added to a campaign",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,96 @@
{
"Instantly.ai": "Instantly.ai",
"Powerful cold email outreach and lead engagement platform.": "Powerful cold email outreach and lead engagement platform.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Create Campaign",
"Create Lead List": "Create Lead List",
"Add Lead to Campaign": "Add Lead to Campaign",
"Search Campaigns": "Search Campaigns",
"Search Leads": "Search Leads",
"Custom API Call": "Custom API Call",
"Create a new cold email campaign in Instantly": "Create a new cold email campaign in Instantly",
"Creates a new lead list.": "Creates a new lead list.",
"Adds a lead to a campaign.": "Adds a lead to a campaign.",
"Searchs for campaigns using various filters.": "Searchs for campaigns using various filters.",
"Search for leads in Instantly by name or email.": "Search for leads in Instantly by name or email.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Campaign Name": "Campaign Name",
"Schedule Time From": "Schedule Time From",
"Schedule Time To": "Schedule Time To",
"Schedule Timezone": "Schedule Timezone",
"Send on Weekdays": "Send on Weekdays",
"Send on Weekends": "Send on Weekends",
"Start Date": "Start Date",
"End Date": "End Date",
"Positive Lead Value": "Positive Lead Value",
"Is Evergreen": "Is Evergreen",
"Email Gap": "Email Gap",
"Maximum Random Wait Time": "Maximum Random Wait Time",
"Text Only": "Text Only",
"Daily Limit": "Daily Limit",
"Stop on Reply": "Stop on Reply",
"Link Tracking": "Link Tracking",
"Open Tracking": "Open Tracking",
"Stop on Auto Reply": "Stop on Auto Reply",
"Daily Maximum Leads": "Daily Maximum Leads",
"Prioritize New Leads": "Prioritize New Leads",
"Match Lead ESP": "Match Lead ESP",
"Stop for Company": "Stop for Company",
"Insert Unsubscribe Header": "Insert Unsubscribe Header",
"Allow Risky Contacts": "Allow Risky Contacts",
"Disable Bounce Protection": "Disable Bounce Protection",
"List Name": "List Name",
"Enable Enrichment": "Enable Enrichment",
"Lead": "Lead",
"Campaign": "Campaign",
"Skip if in Campaign": "Skip if in Campaign",
"Search": "Search",
"List": "List",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Name of the campaign": "Name of the campaign",
"Start time in 24-hour format (e.g., \"09:00\")": "Start time in 24-hour format (e.g., \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "End time in 24-hour format (e.g., \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Timezone for the schedule i.e. \"America/Dawson\".",
"Whether to send emails Monday-Friday": "Whether to send emails Monday-Friday",
"Whether to send emails Saturday-Sunday": "Whether to send emails Saturday-Sunday",
"Date to start the campaign": "Date to start the campaign",
"Date to end the campaign": "Date to end the campaign",
"Value of every positive lead": "Value of every positive lead",
"Whether the campaign is evergreen": "Whether the campaign is evergreen",
"Gap between emails in minutes": "Gap between emails in minutes",
"Maximum random wait time in minutes": "Maximum random wait time in minutes",
"Whether the campaign is text-only": "Whether the campaign is text-only",
"Daily limit for sending emails": "Daily limit for sending emails",
"Whether to stop campaign on reply": "Whether to stop campaign on reply",
"Whether to track links in emails": "Whether to track links in emails",
"Whether to track opens in emails": "Whether to track opens in emails",
"Whether to stop campaign on auto-reply": "Whether to stop campaign on auto-reply",
"Maximum daily new leads to contact": "Maximum daily new leads to contact",
"Whether to prioritize new leads": "Whether to prioritize new leads",
"Whether to match leads by ESP": "Whether to match leads by ESP",
"Stop campaign for the company (domain) when a lead replies": "Stop campaign for the company (domain) when a lead replies",
"Insert unsubscribe header in emails": "Insert unsubscribe header in emails",
"Allow risky contacts": "Allow risky contacts",
"Disable bounce protection": "Disable bounce protection",
"Whether this list runs the enrichment process on every added lead or not.": "Whether this list runs the enrichment process on every added lead or not.",
"Skip lead if it exists in the campaign.": "Skip lead if it exists in the campaign.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"Campaign Status Changed": "Campaign Status Changed",
"New Lead Added": "New Lead Added",
"Triggers when a campaign status changes (completed, paused, etc.).": "Triggers when a campaign status changes (completed, paused, etc.).",
"Triggers when a new lead is added to a campaign": "Triggers when a new lead is added to a campaign",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,97 @@
{
"Powerful cold email outreach and lead engagement platform.": "Powerful cold email outreach and lead engagement platform.",
"\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n": "\nYou can obtain an API key from **Settings->Integrations->API Keys**.\n",
"Create Campaign": "Create Campaign",
"Create Lead List": "Create Lead List",
"Add Lead to Campaign": "Add Lead to Campaign",
"Search Campaigns": "Search Campaigns",
"Search Leads": "Search Leads",
"Custom API Call": "自定义 API 呼叫",
"Create a new cold email campaign in Instantly": "Create a new cold email campaign in Instantly",
"Creates a new lead list.": "Creates a new lead list.",
"Adds a lead to a campaign.": "Adds a lead to a campaign.",
"Searchs for campaigns using various filters.": "Searchs for campaigns using various filters.",
"Search for leads in Instantly by name or email.": "Search for leads in Instantly by name or email.",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Campaign Name": "Campaign Name",
"Schedule Time From": "Schedule Time From",
"Schedule Time To": "Schedule Time To",
"Schedule Timezone": "Schedule Timezone",
"Send on Weekdays": "Send on Weekdays",
"Send on Weekends": "Send on Weekends",
"Start Date": "Start Date",
"End Date": "End Date",
"Positive Lead Value": "Positive Lead Value",
"Is Evergreen": "Is Evergreen",
"Email Gap": "Email Gap",
"Maximum Random Wait Time": "Maximum Random Wait Time",
"Text Only": "Text Only",
"Daily Limit": "Daily Limit",
"Stop on Reply": "Stop on Reply",
"Link Tracking": "Link Tracking",
"Open Tracking": "Open Tracking",
"Stop on Auto Reply": "Stop on Auto Reply",
"Daily Maximum Leads": "Daily Maximum Leads",
"Prioritize New Leads": "Prioritize New Leads",
"Match Lead ESP": "Match Lead ESP",
"Stop for Company": "Stop for Company",
"Insert Unsubscribe Header": "Insert Unsubscribe Header",
"Allow Risky Contacts": "Allow Risky Contacts",
"Disable Bounce Protection": "Disable Bounce Protection",
"List Name": "List Name",
"Enable Enrichment": "Enable Enrichment",
"Lead": "Lead",
"Campaign": "Campaign",
"Skip if in Campaign": "Skip if in Campaign",
"Search": "搜索",
"List": "List",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"Name of the campaign": "Name of the campaign",
"Start time in 24-hour format (e.g., \"09:00\")": "Start time in 24-hour format (e.g., \"09:00\")",
"End time in 24-hour format (e.g., \"17:00\")": "End time in 24-hour format (e.g., \"17:00\")",
"Timezone for the schedule i.e. \"America/Dawson\".": "Timezone for the schedule i.e. \"America/Dawson\".",
"Whether to send emails Monday-Friday": "Whether to send emails Monday-Friday",
"Whether to send emails Saturday-Sunday": "Whether to send emails Saturday-Sunday",
"Date to start the campaign": "Date to start the campaign",
"Date to end the campaign": "Date to end the campaign",
"Value of every positive lead": "Value of every positive lead",
"Whether the campaign is evergreen": "Whether the campaign is evergreen",
"Gap between emails in minutes": "Gap between emails in minutes",
"Maximum random wait time in minutes": "Maximum random wait time in minutes",
"Whether the campaign is text-only": "Whether the campaign is text-only",
"Daily limit for sending emails": "Daily limit for sending emails",
"Whether to stop campaign on reply": "Whether to stop campaign on reply",
"Whether to track links in emails": "Whether to track links in emails",
"Whether to track opens in emails": "Whether to track opens in emails",
"Whether to stop campaign on auto-reply": "Whether to stop campaign on auto-reply",
"Maximum daily new leads to contact": "Maximum daily new leads to contact",
"Whether to prioritize new leads": "Whether to prioritize new leads",
"Whether to match leads by ESP": "Whether to match leads by ESP",
"Stop campaign for the company (domain) when a lead replies": "Stop campaign for the company (domain) when a lead replies",
"Insert unsubscribe header in emails": "Insert unsubscribe header in emails",
"Allow risky contacts": "Allow risky contacts",
"Disable bounce protection": "Disable bounce protection",
"Whether this list runs the enrichment process on every added lead or not.": "Whether this list runs the enrichment process on every added lead or not.",
"Skip lead if it exists in the campaign.": "Skip lead if it exists in the campaign.",
"Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").": "Search string to find leads - can be First Name, Last Name, or Email (e.g. \"John Doe\").",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色",
"Campaign Status Changed": "Campaign Status Changed",
"New Lead Added": "New Lead Added",
"Triggers when a campaign status changes (completed, paused, etc.).": "Triggers when a campaign status changes (completed, paused, etc.).",
"Triggers when a new lead is added to a campaign": "Triggers when a new lead is added to a campaign",
"Markdown": "Markdown",
"\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n ": "\n To use this trigger, manually set up a webhook in Instantly.ai:\n\n 1. Go to Instantly settings.\n 2. Navigate to Integrations tab and find webhooks.\n 3. Click \"Add Webhook\".\n 4. Enter the webhook URL provided below:\n ```text\n {{webhookUrl}}\n ```\n 5. Select the campaign and event type \"Campaign Completed\".\n 6. Click \"Add Webhook\".\n "
}

View File

@@ -0,0 +1,50 @@
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { createCampaignAction } from './lib/actions/create-campaign';
import { createLeadListAction } from './lib/actions/create-lead-list';
import { addLeadToCampaignAction } from './lib/actions/add-lead-to-campaign';
import { searchCampaignsAction } from './lib/actions/search-campaigns';
import { searchLeadsAction } from './lib/actions/search-leads';
import { campaignStatusChangedTrigger } from './lib/triggers/campaign-status-changed';
import { newLeadAddedTrigger } from './lib/triggers/new-lead-added';
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { BASE_URL } from './lib/common/client';
const markdownDescription = `
You can obtain an API key from **Settings->Integrations->API Keys**.
`;
export const instantlyAiAuth = PieceAuth.SecretText({
displayName: 'API Key',
description: markdownDescription,
required: true,
})
export const instantlyAi = createPiece({
displayName: 'Instantly.ai',
description: 'Powerful cold email outreach and lead engagement platform.',
auth: instantlyAiAuth,
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/instantly-ai.png',
categories: [PieceCategory.MARKETING, PieceCategory.SALES_AND_CRM],
authors: [],
actions: [
createCampaignAction,
createLeadListAction,
addLeadToCampaignAction,
searchCampaignsAction,
searchLeadsAction,
createCustomApiCallAction({
auth:instantlyAiAuth,
baseUrl:()=>BASE_URL,
authMapping: async (auth) => ({
Authorization: `Bearer ${auth.secret_text}`,
}),
})
],
triggers: [
campaignStatusChangedTrigger,
newLeadAddedTrigger,
],
});

View File

@@ -0,0 +1,59 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common/client';
import { instantlyAiAuth } from '../../index';
import { campaignId, leadId } from '../common/props';
export const addLeadToCampaignAction = createAction({
auth: instantlyAiAuth,
name: 'add_lead_to_campaign',
displayName: 'Add Lead to Campaign',
description: 'Adds a lead to a campaign.',
props: {
lead_id: leadId(true),
campaign_id: campaignId(true),
skip_if_in_campaign: Property.Checkbox({
displayName: 'Skip if in Campaign',
defaultValue: false,
description: 'Skip lead if it exists in the campaign.',
required: false,
}),
},
async run(context) {
const { lead_id, campaign_id, skip_if_in_campaign } = context.propsValue;
const response = (await makeRequest({
apiKey: context.auth,
endpoint: 'leads/move',
method: HttpMethod.POST,
body: {
ids: [lead_id],
to_campaign_id: campaign_id,
check_duplicates_in_campaigns: skip_if_in_campaign,
},
})) as { id: string; status: string };
const jobId = response.id;
let jobStatus = response.status;
const wait = (ms: number) =>
new Promise((resolve) => setTimeout(resolve, ms));
while (['pending', 'in-progress'].includes(jobStatus)) {
await wait(3000);
const jobResponse = (await makeRequest({
apiKey: context.auth,
endpoint: `background-jobs/${jobId}`,
method: HttpMethod.GET,
})) as { status: string };
jobStatus = jobResponse.status;
}
return {
...response,
status: 'success',
};
},
});

View File

@@ -0,0 +1,286 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common/client';
import { instantlyAiAuth } from '../../index';
export const createCampaignAction = createAction({
auth: instantlyAiAuth,
name: 'create_campaign',
displayName: 'Create Campaign',
description: 'Create a new cold email campaign in Instantly',
props: {
name: Property.ShortText({
displayName: 'Campaign Name',
description: 'Name of the campaign',
required: true,
}),
schedule_time_from: Property.ShortText({
displayName: 'Schedule Time From',
description: 'Start time in 24-hour format (e.g., "09:00")',
required: true,
defaultValue: '09:00',
}),
schedule_time_to: Property.ShortText({
displayName: 'Schedule Time To',
description: 'End time in 24-hour format (e.g., "17:00")',
required: true,
defaultValue: '17:00',
}),
schedule_timezone: Property.ShortText({
displayName: 'Schedule Timezone',
description: 'Timezone for the schedule i.e. "America/Dawson".',
required: true,
}),
weekday_sending: Property.Checkbox({
displayName: 'Send on Weekdays',
description: 'Whether to send emails Monday-Friday',
required: false,
defaultValue: true,
}),
weekend_sending: Property.Checkbox({
displayName: 'Send on Weekends',
description: 'Whether to send emails Saturday-Sunday',
required: false,
defaultValue: false,
}),
start_date: Property.DateTime({
displayName: 'Start Date',
description: 'Date to start the campaign',
required: false,
}),
end_date: Property.DateTime({
displayName: 'End Date',
description: 'Date to end the campaign',
required: false,
}),
pl_value: Property.Number({
displayName: 'Positive Lead Value',
description: 'Value of every positive lead',
required: false,
}),
is_evergreen: Property.Checkbox({
displayName: 'Is Evergreen',
description: 'Whether the campaign is evergreen',
required: false,
}),
email_gap: Property.Number({
displayName: 'Email Gap',
description: 'Gap between emails in minutes',
required: false,
}),
random_wait_max: Property.Number({
displayName: 'Maximum Random Wait Time',
description: 'Maximum random wait time in minutes',
required: false,
}),
text_only: Property.Checkbox({
displayName: 'Text Only',
description: 'Whether the campaign is text-only',
required: false,
}),
daily_limit: Property.Number({
displayName: 'Daily Limit',
description: 'Daily limit for sending emails',
required: false,
}),
stop_on_reply: Property.Checkbox({
displayName: 'Stop on Reply',
description: 'Whether to stop campaign on reply',
required: false,
}),
link_tracking: Property.Checkbox({
displayName: 'Link Tracking',
description: 'Whether to track links in emails',
required: false,
}),
open_tracking: Property.Checkbox({
displayName: 'Open Tracking',
description: 'Whether to track opens in emails',
required: false,
}),
stop_on_auto_reply: Property.Checkbox({
displayName: 'Stop on Auto Reply',
description: 'Whether to stop campaign on auto-reply',
required: false,
}),
daily_max_leads: Property.Number({
displayName: 'Daily Maximum Leads',
description: 'Maximum daily new leads to contact',
required: false,
}),
prioritize_new_leads: Property.Checkbox({
displayName: 'Prioritize New Leads',
description: 'Whether to prioritize new leads',
required: false,
}),
match_lead_esp: Property.Checkbox({
displayName: 'Match Lead ESP',
description: 'Whether to match leads by ESP',
required: false,
}),
stop_for_company: Property.Checkbox({
displayName: 'Stop for Company',
description: 'Stop campaign for the company (domain) when a lead replies',
required: false,
}),
insert_unsubscribe_header: Property.Checkbox({
displayName: 'Insert Unsubscribe Header',
description: 'Insert unsubscribe header in emails',
required: false,
}),
allow_risky_contacts: Property.Checkbox({
displayName: 'Allow Risky Contacts',
description: 'Allow risky contacts',
required: false,
}),
disable_bounce_protect: Property.Checkbox({
displayName: 'Disable Bounce Protection',
description: 'Disable bounce protection',
required: false,
}),
},
async run(context) {
const {
name,
schedule_time_from,
schedule_time_to,
schedule_timezone,
weekday_sending,
weekend_sending,
start_date,
end_date,
pl_value,
is_evergreen,
email_gap,
random_wait_max,
text_only,
daily_limit,
stop_on_reply,
link_tracking,
open_tracking,
stop_on_auto_reply,
daily_max_leads,
prioritize_new_leads,
match_lead_esp,
stop_for_company,
insert_unsubscribe_header,
allow_risky_contacts,
disable_bounce_protect,
} = context.propsValue;
const { auth: apiKey } = context;
// Build the campaign schedule according to API requirements
const campaignSchedule: Record<string, any> = {
schedules: [
{
name: "Default Schedule",
timing: {
from: schedule_time_from,
to: schedule_time_to,
},
days: {
0: weekday_sending, // Monday
1: weekday_sending, // Tuesday
2: weekday_sending, // Wednesday
3: weekday_sending, // Thursday
4: weekday_sending, // Friday
5: weekend_sending, // Saturday
6: weekend_sending, // Sunday
},
timezone: schedule_timezone,
}
],
};
// Add optional start and end dates if provided
if (start_date) {
campaignSchedule['start_date'] = start_date;
}
if (end_date) {
campaignSchedule['end_date'] = end_date;
}
// Build the payload with required fields
const payload: Record<string, unknown> = {
name,
campaign_schedule: campaignSchedule,
};
// Add optional fields if provided
if (pl_value !== undefined) {
payload['pl_value'] = pl_value;
}
if (is_evergreen !== undefined) {
payload['is_evergreen'] = is_evergreen;
}
if (email_gap !== undefined) {
payload['email_gap'] = email_gap;
}
if (random_wait_max !== undefined) {
payload['random_wait_max'] = random_wait_max;
}
if (text_only !== undefined) {
payload['text_only'] = text_only;
}
if (daily_limit !== undefined) {
payload['daily_limit'] = daily_limit;
}
if (stop_on_reply !== undefined) {
payload['stop_on_reply'] = stop_on_reply;
}
if (link_tracking !== undefined) {
payload['link_tracking'] = link_tracking;
}
if (open_tracking !== undefined) {
payload['open_tracking'] = open_tracking;
}
if (stop_on_auto_reply !== undefined) {
payload['stop_on_auto_reply'] = stop_on_auto_reply;
}
if (daily_max_leads !== undefined) {
payload['daily_max_leads'] = daily_max_leads;
}
if (prioritize_new_leads !== undefined) {
payload['prioritize_new_leads'] = prioritize_new_leads;
}
if (match_lead_esp !== undefined) {
payload['match_lead_esp'] = match_lead_esp;
}
if (stop_for_company !== undefined) {
payload['stop_for_company'] = stop_for_company;
}
if (insert_unsubscribe_header !== undefined) {
payload['insert_unsubscribe_header'] = insert_unsubscribe_header;
}
if (allow_risky_contacts !== undefined) {
payload['allow_risky_contacts'] = allow_risky_contacts;
}
if (disable_bounce_protect !== undefined) {
payload['disable_bounce_protect'] = disable_bounce_protect;
}
return await makeRequest({
endpoint: 'campaigns',
method: HttpMethod.POST,
apiKey: apiKey,
body: payload,
});
},
});

View File

@@ -0,0 +1,45 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod } from '@activepieces/pieces-common';
import { makeRequest } from '../common/client';
import { instantlyAiAuth } from '../../index';
export const createLeadListAction = createAction({
auth: instantlyAiAuth,
name: 'create_lead_list',
displayName: 'Create Lead List',
description: 'Creates a new lead list.',
props: {
name: Property.ShortText({
displayName: 'List Name',
required: true,
}),
has_enrichment_task: Property.Checkbox({
displayName: 'Enable Enrichment',
description: 'Whether this list runs the enrichment process on every added lead or not.',
required: false,
defaultValue: false,
}),
},
async run(context) {
const {
name,
has_enrichment_task,
} = context.propsValue;
const { auth: apiKey } = context;
const payload: Record<string, unknown> = {
name,
};
if (has_enrichment_task !== undefined) {
payload['has_enrichment_task'] = has_enrichment_task;
}
return await makeRequest({
endpoint: 'lead-lists',
method: HttpMethod.POST,
apiKey: apiKey,
body: payload,
});
},
});

View File

@@ -0,0 +1,53 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
import { makeRequest } from '../common/client';
import { instantlyAiAuth } from '../../index';
export const searchCampaignsAction = createAction({
auth: instantlyAiAuth,
name: 'search_campaigns',
displayName: 'Search Campaigns',
description: 'Searchs for campaigns using various filters.',
props: {
name: Property.ShortText({
displayName: 'Campaign Name',
required: true,
}),
},
async run(context) {
const { name } = context.propsValue;
const { auth: apiKey } = context;
const result = [];
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const qs: QueryParams = {
limit: '100',
search: name,
};
if (startingAfter) qs['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'campaigns',
method: HttpMethod.GET,
apiKey,
queryParams: qs,
})) as { next_starting_after?: string; items: Record<string, any>[] };
const items = response.items || [];
result.push(...items);
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return {
found: result.length > 0,
result,
};
},
});

View File

@@ -0,0 +1,58 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { instantlyAiAuth } from '../../index';
import { makeRequest } from '../common/client';
import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
import { campaignId, listId } from '../common/props';
export const searchLeadsAction = createAction({
auth: instantlyAiAuth,
name: 'search_leads',
displayName: 'Search Leads',
description: 'Search for leads in Instantly by name or email.',
props: {
search: Property.ShortText({
displayName: 'Search',
description: 'Search string to find leads - can be First Name, Last Name, or Email (e.g. "John Doe").',
required: true,
}),
campaign_id: campaignId(false),
list_id: listId(false)
},
async run(context) {
const {search,campaign_id,list_id} = context.propsValue;
const result = [];
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const body:Record<string,any> = {
limit: '100',
search,
};
if(campaign_id) body['campaign'] = campaign_id;
if(list_id) body['list_id'] = list_id;
if (startingAfter) body['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'leads/list',
method: HttpMethod.POST,
apiKey:context.auth,
body,
})) as { next_starting_after?: string; items: Record<string, any>[] };
const items = response.items || [];
result.push(...items);
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return {
found: result.length > 0,
result,
};
},
});

View File

@@ -0,0 +1,48 @@
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
import { instantlyAiAuth } from '../..';
export const BASE_URL = 'https://api.instantly.ai/api/v2';
export async function makeRequest({
endpoint,
method,
apiKey,
body,
queryParams = {},
}: {
endpoint: string;
method: HttpMethod;
apiKey: AppConnectionValueForAuthProperty<typeof instantlyAiAuth>;
body?: Record<string, unknown>;
queryParams?: Record<string, string | number | boolean>;
}) {
const url = `${BASE_URL}/${endpoint}`;
const queryString = Object.entries(queryParams)
.filter(([_, value]) => value !== undefined && value !== null)
.map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`)
.join('&');
const finalUrl = queryString ? `${url}?${queryString}` : url;
const response = await httpClient.sendRequest({
method,
url: finalUrl,
headers: {
'Content-Type': 'application/json',
'authorization': `Bearer ${apiKey.secret_text}`,
},
body,
});
if (response.status < 200 || response.status >= 300) {
throw new Error(
`Instantly API returned an error: ${response.status} ${
response.body?.message || JSON.stringify(response.body)
}`
);
}
return response.body;
}

View File

@@ -0,0 +1,165 @@
import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
import { DropdownOption, Property } from '@activepieces/pieces-framework';
import { makeRequest } from './client';
import { instantlyAiAuth } from '../..';
export const listId = (required = true) =>
Property.Dropdown({
auth: instantlyAiAuth,
displayName: 'List',
refreshers: [],
required,
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first.',
};
}
const options: DropdownOption<string>[] = [];
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const qs: QueryParams = {
limit: '100',
};
if (startingAfter) qs['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'lead-lists',
method: HttpMethod.GET,
apiKey: auth,
queryParams: qs,
})) as {
next_starting_after?: string;
items: { id: string; name: string }[];
};
const items = response.items || [];
for (const item of items) {
options.push({ label: item.name, value: item.id });
}
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return {
disabled: false,
options,
};
},
});
export const campaignId = (required = true) =>
Property.Dropdown({
auth: instantlyAiAuth,
displayName: 'Campaign',
refreshers: [],
required,
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first.',
};
}
const options: DropdownOption<string>[] = [];
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const qs: QueryParams = {
limit: '100',
};
if (startingAfter) qs['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'campaigns',
method: HttpMethod.GET,
apiKey: auth,
queryParams: qs,
})) as {
next_starting_after?: string;
items: { id: string; name: string }[];
};
const items = response.items || [];
for (const item of items) {
options.push({ label: item.name, value: item.id });
}
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return {
disabled: false,
options,
};
},
});
export const leadId = (required = true) =>
Property.Dropdown({
auth: instantlyAiAuth,
displayName: 'Lead',
refreshers: [],
required,
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your account first.',
};
}
const options: DropdownOption<string>[] = [];
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const body:Record<string,any> = {
limit: 100,
};
if (startingAfter) body['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'leads/list',
method: HttpMethod.POST,
apiKey: auth,
body
})) as {
next_starting_after?: string;
items: { id: string; email: string ,first_name:string,last_name:string}[];
};
const items = response.items || [];
for (const item of items) {
options.push({ label: `${item.first_name} ${item.last_name}`, value: item.id });
}
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return {
disabled: false,
options,
};
},
});

View File

@@ -0,0 +1,43 @@
import { createTrigger, Property, TriggerStrategy } from '@activepieces/pieces-framework';
import { instantlyAiAuth } from '../../index';
export const campaignStatusChangedTrigger = createTrigger({
auth: instantlyAiAuth,
name: 'campaign_status_changed',
displayName: 'Campaign Status Changed',
description: 'Triggers when a campaign status changes (completed, paused, etc.).',
props: {
md: Property.MarkDown({
value: `
To use this trigger, manually set up a webhook in Instantly.ai:
1. Go to Instantly settings.
2. Navigate to Integrations tab and find webhooks.
3. Click "Add Webhook".
4. Enter the webhook URL provided below:
\`\`\`text
{{webhookUrl}}
\`\`\`
5. Select the campaign and event type "Campaign Completed".
6. Click "Add Webhook".
`,
}),
},
type: TriggerStrategy.WEBHOOK,
sampleData: {
timestamp: "2023-08-22T15:45:30.123Z",
event_type: "campaign_completed",
campaign_name: "Product Demo Campaign",
workspace: "workspace_123456",
campaign_id: "campaign_789012"
},
async onEnable(context) {
// Empty
},
async onDisable(context) {
// Empty
},
async run(context) {
return [context.payload.body];
},
});

View File

@@ -0,0 +1,112 @@
import {
AppConnectionValueForAuthProperty,
createTrigger,
TriggerStrategy,
} from '@activepieces/pieces-framework';
import { instantlyAiAuth } from '../../index';
import {
DedupeStrategy,
HttpMethod,
Polling,
pollingHelper,
} from '@activepieces/pieces-common';
import { makeRequest } from '../common/client';
import dayjs from 'dayjs';
const polling: Polling<
AppConnectionValueForAuthProperty<typeof instantlyAiAuth>,
Record<string, any>
> = {
strategy: DedupeStrategy.TIMEBASED,
async items({ auth, lastFetchEpochMS }) {
const result = [];
const isTest = lastFetchEpochMS === 0;
let startingAfter: string | undefined = undefined;
let hasMore = true;
do {
const body: Record<string, any> = {
limit: isTest ? 10 : 100,
};
if (startingAfter) body['starting_after'] = startingAfter;
const response = (await makeRequest({
endpoint: 'leads/list',
method: HttpMethod.POST,
apiKey: auth,
body,
})) as {
next_starting_after?: string;
items: { timestamp_created: string }[];
};
const items = response.items || [];
result.push(...items);
if (isTest) break;
startingAfter = response.next_starting_after;
hasMore = !!startingAfter && items.length > 0;
} while (hasMore);
return result.map((lead) => {
return {
epochMilliSeconds: dayjs(lead.timestamp_created).valueOf(),
data: lead,
};
});
},
};
export const newLeadAddedTrigger = createTrigger({
auth: instantlyAiAuth,
name: 'new_lead_added',
displayName: 'New Lead Added',
description: 'Triggers when a new lead is added to a campaign',
props: {},
type: TriggerStrategy.POLLING,
async onEnable(context) {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async onDisable(context) {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: context.propsValue,
});
},
async test(context) {
return await pollingHelper.test(polling, context);
},
async run(context) {
return await pollingHelper.poll(polling, context);
},
sampleData: {
id: 'd1f61dbc-bcb2-44fb-86b8-3d01c8701fe9',
timestamp_created: '2025-05-25T12:50:04.748Z',
timestamp_updated: '2025-05-25T13:00:52.019Z',
organization: '31ef9f6c-00f0-481f-b309-95694ed324bb',
status: 1,
email_open_count: 0,
email_reply_count: 0,
email_click_count: 0,
company_domain: 'test@gmail.com',
status_summary: {},
campaign: 'd228fc8f-44f2-42f3-b63f-3667dafc24cf',
email: 'test@gmail.com',
payload: {
email: 'test@gmail.com',
lastTouch: null,
leadOwner: 'Test',
leadSource: 'manual',
},
uploaded_by_user: '7f74fadd-b96b-4011-a1da-9b81a5bed165',
upload_method: 'manual',
assigned_to: '7f74fadd-b96b-4011-a1da-9b81a5bed165',
esp_code: 1,
},
});

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"]
},
"include": ["src/**/*.ts"],
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
}