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:
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"LeadConnector": "LeadConnector",
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Email",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Nom de l'empresa",
|
||||
"Website": "Website",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Note",
|
||||
"User": "User",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "Title",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "Description",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Lead-Connector - Hohes Level gehen",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Gehe zur [Marketplace](https://marketplace.gohighlevel.com/) und melde dich für ein Entwicklerkonto an.\n2. Navigieren Sie zu **Meine Apps** und klicken Sie auf **App erstellen**.\n3. Geben Sie den App-Namen an. hen wähle **Privat** als App-Typ, **Unterkonten** als Vertriebstyp aus. Klicke auf **App erstellen** Schaltfläche.\n4. Folgende Bereiche hinzufügen.\n - campaigns.readonly\n - contacts.write\n - Kontakte. eadonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags. rite\n - opportunities.readonly\n - opportunities.write\n - users. eadonly\n - workflows.readonly\n - formulare.readonly\n5. Fügen Sie Umleitungs-URLs hinzu.\n6. Neuen Client-Schlüssel mit gültigem Namen anlegen. Kopiere Client-ID und Client-Geheimnis.\n",
|
||||
"Create Contact": "Kontakt erstellen",
|
||||
"Update Contact": "Kontakt aktualisieren",
|
||||
"Add Contact to Campaign": "Kontakt zur Kampagne hinzufügen",
|
||||
"Add Contact to Workflow": "Kontakt zum Workflow hinzufügen",
|
||||
"Add Note to Contact": "Notiz zu Kontakt hinzufügen",
|
||||
"Search Contacts": "Kontakte suchen",
|
||||
"Create Opportunity": "Verkaufschance erstellen",
|
||||
"Update Opportunity": "Update-Verkaufschance",
|
||||
"Create Task": "Aufgabe erstellen",
|
||||
"Update Task": "Aufgabe aktualisieren",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Create a new contact.": "Neuen Kontakt anlegen.",
|
||||
"Update an existing contact.": "Aktualisiere einen bestehenden Kontakt.",
|
||||
"Add an existing contact to a campaign.": "Hinzufügen eines bestehenden Kontakts zu einer Kampagne.",
|
||||
"Add an existing contact to a workflow.": "Fügen Sie einen bestehenden Kontakt zu einem Workflow hinzu.",
|
||||
"Add a new note to a contact.": "Neue Notiz zu einem Kontakt hinzufügen.",
|
||||
"Search for contacts with a search query.": "Suche nach Kontakten mit einer Suchabfrage.",
|
||||
"Create a new opportunity.": "Erstelle eine neue Chance.",
|
||||
"Updates an existing opportunity.": "Aktualisiert eine vorhandene Möglichkeit.",
|
||||
"Create a new task.": "Erstellen Sie eine neue Aufgabe.",
|
||||
"Update a task.": "Aufgabe aktualisieren.",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"First Name": "Vorname",
|
||||
"Last Name": "Nachname",
|
||||
"Email": "E-Mail",
|
||||
"Phone": "Telefon",
|
||||
"Company Name": "Firmenname",
|
||||
"Website": "Webseite",
|
||||
"Tags": "Tags",
|
||||
"Source": "Quelle",
|
||||
"Country": "Land",
|
||||
"City": "Stadt",
|
||||
"State": "Bundesland",
|
||||
"Address": "Adresse",
|
||||
"Postal Code": "Postleitzahl",
|
||||
"Time Zone": "Zeitzone",
|
||||
"Contact ID": "Kontakt-ID",
|
||||
"Contact": "Kontakt",
|
||||
"Campaign": "Kampagne",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Notiz",
|
||||
"User": "Benutzer",
|
||||
"Search Query": "Suchanfrage",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Teil",
|
||||
"Title": "Titel",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Zugewiesen an",
|
||||
"Monetary Value": "Geldwert",
|
||||
"Opportunity": "Verkaufschance",
|
||||
"Due Date": "Fälligkeitsdatum",
|
||||
"Description": "Beschreibung",
|
||||
"Completed": "Abgeschlossen",
|
||||
"Task": "Aufgabe",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "Wenn Sie einen dynamischen Wert verwenden, stellen Sie sicher, dass Sie den ISO-2-Ländercode und nicht den Landesnamen verwenden.",
|
||||
"The ID of the contact.": "Die ID des Kontakts.",
|
||||
"The contact to use.": "Der zu verwendende Kontakt.",
|
||||
"The value you want to search for.": "Der Wert, nach dem Sie suchen möchten.",
|
||||
"The ID of the pipeline to use.": "Die ID der zu verwendenden Pipeline.",
|
||||
"The stage of the pipeline to use.": "Die Phase der zu verwendenden Pipeline.",
|
||||
"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",
|
||||
"New Contact": "Neuer Kontakt",
|
||||
"Contact Created or Updated": "Kontakt erstellt oder aktualisiert",
|
||||
"New Form Submission": "Neue Formulareinreichung",
|
||||
"New Opportunity": "Neue Verkaufschance",
|
||||
"Trigger when a new contact is added.": "Wird ausgelöst, wenn ein neuer Kontakt hinzugefügt wird.",
|
||||
"Trigger when a contact is created or updated.": "Wird ausgelöst, wenn ein Kontakt erstellt oder aktualisiert wird.",
|
||||
"Trigger when a form is submitted.": "Auslösen wenn ein Formular abgeschickt wird.",
|
||||
"Trigger when a new opportunity is added.": "Auslösen wenn eine neue Chance hinzugefügt wird.",
|
||||
"Form": "Formular",
|
||||
"The form you want to use.": "Das Formular, das Sie verwenden möchten."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Conector líder - Ve a alto nivel",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Crear contacto",
|
||||
"Update Contact": "Actualizar contacto",
|
||||
"Add Contact to Campaign": "Añadir contacto a la campaña",
|
||||
"Add Contact to Workflow": "Añadir contacto al flujo de trabajo",
|
||||
"Add Note to Contact": "Añadir nota al contacto",
|
||||
"Search Contacts": "Buscar contactos",
|
||||
"Create Opportunity": "Crear Oportunidad",
|
||||
"Update Opportunity": "Actualizar Oportunidad",
|
||||
"Create Task": "Crear tarea",
|
||||
"Update Task": "Actualizar tarea",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Create a new contact.": "Crear un nuevo contacto.",
|
||||
"Update an existing contact.": "Actualizar un contacto existente.",
|
||||
"Add an existing contact to a campaign.": "Añadir un contacto existente a una campaña.",
|
||||
"Add an existing contact to a workflow.": "Añadir un contacto existente a un flujo de trabajo.",
|
||||
"Add a new note to a contact.": "Añadir una nueva nota a un contacto.",
|
||||
"Search for contacts with a search query.": "Buscar contactos con una consulta de búsqueda.",
|
||||
"Create a new opportunity.": "Crear una nueva oportunidad.",
|
||||
"Updates an existing opportunity.": "Actualiza una oportunidad existente.",
|
||||
"Create a new task.": "Crear una nueva tarea.",
|
||||
"Update a task.": "Actualizar una tarea.",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"First Name": "Nombre",
|
||||
"Last Name": "Apellido",
|
||||
"Email": "E-mail",
|
||||
"Phone": "Teléfono",
|
||||
"Company Name": "Nombre De La Empresa",
|
||||
"Website": "Sitio web",
|
||||
"Tags": "Etiquetas",
|
||||
"Source": "Fuente",
|
||||
"Country": "País",
|
||||
"City": "Ciudad",
|
||||
"State": "Estado",
|
||||
"Address": "Dirección",
|
||||
"Postal Code": "Código postal",
|
||||
"Time Zone": "Zona horaria",
|
||||
"Contact ID": "ID de contacto",
|
||||
"Contact": "Contacto",
|
||||
"Campaign": "Campaña",
|
||||
"Workflow": "Flujo trabajo",
|
||||
"Note": "Nota",
|
||||
"User": "Usuario",
|
||||
"Search Query": "Buscar consulta",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Etapa",
|
||||
"Title": "Título",
|
||||
"Status": "Estado",
|
||||
"Assigned To": "Asignado a",
|
||||
"Monetary Value": "Valor monetario",
|
||||
"Opportunity": "Oportunidad",
|
||||
"Due Date": "Fecha de fin",
|
||||
"Description": "Descripción",
|
||||
"Completed": "Completado",
|
||||
"Task": "Tarea",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "Cuando utilice un valor dinámico, asegúrese de usar el código de país ISO-2, y no el nombre del país.",
|
||||
"The ID of the contact.": "El ID del contacto.",
|
||||
"The contact to use.": "El contacto a utilizar.",
|
||||
"The value you want to search for.": "El valor que desea buscar.",
|
||||
"The ID of the pipeline to use.": "El ID del pipeline a utilizar.",
|
||||
"The stage of the pipeline to use.": "La etapa del pipeline a utilizar.",
|
||||
"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",
|
||||
"New Contact": "Nuevo contacto",
|
||||
"Contact Created or Updated": "Contacto creado o actualizado",
|
||||
"New Form Submission": "Nuevo envío de formulario",
|
||||
"New Opportunity": "Nueva oportunidad",
|
||||
"Trigger when a new contact is added.": "Activar cuando se añade un nuevo contacto.",
|
||||
"Trigger when a contact is created or updated.": "Activar cuando un contacto es creado o actualizado.",
|
||||
"Trigger when a form is submitted.": "Activar cuando se envía un formulario.",
|
||||
"Trigger when a new opportunity is added.": "Activar cuando se añade una nueva oportunidad.",
|
||||
"Form": "Forma",
|
||||
"The form you want to use.": "El formulario que desea utilizar."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Connecteur de Prospect - Aller au niveau supérieur",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Créer un contact",
|
||||
"Update Contact": "Mettre à jour le contact",
|
||||
"Add Contact to Campaign": "Ajouter un contact à la campagne",
|
||||
"Add Contact to Workflow": "Ajouter un contact au flux de travail",
|
||||
"Add Note to Contact": "Ajouter une note au contact",
|
||||
"Search Contacts": "Rechercher dans les contacts",
|
||||
"Create Opportunity": "Créer une Affaire",
|
||||
"Update Opportunity": "Mettre à jour l'Affaire",
|
||||
"Create Task": "Créer une tâche",
|
||||
"Update Task": "Tâche de mise à jour",
|
||||
"Custom API Call": "Appel API personnalisé",
|
||||
"Create a new contact.": "Créer un nouveau contact.",
|
||||
"Update an existing contact.": "Mettre à jour un contact existant.",
|
||||
"Add an existing contact to a campaign.": "Ajouter un contact existant à une campagne.",
|
||||
"Add an existing contact to a workflow.": "Ajouter un contact existant à un workflow.",
|
||||
"Add a new note to a contact.": "Ajouter une nouvelle note à un contact.",
|
||||
"Search for contacts with a search query.": "Rechercher des contacts avec une requête de recherche.",
|
||||
"Create a new opportunity.": "Créer une nouvelle opportunité.",
|
||||
"Updates an existing opportunity.": "Met à jour une opportunité existante.",
|
||||
"Create a new task.": "Créer une nouvelle tâche.",
|
||||
"Update a task.": "Mettre à jour une tâche.",
|
||||
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Courriel",
|
||||
"Phone": "Téléphone",
|
||||
"Company Name": "Nom de l’entreprise",
|
||||
"Website": "Site Web",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Pays",
|
||||
"City": "Ville",
|
||||
"State": "État",
|
||||
"Address": "Adresses",
|
||||
"Postal Code": "Code postal",
|
||||
"Time Zone": "Fuseau horaire",
|
||||
"Contact ID": "ID du contact",
|
||||
"Contact": "Contacter",
|
||||
"Campaign": "Campagnes",
|
||||
"Workflow": "Flux de travail",
|
||||
"Note": "Note",
|
||||
"User": "Utilisateur",
|
||||
"Search Query": "Requête de recherche",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Étape",
|
||||
"Title": "Titre de la page",
|
||||
"Status": "Statut",
|
||||
"Assigned To": "Assigné à",
|
||||
"Monetary Value": "Valeur monétaire",
|
||||
"Opportunity": "Opportunité",
|
||||
"Due Date": "Date de fin",
|
||||
"Description": "Libellé",
|
||||
"Completed": "Terminé",
|
||||
"Task": "Tâche",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "Lorsque vous utilisez une valeur dynamique, assurez-vous d'utiliser le code de pays ISO-2, et non le nom du pays.",
|
||||
"The ID of the contact.": "L'ID du contact.",
|
||||
"The contact to use.": "Le contact à utiliser.",
|
||||
"The value you want to search for.": "La valeur que vous voulez rechercher.",
|
||||
"The ID of the pipeline to use.": "L'ID du pipeline à utiliser.",
|
||||
"The stage of the pipeline to use.": "L'étape du pipeline à utiliser.",
|
||||
"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",
|
||||
"New Contact": "Nouveau contact",
|
||||
"Contact Created or Updated": "Contact créé ou mis à jour",
|
||||
"New Form Submission": "Nouvelle soumission de formulaire",
|
||||
"New Opportunity": "Nouvelle opportunité",
|
||||
"Trigger when a new contact is added.": "Déclencher lorsqu'un nouveau contact est ajouté.",
|
||||
"Trigger when a contact is created or updated.": "Déclencher lorsqu'un contact est créé ou mis à jour.",
|
||||
"Trigger when a form is submitted.": "Déclencher lorsqu'un formulaire est soumis.",
|
||||
"Trigger when a new opportunity is added.": "Déclencher quand une nouvelle opportunité est ajoutée.",
|
||||
"Form": "Forme",
|
||||
"The form you want to use.": "Le formulaire que vous souhaitez utiliser."
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"LeadConnector": "LeadConnector",
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Email",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Company Name",
|
||||
"Website": "Website",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Note",
|
||||
"User": "User",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "Title",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "Description",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"LeadConnector": "LeadConnector",
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Email",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Company Name",
|
||||
"Website": "Website",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Note",
|
||||
"User": "User",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "Title",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "Description",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "リードコネクタ - ハイレベルに移動",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "連絡先を作成",
|
||||
"Update Contact": "連絡先を更新",
|
||||
"Add Contact to Campaign": "キャンペーンに連絡先を追加",
|
||||
"Add Contact to Workflow": "ワークフローに連絡先を追加",
|
||||
"Add Note to Contact": "連絡先にメモを追加",
|
||||
"Search Contacts": "連絡先を検索",
|
||||
"Create Opportunity": "案件を作成",
|
||||
"Update Opportunity": "商談を更新",
|
||||
"Create Task": "タスクを作成",
|
||||
"Update Task": "タスクの更新",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Create a new contact.": "新しい連絡先を作成します。",
|
||||
"Update an existing contact.": "既存の連絡先を更新します。",
|
||||
"Add an existing contact to a campaign.": "キャンペーンに既存の連絡先を追加します。",
|
||||
"Add an existing contact to a workflow.": "ワークフローに既存の連絡先を追加します。",
|
||||
"Add a new note to a contact.": "連絡先に新しいメモを追加します。",
|
||||
"Search for contacts with a search query.": "検索クエリのある連絡先を検索します。",
|
||||
"Create a new opportunity.": "新しい機会を作りましょう。",
|
||||
"Updates an existing opportunity.": "既存の機会を更新します。",
|
||||
"Create a new task.": "新しいタスクを作成します。",
|
||||
"Update a task.": "タスクを更新する。",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"First Name": "名",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Eメールアドレス",
|
||||
"Phone": "電話番号",
|
||||
"Company Name": "会社名",
|
||||
"Website": "ウェブサイト",
|
||||
"Tags": "タグ",
|
||||
"Source": "ソース",
|
||||
"Country": "国",
|
||||
"City": "市区町村名",
|
||||
"State": "都道府県:",
|
||||
"Address": "住所",
|
||||
"Postal Code": "郵便番号",
|
||||
"Time Zone": "タイムゾーン",
|
||||
"Contact ID": "連絡先ID",
|
||||
"Contact": "お問い合わせ",
|
||||
"Campaign": "キャンペーン",
|
||||
"Workflow": "ワークフロー",
|
||||
"Note": "メモ",
|
||||
"User": "ユーザー",
|
||||
"Search Query": "検索クエリ",
|
||||
"Pipeline": "パイプライン",
|
||||
"Stage": "ステージ",
|
||||
"Title": "タイトル",
|
||||
"Status": "Status",
|
||||
"Assigned To": "割り当て先",
|
||||
"Monetary Value": "金銭的価値",
|
||||
"Opportunity": "機会",
|
||||
"Due Date": "締切日",
|
||||
"Description": "Description",
|
||||
"Completed": "完了",
|
||||
"Task": "タスク",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "動的な値を使用する場合は、必ず国名ではなくISO-2の国コードを使用してください。",
|
||||
"The ID of the contact.": "連絡先のID。",
|
||||
"The contact to use.": "使用する連絡先",
|
||||
"The value you want to search for.": "検索する値。",
|
||||
"The ID of the pipeline to use.": "使用するパイプラインのID。",
|
||||
"The stage of the pipeline to use.": "使用するパイプラインの段階。",
|
||||
"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": "頭",
|
||||
"New Contact": "新しい連絡先",
|
||||
"Contact Created or Updated": "連絡先が作成または更新されました",
|
||||
"New Form Submission": "新しいフォーム提出",
|
||||
"New Opportunity": "新しい機会",
|
||||
"Trigger when a new contact is added.": "新しい連絡先が追加されたときにトリガーします。",
|
||||
"Trigger when a contact is created or updated.": "連絡先が作成または更新されたときにトリガーします。",
|
||||
"Trigger when a form is submitted.": "フォームが送信されたときにトリガーします。",
|
||||
"Trigger when a new opportunity is added.": "新しい商談が追加されたときにトリガーします。",
|
||||
"Form": "フォーム",
|
||||
"The form you want to use.": "使用するフォーム。"
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Lood Connector - Ga hoog niveau",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Ga naar [Marketplace](https://marketplace.gohighlevel.com/) en meld je aan voor een ontwikkelaarsaccount.\n2. Navigeer naar **Mijn Apps** en klik op **Creëer App**.\n3. Geef de app naam. hen selecteert **Privé** als App Type, **Sub-Account** als Distribution Type. Klik op **App maken** Button.\n4. De volgende toepassingsgebieden toevoegen.\n - campagns.readonly\n - contacts.write\n - contacten. alleen\n - locaties.readonly\n - locaties/tags.readonly\n - locaties/tags. rite\n - kansen.readonly\n - kansen.schrijf\n - gebruikers. eadonly\n - workflows.readonly\n - forms.readonly\n5. Voeg redirect URL's toe.\n6. Maak nieuwe clientsleutel aan met geldige naam.Kopiëer Client-ID en Client-geheim.\n",
|
||||
"Create Contact": "Contactpersoon aanmaken",
|
||||
"Update Contact": "Contactpersoon bijwerken",
|
||||
"Add Contact to Campaign": "Contact toevoegen aan campagne",
|
||||
"Add Contact to Workflow": "Contact toevoegen aan Workflow",
|
||||
"Add Note to Contact": "Voeg notitie toe aan contact",
|
||||
"Search Contacts": "Contactpersonen zoeken",
|
||||
"Create Opportunity": "Verkoopkans creëren",
|
||||
"Update Opportunity": "Update Verkoopkans",
|
||||
"Create Task": "Taak maken",
|
||||
"Update Task": "Taak bijwerken",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Maak een nieuw contact aan.",
|
||||
"Update an existing contact.": "Bestaande contactpersoon bijwerken.",
|
||||
"Add an existing contact to a campaign.": "Een bestaand contact toevoegen aan een campagne.",
|
||||
"Add an existing contact to a workflow.": "Een bestaand contact toevoegen aan een workflow.",
|
||||
"Add a new note to a contact.": "Nieuwe notitie toevoegen aan een contactpersoon.",
|
||||
"Search for contacts with a search query.": "Zoek naar contacten met een zoekopdracht.",
|
||||
"Create a new opportunity.": "Maak een nieuwe kans.",
|
||||
"Updates an existing opportunity.": "Werkt een bestaande kans bij.",
|
||||
"Create a new task.": "Creëer een nieuwe taak.",
|
||||
"Update a task.": "Werk een taak bij.",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"First Name": "Voornaam",
|
||||
"Last Name": "Achternaam",
|
||||
"Email": "E-mail",
|
||||
"Phone": "Telefoonnummer",
|
||||
"Company Name": "Bedrijfsnaam",
|
||||
"Website": "website",
|
||||
"Tags": "Labels",
|
||||
"Source": "Bron",
|
||||
"Country": "Land:",
|
||||
"City": "Woonplaats",
|
||||
"State": "Provincie",
|
||||
"Address": "Adres:",
|
||||
"Postal Code": "Postcode - Postcode",
|
||||
"Time Zone": "Tijd Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contactpersoon",
|
||||
"Campaign": "Campagne",
|
||||
"Workflow": "Werkstroom",
|
||||
"Note": "Notitie",
|
||||
"User": "Gebruiker",
|
||||
"Search Query": "Zoek query",
|
||||
"Pipeline": "Pijplijn",
|
||||
"Stage": "Speelveld",
|
||||
"Title": "Aanspreektitel",
|
||||
"Status": "status",
|
||||
"Assigned To": "Toegewezen Aan",
|
||||
"Monetary Value": "Monetaire waarde",
|
||||
"Opportunity": "Kans",
|
||||
"Due Date": "Inleverdatum",
|
||||
"Description": "Beschrijving",
|
||||
"Completed": "Voltooid",
|
||||
"Task": "Opdracht",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "Let op dat bij het gebruik van een dynamische waarde de ISO-2-landcode gebruikt en niet de landnaam.",
|
||||
"The ID of the contact.": "Het ID van de contactpersoon",
|
||||
"The contact to use.": "De contactpersoon te gebruiken.",
|
||||
"The value you want to search for.": "De waarde waarnaar u wilt zoeken",
|
||||
"The ID of the pipeline to use.": "De ID van de pipeline om te gebruiken.",
|
||||
"The stage of the pipeline to use.": "De fase van de pijpleiding om te gebruiken.",
|
||||
"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",
|
||||
"New Contact": "Nieuw contactpersoon",
|
||||
"Contact Created or Updated": "Contact aangemaakt of bijgewerkt",
|
||||
"New Form Submission": "Nieuw formulier indienen",
|
||||
"New Opportunity": "Nieuwe kans",
|
||||
"Trigger when a new contact is added.": "Trigger wanneer een nieuwe contactpersoon wordt toegevoegd.",
|
||||
"Trigger when a contact is created or updated.": "Trigger wanneer een contactpersoon is gemaakt of bijgewerkt.",
|
||||
"Trigger when a form is submitted.": "Trigger wanneer een formulier wordt ingediend.",
|
||||
"Trigger when a new opportunity is added.": "Trigger wanneer een nieuwe kans wordt toegevoegd.",
|
||||
"Form": "Vorm",
|
||||
"The form you want to use.": "Het formulier dat u wilt gebruiken."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Conector de Líder - Ir de Alto Nível",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Criar contato",
|
||||
"Update Contact": "Atualizar contato",
|
||||
"Add Contact to Campaign": "Adicionar Contato à Campanha",
|
||||
"Add Contact to Workflow": "Adicionar contato ao fluxo de trabalho",
|
||||
"Add Note to Contact": "Adicionar nota ao contato",
|
||||
"Search Contacts": "Pesquisar contatos",
|
||||
"Create Opportunity": "Criar Oportunidade",
|
||||
"Update Opportunity": "Atualizar Oportunidade",
|
||||
"Create Task": "Criar tarefa",
|
||||
"Update Task": "Atualizar Tarefa",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Create a new contact.": "Criar um novo contato.",
|
||||
"Update an existing contact.": "Atualizar um contato existente.",
|
||||
"Add an existing contact to a campaign.": "Adicionar um contato existente a uma campanha.",
|
||||
"Add an existing contact to a workflow.": "Adicionar um contato existente a um fluxo de trabalho.",
|
||||
"Add a new note to a contact.": "Adicionar uma nova nota a um contato.",
|
||||
"Search for contacts with a search query.": "Procurar por contatos com uma consulta de pesquisa.",
|
||||
"Create a new opportunity.": "Crie uma nova oportunidade.",
|
||||
"Updates an existing opportunity.": "Atualiza uma oportunidade existente.",
|
||||
"Create a new task.": "Crie uma nova tarefa.",
|
||||
"Update a task.": "Atualizar uma tarefa.",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"First Name": "Nome",
|
||||
"Last Name": "Sobrenome",
|
||||
"Email": "e-mail",
|
||||
"Phone": "Smartphone",
|
||||
"Company Name": "Nome da Empresa",
|
||||
"Website": "site",
|
||||
"Tags": "Etiquetas",
|
||||
"Source": "fonte",
|
||||
"Country": "País/região",
|
||||
"City": "cidade",
|
||||
"State": "Estado:",
|
||||
"Address": "Endereço",
|
||||
"Postal Code": "Código Postal",
|
||||
"Time Zone": "Fuso Horário",
|
||||
"Contact ID": "ID do contato",
|
||||
"Contact": "contato",
|
||||
"Campaign": "Campanha",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Observação",
|
||||
"User": "Usuário",
|
||||
"Search Query": "Consulta de Pesquisa",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Etapa",
|
||||
"Title": "Título",
|
||||
"Status": "Estado",
|
||||
"Assigned To": "Atribuído Para",
|
||||
"Monetary Value": "Valor monetário",
|
||||
"Opportunity": "Oportunidade",
|
||||
"Due Date": "Data de vencimento",
|
||||
"Description": "Descrição",
|
||||
"Completed": "Concluído",
|
||||
"Task": "Tarefas",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "Ao usar um valor dinâmico, certifique-se de usar o código do país ISO-2, e não o nome do país.",
|
||||
"The ID of the contact.": "O ID do contato.",
|
||||
"The contact to use.": "O contato a ser usado",
|
||||
"The value you want to search for.": "O valor que você deseja procurar.",
|
||||
"The ID of the pipeline to use.": "A ID do pipeline a ser usado.",
|
||||
"The stage of the pipeline to use.": "O estágio do pipeline a ser usado.",
|
||||
"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",
|
||||
"New Contact": "Novo Contato",
|
||||
"Contact Created or Updated": "Contato criado ou atualizado",
|
||||
"New Form Submission": "Nova Submissão de Formulário",
|
||||
"New Opportunity": "Nova Oportunidade",
|
||||
"Trigger when a new contact is added.": "Aciona quando um novo contato é adicionado.",
|
||||
"Trigger when a contact is created or updated.": "Aciona quando um contato é criado ou atualizado.",
|
||||
"Trigger when a form is submitted.": "Disparar quando um formulário é submetido.",
|
||||
"Trigger when a new opportunity is added.": "Acionar quando uma nova oportunidade for adicionada.",
|
||||
"Form": "Formulário",
|
||||
"The form you want to use.": "O formulário que você deseja usar."
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"LeadConnector": "LeadConnector",
|
||||
"Lead Connector - Go High Level": "Ведущий коннектор - Перейти на высокий уровень",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Перейдите к [Marketplace](https://marketplace.gohighlevel.com/) и зарегистрируйте учетную запись разработчика.\n2. Перейдите в **Мои приложения** и нажмите на **Создать приложение**.\n3. Укажите имя приложения. hen Sie **Private** als App Type, **SubAccount** als Distribution Type. Нажмите **Создать App**.\n4. Добавить следующие области.\n - campaigns.readonly\n - contacts.write\n - контакты. eadonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags. rite\n - opportunities.readonly\n - Возможности.write\n - пользователей. eadonly\n - workflows.readonly\n - forms.readonly\n5. Добавить редирект URL.\n6. Создайте новый ключ клиента с корректным именем.Копируйте ID клиента и Client Secret.\n",
|
||||
"Create Contact": "Создать контакт",
|
||||
"Update Contact": "Обновить контакт",
|
||||
"Add Contact to Campaign": "Добавить контакт в кампанию",
|
||||
"Add Contact to Workflow": "Добавить контакт в рабочий процесс",
|
||||
"Add Note to Contact": "Добавить заметку к контакту",
|
||||
"Search Contacts": "Поиск контактов",
|
||||
"Create Opportunity": "Создать сделку",
|
||||
"Update Opportunity": "Обновить сделку",
|
||||
"Create Task": "Создать задачу",
|
||||
"Update Task": "Обновить задачу",
|
||||
"Custom API Call": "Пользовательский вызов API",
|
||||
"Create a new contact.": "Создать новый контакт.",
|
||||
"Update an existing contact.": "Обновить существующий контакт.",
|
||||
"Add an existing contact to a campaign.": "Добавить существующий контакт в кампанию.",
|
||||
"Add an existing contact to a workflow.": "Добавить существующий контакт в рабочий процесс.",
|
||||
"Add a new note to a contact.": "Добавить новую заметку к контакту.",
|
||||
"Search for contacts with a search query.": "Поиск контактов с поисковым запросом.",
|
||||
"Create a new opportunity.": "Создать новую возможность.",
|
||||
"Updates an existing opportunity.": "Обновляет существующую возможность.",
|
||||
"Create a new task.": "Создать новую задачу.",
|
||||
"Update a task.": "Изменить задачу.",
|
||||
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Почта",
|
||||
"Phone": "Телефон",
|
||||
"Company Name": "Название компании",
|
||||
"Website": "Сайт",
|
||||
"Tags": "Теги",
|
||||
"Source": "Источник",
|
||||
"Country": "Страна",
|
||||
"City": "Город",
|
||||
"State": "Область",
|
||||
"Address": "Адрес",
|
||||
"Postal Code": "Почтовый индекс",
|
||||
"Time Zone": "Часовой пояс",
|
||||
"Contact ID": "ID контакта",
|
||||
"Contact": "Контакт",
|
||||
"Campaign": "Кампания",
|
||||
"Workflow": "Рабочий процесс",
|
||||
"Note": "Примечание",
|
||||
"User": "Пользователь",
|
||||
"Search Query": "Поисковый запрос",
|
||||
"Pipeline": "Трубопровод",
|
||||
"Stage": "Этап",
|
||||
"Title": "Заголовок",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Назначено",
|
||||
"Monetary Value": "Денежная стоимость",
|
||||
"Opportunity": "Сделка",
|
||||
"Due Date": "Срок сдачи",
|
||||
"Description": "Description",
|
||||
"Completed": "Выполнено",
|
||||
"Task": "Задача",
|
||||
"Method": "Метод",
|
||||
"Headers": "Заголовки",
|
||||
"Query Parameters": "Параметры запроса",
|
||||
"Body": "Тело",
|
||||
"No Error on Failure": "Нет ошибок при ошибке",
|
||||
"Timeout (in seconds)": "Таймаут (в секундах)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "При использовании динамического значения используйте код страны ISO-2, а не название страны.",
|
||||
"The ID of the contact.": "Идентификатор контакта.",
|
||||
"The contact to use.": "Используемый контакт.",
|
||||
"The value you want to search for.": "Значение, которое вы хотите найти.",
|
||||
"The ID of the pipeline to use.": "Идентификатор используемого трубопровода.",
|
||||
"The stage of the pipeline to use.": "Этап трубопровода для использования.",
|
||||
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
|
||||
"GET": "ПОЛУЧИТЬ",
|
||||
"POST": "ПОСТ",
|
||||
"PATCH": "ПАТЧ",
|
||||
"PUT": "ПОКУПИТЬ",
|
||||
"DELETE": "УДАЛИТЬ",
|
||||
"HEAD": "HEAD",
|
||||
"New Contact": "Новый контакт",
|
||||
"Contact Created or Updated": "Контакт создан или обновлён",
|
||||
"New Form Submission": "Новая форма отправки",
|
||||
"New Opportunity": "Новая сделка",
|
||||
"Trigger when a new contact is added.": "Срабатывать при добавлении нового контакта.",
|
||||
"Trigger when a contact is created or updated.": "Триггер при создании или обновлении контакта.",
|
||||
"Trigger when a form is submitted.": "Запуск при отправке формы.",
|
||||
"Trigger when a new opportunity is added.": "Срабатывать при добавлении новой возможности.",
|
||||
"Form": "Форма",
|
||||
"The form you want to use.": "Форма, которую вы хотите использовать."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Email",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Company Name",
|
||||
"Website": "Website",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Note",
|
||||
"User": "User",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "Title",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "Description",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"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)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"LeadConnector": "LeadConnector",
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Email": "Email",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Tên công ty",
|
||||
"Website": "Website",
|
||||
"Tags": "Tags",
|
||||
"Source": "Source",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "Note",
|
||||
"User": "User",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "Title",
|
||||
"Status": "Status",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "Description",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"Lead Connector - Go High Level": "Lead Connector - Go High Level",
|
||||
"\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - ": "\n1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.\n2. Navigate to **My Apps** and click on **Create App**.\n3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.\n4. Add following scopes.\n - campaigns.readonly\n - contacts.write\n - contacts.readonly\n - locations.readonly\n - locations/tags.readonly\n - locations/tags.write\n - opportunities.readonly\n - opportunities.write\n - users.readonly\n - workflows.readonly\n - forms.readonly\n5. Add redirect URLs.\n6. Create new Client key with valid name.Copy Client ID and Client Secret.\n",
|
||||
"Create Contact": "Create Contact",
|
||||
"Update Contact": "Update Contact",
|
||||
"Add Contact to Campaign": "Add Contact to Campaign",
|
||||
"Add Contact to Workflow": "Add Contact to Workflow",
|
||||
"Add Note to Contact": "Add Note to Contact",
|
||||
"Search Contacts": "Search Contacts",
|
||||
"Create Opportunity": "Create Opportunity",
|
||||
"Update Opportunity": "Update Opportunity",
|
||||
"Create Task": "Create Task",
|
||||
"Update Task": "Update Task",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Create a new contact.": "Create a new contact.",
|
||||
"Update an existing contact.": "Update an existing contact.",
|
||||
"Add an existing contact to a campaign.": "Add an existing contact to a campaign.",
|
||||
"Add an existing contact to a workflow.": "Add an existing contact to a workflow.",
|
||||
"Add a new note to a contact.": "Add a new note to a contact.",
|
||||
"Search for contacts with a search query.": "Search for contacts with a search query.",
|
||||
"Create a new opportunity.": "Create a new opportunity.",
|
||||
"Updates an existing opportunity.": "Updates an existing opportunity.",
|
||||
"Create a new task.": "Create a new task.",
|
||||
"Update a task.": "Update a task.",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "名字",
|
||||
"Email": "电子邮件地址",
|
||||
"Phone": "Phone",
|
||||
"Company Name": "Company Name",
|
||||
"Website": "Website",
|
||||
"Tags": "标签",
|
||||
"Source": "来源",
|
||||
"Country": "Country",
|
||||
"City": "City",
|
||||
"State": "State",
|
||||
"Address": "Address",
|
||||
"Postal Code": "Postal Code",
|
||||
"Time Zone": "Time Zone",
|
||||
"Contact ID": "Contact ID",
|
||||
"Contact": "Contact",
|
||||
"Campaign": "Campaign",
|
||||
"Workflow": "Workflow",
|
||||
"Note": "说明",
|
||||
"User": "用户",
|
||||
"Search Query": "Search Query",
|
||||
"Pipeline": "Pipeline",
|
||||
"Stage": "Stage",
|
||||
"Title": "标题",
|
||||
"Status": "状态",
|
||||
"Assigned To": "Assigned To",
|
||||
"Monetary Value": "Monetary Value",
|
||||
"Opportunity": "Opportunity",
|
||||
"Due Date": "Due Date",
|
||||
"Description": "描述",
|
||||
"Completed": "Completed",
|
||||
"Task": "Task",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.": "When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.",
|
||||
"The ID of the contact.": "The ID of the contact.",
|
||||
"The contact to use.": "The contact to use.",
|
||||
"The value you want to search for.": "The value you want to search for.",
|
||||
"The ID of the pipeline to use.": "The ID of the pipeline to use.",
|
||||
"The stage of the pipeline to use.": "The stage of the pipeline to use.",
|
||||
"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": "黑色",
|
||||
"New Contact": "New Contact",
|
||||
"Contact Created or Updated": "Contact Created or Updated",
|
||||
"New Form Submission": "New Form Submission",
|
||||
"New Opportunity": "New Opportunity",
|
||||
"Trigger when a new contact is added.": "Trigger when a new contact is added.",
|
||||
"Trigger when a contact is created or updated.": "Trigger when a contact is created or updated.",
|
||||
"Trigger when a form is submitted.": "Trigger when a form is submitted.",
|
||||
"Trigger when a new opportunity is added.": "Trigger when a new opportunity is added.",
|
||||
"Form": "Form",
|
||||
"The form you want to use.": "The form you want to use."
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
||||
import {
|
||||
createPiece,
|
||||
OAuth2PropertyValue,
|
||||
PieceAuth,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { baseUrl, getContacts, leadConnectorHeaders } from './lib/common';
|
||||
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { addContactToCampaignAction } from './lib/actions/add-contact-to-campaign';
|
||||
import { addContactToWorkflowAction } from './lib/actions/add-contact-to-workflow';
|
||||
import { addNoteToContactAction } from './lib/actions/add-note-to-contact';
|
||||
import { createContact } from './lib/actions/create-contact';
|
||||
import { createOpportunityAction } from './lib/actions/create-opportunity';
|
||||
import { createTaskAction } from './lib/actions/create-task';
|
||||
import { searchContactsAction } from './lib/actions/search-contacts';
|
||||
import { updateContactAction } from './lib/actions/update-contact';
|
||||
import { updateOpportunityAction } from './lib/actions/update-opportunity';
|
||||
import { updateTaskAction } from './lib/actions/update-task';
|
||||
import { contactUpdated } from './lib/triggers/contact-updated';
|
||||
import { newContact } from './lib/triggers/new-contact';
|
||||
import { newFormSubmission } from './lib/triggers/new-form-submission';
|
||||
import { newOpportunity } from './lib/triggers/new-opportunity';
|
||||
|
||||
const markdownDescription = `
|
||||
1. Go to the [Marketplace](https://marketplace.gohighlevel.com/) and sign up for a developer account.
|
||||
2. Navigate to **My Apps** and click on **Create App**.
|
||||
3. Provide app name.Then select **Private** as App Type, **Sub-Account** as Distribution Type. Click **Create App** Button.
|
||||
4. Add following scopes.
|
||||
- campaigns.readonly
|
||||
- contacts.write
|
||||
- contacts.readonly
|
||||
- locations.readonly
|
||||
- locations/tags.readonly
|
||||
- locations/tags.write
|
||||
- opportunities.readonly
|
||||
- opportunities.write
|
||||
- users.readonly
|
||||
- workflows.readonly
|
||||
- forms.readonly
|
||||
5. Add redirect URLs.
|
||||
6. Create new Client key with valid name.Copy Client ID and Client Secret.
|
||||
`;
|
||||
|
||||
export const leadConnectorAuth = PieceAuth.OAuth2({
|
||||
authUrl: 'https://marketplace.gohighlevel.com/oauth/chooselocation',
|
||||
tokenUrl: 'https://services.leadconnectorhq.com/oauth/token',
|
||||
scope: [
|
||||
'campaigns.readonly',
|
||||
'contacts.write',
|
||||
'contacts.readonly',
|
||||
'locations.readonly',
|
||||
'locations/tags.readonly',
|
||||
'locations/tags.write',
|
||||
'opportunities.readonly',
|
||||
'opportunities.write',
|
||||
'users.readonly',
|
||||
'workflows.readonly',
|
||||
'forms.readonly',
|
||||
],
|
||||
description: markdownDescription,
|
||||
required: true,
|
||||
async validate({ auth }) {
|
||||
try {
|
||||
await getContacts(auth);
|
||||
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid API key.',
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
export const leadConnector = createPiece({
|
||||
displayName: 'LeadConnector',
|
||||
description: 'Lead Connector - Go High Level',
|
||||
auth: leadConnectorAuth,
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/lead-connector.png',
|
||||
categories: [PieceCategory.SALES_AND_CRM],
|
||||
authors: ['kishanprmr', 'MoShizzle', 'abuaboud'],
|
||||
actions: [
|
||||
createContact,
|
||||
updateContactAction,
|
||||
addContactToCampaignAction,
|
||||
addContactToWorkflowAction,
|
||||
addNoteToContactAction,
|
||||
searchContactsAction,
|
||||
createOpportunityAction,
|
||||
updateOpportunityAction,
|
||||
createTaskAction,
|
||||
updateTaskAction,
|
||||
createCustomApiCallAction({
|
||||
baseUrl: () => baseUrl,
|
||||
auth: leadConnectorAuth,
|
||||
authMapping: async (auth) => {
|
||||
return {
|
||||
Authorization: `Bearer ${(auth as OAuth2PropertyValue).access_token}`,
|
||||
...leadConnectorHeaders,
|
||||
};
|
||||
},
|
||||
}),
|
||||
],
|
||||
triggers: [newContact, contactUpdated, newFormSubmission, newOpportunity],
|
||||
});
|
||||
@@ -0,0 +1,66 @@
|
||||
import { createAction, OAuth2PropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import { addContactToCampaign, getCampaigns, getContacts } from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const addContactToCampaignAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'add_contact_to_campaign',
|
||||
displayName: 'Add Contact to Campaign',
|
||||
description: 'Add an existing contact to a campaign.',
|
||||
props: {
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
campaign: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Campaign',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const campaigns = await getCampaigns(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: campaigns.map((campaign: any) => {
|
||||
return {
|
||||
label: campaign.name,
|
||||
value: campaign.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const { contact, campaign } = propsValue;
|
||||
|
||||
return await addContactToCampaign(auth.access_token, contact, campaign);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,66 @@
|
||||
import { createAction, OAuth2PropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import { addContactToWorkflow, getContacts, getWorkflows } from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const addContactToWorkflowAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'add_contact_to_workflow',
|
||||
displayName: 'Add Contact to Workflow',
|
||||
description: 'Add an existing contact to a workflow.',
|
||||
props: {
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
workflow: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Workflow',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const campaigns = await getWorkflows(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: campaigns.map((campaign: any) => {
|
||||
return {
|
||||
label: campaign.name,
|
||||
value: campaign.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const { contact, workflow } = propsValue;
|
||||
|
||||
return await addContactToWorkflow(auth.access_token, contact, workflow);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,76 @@
|
||||
import { createAction, OAuth2PropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
addNoteToContact,
|
||||
getContacts,
|
||||
getUsers,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const addNoteToContactAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'add_note_to_contact',
|
||||
displayName: 'Add Note to Contact',
|
||||
description: 'Add a new note to a contact.',
|
||||
props: {
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
note: Property.ShortText({
|
||||
displayName: 'Note',
|
||||
required: true,
|
||||
}),
|
||||
user: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'User',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const users = await getUsers(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: users.map((user: any) => {
|
||||
return {
|
||||
label: `${user.firstName} ${user.lastName}`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const { contact, note, user } = propsValue;
|
||||
|
||||
return await addNoteToContact(auth.access_token, contact, {
|
||||
body: note,
|
||||
userId: user,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,178 @@
|
||||
import {
|
||||
createAction,
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
addContact,
|
||||
Country,
|
||||
getCountries,
|
||||
getTags,
|
||||
getTimezones,
|
||||
LeadConnectorContactDto,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const createContact = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'create_contact',
|
||||
displayName: 'Create Contact',
|
||||
description: 'Create a new contact.',
|
||||
props: {
|
||||
firstName: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
required: false,
|
||||
}),
|
||||
lastName: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
required: false,
|
||||
}),
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
required: false,
|
||||
}),
|
||||
phone: Property.ShortText({
|
||||
displayName: 'Phone',
|
||||
required: false,
|
||||
}),
|
||||
companyName: Property.ShortText({
|
||||
displayName: 'Company Name',
|
||||
required: false,
|
||||
}),
|
||||
website: Property.ShortText({
|
||||
displayName: 'Website',
|
||||
required: false,
|
||||
}),
|
||||
tags: Property.MultiSelectDropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Tags',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const tags = await getTags(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: tags.map((tag) => {
|
||||
return {
|
||||
label: tag.name,
|
||||
value: tag.name,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
source: Property.ShortText({
|
||||
displayName: 'Source',
|
||||
required: false,
|
||||
}),
|
||||
country: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Country',
|
||||
description:
|
||||
'When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async () => {
|
||||
const countries = await getCountries();
|
||||
return {
|
||||
options: countries.map((country: Country) => {
|
||||
return {
|
||||
label: country.name,
|
||||
value: country.iso2Code,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
city: Property.ShortText({
|
||||
displayName: 'City',
|
||||
required: false,
|
||||
}),
|
||||
state: Property.ShortText({
|
||||
displayName: 'State',
|
||||
required: false,
|
||||
}),
|
||||
address: Property.LongText({
|
||||
displayName: 'Address',
|
||||
required: false,
|
||||
}),
|
||||
postalCode: Property.ShortText({
|
||||
displayName: 'Postal Code',
|
||||
required: false,
|
||||
}),
|
||||
timezone: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Time Zone',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const timezones = await getTimezones(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: timezones.map((timezone) => {
|
||||
return {
|
||||
label: timezone,
|
||||
value: timezone,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
await propsValidation.validateZod(propsValue, {
|
||||
email: z.string().email().optional(),
|
||||
phone: z.string().regex(/^\+?[1-9]\d{1,14}$/).optional(),
|
||||
website: z.string().url().optional(),
|
||||
});
|
||||
|
||||
const {
|
||||
firstName,
|
||||
lastName,
|
||||
email,
|
||||
phone,
|
||||
companyName,
|
||||
website,
|
||||
tags,
|
||||
source,
|
||||
country,
|
||||
city,
|
||||
state,
|
||||
address,
|
||||
postalCode,
|
||||
timezone,
|
||||
} = propsValue;
|
||||
|
||||
const contact: LeadConnectorContactDto = {
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
email: email,
|
||||
phone: phone,
|
||||
companyName: companyName,
|
||||
website: website,
|
||||
tags: tags,
|
||||
source: source,
|
||||
country: country,
|
||||
city: city,
|
||||
state: state,
|
||||
address1: address,
|
||||
postalCode: postalCode,
|
||||
timezone: timezone,
|
||||
};
|
||||
|
||||
return await addContact(auth, contact);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,179 @@
|
||||
import {
|
||||
createAction,
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
createOpportunity,
|
||||
getContacts,
|
||||
getPipeline,
|
||||
getPipelines,
|
||||
getUsers,
|
||||
LeadConnectorOpportunityStatus,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const createOpportunityAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'create_opportunity',
|
||||
displayName: 'Create Opportunity',
|
||||
description: 'Create a new opportunity.',
|
||||
props: {
|
||||
pipeline: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Pipeline',
|
||||
description: 'The ID of the pipeline to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const pipelines = await getPipelines(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: pipelines.map((pipeline: any) => {
|
||||
return {
|
||||
label: pipeline.name,
|
||||
value: pipeline.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
stage: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Stage',
|
||||
description: 'The stage of the pipeline to use.',
|
||||
required: true,
|
||||
refreshers: ['pipeline'],
|
||||
options: async ({ auth, pipeline }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const pipelineObj = await getPipeline(
|
||||
auth as OAuth2PropertyValue,
|
||||
pipeline as string
|
||||
);
|
||||
return {
|
||||
options: pipelineObj
|
||||
? pipelineObj.stages.map((stage: any) => {
|
||||
return {
|
||||
label: stage.name,
|
||||
value: stage.id,
|
||||
};
|
||||
})
|
||||
: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
title: Property.ShortText({
|
||||
displayName: 'Title',
|
||||
required: true,
|
||||
}),
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
status: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Status',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async () => {
|
||||
const statuses = Object.values(LeadConnectorOpportunityStatus);
|
||||
|
||||
return {
|
||||
options: statuses.map((status) => {
|
||||
return {
|
||||
label: status.charAt(0).toUpperCase() + status.slice(1),
|
||||
value: status,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
assignedTo: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Assigned To',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const users = await getUsers(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: users.map((user: any) => {
|
||||
return {
|
||||
label: `${user.firstName} ${user.lastName}`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
monetaryValue: Property.Number({
|
||||
displayName: 'Monetary Value',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
await propsValidation.validateZod(propsValue, {
|
||||
monetaryValue: z.number().optional(),
|
||||
});
|
||||
|
||||
const {
|
||||
pipeline,
|
||||
stage,
|
||||
contact,
|
||||
status,
|
||||
title,
|
||||
assignedTo,
|
||||
monetaryValue,
|
||||
} = propsValue;
|
||||
|
||||
return await createOpportunity(auth, {
|
||||
pipelineStageId: stage,
|
||||
contactId: contact,
|
||||
status: status,
|
||||
name: title,
|
||||
pipelineId: pipeline,
|
||||
assignedTo: assignedTo,
|
||||
monetaryValue: monetaryValue,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,95 @@
|
||||
import { createAction, OAuth2PropertyValue, Property } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
createTask,
|
||||
getContacts,
|
||||
getUsers,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const createTaskAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'create_task',
|
||||
displayName: 'Create Task',
|
||||
description: 'Create a new task.',
|
||||
props: {
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
title: Property.ShortText({
|
||||
displayName: 'Title',
|
||||
required: true,
|
||||
}),
|
||||
dueDate: Property.DateTime({
|
||||
displayName: 'Due Date',
|
||||
required: true,
|
||||
}),
|
||||
description: Property.ShortText({
|
||||
displayName: 'Description',
|
||||
required: false,
|
||||
}),
|
||||
assignedTo: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Assigned To',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const users = await getUsers(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: users.map((user: any) => {
|
||||
return {
|
||||
label: `${user.firstName} ${user.lastName}`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
completed: Property.Checkbox({
|
||||
displayName: 'Completed',
|
||||
required: true,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const { contact, title, dueDate, description, assignedTo, completed } =
|
||||
propsValue;
|
||||
|
||||
return await createTask(auth.access_token, contact, {
|
||||
title: title,
|
||||
// Needs to be ISO string without milliseconds
|
||||
dueDate: new Date(dueDate).toISOString().split('.')[0] + 'Z',
|
||||
body: description,
|
||||
assignedTo: assignedTo,
|
||||
completed,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,25 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { getContacts } from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const searchContactsAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'search_contacts',
|
||||
displayName: 'Search Contacts',
|
||||
description: 'Search for contacts with a search query.',
|
||||
props: {
|
||||
query: Property.ShortText({
|
||||
displayName: 'Search Query',
|
||||
description: 'The value you want to search for.',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const { query } = propsValue;
|
||||
|
||||
return await getContacts(auth, {
|
||||
query: query,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,184 @@
|
||||
import {
|
||||
createAction,
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
Country,
|
||||
getCountries,
|
||||
getTags,
|
||||
getTimezones,
|
||||
LeadConnectorContactDto,
|
||||
updateContact,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const updateContactAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'update_contact',
|
||||
displayName: 'Update Contact',
|
||||
description: 'Update an existing contact.',
|
||||
props: {
|
||||
id: Property.ShortText({
|
||||
displayName: 'Contact ID',
|
||||
description: 'The ID of the contact.',
|
||||
required: true,
|
||||
}),
|
||||
firstName: Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
required: false,
|
||||
}),
|
||||
lastName: Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
required: false,
|
||||
}),
|
||||
email: Property.ShortText({
|
||||
displayName: 'Email',
|
||||
required: false,
|
||||
}),
|
||||
phone: Property.ShortText({
|
||||
displayName: 'Phone',
|
||||
required: false,
|
||||
}),
|
||||
companyName: Property.ShortText({
|
||||
displayName: 'Company Name',
|
||||
required: false,
|
||||
}),
|
||||
website: Property.ShortText({
|
||||
displayName: 'Website',
|
||||
required: false,
|
||||
}),
|
||||
tags: Property.MultiSelectDropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Tags',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const tags = await getTags(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: tags.map((tag) => {
|
||||
return {
|
||||
label: tag.name,
|
||||
value: tag.name,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
source: Property.ShortText({
|
||||
displayName: 'Source',
|
||||
required: false,
|
||||
}),
|
||||
country: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Country',
|
||||
description:
|
||||
'When using a dynamic value, make sure to use the ISO-2 country code, and not the country name.',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async () => {
|
||||
const countries = await getCountries();
|
||||
return {
|
||||
options: countries.map((country: Country) => {
|
||||
return {
|
||||
label: country.name,
|
||||
value: country.iso2Code,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
city: Property.ShortText({
|
||||
displayName: 'City',
|
||||
required: false,
|
||||
}),
|
||||
state: Property.ShortText({
|
||||
displayName: 'State',
|
||||
required: false,
|
||||
}),
|
||||
address: Property.LongText({
|
||||
displayName: 'Address',
|
||||
required: false,
|
||||
}),
|
||||
postalCode: Property.ShortText({
|
||||
displayName: 'Postal Code',
|
||||
required: false,
|
||||
}),
|
||||
timezone: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Time Zone',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const timezones = await getTimezones(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: timezones.map((timezone) => {
|
||||
return {
|
||||
label: timezone,
|
||||
value: timezone,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
await propsValidation.validateZod(propsValue, {
|
||||
email: z.string().email().optional(),
|
||||
phone: z.string().optional(),
|
||||
website: z.string().url().optional(),
|
||||
});
|
||||
|
||||
const {
|
||||
id,
|
||||
firstName,
|
||||
lastName,
|
||||
email,
|
||||
phone,
|
||||
companyName,
|
||||
website,
|
||||
tags,
|
||||
source,
|
||||
country,
|
||||
city,
|
||||
state,
|
||||
address,
|
||||
postalCode,
|
||||
timezone,
|
||||
} = propsValue;
|
||||
|
||||
const contact: LeadConnectorContactDto = {
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
email: email,
|
||||
phone: phone,
|
||||
companyName: companyName,
|
||||
website: website,
|
||||
tags: tags,
|
||||
source: source,
|
||||
country: country,
|
||||
city: city,
|
||||
state: state,
|
||||
address1: address,
|
||||
postalCode: postalCode,
|
||||
timezone: timezone,
|
||||
};
|
||||
|
||||
return await updateContact(auth.access_token, id, contact);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,217 @@
|
||||
import {
|
||||
createAction,
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
getContacts,
|
||||
getOpportunities,
|
||||
getOpportunity,
|
||||
getPipeline,
|
||||
getPipelines,
|
||||
getUsers,
|
||||
LeadConnectorOpportunityStatus,
|
||||
updateOpportunity,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { z } from 'zod';
|
||||
import { propsValidation } from '@activepieces/pieces-common';
|
||||
|
||||
export const updateOpportunityAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'update_opportunity',
|
||||
displayName: 'Update Opportunity',
|
||||
description: 'Updates an existing opportunity.',
|
||||
props: {
|
||||
pipeline: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Pipeline',
|
||||
description: 'The ID of the pipeline to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const pipelines = await getPipelines(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: pipelines.map((pipeline: any) => {
|
||||
return {
|
||||
label: pipeline.name,
|
||||
value: pipeline.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
opportunity: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Opportunity',
|
||||
required: true,
|
||||
refreshers: ['pipeline'],
|
||||
options: async ({ auth, pipeline }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const opportunities = await getOpportunities(
|
||||
auth as OAuth2PropertyValue,
|
||||
pipeline as string
|
||||
);
|
||||
return {
|
||||
options: opportunities.map((opportunity: any) => {
|
||||
return {
|
||||
label: opportunity.name,
|
||||
value: opportunity.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
stage: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Stage',
|
||||
description: 'The stage of the pipeline to use.',
|
||||
required: false,
|
||||
refreshers: ['pipeline'],
|
||||
options: async ({ auth, pipeline }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const pipelineObj = await getPipeline(
|
||||
auth as OAuth2PropertyValue,
|
||||
pipeline as string
|
||||
);
|
||||
return {
|
||||
options: pipelineObj
|
||||
? pipelineObj.stages.map((stage: any) => {
|
||||
return {
|
||||
label: stage.name,
|
||||
value: stage.id,
|
||||
};
|
||||
})
|
||||
: [],
|
||||
};
|
||||
},
|
||||
}),
|
||||
title: Property.ShortText({
|
||||
displayName: 'Title',
|
||||
required: false,
|
||||
}),
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
status: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Status',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async () => {
|
||||
const statuses = Object.values(LeadConnectorOpportunityStatus);
|
||||
|
||||
return {
|
||||
options: statuses.map((status) => {
|
||||
return {
|
||||
label: status.charAt(0).toUpperCase() + status.slice(1),
|
||||
value: status,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
assignedTo: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Assigned To',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const users = await getUsers(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: users.map((user: any) => {
|
||||
return {
|
||||
label: `${user.firstName} ${user.lastName}`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
monetaryValue: Property.Number({
|
||||
displayName: 'Monetary Value',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
await propsValidation.validateZod(propsValue, {
|
||||
monetaryValue: z.number().optional(),
|
||||
});
|
||||
|
||||
const {
|
||||
pipeline,
|
||||
opportunity,
|
||||
stage,
|
||||
contact,
|
||||
status,
|
||||
title,
|
||||
assignedTo,
|
||||
monetaryValue,
|
||||
} = propsValue;
|
||||
|
||||
let originalData: any;
|
||||
if (!title || !stage || !status)
|
||||
originalData = await getOpportunity(
|
||||
auth.access_token,
|
||||
pipeline,
|
||||
opportunity
|
||||
);
|
||||
|
||||
return await updateOpportunity(auth.access_token, opportunity, {
|
||||
pipelineId: pipeline ?? originalData.pipelineId,
|
||||
pipelineStageId: stage ?? originalData.pipelineStageId,
|
||||
contactId: contact,
|
||||
status: status ?? originalData.status,
|
||||
name: title ?? originalData.name,
|
||||
assignedTo: assignedTo,
|
||||
monetaryValue: monetaryValue,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,142 @@
|
||||
import {
|
||||
createAction,
|
||||
OAuth2PropertyValue,
|
||||
Property,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import {
|
||||
getContacts,
|
||||
getTask,
|
||||
getTasks,
|
||||
getUsers,
|
||||
updateTask,
|
||||
} from '../common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
|
||||
export const updateTaskAction = createAction({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'update_task',
|
||||
displayName: 'Update Task',
|
||||
description: 'Update a task.',
|
||||
props: {
|
||||
contact: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Contact',
|
||||
description: 'The contact to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const contacts = await getContacts(auth as OAuth2PropertyValue);
|
||||
|
||||
return {
|
||||
options: contacts.map((contact) => {
|
||||
return {
|
||||
label: contact.contactName,
|
||||
value: contact.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
task: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Task',
|
||||
required: true,
|
||||
refreshers: ['contact'],
|
||||
options: async ({ auth, contact }) => {
|
||||
if (!auth || !contact)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const tasks = await getTasks(
|
||||
(auth as OAuth2PropertyValue).access_token,
|
||||
contact as string
|
||||
);
|
||||
return {
|
||||
options: tasks.map((task: any) => {
|
||||
return {
|
||||
label: task.title,
|
||||
value: task.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
title: Property.ShortText({
|
||||
displayName: 'Title',
|
||||
required: false,
|
||||
}),
|
||||
dueDate: Property.DateTime({
|
||||
displayName: 'Due Date',
|
||||
required: false,
|
||||
}),
|
||||
description: Property.ShortText({
|
||||
displayName: 'Description',
|
||||
required: false,
|
||||
}),
|
||||
assignedTo: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Assigned To',
|
||||
required: false,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const users = await getUsers(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: users.map((user: any) => {
|
||||
return {
|
||||
label: `${user.firstName} ${user.lastName}`,
|
||||
value: user.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
completed: Property.Checkbox({
|
||||
displayName: 'Completed',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
},
|
||||
|
||||
async run({ auth, propsValue }) {
|
||||
const {
|
||||
contact,
|
||||
task,
|
||||
title,
|
||||
dueDate,
|
||||
description,
|
||||
assignedTo,
|
||||
completed,
|
||||
} = propsValue;
|
||||
|
||||
// let originalData: any;
|
||||
// if (!title || !dueDate)
|
||||
// originalData = await getTask(auth.access_token, contact, task);
|
||||
|
||||
return await updateTask(auth.access_token, contact, task, {
|
||||
title: title, //?? originalData.title,
|
||||
// Needs to be ISO string without milliseconds
|
||||
dueDate: dueDate, // ? formatDate(dueDate) : formatDate(originalData.dueDate),
|
||||
body: description,
|
||||
assignedTo: assignedTo,
|
||||
completed,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
function formatDate(date: string) {
|
||||
return new Date(date).toISOString().split('.')[0] + 'Z';
|
||||
}
|
||||
@@ -0,0 +1,571 @@
|
||||
import {
|
||||
httpClient,
|
||||
HttpMethod,
|
||||
AuthenticationType,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { OAuth2PropertyValue } from '@activepieces/pieces-framework';
|
||||
import jwt from 'jsonwebtoken';
|
||||
|
||||
export const baseUrl = 'https://services.leadconnectorhq.com';
|
||||
|
||||
export const leadConnectorHeaders = {
|
||||
Version: '2021-07-28',
|
||||
};
|
||||
|
||||
export async function getCampaigns(auth: OAuth2PropertyValue): Promise<any> {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/campaigns/`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
// status: 'published',
|
||||
locationId: auth.data['locationId'],
|
||||
},
|
||||
});
|
||||
|
||||
return result.body['campaigns'];
|
||||
}
|
||||
|
||||
export async function getWorkflows(auth: OAuth2PropertyValue): Promise<any> {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/workflows/`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
locationId: auth.data['locationId'],
|
||||
},
|
||||
});
|
||||
|
||||
return result.body['workflows'];
|
||||
}
|
||||
|
||||
export async function getTimezones(
|
||||
auth: OAuth2PropertyValue
|
||||
): Promise<string[]> {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/locations/${auth.data['locationId']}/timezones`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
});
|
||||
|
||||
return result.body['timeZones'];
|
||||
}
|
||||
|
||||
export async function getTags(auth: OAuth2PropertyValue): Promise<any[]> {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/locations/${auth.data['locationId']}/tags`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
});
|
||||
|
||||
return result.body['tags'];
|
||||
}
|
||||
|
||||
export async function addContact(
|
||||
auth: OAuth2PropertyValue,
|
||||
contact: LeadConnectorContactDto
|
||||
) {
|
||||
contact.locationId = auth.data['locationId'];
|
||||
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
body: contact,
|
||||
});
|
||||
|
||||
return result.body['contact'];
|
||||
}
|
||||
|
||||
export async function updateContact(
|
||||
auth: string,
|
||||
id: string,
|
||||
data: LeadConnectorContactDto
|
||||
) {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${id}`,
|
||||
method: HttpMethod.PUT,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
body: data,
|
||||
});
|
||||
|
||||
return result.body['contact'];
|
||||
}
|
||||
|
||||
export async function getCountries(): Promise<Country[]> {
|
||||
const result: any = await httpClient.sendRequest({
|
||||
url: `http://api.worldbank.org/v2/country?format=json&per_page=300`,
|
||||
method: HttpMethod.GET,
|
||||
});
|
||||
const countries = result.body[1] as Country[];
|
||||
|
||||
// FREE PALESTINE
|
||||
countries.splice(
|
||||
countries.findIndex((country) => country.id == 'ISR'),
|
||||
1,
|
||||
{
|
||||
id: 'PSE',
|
||||
name: 'Palestine',
|
||||
iso2Code: 'PS',
|
||||
}
|
||||
);
|
||||
return countries;
|
||||
}
|
||||
|
||||
export async function getContacts(
|
||||
auth: OAuth2PropertyValue,
|
||||
filters?: {
|
||||
startAfterId?: string;
|
||||
sortOrder?: 'asc' | 'desc';
|
||||
sortBy?: 'date_added' | 'date_updated';
|
||||
query?: string;
|
||||
}
|
||||
): Promise<LeadConnectorContact[]> {
|
||||
const queryParams: any = {
|
||||
limit: '100',
|
||||
locationId: auth.data['locationId'],
|
||||
};
|
||||
|
||||
if (filters?.startAfterId) queryParams.startAfterId = filters.startAfterId;
|
||||
if (filters?.sortOrder) queryParams.order = filters.sortOrder;
|
||||
if (filters?.sortBy) queryParams.sortBy = filters.sortBy;
|
||||
if (filters?.query) queryParams.query = filters.query;
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: queryParams,
|
||||
});
|
||||
const result = response.body['contacts'] as LeadConnectorContact[];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getForms(
|
||||
auth: OAuth2PropertyValue
|
||||
): Promise<LeadConnectorForm[]> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/forms/`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
locationId: auth.data['locationId'],
|
||||
},
|
||||
});
|
||||
const result = response.body['forms'] as LeadConnectorForm[];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getFormSubmissions(
|
||||
auth: OAuth2PropertyValue,
|
||||
formId: string
|
||||
): Promise<any[]> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/forms/submissions/`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
limit: '100',
|
||||
formId,
|
||||
locationId: auth.data['locationId'],
|
||||
},
|
||||
});
|
||||
|
||||
return response.body['submissions'];
|
||||
}
|
||||
|
||||
export async function addContactToCampaign(
|
||||
auth: string,
|
||||
contact: string,
|
||||
campaign: string
|
||||
) {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/campaigns/${campaign}`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
});
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function addContactToWorkflow(
|
||||
auth: string,
|
||||
contact: string,
|
||||
workflow: string
|
||||
) {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/workflow/${workflow}`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
});
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function addNoteToContact(
|
||||
auth: string,
|
||||
contact: string,
|
||||
data: {
|
||||
body: string;
|
||||
userId: string;
|
||||
}
|
||||
) {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/notes/`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
body: data,
|
||||
});
|
||||
|
||||
return response.body;
|
||||
}
|
||||
|
||||
export async function getPipelines(auth: OAuth2PropertyValue): Promise<any[]> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/opportunities/pipelines`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
locationId: auth.data['locationId'],
|
||||
},
|
||||
});
|
||||
const result = response.body['pipelines'];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getPipeline(
|
||||
auth: OAuth2PropertyValue,
|
||||
pipelineId: string
|
||||
): Promise<any> {
|
||||
const pipelines = await getPipelines(auth);
|
||||
return pipelines.find((pipeline: any) => pipeline.id == pipelineId);
|
||||
}
|
||||
|
||||
export async function getOpportunities(
|
||||
auth: OAuth2PropertyValue,
|
||||
pipeline: string,
|
||||
filters?: {
|
||||
startAfterId?: string;
|
||||
}
|
||||
): Promise<any> {
|
||||
const queryParams: any = {
|
||||
limit: '100',
|
||||
location_id: auth.data['locationId'],
|
||||
pipeline_id: pipeline,
|
||||
};
|
||||
if (filters?.startAfterId) queryParams.startAfterId = filters.startAfterId;
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/opportunities/search`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: queryParams,
|
||||
});
|
||||
const result = response.body['opportunities'];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getOpportunity(
|
||||
auth: string,
|
||||
pipeline: string,
|
||||
opportunity: string
|
||||
): Promise<any> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/opportunities/${opportunity}`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
});
|
||||
|
||||
const result = response.body;
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function createOpportunity(
|
||||
auth: OAuth2PropertyValue,
|
||||
data: LeadConnectorOpportunityDto
|
||||
) {
|
||||
data.locationId = auth.data['locationId'];
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/opportunities/`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
body: data,
|
||||
});
|
||||
|
||||
return result.body;
|
||||
}
|
||||
|
||||
export async function updateOpportunity(
|
||||
auth: string,
|
||||
opportunity: string,
|
||||
data: LeadConnectorOpportunityDto
|
||||
) {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/opportunities/${opportunity}`,
|
||||
method: HttpMethod.PUT,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
body: data,
|
||||
});
|
||||
|
||||
return result.body;
|
||||
}
|
||||
|
||||
export async function getUsers(auth: OAuth2PropertyValue): Promise<any> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/users/search`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth.access_token,
|
||||
},
|
||||
queryParams: {
|
||||
locationId: auth.data['locationId'],
|
||||
companyId: auth.data['companyId'],
|
||||
},
|
||||
});
|
||||
const result = response.body['users'];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getTasks(auth: string, contact: string): Promise<any> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/tasks`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
});
|
||||
const result = response.body['tasks'];
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function getTask(
|
||||
auth: string,
|
||||
contact: string,
|
||||
task: string
|
||||
): Promise<any> {
|
||||
const response = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/tasks/${task}`,
|
||||
method: HttpMethod.GET,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
});
|
||||
const result = response.body;
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function createTask(
|
||||
auth: string,
|
||||
contact: string,
|
||||
task: LeadConnectorTaskDto
|
||||
) {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/tasks`,
|
||||
method: HttpMethod.POST,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
body: task,
|
||||
});
|
||||
|
||||
return result.body;
|
||||
}
|
||||
|
||||
export async function updateTask(
|
||||
auth: string,
|
||||
contact: string,
|
||||
task: string,
|
||||
data: Partial<LeadConnectorTaskDto>
|
||||
) {
|
||||
const result = await httpClient.sendRequest({
|
||||
url: `${baseUrl}/contacts/${contact}/tasks/${task}`,
|
||||
method: HttpMethod.PUT,
|
||||
headers: leadConnectorHeaders,
|
||||
authentication: {
|
||||
type: AuthenticationType.BEARER_TOKEN,
|
||||
token: auth,
|
||||
},
|
||||
body: data,
|
||||
});
|
||||
|
||||
return result.body;
|
||||
}
|
||||
|
||||
export function getLocationIdFromToken(auth: OAuth2PropertyValue): {
|
||||
authClass: string;
|
||||
authClassId: string;
|
||||
} {
|
||||
const result = jwt.decode(auth.access_token);
|
||||
|
||||
return result as { authClass: string; authClassId: string };
|
||||
}
|
||||
|
||||
export interface LeadConnectorContact {
|
||||
id: string;
|
||||
locationId: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
contactName: string;
|
||||
email: string;
|
||||
phone: string;
|
||||
companyName: string;
|
||||
website: string;
|
||||
tags: string[];
|
||||
source: string;
|
||||
country: string;
|
||||
city: string;
|
||||
state: string;
|
||||
address: string;
|
||||
postalCode: string;
|
||||
timezone: string;
|
||||
dnd: boolean;
|
||||
type: string;
|
||||
customField: any[];
|
||||
dateAdded: string;
|
||||
dateUpdated: string;
|
||||
}
|
||||
|
||||
export interface LeadConnectorContactDto {
|
||||
locationId?: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
email?: string;
|
||||
phone?: string;
|
||||
companyName?: string;
|
||||
website?: string;
|
||||
tags?: string[];
|
||||
source?: string;
|
||||
country?: string;
|
||||
city?: string;
|
||||
state?: string;
|
||||
address1?: string;
|
||||
postalCode?: string;
|
||||
timezone?: string;
|
||||
}
|
||||
|
||||
export interface LeadConnectorForm {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface LeadConnectorTaskDto {
|
||||
title: string;
|
||||
dueDate: string;
|
||||
body?: string;
|
||||
assignedTo?: string;
|
||||
completed?: boolean;
|
||||
}
|
||||
|
||||
export interface LeadConnectorOpportunityDto {
|
||||
name: string;
|
||||
pipelineId: string;
|
||||
pipelineStageId: string;
|
||||
locationId?: string;
|
||||
contactId?: string;
|
||||
status: LeadConnectorOpportunityStatus;
|
||||
monetaryValue?: number;
|
||||
assignedTo?: string;
|
||||
}
|
||||
|
||||
export enum LeadConnectorTaskStatus {
|
||||
COMPLETED = 'completed',
|
||||
INCOMPLETED = 'incompleted',
|
||||
}
|
||||
|
||||
export enum LeadConnectorOpportunityStatus {
|
||||
OPEN = 'open',
|
||||
WON = 'won',
|
||||
LOST = 'lost',
|
||||
ABANDONED = 'abandoned',
|
||||
}
|
||||
|
||||
export interface Country {
|
||||
id: string;
|
||||
name: string;
|
||||
iso2Code: string;
|
||||
}
|
||||
|
||||
export interface LeadConnectorLocation {
|
||||
id: string;
|
||||
name: string;
|
||||
phone: string;
|
||||
email: string;
|
||||
country: string;
|
||||
timezone: string;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import { AppConnectionValueForAuthProperty, OAuth2PropertyValue, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { getContacts } from '../common';
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof leadConnectorAuth>, unknown> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
items: async ({ auth }) => {
|
||||
const currentValues =
|
||||
(await getContacts(auth, {
|
||||
sortBy: 'date_updated',
|
||||
sortOrder: 'asc',
|
||||
})) ?? [];
|
||||
|
||||
return currentValues.map((contact) => {
|
||||
return {
|
||||
epochMilliSeconds: new Date(contact.dateUpdated).getTime(),
|
||||
data: contact,
|
||||
};
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export const contactUpdated = createTrigger({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'contact_updated',
|
||||
displayName: 'Contact Created or Updated',
|
||||
description: 'Trigger when a contact is created or updated.',
|
||||
props: {},
|
||||
type: TriggerStrategy.POLLING,
|
||||
sampleData: {},
|
||||
|
||||
onEnable: async (context) => {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
run: async (context) => {
|
||||
return await pollingHelper.poll(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
test: async (context) => {
|
||||
return await pollingHelper.test(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,58 @@
|
||||
import { AppConnectionValueForAuthProperty, OAuth2PropertyValue, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { getContacts } from '../common';
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof leadConnectorAuth>, unknown> = {
|
||||
strategy: DedupeStrategy.LAST_ITEM,
|
||||
items: async ({ auth, lastItemId }) => {
|
||||
const currentValues =
|
||||
(await getContacts(auth, {
|
||||
startAfterId: lastItemId as string,
|
||||
sortOrder: 'asc',
|
||||
})) ?? [];
|
||||
|
||||
return currentValues.map((contact) => {
|
||||
return {
|
||||
id: contact.id,
|
||||
data: contact,
|
||||
};
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export const newContact = createTrigger({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'new_contact',
|
||||
displayName: 'New Contact',
|
||||
description: 'Trigger when a new contact is added.',
|
||||
props: {},
|
||||
type: TriggerStrategy.POLLING,
|
||||
sampleData: {},
|
||||
|
||||
onEnable: async (context) => {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
run: async (context) => {
|
||||
return await pollingHelper.poll(polling, context);
|
||||
},
|
||||
test: async (context) => {
|
||||
return await pollingHelper.test(polling, context);
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,91 @@
|
||||
import { AppConnectionValueForAuthProperty, OAuth2PropertyValue, Property, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { getFormSubmissions, getForms } from '../common';
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof leadConnectorAuth>, { form: string }> = {
|
||||
strategy: DedupeStrategy.LAST_ITEM,
|
||||
items: async ({ auth, propsValue }) => {
|
||||
const currentValues =
|
||||
(await getFormSubmissions(auth, propsValue.form)) ?? [];
|
||||
|
||||
return currentValues.map((submission) => {
|
||||
return {
|
||||
id: submission.id,
|
||||
data: submission,
|
||||
};
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export const newFormSubmission = createTrigger({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'new_form_submission',
|
||||
displayName: 'New Form Submission',
|
||||
description: 'Trigger when a form is submitted.',
|
||||
props: {
|
||||
form: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Form',
|
||||
description: 'The form you want to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth)
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
|
||||
const forms = await getForms(auth as OAuth2PropertyValue);
|
||||
|
||||
return {
|
||||
options: forms.map((form) => {
|
||||
return {
|
||||
label: form.name,
|
||||
value: form.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.POLLING,
|
||||
sampleData: {},
|
||||
|
||||
onEnable: async (context) => {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
run: async (context) => {
|
||||
return await pollingHelper.poll(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
test: async (context) => {
|
||||
return await pollingHelper.test(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,93 @@
|
||||
import { AppConnectionValueForAuthProperty, OAuth2PropertyValue, Property, createTrigger } from '@activepieces/pieces-framework';
|
||||
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
||||
import {
|
||||
DedupeStrategy,
|
||||
Polling,
|
||||
pollingHelper,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { leadConnectorAuth } from '../..';
|
||||
import { getOpportunities, getPipelines } from '../common';
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof leadConnectorAuth>, { pipeline: string }> = {
|
||||
strategy: DedupeStrategy.LAST_ITEM,
|
||||
items: async ({ auth, propsValue, lastItemId }) => {
|
||||
const currentValues =
|
||||
(await getOpportunities(auth, propsValue.pipeline, {
|
||||
startAfterId: lastItemId as string | undefined,
|
||||
})) ?? [];
|
||||
|
||||
return currentValues.map((opportunity: any) => {
|
||||
return {
|
||||
id: opportunity.id,
|
||||
data: opportunity,
|
||||
};
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export const newOpportunity = createTrigger({
|
||||
auth: leadConnectorAuth,
|
||||
name: 'new_opportunity',
|
||||
displayName: 'New Opportunity',
|
||||
description: 'Trigger when a new opportunity is added.',
|
||||
props: {
|
||||
pipeline: Property.Dropdown({
|
||||
auth: leadConnectorAuth,
|
||||
displayName: 'Pipeline',
|
||||
description: 'The ID of the pipeline to use.',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const pipelines = await getPipelines(auth as OAuth2PropertyValue);
|
||||
return {
|
||||
options: pipelines.map((pipeline: any) => {
|
||||
return {
|
||||
label: pipeline.name,
|
||||
value: pipeline.id,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
},
|
||||
type: TriggerStrategy.POLLING,
|
||||
sampleData: {},
|
||||
|
||||
onEnable: async (context) => {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
onDisable: async (context) => {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
});
|
||||
},
|
||||
run: async (context) => {
|
||||
return await pollingHelper.poll(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
test: async (context) => {
|
||||
return await pollingHelper.test(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue,
|
||||
files: context.files,
|
||||
});
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user