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,18 @@
|
||||
{
|
||||
"extends": ["../../../../.eslintrc.json"],
|
||||
"ignorePatterns": ["!**/*"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.ts", "*.tsx"],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": ["*.js", "*.jsx"],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# pieces-hunter
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Building
|
||||
|
||||
Run `nx build pieces-hunter` to build the library.
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "@activepieces/piece-hunter",
|
||||
"version": "0.0.5",
|
||||
"type": "commonjs",
|
||||
"main": "./src/index.js",
|
||||
"types": "./src/index.d.ts",
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "pieces-hunter",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/hunter/src",
|
||||
"projectType": "library",
|
||||
"release": {
|
||||
"version": {
|
||||
"manifestRootsToUpdate": [
|
||||
"dist/{projectRoot}"
|
||||
],
|
||||
"currentVersionResolver": "git-tag",
|
||||
"fallbackCurrentVersionResolver": "disk"
|
||||
}
|
||||
},
|
||||
"tags": [],
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/hunter",
|
||||
"tsConfig": "packages/pieces/community/hunter/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/hunter/package.json",
|
||||
"main": "packages/pieces/community/hunter/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/hunter/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/hunter/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"nx-release-publish": {
|
||||
"options": {
|
||||
"packageRoot": "dist/{projectRoot}"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/hunter",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Finden und verwalten Sie professionelle E-Mail-Adressen im Maßstab und automatisieren Sie E-Mail-Entdeckung, Validierung, Lead Tracking und Kampagnen-Outtreach mit Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "Du kannst deinen API-Schlüssel unter [Kontoeinstellungen](https://hunter.io/dashboard ) erhalten",
|
||||
"Add Recipients": "Empfänger hinzufügen",
|
||||
"Count Emails": "E-Mails zählen",
|
||||
"Create Lead": "Lead erstellen",
|
||||
"Delete Lead": "Lead löschen",
|
||||
"Find Email": "E-Mail finden",
|
||||
"Get Lead": "Lead holen",
|
||||
"Search Leads": "Leads suchen",
|
||||
"Update Lead": "Lead aktualisieren",
|
||||
"Verify Email": "E-Mail bestätigen",
|
||||
"Add one or multiple recipients to a campaign.": "Fügen Sie einer Kampagne einen oder mehrere Empfänger hinzu.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Gibt die Anzahl der gefundenen E-Mail-Adressen für eine Domäne oder ein Unternehmen zurück.",
|
||||
"Create and store a lead record.": "Erstellen und speichern Sie einen Lead Record.",
|
||||
"Delete a specific lead record by ID.": "Löschen eines bestimmten Lead Datensatzes per ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Die wahrscheinlichste E-Mail für eine Person bei einer Domain abrufen/vorschlagen.",
|
||||
"Retrieve details of a specific lead.": "Abrufen von Details zu einer bestimmten Führung.",
|
||||
"List and filter leads in the account.": "Liste und Filter führt in das Konto.",
|
||||
"Modify existing lead data.": "Vorhandene Leaddaten ändern.",
|
||||
"Check email deliverability and validation status.": "Überprüfen Sie die Zustellbarkeit und den Validierungsstatus.",
|
||||
"Campaign": "Kampagne",
|
||||
"Emails": "E-Mails",
|
||||
"Leads": "Leads",
|
||||
"Domain": "Domäne",
|
||||
"Company": "Firma",
|
||||
"Type": "Typ",
|
||||
"Email": "E-Mail",
|
||||
"First Name": "Vorname",
|
||||
"Last Name": "Nachname",
|
||||
"Position": "Position",
|
||||
"Company Industry": "Unternehmensindustrie",
|
||||
"Company Size": "Unternehmensgröße",
|
||||
"Confidence Score": "Vertrauenswert",
|
||||
"Website": "Webseite",
|
||||
"Country Code": "Landesvorwahl",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Telefonnummer",
|
||||
"Twitter Handle": "Twitter-Handle",
|
||||
"Notes": "Notizen",
|
||||
"Source": "Quelle",
|
||||
"Leads List": "Lead-Liste",
|
||||
"Leads List IDs": "Leads Liste IDs",
|
||||
"Custom Attributes": "Eigene Attribute",
|
||||
"Lead to Delete": "Zum Löschen führen",
|
||||
"Full Name": "Voller Name",
|
||||
"Max Duration (seconds)": "Maximale Dauer (Sekunden)",
|
||||
"Lead": "Lead",
|
||||
"Industry": "Industrie",
|
||||
"Sync Status": "Sync-Status",
|
||||
"Sending Status(es)": "Sende Status(e)",
|
||||
"Verification Status(es)": "Verifizierungsstatus(en)",
|
||||
"Activity/Contact Date": "Aktivität/Kontaktdatum",
|
||||
"Custom Attributes Filter": "Eigener Attributfilter",
|
||||
"Query": "Abfrage",
|
||||
"Limit": "Limit",
|
||||
"Offset": "Versatz",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "E-Mail-Adressen, die als Empfänger hinzugefügt werden sollen. Mindestens eine E-Mail-Adresse oder Lead-ID ist erforderlich.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Wählen Sie Leads aus Ihrem Hunter-Konto, die als Empfänger hinzugefügt werden sollen.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Domainname für die Adressen zählen sollen (z.B. \"stripe.com\"). Mindestens eine Domain oder ein Unternehmen ist erforderlich.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Firmenname zur Zählung von Adressen (z.B. \"Stripe\"). Mindestens eine Domain oder Firma ist erforderlich.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Zähle nur \"persönliche\" oder \"generische\" E-Mail-Adressen. Leer lassen für beides.",
|
||||
"The email address of the lead.": "Die E-Mail-Adresse des Leads.",
|
||||
"Name of the company the lead is working in.": "Name der Firma, in der die Leitung arbeitet.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sektor der Firma (z.B. Finanzen, Technologie, Bildung, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Unternehmensgröße (z.B. 1-10, 201-500 Mitarbeiter).",
|
||||
"Probability the email is correct (0–100).": "Wahrscheinlich ist die E-Mail korrekt (0–100).",
|
||||
"Domain name of the company.": "Domänenname des Unternehmens.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 Länderkennzahl.",
|
||||
"Personal notes about the lead.": "Persönliche Notizen über die Leitung.",
|
||||
"Origin where the lead was found.": "Ursprung wo der Blei gefunden wurde.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Wählen Sie die Liste aus, zu der die Lead hinzugefügt werden soll. Standardmäßig ist die aktuelle Liste.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array der Listen-IDs, zu denen die Lead hinzugefügt werden soll. Standardmäßig ist Ihre neueste Liste.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Schlüssel/Wertkarte für beliebige benutzerdefinierte Attribute, z.B. { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Wählen Sie die Lead aus, die aus Ihrem Jäger-Konto gelöscht werden soll.",
|
||||
"The person's full name (if you can't supply both first and last name).": "Der vollständige Name der Person (wenn Sie den Vor- und Nachnamen nicht angeben können).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Wie lange soll Hunter Raffinierergebnisse verwenden (3-20, Standard 10).",
|
||||
"Select a lead from your Hunter account.": "Wählen Sie eine Lead aus Ihrem Jäger-Konto.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Nach E-Mail filtern (verwenden Sie \"*\" für jeden, \"~\" für leer oder Substring).",
|
||||
"Filter by first name.": "Nach Vornamen filtern.",
|
||||
"Filter by last name.": "Nach Nachnamen filtern.",
|
||||
"Filter by position.": "Nach Position filtern.",
|
||||
"Filter by company.": "Nach Unternehmen filtern.",
|
||||
"Filter by industry.": "Filtern nach Industrie.",
|
||||
"Filter by website.": "Filtern nach Webseite.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filtern nach ISO 3166/2000 1 Alpha-2 Ländercode.",
|
||||
"Filter by company size.": "Nach Unternehmensgröße filtern.",
|
||||
"Filter by source.": "Nach Quelle filtern.",
|
||||
"Filter by Twitter handle.": "Nach Twitter-Handle filtern.",
|
||||
"Filter by LinkedIn URL.": "Nach LinkedIn-URL filtern.",
|
||||
"Filter by phone number.": "Nach Telefonnummer filtern.",
|
||||
"Filter by synchronization status.": "Nach Synchronisationsstatus filtern.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filtern durch Senden von Status(en): angeklickt, geöffnet, gesendet, ausstehend, fehlerhaft, abgehängt, beantwortet, oder \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filtern nach Verifizierungsstatus(en): accept_all, Einweg, ungültig, unbekannt, gültig, Webmail oder \"Ausstehend\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Benutzen Sie \"*\" für jeden Wert oder \"~\" für das Entfernen des Satzes.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON-Objekt von slug→ filterValue (verwenden Sie \"*\", \"~\" oder Substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Suche First_name, last_name oder Email, die diesen Substring enthalten.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max führt zurück (1-1000). Standard ist 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Anzahl der zu überspringenden Leads (0-100000). Standard ist 0.",
|
||||
"New Lead": "Neuer Lead",
|
||||
"Fires when a new lead is created.": "Feuert ab, wenn ein neuer Lead erstellt wird."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Busca, verifica y administra direcciones de correo electrónico profesionales a escala. Automatiza el descubrimiento de correo electrónico, la validación, el seguimiento de plomos, y la difusión de campañas con Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "Puedes obtener tu clave API de [Configuración de la cuenta](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Añadir destinatarios",
|
||||
"Count Emails": "Contador de correos",
|
||||
"Create Lead": "Crear plomo",
|
||||
"Delete Lead": "Eliminar plomo",
|
||||
"Find Email": "Buscar Email",
|
||||
"Get Lead": "Llevar plomo",
|
||||
"Search Leads": "Buscar clientes potenciales",
|
||||
"Update Lead": "Actualizar plomo",
|
||||
"Verify Email": "Verificar Email",
|
||||
"Add one or multiple recipients to a campaign.": "Añadir uno o varios destinatarios a una campaña.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Devuelve el número de direcciones de correo electrónico encontradas para un dominio o empresa.",
|
||||
"Create and store a lead record.": "Crear y almacenar un registro de inicio.",
|
||||
"Delete a specific lead record by ID.": "Elimina un registro específico de prospección por ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Recuperar/proponer el correo electrónico más probable para una persona en un dominio.",
|
||||
"Retrieve details of a specific lead.": "Recuperar detalles de un cliente potencial.",
|
||||
"List and filter leads in the account.": "Lista y filtro de clientes potenciales en la cuenta.",
|
||||
"Modify existing lead data.": "Modificar los datos potenciales existentes.",
|
||||
"Check email deliverability and validation status.": "Compruebe la entregabilidad de correo electrónico y el estado de validación.",
|
||||
"Campaign": "Campaña",
|
||||
"Emails": "Correos",
|
||||
"Leads": "Prospectos",
|
||||
"Domain": "Dominio",
|
||||
"Company": "Empresa",
|
||||
"Type": "Tipo",
|
||||
"Email": "E-mail",
|
||||
"First Name": "Nombre",
|
||||
"Last Name": "Apellido",
|
||||
"Position": "Posición",
|
||||
"Company Industry": "Industria de la empresa",
|
||||
"Company Size": "Tamaño de la empresa",
|
||||
"Confidence Score": "Puntaje de confianza",
|
||||
"Website": "Sitio web",
|
||||
"Country Code": "Código del país",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Número de teléfono",
|
||||
"Twitter Handle": "Manejo de Twitter",
|
||||
"Notes": "Notas",
|
||||
"Source": "Fuente",
|
||||
"Leads List": "Lista de clientes potenciales",
|
||||
"Leads List IDs": "IDs de Lista de Prospectos",
|
||||
"Custom Attributes": "Atributos personalizados",
|
||||
"Lead to Delete": "Prospectos a eliminar",
|
||||
"Full Name": "Nombre completo",
|
||||
"Max Duration (seconds)": "Duración máxima (segundos)",
|
||||
"Lead": "Plomo",
|
||||
"Industry": "Industria",
|
||||
"Sync Status": "Sincronizar estado",
|
||||
"Sending Status(es)": "Enviando estado(s)",
|
||||
"Verification Status(es)": "Estado (es) de verificación",
|
||||
"Activity/Contact Date": "Fecha de actividad/contacto",
|
||||
"Custom Attributes Filter": "Filtro de atributos personalizados",
|
||||
"Query": "Consulta",
|
||||
"Limit": "Límite",
|
||||
"Offset": "Desplazamiento",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Direcciones de correo electrónico para añadir como destinatarios. Se requiere al menos un correo electrónico o ID de inicio.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Seleccione clientes potenciales de su cuenta de Cazador para añadir como destinatarios.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Nombre de dominio para contar direcciones (por ejemplo, \"stripe.com\"). Se requiere al menos una de dominio o compañía.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Nombre de la empresa para contar direcciones (por ej., \"Stripe\"). Se requiere al menos una de dominio o compañía.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Cuenta sólo direcciones de correo electrónico \"personales\" o \"genéricas\". Dejar en blanco para ambos.",
|
||||
"The email address of the lead.": "La dirección de correo electrónico del cliente potencial.",
|
||||
"Name of the company the lead is working in.": "Nombre de la empresa en la que el líder está trabajando.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sector de la empresa (por ejemplo, finanzas, tecnologías, educación, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Tamaño de la empresa (por ejemplo, 1-10, 201-500 empleados).",
|
||||
"Probability the email is correct (0–100).": "Probabilidad el correo electrónico es correcto (0–100).",
|
||||
"Domain name of the company.": "Nombre de dominio de la empresa.",
|
||||
"ISO 3166-1 alpha-2 country code.": "Código de país ISO 3166-1 alpha-2.",
|
||||
"Personal notes about the lead.": "Notas personales sobre el plomo.",
|
||||
"Origin where the lead was found.": "Origen donde se encontró el plomo.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Seleccione la lista a la que agregar el cliente potencial; por defecto en su lista más reciente.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array de IDs de lista para agregar el cliente potencial; por defecto a su lista más reciente.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Mapa Key/value de cualquier atributo personalizado, p. ej. { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Selecciona la iniciativa para eliminar de tu cuenta de Cazador.",
|
||||
"The person's full name (if you can't supply both first and last name).": "Nombre completo de la persona (si no puede proporcionar tanto el nombre como el apellido).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Cuánto tiempo debe gastar el Cazador para refinar los resultados (3-20, por defecto 10).",
|
||||
"Select a lead from your Hunter account.": "Selecciona un cliente potencial de tu cuenta de Cazador.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filtrar por correo electrónico (usar \"*\" para algunos, \"~\" para vacío, o subcadena).",
|
||||
"Filter by first name.": "Filtrar por nombre.",
|
||||
"Filter by last name.": "Filtrar por apellido.",
|
||||
"Filter by position.": "Filtrar por posición.",
|
||||
"Filter by company.": "Filtrar por empresa.",
|
||||
"Filter by industry.": "Filtrar por industria.",
|
||||
"Filter by website.": "Filtrar por sitio web.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filtrar por el código de país ISO 3166<36>. 1 alfah<61>.",
|
||||
"Filter by company size.": "Filtrar por tamaño de empresa.",
|
||||
"Filter by source.": "Filtrar por origen.",
|
||||
"Filter by Twitter handle.": "Filtrar por manejador Twitter.",
|
||||
"Filter by LinkedIn URL.": "Filtrar por URL de LinkedIn.",
|
||||
"Filter by phone number.": "Filtrar por número de teléfono.",
|
||||
"Filter by synchronization status.": "Filtrar por estado de sincronización.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filtrar enviando estado(s): pulsado, abierto, enviado, pendiente, error, rebotado, desuscrito o respondido, o \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filtrar por estado(s) de verificación: accept_all, desechable, inválido, desconocido, válido, webmail, o \"pendiente\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Use \"*\" para cualquier valor o \"~\" para desajustar.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "Objeto JSON de slug→ filterValue (use \"*\", \"~\" o subcadenas).",
|
||||
"Search first_name, last_name or email containing this substring.": "Busque primer_name, last_name o correo electrónico que contenga esta subcadena.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Prospectos máximos a devolver (1-1000). Por defecto es 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Número de clientes potenciales a saltar (0-100000). Por defecto es 0.",
|
||||
"New Lead": "Nuevo plomo",
|
||||
"Fires when a new lead is created.": "Dispara cuando se crea un nuevo plomo."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Recherchez, vérifiez et gérez les adresses e-mail professionnelles à l'échelle. Automatisez la découverte d'e-mails, la validation, le suivi des prospects et la campagne avec Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "Vous pouvez obtenir votre clé API dans [Paramètres du compte](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Ajouter des destinataires",
|
||||
"Count Emails": "Nombre d'E-mails",
|
||||
"Create Lead": "Créer Prospect",
|
||||
"Delete Lead": "Supprimer Prospect",
|
||||
"Find Email": "Trouver un e-mail",
|
||||
"Get Lead": "Obtenir du plomb",
|
||||
"Search Leads": "Rechercher des prospects",
|
||||
"Update Lead": "Mettre à jour le prospect",
|
||||
"Verify Email": "Vérifier l'e-mail",
|
||||
"Add one or multiple recipients to a campaign.": "Ajouter un ou plusieurs destinataires à une campagne.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Renvoie le nombre d'adresses e-mail trouvées pour un domaine ou une entreprise.",
|
||||
"Create and store a lead record.": "Créer et stocker un enregistrement principal.",
|
||||
"Delete a specific lead record by ID.": "Supprimer un enregistrement principal spécifique par ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Récupérez/proposez l'email le plus probable pour une personne à un domaine.",
|
||||
"Retrieve details of a specific lead.": "Récupérer les détails d'un prospect spécifique.",
|
||||
"List and filter leads in the account.": "Lister et filtrer les prospects dans le compte.",
|
||||
"Modify existing lead data.": "Modifier les données de prospects existantes.",
|
||||
"Check email deliverability and validation status.": "Vérifiez l'état de délivrabilité et de validation des courriels.",
|
||||
"Campaign": "Campagnes",
|
||||
"Emails": "E-mails",
|
||||
"Leads": "Prospects",
|
||||
"Domain": "Domaine",
|
||||
"Company": "Entreprise",
|
||||
"Type": "Type de texte",
|
||||
"Email": "Courriel",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Position": "Position",
|
||||
"Company Industry": "Industrie de l'entreprise",
|
||||
"Company Size": "Taille de la société",
|
||||
"Confidence Score": "Score de confiance",
|
||||
"Website": "Site Web",
|
||||
"Country Code": "Code du pays",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Numéro de téléphone",
|
||||
"Twitter Handle": "Identifiant Twitter",
|
||||
"Notes": "Notes",
|
||||
"Source": "Source",
|
||||
"Leads List": "Liste des Prospects",
|
||||
"Leads List IDs": "ID de la liste des Prospects",
|
||||
"Custom Attributes": "Attributs personnalisés",
|
||||
"Lead to Delete": "Prospect à supprimer",
|
||||
"Full Name": "Nom complet",
|
||||
"Max Duration (seconds)": "Durée max (secondes)",
|
||||
"Lead": "Prospect",
|
||||
"Industry": "Industrie",
|
||||
"Sync Status": "État de la synchronisation",
|
||||
"Sending Status(es)": "Envoi de statut(s)",
|
||||
"Verification Status(es)": "Statut(s) de vérification",
|
||||
"Activity/Contact Date": "Date de l'activité/Contact",
|
||||
"Custom Attributes Filter": "Filtre d'attributs personnalisés",
|
||||
"Query": "Requête",
|
||||
"Limit": "Limite",
|
||||
"Offset": "Décalage",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Adresses e-mail à ajouter en tant que destinataires. Au moins un e-mail ou un ID de prospect est requis.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Sélectionnez les prospects de votre compte Hunter à ajouter en tant que destinataires.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Nom de domaine pour lequel compter les adresses (par exemple, \"stripe.com\"). Au moins un domaine ou une entreprise est requis.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Le nom de la société pour laquelle comptabiliser les adresses (par exemple, \"Stripe\"). Au moins un domaine ou une entreprise est requis.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Ne comptez que les adresses e-mail \"personnelles\" ou \"génériques\". Laissez vide pour les deux.",
|
||||
"The email address of the lead.": "L'adresse email du plomb.",
|
||||
"Name of the company the lead is working in.": "Nom de la société dans laquelle le plomb travaille.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Secteur de la société (par exemple Finance, Technologie, Education, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Taille de l'entreprise (par exemple 1-10, 201-500 employés).",
|
||||
"Probability the email is correct (0–100).": "Probabilité de l'email est correcte (0-100).",
|
||||
"Domain name of the company.": "Nom de domaine de la société.",
|
||||
"ISO 3166-1 alpha-2 country code.": "Code pays ISO 3166-1 alpha-2.",
|
||||
"Personal notes about the lead.": "Notes personnelles sur le plomb.",
|
||||
"Origin where the lead was found.": "Origine où la piste a été trouvée.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Sélectionnez la liste à laquelle ajouter le prospect ; par défaut votre liste la plus récente.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Tableau des identifiants de liste à ajouter au prospect ; par défaut à votre liste la plus récente.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Carte clé/valeur des attributs personnalisés, par exemple { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Sélectionnez le prospect à supprimer de votre compte Hunter.",
|
||||
"The person's full name (if you can't supply both first and last name).": "Le nom complet de la personne (si vous ne pouvez pas fournir le prénom et le nom de famille).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Combien de temps le chasseur doit dépenser pour affiner les résultats (3-20, par défaut 10).",
|
||||
"Select a lead from your Hunter account.": "Sélectionnez un plomb dans votre compte Hunter.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filtrer par email (utiliser \"*\" pour tout le monde, \"~\" pour vide, ou sous-chaîne).",
|
||||
"Filter by first name.": "Filtrer par prénom.",
|
||||
"Filter by last name.": "Filtrer par nom de famille.",
|
||||
"Filter by position.": "Filtrer par position.",
|
||||
"Filter by company.": "Filtrer par société.",
|
||||
"Filter by industry.": "Filtrer par industrie.",
|
||||
"Filter by website.": "Filtrer par site web.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filtrer par code pays ISO 3166‐1 alpha‐2.",
|
||||
"Filter by company size.": "Filtrer par taille de l'entreprise.",
|
||||
"Filter by source.": "Filtrer par source.",
|
||||
"Filter by Twitter handle.": "Filtrer par identifiant Twitter.",
|
||||
"Filter by LinkedIn URL.": "Filtrer par URL LinkedIn.",
|
||||
"Filter by phone number.": "Filtrer par numéro de téléphone.",
|
||||
"Filter by synchronization status.": "Filtrer par statut de synchronisation.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filtrer par statut d'envoi : cliqué, ouvert, envoyé, en attente, erreur, rebond, désabonné, répondu, ou \"~\" (dédéfini).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filtrer par statut(s) de vérification(s) : accept_all, jetable, invalide, inconnue, valide, webmail, ou \"en attente\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Utilisez \"*\" pour n'importe quelle valeur ou \"~\" pour annuler.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "Objet JSON de slug→filterValue (utiliser \"*\", \"~\", ou sous-chaînes).",
|
||||
"Search first_name, last_name or email containing this substring.": "Recherchez le prénom, le nom de famille ou l'email contenant cette sous-chaîne.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max mène au retour (1-1000). 20 par défaut.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Nombre de pistes à sauter (0-100000). 0 par défaut.",
|
||||
"New Lead": "Nouveau prospect",
|
||||
"Fires when a new lead is created.": "Tire quand un nouveau prospect est créé."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "大規模なプロのメールアドレスを検索、検証、管理します。Hunter.ioでメールの発見、検証、リードトラッキング、キャンペーンアウトリーチを自動化します。",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "You can obtain your API key from [Account Settings](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Add Recipients",
|
||||
"Count Emails": "メールをカウント",
|
||||
"Create Lead": "リードを作成",
|
||||
"Delete Lead": "リードを削除",
|
||||
"Find Email": "電子メールを検索",
|
||||
"Get Lead": "リードを獲得",
|
||||
"Search Leads": "リードを検索",
|
||||
"Update Lead": "潜在顧客を更新",
|
||||
"Verify Email": "メールアドレスを確認する",
|
||||
"Add one or multiple recipients to a campaign.": "キャンペーンに1つまたは複数の受信者を追加します。",
|
||||
"Returns the number of email addresses found for a domain or company.": "ドメインまたは会社のメールアドレスの数を返します。",
|
||||
"Create and store a lead record.": "リードレコードを作成・保存します。",
|
||||
"Delete a specific lead record by ID.": "ID による特定のリードレコードを削除します。",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "ドメインの人に最も可能性の高いメールを取得/提案します。",
|
||||
"Retrieve details of a specific lead.": "特定のリードの詳細を取得します。",
|
||||
"List and filter leads in the account.": "口座のリードのリストとフィルタリング。",
|
||||
"Modify existing lead data.": "既存のリードデータを変更する",
|
||||
"Check email deliverability and validation status.": "メールのデリバリと検証ステータスを確認します。",
|
||||
"Campaign": "キャンペーン",
|
||||
"Emails": "E-mail",
|
||||
"Leads": "リード",
|
||||
"Domain": "ドメイン",
|
||||
"Company": "会社名",
|
||||
"Type": "タイプ",
|
||||
"Email": "Eメールアドレス",
|
||||
"First Name": "名",
|
||||
"Last Name": "Last Name",
|
||||
"Position": "位置",
|
||||
"Company Industry": "企業産業",
|
||||
"Company Size": "会社のサイズ",
|
||||
"Confidence Score": "自信度スコア",
|
||||
"Website": "ウェブサイト",
|
||||
"Country Code": "国コード",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "電話番号",
|
||||
"Twitter Handle": "Twitter Handle",
|
||||
"Notes": "メモ",
|
||||
"Source": "ソース",
|
||||
"Leads List": "リード一覧",
|
||||
"Leads List IDs": "リードリストID",
|
||||
"Custom Attributes": "カスタム属性",
|
||||
"Lead to Delete": "削除にリード",
|
||||
"Full Name": "フルネーム",
|
||||
"Max Duration (seconds)": "最大持続時間(秒)",
|
||||
"Lead": "リード",
|
||||
"Industry": "産業",
|
||||
"Sync Status": "同期状態",
|
||||
"Sending Status(es)": "状態送信中",
|
||||
"Verification Status(es)": "確認ステータス",
|
||||
"Activity/Contact Date": "アクティビティ/連絡先日付",
|
||||
"Custom Attributes Filter": "カスタム属性フィルタ",
|
||||
"Query": "クエリ",
|
||||
"Limit": "制限",
|
||||
"Offset": "オフセット",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "受信者として追加する電子メールアドレス。少なくとも1つの電子メールまたはリードIDが必要です。",
|
||||
"Select leads from your Hunter account to add as recipients.": "ハンターアカウントからリードを選択し、受取人として追加します。",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "アドレスをカウントするドメイン名(例:\"stripe.com\")。少なくとも1つのドメインまたは会社が必要です。",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "住所をカウントする会社名(例:「Stripe」)。ドメインまたは会社の少なくとも1つが必要です。",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "「個人」または「一般」のメールアドレスのみカウントします。両方の場合は空白のままにします。",
|
||||
"The email address of the lead.": "リードのメールアドレス",
|
||||
"Name of the company the lead is working in.": "リードが働いている会社の名前。",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "会社のセクター(例えば、金融、技術、教育など)。",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "会社の規模(例:従業員1-10、201-500)",
|
||||
"Probability the email is correct (0–100).": "メールの確率は正しい(0-100)。",
|
||||
"Domain name of the company.": "会社のドメイン名。",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 国コード。",
|
||||
"Personal notes about the lead.": "リードについての個人的なメモ。",
|
||||
"Origin where the lead was found.": "リードが発見された原点。",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "リードを追加するリストを選択します。デフォルトは最新のリストです。",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "リードを追加するリストIDの配列。デフォルトは最新のリストです。",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "任意のカスタム属性のキー/値マップ。例えば{ \"customer_id\": \"cus-1234abcd\" }。",
|
||||
"Select the lead to delete from your Hunter account.": "あなたのハンターアカウントから削除するリードを選択します。",
|
||||
"The person's full name (if you can't supply both first and last name).": "その人のフルネーム(姓と姓の両方を入力できない場合)。",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Hunter が絞り込み結果を使う期間 (3-20, デフォルト 10)",
|
||||
"Select a lead from your Hunter account.": "ハンターアカウントからリードを選択します。",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "メールでフィルタリングします(空、またはサブストレートの場合は「*」、「~」を使用してください)。",
|
||||
"Filter by first name.": "名でフィルタします。",
|
||||
"Filter by last name.": "姓で絞り込みます。",
|
||||
"Filter by position.": "位置で絞り込みます。",
|
||||
"Filter by company.": "会社で絞り込みます。",
|
||||
"Filter by industry.": "業種別フィルター。",
|
||||
"Filter by website.": "ウェブサイトで絞り込みます。",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "ISO 3166‐1の国コードでフィルタリングします。",
|
||||
"Filter by company size.": "会社サイズで絞り込みます。",
|
||||
"Filter by source.": "ソースでフィルタします。",
|
||||
"Filter by Twitter handle.": "Twitterハンドルで絞り込みます。",
|
||||
"Filter by LinkedIn URL.": "LinkedIn URLで絞り込みます。",
|
||||
"Filter by phone number.": "電話番号で絞り込みます。",
|
||||
"Filter by synchronization status.": "同期ステータスで絞り込みます。",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "ステータス(es)を送信する:クリック、開いた、送信、保留、エラー、バウンス、購読解除、返信解除、または \"~\" (未設定) でフィルタリングします。",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "検証ステータス(es): accept_all, disposable, invalid, unknow, valid, webmail, pending.",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "設定を解除するには任意の値に「*」、または「~」を使用してください。",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "スラグの JSON オブジェクト→フィルタ値 (\"*\"、\"~\"、またはサブストリングを使用)",
|
||||
"Search first_name, last_name or email containing this substring.": "このサブ文字列を含むfirst_name、last_nameまたは電子メールを検索します。",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "最大リターン数(1-1000)。デフォルトは20です。",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "スキップするリード数 (0-100000) 。デフォルトは0です。",
|
||||
"New Lead": "新しいリード",
|
||||
"Fires when a new lead is created.": "新しいリードが作成されたときに発火します。"
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Zoek en controleer professionele e-mailadressen op schaal. Automatiseer e-mail ontdekking, validatie, lead tracking en campagne outreach met Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "U kunt uw API-sleutel verkrijgen via [Accountinstellingen](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Ontvangers toevoegen",
|
||||
"Count Emails": "Aantal e-mails",
|
||||
"Create Lead": "Maak Lead",
|
||||
"Delete Lead": "Verwijder Lead",
|
||||
"Find Email": "Zoek e-mail",
|
||||
"Get Lead": "Krijg Lead",
|
||||
"Search Leads": "Zoek leads",
|
||||
"Update Lead": "Lead bijwerken",
|
||||
"Verify Email": "Bevestig e-mailadres",
|
||||
"Add one or multiple recipients to a campaign.": "Een of meerdere ontvangers aan een campagne toevoegen.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Geeft als resultaat het aantal e-mailadressen gevonden voor een domein of bedrijf.",
|
||||
"Create and store a lead record.": "Maak en bewaar een lead record.",
|
||||
"Delete a specific lead record by ID.": "Verwijder een specifieke lead record via ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Geeft op/suggereer de meest waarschijnlijke e-mail voor een persoon op een domein.",
|
||||
"Retrieve details of a specific lead.": "Ophalen details van een specifieke lead.",
|
||||
"List and filter leads in the account.": "Lijst en filter leads in de account.",
|
||||
"Modify existing lead data.": "Bestaande Lead gegevens wijzigen.",
|
||||
"Check email deliverability and validation status.": "Controleer je bezorgbaarheid en validatiestatus.",
|
||||
"Campaign": "Campagne",
|
||||
"Emails": "E-mails",
|
||||
"Leads": "Leads",
|
||||
"Domain": "Domein",
|
||||
"Company": "Bedrijfsnaam",
|
||||
"Type": "Type",
|
||||
"Email": "E-mail",
|
||||
"First Name": "Voornaam",
|
||||
"Last Name": "Achternaam",
|
||||
"Position": "Positie",
|
||||
"Company Industry": "Bedrijfstak",
|
||||
"Company Size": "Grootte van bedrijf",
|
||||
"Confidence Score": "Vertrouwde Score",
|
||||
"Website": "website",
|
||||
"Country Code": "Land Code",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Telefoon nummer",
|
||||
"Twitter Handle": "Twitter Handle",
|
||||
"Notes": "Opmerkingen",
|
||||
"Source": "Bron",
|
||||
"Leads List": "Leads Lijst",
|
||||
"Leads List IDs": "Leads List IDs",
|
||||
"Custom Attributes": "Aangepaste kenmerken",
|
||||
"Lead to Delete": "Te verwijderen Lead",
|
||||
"Full Name": "Volledige naam",
|
||||
"Max Duration (seconds)": "Max duur (seconden)",
|
||||
"Lead": "Lood",
|
||||
"Industry": "Bedrijfstak",
|
||||
"Sync Status": "Synchronisatie status",
|
||||
"Sending Status(es)": "Verzenden status(sen)",
|
||||
"Verification Status(es)": "Verificatie status(sen)",
|
||||
"Activity/Contact Date": "Activiteit/Contactdatum",
|
||||
"Custom Attributes Filter": "Filter voor aangepaste kenmerken",
|
||||
"Query": "Zoekopdracht",
|
||||
"Limit": "Limiet",
|
||||
"Offset": "Verschuiving",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "E-mailadressen om toe te voegen als ontvangers. Ten minste één e-mail of lead ID is vereist.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Selecteer leads van uw Jagersaccount om toe te voegen als ontvanger.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Domeinnaam voor het tellen van adressen (bijvoorbeeld \"stripe.com\"). Ten minste één domein of bedrijf is vereist.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Bedrijfsnaam voor het tellen van adressen (bijvoorbeeld \"Stripe\"). Ten minste één domein of bedrijf is vereist.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Alleen \"persoonlijk\" of \"generiek\" e-mailadressen. Laat leeg voor beide.",
|
||||
"The email address of the lead.": "Het e-mailadres van de lead.",
|
||||
"Name of the company the lead is working in.": "Naam van het bedrijf waar de lead in werkt.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sector van het bedrijf (bijv. Financiën, Technologie, Onderwijs, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "De grootte van het bedrijf (bijv. 1-10, 201-500 werknemers).",
|
||||
"Probability the email is correct (0–100).": "Waarschijnlijkheid van de e-mail is juist (0-100).",
|
||||
"Domain name of the company.": "Domeinnaam van het bedrijf.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 landcode.",
|
||||
"Personal notes about the lead.": "Persoonlijke notities over de lead",
|
||||
"Origin where the lead was found.": "Oorsprong waar de lead werd gevonden.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Selecteer aan welke lijst u de lead wilt toevoegen; standaard aan uw meest recente lijst.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array of list IDs om de lead toe te voegen; standaard aan je meest recente lijst.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Sleutel/waarde kaart van elke aangepaste attributen, bijvoorbeeld { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Selecteer de lead om deze van jouw Jageraccount te verwijderen.",
|
||||
"The person's full name (if you can't supply both first and last name).": "De volledige naam van de persoon (als je zowel de voor- als achternaam niet kunt geven).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Hoe lang Jager raffinage resultaten moet besteden (3-20, standaard 10).",
|
||||
"Select a lead from your Hunter account.": "Selecteer een voorsprong van uw Jagersaccount.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filter op e-mail (gebruik \"*\" voor een, \"~\" voor leeg of subteken).",
|
||||
"Filter by first name.": "Filter op voornaam.",
|
||||
"Filter by last name.": "Filter op achternaam.",
|
||||
"Filter by position.": "Op positie filteren.",
|
||||
"Filter by company.": "Filter op bedrijf",
|
||||
"Filter by industry.": "Filteren op industrie.",
|
||||
"Filter by website.": "Filteren op website.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filter op ISO 3166~1 alfafting 2 landcode.",
|
||||
"Filter by company size.": "Filter op bedrijfsgrootte.",
|
||||
"Filter by source.": "Filteren op bron.",
|
||||
"Filter by Twitter handle.": "Filter op Twitter handle.",
|
||||
"Filter by LinkedIn URL.": "Filter op LinkedIn URL.",
|
||||
"Filter by phone number.": "Filter op telefoonnummer.",
|
||||
"Filter by synchronization status.": "Filter op synchronisatiestatus.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filter door het verzenden van status(sen): geklikt, geopend, verzonden, verzend, wachtend, fouten, gebonkt, afgemeld, beantwoord of \"~\" (uitzetten).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filter op verificatie status(en): accept_all, besteed, ongeldig, ongeldig, geldig, webmail, of \"in behandeling\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Gebruik \"*\" voor elke waarde of \"~\" om dit ongedaan te maken.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON object van slug→filterWaarde (gebruik \"*\", \"~\", of substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Zoek voor_name, achternaam of e-mail met deze substring.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max leidt tot terugkeer (1-1000). Standaard ingesteld op 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Aantal leads om over te slaan (0-100000). Standaard ingesteld op 0.",
|
||||
"New Lead": "Nieuwe Lead",
|
||||
"Fires when a new lead is created.": "Vuurt af wanneer een nieuwe lead wordt gemaakt."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Encontre, verifique e gerencie endereços de e-mail profissionais em escala. Automatize a descoberta, validação, acompanhamento de chumbo e campanha com o Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "Você pode obter sua chave de API em [Configurações da Conta](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Adicionar Destinatários",
|
||||
"Count Emails": "Contagem de Emails",
|
||||
"Create Lead": "Criar Potencial",
|
||||
"Delete Lead": "Excluir Lead",
|
||||
"Find Email": "Encontrar E-mail",
|
||||
"Get Lead": "Obter Potencial",
|
||||
"Search Leads": "Pesquisar Potenciais",
|
||||
"Update Lead": "Atualizar Lead",
|
||||
"Verify Email": "Verificar e-mail",
|
||||
"Add one or multiple recipients to a campaign.": "Adicionar um ou vários destinatários a uma campanha.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Retorna o número de endereços de e-mail encontrados para um domínio ou empresa.",
|
||||
"Create and store a lead record.": "Crie e armazene um registro de leads.",
|
||||
"Delete a specific lead record by ID.": "Excluir um registro de lead específico por ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Recuperar/propor o e-mail mais provável para uma pessoa em um domínio.",
|
||||
"Retrieve details of a specific lead.": "Recuperar detalhes de um potencial específico.",
|
||||
"List and filter leads in the account.": "Lista e filtro leva na conta.",
|
||||
"Modify existing lead data.": "Modificar dados do lead existente.",
|
||||
"Check email deliverability and validation status.": "Verificar entrega de e-mail e estado de validação.",
|
||||
"Campaign": "Campanha",
|
||||
"Emails": "e-mails",
|
||||
"Leads": "Conduz",
|
||||
"Domain": "Domínio",
|
||||
"Company": "Empresas",
|
||||
"Type": "tipo",
|
||||
"Email": "e-mail",
|
||||
"First Name": "Nome",
|
||||
"Last Name": "Sobrenome",
|
||||
"Position": "Posição",
|
||||
"Company Industry": "Indústria da Empresa",
|
||||
"Company Size": "Tamanho da empresa",
|
||||
"Confidence Score": "Pontuação de confiança",
|
||||
"Website": "site",
|
||||
"Country Code": "Código do país",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Número de telefone",
|
||||
"Twitter Handle": "Manipulador do Twitter",
|
||||
"Notes": "Observações",
|
||||
"Source": "fonte",
|
||||
"Leads List": "Lista de Leads",
|
||||
"Leads List IDs": "IDs de Listas de Leads",
|
||||
"Custom Attributes": "Atributos personalizados",
|
||||
"Lead to Delete": "Levar a Excluir",
|
||||
"Full Name": "Nome Completo",
|
||||
"Max Duration (seconds)": "Duração Máxima (segundos)",
|
||||
"Lead": "Conduzir",
|
||||
"Industry": "Indústria",
|
||||
"Sync Status": "Status da sincronização",
|
||||
"Sending Status(es)": "Enviando Status(s)",
|
||||
"Verification Status(es)": "Status de Verificação",
|
||||
"Activity/Contact Date": "Data de atividade/contato",
|
||||
"Custom Attributes Filter": "Filtro de Atributos Personalizados",
|
||||
"Query": "Requisição",
|
||||
"Limit": "Limitar",
|
||||
"Offset": "Deslocamento",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Endereços de e-mail para adicionar como destinatários. Pelo menos um e-mail ou ID de lead é necessário.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Selecione ligações da sua conta do Caçador para adicionar como destinatários.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Nome de domínio para contar endereços (por exemplo, \"stripe.com\"). Pelo menos um domínio ou empresa é necessário.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Nome da empresa para contar os endereços (por exemplo, \"Stripe\"). Pelo menos um domínio ou empresa é necessário.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Conte apenas endereços de e-mail \"pessoais\" ou \"genéricos\". Deixe em branco para ambos.",
|
||||
"The email address of the lead.": "O endereço de e-mail da liderança.",
|
||||
"Name of the company the lead is working in.": "Nome da empresa em que o potencial está trabalhando.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Setor da empresa (por exemplo, Finanças, Tecnologia, Educação, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Tamanho da empresa (por exemplo, 1-10, 201-500 empregados).",
|
||||
"Probability the email is correct (0–100).": "Probabilidade do e-mail está correta (0–100).",
|
||||
"Domain name of the company.": "Nome do domínio da empresa.",
|
||||
"ISO 3166-1 alpha-2 country code.": "Código de país ISO 3166-1 alpha-2.",
|
||||
"Personal notes about the lead.": "Anotações pessoais sobre a liderança.",
|
||||
"Origin where the lead was found.": "Origem onde o lead foi encontrado.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Selecione para qual lista adicionar o lead; o padrão é sua lista mais recente.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array de IDs de lista para adicionar o Lead; O padrão é sua lista mais recente.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Mapa chave/valor de quaisquer atributos personalizados, por exemplo { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Selecione o Lead para excluir da sua conta do Caçador.",
|
||||
"The person's full name (if you can't supply both first and last name).": "Nome completo da pessoa (se você não puder fornecer primeiro e último nome).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Quanto tempo o Caçador deve gastar em resultados de refino (3-20, padrão 10).",
|
||||
"Select a lead from your Hunter account.": "Selecione um lead da sua conta Hunter.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filtrar e-mail (use \"*\" para uma, \"~\" para vazio ou substring).",
|
||||
"Filter by first name.": "Filtrar pelo primeiro nome.",
|
||||
"Filter by last name.": "Filtrar por último nome.",
|
||||
"Filter by position.": "Filtrar por posição.",
|
||||
"Filter by company.": "Filtrar por empresa.",
|
||||
"Filter by industry.": "Filtrar por indústria.",
|
||||
"Filter by website.": "Filtrar por site.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filtrar por código de país ISO 3166➲ 1 alfaeval. 2",
|
||||
"Filter by company size.": "Filtrar por tamanho da empresa.",
|
||||
"Filter by source.": "Filtrar por fonte.",
|
||||
"Filter by Twitter handle.": "Filtrar por manipulador do Twitter.",
|
||||
"Filter by LinkedIn URL.": "Filtrar por URL do LinkedIn",
|
||||
"Filter by phone number.": "Filtrar por número de telefone.",
|
||||
"Filter by synchronization status.": "Filtrar por status de sincronização.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filtrar enviando status(s): clicado, aberto, enviado, pendente, erro, devolvido, desinscrito, respondido ou \"~\" (indefinido).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filtrar por status de verificação: aceitt_all, descartável, inválido, desconhecido, inválido, válido, webmail ou \"pendente\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Use \"*\" para qualquer valor ou \"~\" para não definido.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "Objeto JSON de slug→filterValue (use \"*\", \"~\" ou substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Pesquisar primeiro_nome, sobrenome ou e-mail que contenham esta substring.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Máximo leva a retorno (1-1000). O padrão é 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Número de leads a ignorar (0-100000). O padrão é 0.",
|
||||
"New Lead": "Novo Potencial",
|
||||
"Fires when a new lead is created.": "Atira quando uma nova vantagem é criada."
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"Hunter": "Охотник",
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Найдите, верифицируйте и управляйте профессиональными адресами электронной почты в масштабе. Автоматизируйте поиск по электронной почте, валидацию, слежение за ведущими кампаниями и кампанию с помощью Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "Вы можете получить ваш API ключ в [Настройках аккаунта](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Добавить получателей",
|
||||
"Count Emails": "Счетчик писем",
|
||||
"Create Lead": "Создать предв. контакт",
|
||||
"Delete Lead": "Удалить предв. контакт",
|
||||
"Find Email": "Найти E-mail",
|
||||
"Get Lead": "Получить предв. контакт",
|
||||
"Search Leads": "Поиск предварительных контактов",
|
||||
"Update Lead": "Обновить предв. контакт",
|
||||
"Verify Email": "Подтвердить email",
|
||||
"Add one or multiple recipients to a campaign.": "Добавить одного или нескольких получателей в кампанию.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Возвращает количество email адресов, найденных для домена или компании.",
|
||||
"Create and store a lead record.": "Создать и сохранить ведущую запись.",
|
||||
"Delete a specific lead record by ID.": "Удалить запись Лидера по ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Получать/предложить наиболее вероятный адрес электронной почты для пользователя домена.",
|
||||
"Retrieve details of a specific lead.": "Получить информацию о конкретном лидере.",
|
||||
"List and filter leads in the account.": "Список и фильтрация проводов в аккаунте.",
|
||||
"Modify existing lead data.": "Изменить существующие предварительные данные.",
|
||||
"Check email deliverability and validation status.": "Проверьте доставку и статус подтверждения.",
|
||||
"Campaign": "Кампания",
|
||||
"Emails": "Письма",
|
||||
"Leads": "Предварительные контакты",
|
||||
"Domain": "Домен",
|
||||
"Company": "Компания",
|
||||
"Type": "Тип",
|
||||
"Email": "Почта",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Position": "Позиция",
|
||||
"Company Industry": "Промышленность компании",
|
||||
"Company Size": "Размер компании",
|
||||
"Confidence Score": "Балл доверия",
|
||||
"Website": "Сайт",
|
||||
"Country Code": "Код страны",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Номер телефона",
|
||||
"Twitter Handle": "Обработчик Twitter",
|
||||
"Notes": "Примечания",
|
||||
"Source": "Источник",
|
||||
"Leads List": "Список предварительных контактов",
|
||||
"Leads List IDs": "ID списка предварительных контактов",
|
||||
"Custom Attributes": "Пользовательские атрибуты",
|
||||
"Lead to Delete": "Предварительный контакт для удаления",
|
||||
"Full Name": "Полное имя",
|
||||
"Max Duration (seconds)": "Максимальная длительность (секунды)",
|
||||
"Lead": "Предв. контакт",
|
||||
"Industry": "Промышленность",
|
||||
"Sync Status": "Состояние синхронизации",
|
||||
"Sending Status(es)": "Статус (ы) отправки",
|
||||
"Verification Status(es)": "Статус (ы) верификации",
|
||||
"Activity/Contact Date": "Активность/Дата Контакта",
|
||||
"Custom Attributes Filter": "Фильтр пользовательских атрибутов",
|
||||
"Query": "Запрос",
|
||||
"Limit": "Лимит",
|
||||
"Offset": "Смещение",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Адреса электронной почты для добавления в качестве получателей. Требуется по крайней мере один адрес электронной почты или ID клиента.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Выберите ведущих из вашего аккаунта Hunter для добавления в качестве получателей.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Имя домена для подсчета адресов (например, \"stripe.com\"). Требуется по крайней мере один из доменов или компании.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Имя компании для подсчета адресов (например, \"Stripe\"). Требуется по крайней мере один из доменов или компаний.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Подсчитайте только \"персональные\" или \"универсальные\" адреса электронной почты. Оставьте пустым для обоих адресов.",
|
||||
"The email address of the lead.": "Адрес электронной почты лидера.",
|
||||
"Name of the company the lead is working in.": "Название компании, в которой работает ведущий директор.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Сектор компании (например, финансы, технологии, образование и т.д.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Размер компании (например, 1-10, 201-500 сотрудников).",
|
||||
"Probability the email is correct (0–100).": "Вероятность правильной электронной почты (0–100).",
|
||||
"Domain name of the company.": "Доменное имя компании.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 код страны.",
|
||||
"Personal notes about the lead.": "Личные заметки о свинце.",
|
||||
"Origin where the lead was found.": "Происхождение, где был найден свинцов.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Выберите, к какому списку добавить свинца; по умолчанию в ваш самый последний список.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Массив идентификаторов списка, в который будет добавляться свинца; по умолчанию используется ваш самый последний список.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Карта ключ/значение любых пользовательских атрибутов, например { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Выберите привезение, чтобы удалить его из вашего аккаунта Hunter.",
|
||||
"The person's full name (if you can't supply both first and last name).": "Полное имя пользователя (если вы не можете указать имя и фамилию).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "Как долго охотник должен тратить результаты доработки (3-20, по умолчанию 10).",
|
||||
"Select a lead from your Hunter account.": "Выберите свинца из вашего аккаунта Hunter.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Фильтр по электронной почте (используйте \"*\" для любого, \"~\" для пустого или подстроки).",
|
||||
"Filter by first name.": "Фильтр по имени.",
|
||||
"Filter by last name.": "Фильтр по фамилии.",
|
||||
"Filter by position.": "Фильтр по позиции.",
|
||||
"Filter by company.": "Фильтр по компании.",
|
||||
"Filter by industry.": "Фильтр по отрасли.",
|
||||
"Filter by website.": "Фильтр по веб-сайту.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Фильтровать по ISO 3166–1 алфавитный код страны 2.",
|
||||
"Filter by company size.": "Фильтр по размеру компании.",
|
||||
"Filter by source.": "Фильтр по источникам.",
|
||||
"Filter by Twitter handle.": "Фильтровать по дескриптору Twitter.",
|
||||
"Filter by LinkedIn URL.": "Фильтр по адресу LinkedIn",
|
||||
"Filter by phone number.": "Фильтр по номеру телефона.",
|
||||
"Filter by synchronization status.": "Фильтр по статусу синхронизации.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Фильтр по отправке статуса(ов): нажат, открыт, отправлен, отложен, ошибка, отскочил, отписался, ответил или \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Фильтр по статусу проверки: accept_all, одноразовый, недействительный, неизвестный, верный, веб-почта или \"pending\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Используйте \"*\" для любого значения или \"~\" для снятия.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON объект слаг→filterValue (используйте \"*\", \"~\" или подстроки).",
|
||||
"Search first_name, last_name or email containing this substring.": "Поиск по первому_имени, фамилии или электронной почте, содержащей эту подстроку.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Максимальное количество проводов (1-1000). По умолчанию 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Количество проводов в пропуск (0-100000). По умолчанию 0.",
|
||||
"New Lead": "Новый предв. контакт",
|
||||
"Fires when a new lead is created.": "Стреляет при создании нового свинца."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "You can obtain your API key from [Account Settings](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Add Recipients",
|
||||
"Count Emails": "Count Emails",
|
||||
"Create Lead": "Create Lead",
|
||||
"Delete Lead": "Delete Lead",
|
||||
"Find Email": "Find Email",
|
||||
"Get Lead": "Get Lead",
|
||||
"Search Leads": "Search Leads",
|
||||
"Update Lead": "Update Lead",
|
||||
"Verify Email": "Verify Email",
|
||||
"Add one or multiple recipients to a campaign.": "Add one or multiple recipients to a campaign.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Returns the number of email addresses found for a domain or company.",
|
||||
"Create and store a lead record.": "Create and store a lead record.",
|
||||
"Delete a specific lead record by ID.": "Delete a specific lead record by ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Retrieve/propose the most likely email for a person at a domain.",
|
||||
"Retrieve details of a specific lead.": "Retrieve details of a specific lead.",
|
||||
"List and filter leads in the account.": "List and filter leads in the account.",
|
||||
"Modify existing lead data.": "Modify existing lead data.",
|
||||
"Check email deliverability and validation status.": "Check email deliverability and validation status.",
|
||||
"Campaign": "Campaign",
|
||||
"Emails": "Emails",
|
||||
"Leads": "Leads",
|
||||
"Domain": "Domain",
|
||||
"Company": "Company",
|
||||
"Type": "Type",
|
||||
"Email": "Email",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Position": "Position",
|
||||
"Company Industry": "Company Industry",
|
||||
"Company Size": "Company Size",
|
||||
"Confidence Score": "Confidence Score",
|
||||
"Website": "Website",
|
||||
"Country Code": "Country Code",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Phone Number",
|
||||
"Twitter Handle": "Twitter Handle",
|
||||
"Notes": "Notes",
|
||||
"Source": "Source",
|
||||
"Leads List": "Leads List",
|
||||
"Leads List IDs": "Leads List IDs",
|
||||
"Custom Attributes": "Custom Attributes",
|
||||
"Lead to Delete": "Lead to Delete",
|
||||
"Full Name": "Full Name",
|
||||
"Max Duration (seconds)": "Max Duration (seconds)",
|
||||
"Lead": "Lead",
|
||||
"Industry": "Industry",
|
||||
"Sync Status": "Sync Status",
|
||||
"Sending Status(es)": "Sending Status(es)",
|
||||
"Verification Status(es)": "Verification Status(es)",
|
||||
"Activity/Contact Date": "Activity/Contact Date",
|
||||
"Custom Attributes Filter": "Custom Attributes Filter",
|
||||
"Query": "Query",
|
||||
"Limit": "Limit",
|
||||
"Offset": "Offset",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Email addresses to add as recipients. At least one email or lead ID is required.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Select leads from your Hunter account to add as recipients.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Count only \"personal\" or \"generic\" email addresses. Leave blank for both.",
|
||||
"The email address of the lead.": "The email address of the lead.",
|
||||
"Name of the company the lead is working in.": "Name of the company the lead is working in.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sector of the company (e.g. Finance, Technology, Education, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Size of the company (e.g. 1-10, 201-500 employees).",
|
||||
"Probability the email is correct (0–100).": "Probability the email is correct (0–100).",
|
||||
"Domain name of the company.": "Domain name of the company.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 country code.",
|
||||
"Personal notes about the lead.": "Personal notes about the lead.",
|
||||
"Origin where the lead was found.": "Origin where the lead was found.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Select which list to add the lead to; defaults to your most recent list.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array of list IDs to add the lead to; defaults to your most recent list.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Select the lead to delete from your Hunter account.",
|
||||
"The person's full name (if you can't supply both first and last name).": "The person's full name (if you can't supply both first and last name).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "How long Hunter should spend refining results (3-20, default 10).",
|
||||
"Select a lead from your Hunter account.": "Select a lead from your Hunter account.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filter by email (use \"*\" for any, \"~\" for empty, or substring).",
|
||||
"Filter by first name.": "Filter by first name.",
|
||||
"Filter by last name.": "Filter by last name.",
|
||||
"Filter by position.": "Filter by position.",
|
||||
"Filter by company.": "Filter by company.",
|
||||
"Filter by industry.": "Filter by industry.",
|
||||
"Filter by website.": "Filter by website.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filter by ISO 3166‑1 alpha‑2 country code.",
|
||||
"Filter by company size.": "Filter by company size.",
|
||||
"Filter by source.": "Filter by source.",
|
||||
"Filter by Twitter handle.": "Filter by Twitter handle.",
|
||||
"Filter by LinkedIn URL.": "Filter by LinkedIn URL.",
|
||||
"Filter by phone number.": "Filter by phone number.",
|
||||
"Filter by synchronization status.": "Filter by synchronization status.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Use \"*\" for any value or \"~\" for unset.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON object of slug→filterValue (use \"*\", \"~\", or substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Search first_name, last_name or email containing this substring.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max leads to return (1-1000). Defaults to 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Number of leads to skip (0-100000). Defaults to 0.",
|
||||
"New Lead": "New Lead",
|
||||
"Fires when a new lead is created.": "Fires when a new lead is created."
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"Hunter": "Hunter",
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "You can obtain your API key from [Account Settings](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Add Recipients",
|
||||
"Count Emails": "Count Emails",
|
||||
"Create Lead": "Create Lead",
|
||||
"Delete Lead": "Delete Lead",
|
||||
"Find Email": "Find Email",
|
||||
"Get Lead": "Get Lead",
|
||||
"Search Leads": "Search Leads",
|
||||
"Update Lead": "Update Lead",
|
||||
"Verify Email": "Verify Email",
|
||||
"Add one or multiple recipients to a campaign.": "Add one or multiple recipients to a campaign.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Returns the number of email addresses found for a domain or company.",
|
||||
"Create and store a lead record.": "Create and store a lead record.",
|
||||
"Delete a specific lead record by ID.": "Delete a specific lead record by ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Retrieve/propose the most likely email for a person at a domain.",
|
||||
"Retrieve details of a specific lead.": "Retrieve details of a specific lead.",
|
||||
"List and filter leads in the account.": "List and filter leads in the account.",
|
||||
"Modify existing lead data.": "Modify existing lead data.",
|
||||
"Check email deliverability and validation status.": "Check email deliverability and validation status.",
|
||||
"Campaign": "Campaign",
|
||||
"Emails": "Emails",
|
||||
"Leads": "Leads",
|
||||
"Domain": "Domain",
|
||||
"Company": "Company",
|
||||
"Type": "Type",
|
||||
"Email": "Email",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "Last Name",
|
||||
"Position": "Position",
|
||||
"Company Industry": "Company Industry",
|
||||
"Company Size": "Company Size",
|
||||
"Confidence Score": "Confidence Score",
|
||||
"Website": "Website",
|
||||
"Country Code": "Country Code",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Phone Number",
|
||||
"Twitter Handle": "Twitter Handle",
|
||||
"Notes": "Notes",
|
||||
"Source": "Source",
|
||||
"Leads List": "Leads List",
|
||||
"Leads List IDs": "Leads List IDs",
|
||||
"Custom Attributes": "Custom Attributes",
|
||||
"Lead to Delete": "Lead to Delete",
|
||||
"Full Name": "Full Name",
|
||||
"Max Duration (seconds)": "Max Duration (seconds)",
|
||||
"Lead": "Lead",
|
||||
"Industry": "Industry",
|
||||
"Sync Status": "Sync Status",
|
||||
"Sending Status(es)": "Sending Status(es)",
|
||||
"Verification Status(es)": "Verification Status(es)",
|
||||
"Activity/Contact Date": "Activity/Contact Date",
|
||||
"Custom Attributes Filter": "Custom Attributes Filter",
|
||||
"Query": "Query",
|
||||
"Limit": "Limit",
|
||||
"Offset": "Offset",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Email addresses to add as recipients. At least one email or lead ID is required.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Select leads from your Hunter account to add as recipients.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Count only \"personal\" or \"generic\" email addresses. Leave blank for both.",
|
||||
"The email address of the lead.": "The email address of the lead.",
|
||||
"Name of the company the lead is working in.": "Name of the company the lead is working in.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sector of the company (e.g. Finance, Technology, Education, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Size of the company (e.g. 1-10, 201-500 employees).",
|
||||
"Probability the email is correct (0–100).": "Probability the email is correct (0–100).",
|
||||
"Domain name of the company.": "Domain name of the company.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 country code.",
|
||||
"Personal notes about the lead.": "Personal notes about the lead.",
|
||||
"Origin where the lead was found.": "Origin where the lead was found.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Select which list to add the lead to; defaults to your most recent list.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array of list IDs to add the lead to; defaults to your most recent list.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Select the lead to delete from your Hunter account.",
|
||||
"The person's full name (if you can't supply both first and last name).": "The person's full name (if you can't supply both first and last name).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "How long Hunter should spend refining results (3-20, default 10).",
|
||||
"Select a lead from your Hunter account.": "Select a lead from your Hunter account.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filter by email (use \"*\" for any, \"~\" for empty, or substring).",
|
||||
"Filter by first name.": "Filter by first name.",
|
||||
"Filter by last name.": "Filter by last name.",
|
||||
"Filter by position.": "Filter by position.",
|
||||
"Filter by company.": "Filter by company.",
|
||||
"Filter by industry.": "Filter by industry.",
|
||||
"Filter by website.": "Filter by website.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filter by ISO 3166‑1 alpha‑2 country code.",
|
||||
"Filter by company size.": "Filter by company size.",
|
||||
"Filter by source.": "Filter by source.",
|
||||
"Filter by Twitter handle.": "Filter by Twitter handle.",
|
||||
"Filter by LinkedIn URL.": "Filter by LinkedIn URL.",
|
||||
"Filter by phone number.": "Filter by phone number.",
|
||||
"Filter by synchronization status.": "Filter by synchronization status.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Use \"*\" for any value or \"~\" for unset.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON object of slug→filterValue (use \"*\", \"~\", or substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Search first_name, last_name or email containing this substring.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max leads to return (1-1000). Defaults to 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Number of leads to skip (0-100000). Defaults to 0.",
|
||||
"New Lead": "New Lead",
|
||||
"Fires when a new lead is created.": "Fires when a new lead is created."
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.": "Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.",
|
||||
"You can obtain your API key from [Account Settings](https://hunter.io/dashboard)": "You can obtain your API key from [Account Settings](https://hunter.io/dashboard)",
|
||||
"Add Recipients": "Add Recipients",
|
||||
"Count Emails": "Count Emails",
|
||||
"Create Lead": "Create Lead",
|
||||
"Delete Lead": "Delete Lead",
|
||||
"Find Email": "Find Email",
|
||||
"Get Lead": "Get Lead",
|
||||
"Search Leads": "Search Leads",
|
||||
"Update Lead": "Update Lead",
|
||||
"Verify Email": "Verify Email",
|
||||
"Add one or multiple recipients to a campaign.": "Add one or multiple recipients to a campaign.",
|
||||
"Returns the number of email addresses found for a domain or company.": "Returns the number of email addresses found for a domain or company.",
|
||||
"Create and store a lead record.": "Create and store a lead record.",
|
||||
"Delete a specific lead record by ID.": "Delete a specific lead record by ID.",
|
||||
"Retrieve/propose the most likely email for a person at a domain.": "Retrieve/propose the most likely email for a person at a domain.",
|
||||
"Retrieve details of a specific lead.": "Retrieve details of a specific lead.",
|
||||
"List and filter leads in the account.": "List and filter leads in the account.",
|
||||
"Modify existing lead data.": "Modify existing lead data.",
|
||||
"Check email deliverability and validation status.": "Check email deliverability and validation status.",
|
||||
"Campaign": "Campaign",
|
||||
"Emails": "电子邮件",
|
||||
"Leads": "Leads",
|
||||
"Domain": "Domain",
|
||||
"Company": "Company",
|
||||
"Type": "类型",
|
||||
"Email": "电子邮件地址",
|
||||
"First Name": "First Name",
|
||||
"Last Name": "名字",
|
||||
"Position": "Position",
|
||||
"Company Industry": "Company Industry",
|
||||
"Company Size": "Company Size",
|
||||
"Confidence Score": "Confidence Score",
|
||||
"Website": "Website",
|
||||
"Country Code": "Country Code",
|
||||
"LinkedIn URL": "LinkedIn URL",
|
||||
"Phone Number": "Phone Number",
|
||||
"Twitter Handle": "Twitter Handle",
|
||||
"Notes": "Notes",
|
||||
"Source": "来源",
|
||||
"Leads List": "Leads List",
|
||||
"Leads List IDs": "Leads List IDs",
|
||||
"Custom Attributes": "Custom Attributes",
|
||||
"Lead to Delete": "Lead to Delete",
|
||||
"Full Name": "Full Name",
|
||||
"Max Duration (seconds)": "Max Duration (seconds)",
|
||||
"Lead": "Lead",
|
||||
"Industry": "Industry",
|
||||
"Sync Status": "Sync Status",
|
||||
"Sending Status(es)": "Sending Status(es)",
|
||||
"Verification Status(es)": "Verification Status(es)",
|
||||
"Activity/Contact Date": "Activity/Contact Date",
|
||||
"Custom Attributes Filter": "Custom Attributes Filter",
|
||||
"Query": "Query",
|
||||
"Limit": "Limit",
|
||||
"Offset": "Offset",
|
||||
"Email addresses to add as recipients. At least one email or lead ID is required.": "Email addresses to add as recipients. At least one email or lead ID is required.",
|
||||
"Select leads from your Hunter account to add as recipients.": "Select leads from your Hunter account to add as recipients.",
|
||||
"Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.": "Domain name to count addresses for (e.g., \"stripe.com\"). At least one of domain or company is required.",
|
||||
"Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.": "Company name to count addresses for (e.g., \"Stripe\"). At least one of domain or company is required.",
|
||||
"Count only \"personal\" or \"generic\" email addresses. Leave blank for both.": "Count only \"personal\" or \"generic\" email addresses. Leave blank for both.",
|
||||
"The email address of the lead.": "The email address of the lead.",
|
||||
"Name of the company the lead is working in.": "Name of the company the lead is working in.",
|
||||
"Sector of the company (e.g. Finance, Technology, Education, etc.).": "Sector of the company (e.g. Finance, Technology, Education, etc.).",
|
||||
"Size of the company (e.g. 1-10, 201-500 employees).": "Size of the company (e.g. 1-10, 201-500 employees).",
|
||||
"Probability the email is correct (0–100).": "Probability the email is correct (0–100).",
|
||||
"Domain name of the company.": "Domain name of the company.",
|
||||
"ISO 3166-1 alpha-2 country code.": "ISO 3166-1 alpha-2 country code.",
|
||||
"Personal notes about the lead.": "Personal notes about the lead.",
|
||||
"Origin where the lead was found.": "Origin where the lead was found.",
|
||||
"Select which list to add the lead to; defaults to your most recent list.": "Select which list to add the lead to; defaults to your most recent list.",
|
||||
"Array of list IDs to add the lead to; defaults to your most recent list.": "Array of list IDs to add the lead to; defaults to your most recent list.",
|
||||
"Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.": "Key/value map of any custom attributes, e.g. { \"customer_id\": \"cus-1234abcd\" }.",
|
||||
"Select the lead to delete from your Hunter account.": "Select the lead to delete from your Hunter account.",
|
||||
"The person's full name (if you can't supply both first and last name).": "The person's full name (if you can't supply both first and last name).",
|
||||
"How long Hunter should spend refining results (3-20, default 10).": "How long Hunter should spend refining results (3-20, default 10).",
|
||||
"Select a lead from your Hunter account.": "Select a lead from your Hunter account.",
|
||||
"Filter by email (use \"*\" for any, \"~\" for empty, or substring).": "Filter by email (use \"*\" for any, \"~\" for empty, or substring).",
|
||||
"Filter by first name.": "Filter by first name.",
|
||||
"Filter by last name.": "Filter by last name.",
|
||||
"Filter by position.": "Filter by position.",
|
||||
"Filter by company.": "Filter by company.",
|
||||
"Filter by industry.": "Filter by industry.",
|
||||
"Filter by website.": "Filter by website.",
|
||||
"Filter by ISO 3166‑1 alpha‑2 country code.": "Filter by ISO 3166‑1 alpha‑2 country code.",
|
||||
"Filter by company size.": "Filter by company size.",
|
||||
"Filter by source.": "Filter by source.",
|
||||
"Filter by Twitter handle.": "Filter by Twitter handle.",
|
||||
"Filter by LinkedIn URL.": "Filter by LinkedIn URL.",
|
||||
"Filter by phone number.": "Filter by phone number.",
|
||||
"Filter by synchronization status.": "Filter by synchronization status.",
|
||||
"Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).": "Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or \"~\" (unset).",
|
||||
"Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".": "Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or \"pending\".",
|
||||
"Use \"*\" for any value or \"~\" for unset.": "Use \"*\" for any value or \"~\" for unset.",
|
||||
"JSON object of slug→filterValue (use \"*\", \"~\", or substrings).": "JSON object of slug→filterValue (use \"*\", \"~\", or substrings).",
|
||||
"Search first_name, last_name or email containing this substring.": "Search first_name, last_name or email containing this substring.",
|
||||
"Max leads to return (1-1000). Defaults to 20.": "Max leads to return (1-1000). Defaults to 20.",
|
||||
"Number of leads to skip (0-100000). Defaults to 0.": "Number of leads to skip (0-100000). Defaults to 0.",
|
||||
"New Lead": "New Lead",
|
||||
"Fires when a new lead is created.": "Fires when a new lead is created."
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import { createPiece, PieceAuth } from "@activepieces/pieces-framework";
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { addRecipientsAction } from "./lib/actions/add-recipients";
|
||||
import { countEmailsAction } from "./lib/actions/count-emails";
|
||||
import { createLeadAction } from "./lib/actions/create-lead";
|
||||
import { deleteLeadAction } from "./lib/actions/delete-lead";
|
||||
import { findEmailAction } from "./lib/actions/find-email";
|
||||
import { getLeadAction } from "./lib/actions/get-lead";
|
||||
import { searchLeadsAction } from "./lib/actions/search-leads";
|
||||
import { updateLeadAction } from "./lib/actions/update-lead";
|
||||
import { verifyEmailAction } from "./lib/actions/verify-email";
|
||||
import { newLeadTrigger } from "./lib/triggers/new-lead";
|
||||
|
||||
export const hunterAuth = PieceAuth.SecretText({
|
||||
displayName: 'API Key',
|
||||
required: true,
|
||||
description: 'You can obtain your API key from [Account Settings](https://hunter.io/dashboard)',
|
||||
});
|
||||
|
||||
export const hunter = createPiece({
|
||||
displayName: "Hunter",
|
||||
description: 'Find, verify and manage professional email addresses at scale. Automate email discovery, validation, lead tracking, and campaign outreach with Hunter.io.',
|
||||
auth: hunterAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: "https://cdn.activepieces.com/pieces/hunter.png",
|
||||
authors: ['varshith257'],
|
||||
categories: [PieceCategory.SALES_AND_CRM],
|
||||
actions: [
|
||||
addRecipientsAction,
|
||||
countEmailsAction,
|
||||
createLeadAction,
|
||||
deleteLeadAction,
|
||||
findEmailAction,
|
||||
getLeadAction,
|
||||
searchLeadsAction,
|
||||
updateLeadAction,
|
||||
verifyEmailAction,
|
||||
],
|
||||
triggers: [newLeadTrigger],
|
||||
});
|
||||
@@ -0,0 +1,89 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import {
|
||||
campaignIdProp,
|
||||
emailsProp,
|
||||
leadIdsDropdownProp,
|
||||
} from '../common/props';
|
||||
|
||||
const MAX_EMAILS = 50;
|
||||
const MAX_LEAD_IDS = 50;
|
||||
|
||||
export const addRecipientsAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'add-recipients',
|
||||
displayName: 'Add Recipients',
|
||||
description: 'Add one or multiple recipients to a campaign.',
|
||||
props: {
|
||||
campaign_id: campaignIdProp,
|
||||
emails: emailsProp,
|
||||
lead_ids: leadIdsDropdownProp,
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
campaign_id,
|
||||
emails: rawEmails = [],
|
||||
lead_ids: rawLeadIds = [],
|
||||
} = context.propsValue as {
|
||||
campaign_id: number;
|
||||
emails?: unknown[];
|
||||
lead_ids?: unknown[];
|
||||
};
|
||||
|
||||
const stringEmails = rawEmails.filter(
|
||||
(e): e is string => typeof e === 'string'
|
||||
);
|
||||
const numberLeadIds = rawLeadIds.filter(
|
||||
(id): id is number => typeof id === 'number'
|
||||
);
|
||||
|
||||
const filteredEmails = stringEmails
|
||||
.map((e) => e.trim())
|
||||
.filter((e) => e.length > 0);
|
||||
|
||||
if (filteredEmails.length === 0 && numberLeadIds.length === 0) {
|
||||
throw new Error(
|
||||
'You must provide at least one valid email or one lead ID.'
|
||||
);
|
||||
}
|
||||
|
||||
if (filteredEmails.length > MAX_EMAILS) {
|
||||
throw new Error(`You can add at most ${MAX_EMAILS} emails at once.`);
|
||||
}
|
||||
if (numberLeadIds.length > MAX_LEAD_IDS) {
|
||||
throw new Error(`You can add at most ${MAX_LEAD_IDS} lead IDs at once.`);
|
||||
}
|
||||
|
||||
const body: { emails?: string[]; lead_ids?: number[] } = {};
|
||||
if (filteredEmails.length) body.emails = filteredEmails;
|
||||
if (numberLeadIds.length) body.lead_ids = numberLeadIds;
|
||||
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: `/campaigns/${campaign_id}/recipients`,
|
||||
method: HttpMethod.POST,
|
||||
body,
|
||||
}) as {
|
||||
data: {
|
||||
recipients_added: number;
|
||||
skipped_recipients: Array<{
|
||||
email: string;
|
||||
reason:
|
||||
| 'duplicate'
|
||||
| 'invalid'
|
||||
| 'removed'
|
||||
| 'bounced'
|
||||
| 'unsubscribed'
|
||||
| 'claimed';
|
||||
}>;
|
||||
};
|
||||
};
|
||||
|
||||
return {
|
||||
recipients_added: resp.data.recipients_added,
|
||||
skipped_recipients: resp.data.skipped_recipients,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,73 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { HttpError, HttpMethod, QueryParams } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import { domainProp, companyProp, emailTypeProp } from '../common/props';
|
||||
|
||||
export const countEmailsAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'count-emails',
|
||||
displayName: 'Count Emails',
|
||||
description: 'Returns the number of email addresses found for a domain or company.',
|
||||
props: {
|
||||
domain: domainProp,
|
||||
company: companyProp,
|
||||
type: emailTypeProp,
|
||||
},
|
||||
async run(context) {
|
||||
const { domain, company, type } =
|
||||
context.propsValue as {
|
||||
domain?: string;
|
||||
company?: string;
|
||||
type?: 'personal' | 'generic';
|
||||
};
|
||||
if (!domain && !company) {
|
||||
throw new Error(
|
||||
'You must provide at least a domain or a company name to count emails.'
|
||||
);
|
||||
}
|
||||
|
||||
const qparams: QueryParams = {};
|
||||
if (domain) qparams['domain'] = domain;
|
||||
if (!domain && company) qparams['company'] = company;
|
||||
if (type) qparams['type'] = type;
|
||||
|
||||
let respBody;
|
||||
try {
|
||||
respBody = await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: '/email-count',
|
||||
method: HttpMethod.GET,
|
||||
qparams,
|
||||
});
|
||||
} catch (err) {
|
||||
const httpErr = err as HttpError;
|
||||
const status = httpErr.response?.status;
|
||||
const details =
|
||||
(httpErr.response?.body as any)?.errors?.[0]?.details || 'Unknown error';
|
||||
if (status === 400 && details.includes('wrong_params')) {
|
||||
throw new Error('Missing domain or company parameter.');
|
||||
}
|
||||
if (status === 400 && details.includes('invalid_type')) {
|
||||
throw new Error(
|
||||
'Invalid type. Must be "personal" or "generic", exactly as shown.'
|
||||
);
|
||||
}
|
||||
if (status === 429) {
|
||||
throw new Error(
|
||||
'Rate limit exceeded (15 req/s). Please wait a moment and try again.'
|
||||
);
|
||||
}
|
||||
throw new Error(`Hunter Email Count API error: ${details}`);
|
||||
}
|
||||
|
||||
const data = (respBody as any).data;
|
||||
return {
|
||||
total: data.total as number,
|
||||
personal_emails: data.personal_emails as number,
|
||||
generic_emails: data.generic_emails as number,
|
||||
department: data.department as Record<string, number>,
|
||||
seniority: data.seniority as Record<string, number>,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,77 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import {
|
||||
emailProp,
|
||||
firstNameProp,
|
||||
lastNameProp,
|
||||
positionProp,
|
||||
companyLeadProp,
|
||||
companyIndustryProp,
|
||||
companySizeProp,
|
||||
confidenceScoreProp,
|
||||
websiteProp,
|
||||
countryCodeProp,
|
||||
linkedinUrlProp,
|
||||
phoneNumberProp,
|
||||
twitterProp,
|
||||
notesProp,
|
||||
sourceProp,
|
||||
leadsListDropdownProp,
|
||||
leadsListIdsProp,
|
||||
customAttributesProp,
|
||||
} from '../common/props';
|
||||
|
||||
export const createLeadAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'create-lead',
|
||||
displayName: 'Create Lead',
|
||||
description: 'Create and store a lead record.',
|
||||
props: {
|
||||
email: emailProp,
|
||||
first_name: firstNameProp,
|
||||
last_name: lastNameProp,
|
||||
position: positionProp,
|
||||
company: companyLeadProp,
|
||||
company_industry: companyIndustryProp,
|
||||
company_size: companySizeProp,
|
||||
confidence_score: confidenceScoreProp,
|
||||
website: websiteProp,
|
||||
country_code: countryCodeProp,
|
||||
linkedin_url: linkedinUrlProp,
|
||||
phone_number: phoneNumberProp,
|
||||
twitter: twitterProp,
|
||||
notes: notesProp,
|
||||
source: sourceProp,
|
||||
leads_list_id: leadsListDropdownProp,
|
||||
leads_list_ids: leadsListIdsProp,
|
||||
custom_attributes: customAttributesProp,
|
||||
},
|
||||
async run(context) {
|
||||
const props = context.propsValue;
|
||||
|
||||
const body: Record<string, unknown> = {};
|
||||
for (const [key, val] of Object.entries(props)) {
|
||||
if (
|
||||
val !== undefined &&
|
||||
val !== null &&
|
||||
!(
|
||||
(Array.isArray(val) && val.length === 0) ||
|
||||
(typeof val === 'string' && val === '')
|
||||
)
|
||||
) {
|
||||
body[key] = val;
|
||||
}
|
||||
}
|
||||
|
||||
const resp = (await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.POST,
|
||||
body,
|
||||
})) as { data: any };
|
||||
|
||||
return { lead: resp.data };
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,26 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import { leadDeleteDropdownProp } from '../common/props';
|
||||
|
||||
export const deleteLeadAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'delete-lead',
|
||||
displayName: 'Delete Lead',
|
||||
description: 'Delete a specific lead record by ID.',
|
||||
props: {
|
||||
lead_id: leadDeleteDropdownProp,
|
||||
},
|
||||
async run(context) {
|
||||
const { lead_id } = context.propsValue;
|
||||
|
||||
await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: `/leads/${lead_id}`,
|
||||
method: HttpMethod.DELETE,
|
||||
});
|
||||
|
||||
return { success: true };
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,134 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpError, HttpMethod, QueryParams } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import {
|
||||
domainProp,
|
||||
companyProp,
|
||||
firstNameProp,
|
||||
lastNameProp,
|
||||
fullNameProp,
|
||||
maxDurationProp,
|
||||
} from '../common/props';
|
||||
|
||||
export const findEmailAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'find-email',
|
||||
displayName: 'Find Email',
|
||||
description: 'Retrieve/propose the most likely email for a person at a domain.',
|
||||
props: {
|
||||
domain: domainProp,
|
||||
company: companyProp,
|
||||
first_name: firstNameProp,
|
||||
last_name: lastNameProp,
|
||||
full_name: fullNameProp,
|
||||
max_duration: maxDurationProp,
|
||||
},
|
||||
async run(context) {
|
||||
const {
|
||||
domain,
|
||||
company,
|
||||
first_name,
|
||||
last_name,
|
||||
full_name,
|
||||
max_duration,
|
||||
} = context.propsValue as {
|
||||
domain?: string;
|
||||
company?: string;
|
||||
first_name?: string;
|
||||
last_name?: string;
|
||||
full_name?: string;
|
||||
max_duration?: number;
|
||||
};
|
||||
|
||||
if (!domain && !company) {
|
||||
throw new Error('You must provide at least a domain or a company name.');
|
||||
}
|
||||
if (
|
||||
!((first_name && last_name) || full_name)
|
||||
) {
|
||||
throw new Error(
|
||||
'You must provide both first_name and last_name, or a full_name.'
|
||||
);
|
||||
}
|
||||
if (max_duration !== undefined && (max_duration < 3 || max_duration > 20)) {
|
||||
throw new Error('max_duration must be between 3 and 20 seconds.');
|
||||
}
|
||||
|
||||
const qparams: QueryParams = {};
|
||||
if (domain) qparams['domain'] = domain;
|
||||
else if (company) qparams['company'] = company;
|
||||
if (first_name) qparams['first_name'] = first_name;
|
||||
if (last_name) qparams['last_name'] = last_name;
|
||||
if (full_name) qparams['full_name'] = full_name;
|
||||
if (max_duration !== undefined) qparams['max_duration'] = String(max_duration);
|
||||
|
||||
let responseBody: any;
|
||||
try {
|
||||
responseBody = await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: '/email-finder',
|
||||
method: HttpMethod.GET,
|
||||
qparams,
|
||||
});
|
||||
} catch (err) {
|
||||
const httpErr = err as HttpError;
|
||||
const status = httpErr.response?.status;
|
||||
const errId = (httpErr.response?.body as any)?.errors?.[0]?.id;
|
||||
const details = (httpErr.response?.body as any)?.errors?.[0]?.details ?? '';
|
||||
|
||||
if (status === 400) {
|
||||
switch (errId) {
|
||||
case 'wrong_params':
|
||||
throw new Error(
|
||||
'Missing required parameter—please supply domain or company, and first_name+last_name or full_name.'
|
||||
);
|
||||
case 'invalid_first_name':
|
||||
throw new Error('The supplied first_name is invalid.');
|
||||
case 'invalid_last_name':
|
||||
throw new Error('The supplied last_name is invalid.');
|
||||
case 'invalid_full_name':
|
||||
throw new Error('The supplied full_name is invalid.');
|
||||
case 'invalid_domain':
|
||||
throw new Error(
|
||||
'The supplied domain is invalid or lacks MX records.'
|
||||
);
|
||||
case 'invalid_max_duration':
|
||||
throw new Error(
|
||||
'The supplied max_duration is invalid (must be 3–20 seconds).'
|
||||
);
|
||||
}
|
||||
}
|
||||
if (status === 429) {
|
||||
throw new Error(
|
||||
'Rate limit exceeded (15 requests/sec, 500 req/min). Please retry shortly.'
|
||||
);
|
||||
}
|
||||
if (status === 451 && errId === 'claimed_email') {
|
||||
throw new Error(
|
||||
'This email address cannot be processed because its owner requested to stop processing.'
|
||||
);
|
||||
}
|
||||
throw new Error(
|
||||
`Hunter Email Finder error: ${details} (status ${status}).`
|
||||
);
|
||||
}
|
||||
|
||||
const d = responseBody.data;
|
||||
return {
|
||||
first_name: d.first_name,
|
||||
last_name: d.last_name,
|
||||
email: d.email,
|
||||
score: d.score,
|
||||
domain: d.domain,
|
||||
accept_all: d.accept_all,
|
||||
position: d.position,
|
||||
twitter: d.twitter,
|
||||
linkedin_url: d.linkedin_url,
|
||||
phone_number: d.phone_number,
|
||||
company: d.company,
|
||||
sources: d.sources,
|
||||
verification: d.verification,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,60 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import { leadSelectDropdownProp } from '../common/props';
|
||||
|
||||
export const getLeadAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'get-lead',
|
||||
displayName: 'Get Lead',
|
||||
description: 'Retrieve details of a specific lead.',
|
||||
props: {
|
||||
lead_id: leadSelectDropdownProp,
|
||||
},
|
||||
async run(context) {
|
||||
const { lead_id } = context.propsValue;
|
||||
|
||||
const resp = (await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: `/leads/${lead_id}`,
|
||||
method: HttpMethod.GET,
|
||||
})) as {
|
||||
data: {
|
||||
id: number;
|
||||
email: string;
|
||||
first_name: string | null;
|
||||
last_name: string | null;
|
||||
position: string | null;
|
||||
company: string;
|
||||
company_industry: string | null;
|
||||
company_size: string | null;
|
||||
confidence_score: number | null;
|
||||
website: string;
|
||||
country_code: string | null;
|
||||
source: string | null;
|
||||
linkedin_url: string | null;
|
||||
phone_number: string | null;
|
||||
twitter: string | null;
|
||||
sync_status: string | null;
|
||||
notes: string | null;
|
||||
sending_status: string | null;
|
||||
last_activity_at: string | null;
|
||||
last_contacted_at: string | null;
|
||||
verification: {
|
||||
date: string | null;
|
||||
status: string | null;
|
||||
};
|
||||
leads_list: {
|
||||
id: number;
|
||||
name: string;
|
||||
leads_count: number;
|
||||
};
|
||||
created_at: string;
|
||||
};
|
||||
meta?: any;
|
||||
};
|
||||
|
||||
return { lead: resp.data };
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,109 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import {
|
||||
leadsListDropdownProp,
|
||||
emailFilterProp,
|
||||
firstNameFilterProp,
|
||||
lastNameFilterProp,
|
||||
positionFilterProp,
|
||||
companyFilterProp,
|
||||
industryFilterProp,
|
||||
websiteFilterProp,
|
||||
countryCodeFilterProp,
|
||||
companySizeFilterProp,
|
||||
sourceFilterProp,
|
||||
twitterFilterProp,
|
||||
linkedinUrlFilterProp,
|
||||
phoneNumberFilterProp,
|
||||
syncStatusProp,
|
||||
sendingStatusProp,
|
||||
verificationStatusProp,
|
||||
dateFilterProp as lastActivityAtProp,
|
||||
dateFilterProp as lastContactedAtProp,
|
||||
customAttributesFilterProp,
|
||||
queryProp,
|
||||
limitProp,
|
||||
offsetProp,
|
||||
} from '../common/props';
|
||||
|
||||
export const searchLeadsAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'search-leads',
|
||||
displayName: 'Search Leads',
|
||||
description: 'List and filter leads in the account.',
|
||||
props: {
|
||||
leads_list_id: leadsListDropdownProp,
|
||||
email: emailFilterProp,
|
||||
first_name: firstNameFilterProp,
|
||||
last_name: lastNameFilterProp,
|
||||
position: positionFilterProp,
|
||||
company: companyFilterProp,
|
||||
industry: industryFilterProp,
|
||||
website: websiteFilterProp,
|
||||
country_code: countryCodeFilterProp,
|
||||
company_size: companySizeFilterProp,
|
||||
source: sourceFilterProp,
|
||||
twitter: twitterFilterProp,
|
||||
linkedin_url: linkedinUrlFilterProp,
|
||||
phone_number: phoneNumberFilterProp,
|
||||
sync_status: syncStatusProp,
|
||||
sending_status: sendingStatusProp,
|
||||
verification_status: verificationStatusProp,
|
||||
last_activity_at: lastActivityAtProp,
|
||||
last_contacted_at: lastContactedAtProp,
|
||||
custom_attributes: customAttributesFilterProp,
|
||||
query: queryProp,
|
||||
limit: limitProp,
|
||||
offset: offsetProp,
|
||||
},
|
||||
async run(context) {
|
||||
const pv = context.propsValue;
|
||||
const q: QueryParams = {};
|
||||
|
||||
if (pv.limit !== undefined) q['limit'] = String(pv.limit);
|
||||
if (pv.offset !== undefined) q['offset'] = String(pv.offset);
|
||||
|
||||
[
|
||||
'email', 'first_name', 'last_name', 'position', 'company',
|
||||
'industry', 'website', 'country_code', 'company_size', 'source',
|
||||
'twitter', 'linkedin_url', 'phone_number', 'sync_status', 'query'
|
||||
].forEach((key) => {
|
||||
if ((pv as any)[key]) q[key] = (pv as any)[key] as string;
|
||||
});
|
||||
|
||||
if (pv.sending_status?.length) q['sending_status[]'] = pv.sending_status.join(',');
|
||||
if (pv.verification_status?.length) q['verification_status[]'] = pv.verification_status.join(',');
|
||||
|
||||
if (pv.last_activity_at) q['last_activity_at'] = pv.last_activity_at;
|
||||
if (pv.last_contacted_at) q['last_contacted_at'] = pv.last_contacted_at;
|
||||
|
||||
if (pv.leads_list_id !== undefined) q['leads_list_id'] = String(pv.leads_list_id);
|
||||
|
||||
if (pv.custom_attributes) {
|
||||
const ca = pv.custom_attributes as Record<string, string>;
|
||||
Object.entries(ca).forEach(([slug, val]) => {
|
||||
q[`custom_attributes[${slug}]`] = val;
|
||||
});
|
||||
}
|
||||
|
||||
const resp = (await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: q,
|
||||
})) as {
|
||||
data: { leads: Array<any> };
|
||||
meta: { count: number; total: number; params: { limit: number; offset: number } };
|
||||
};
|
||||
|
||||
return {
|
||||
leads: resp.data.leads,
|
||||
count: resp.meta.count,
|
||||
total: resp.meta.total,
|
||||
limit: resp.meta.params.limit,
|
||||
offset: resp.meta.params.offset,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import {
|
||||
leadSelectDropdownProp,
|
||||
emailProp,
|
||||
firstNameProp,
|
||||
lastNameProp,
|
||||
positionProp,
|
||||
companyLeadProp,
|
||||
companyIndustryProp,
|
||||
companySizeProp,
|
||||
confidenceScoreProp,
|
||||
websiteProp,
|
||||
countryCodeProp,
|
||||
linkedinUrlProp,
|
||||
phoneNumberProp,
|
||||
twitterProp,
|
||||
notesProp,
|
||||
sourceProp,
|
||||
leadsListDropdownProp,
|
||||
leadsListIdsProp,
|
||||
customAttributesProp,
|
||||
} from '../common/props';
|
||||
|
||||
export const updateLeadAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'update-lead',
|
||||
displayName: 'Update Lead',
|
||||
description: 'Modify existing lead data.',
|
||||
props: {
|
||||
lead_id: leadSelectDropdownProp,
|
||||
email: emailProp,
|
||||
first_name: firstNameProp,
|
||||
last_name: lastNameProp,
|
||||
position: positionProp,
|
||||
company: companyLeadProp,
|
||||
company_industry: companyIndustryProp,
|
||||
company_size: companySizeProp,
|
||||
confidence_score: confidenceScoreProp,
|
||||
website: websiteProp,
|
||||
country_code: countryCodeProp,
|
||||
linkedin_url: linkedinUrlProp,
|
||||
phone_number: phoneNumberProp,
|
||||
twitter: twitterProp,
|
||||
notes: notesProp,
|
||||
source: sourceProp,
|
||||
leads_list_id: leadsListDropdownProp,
|
||||
leads_list_ids: leadsListIdsProp,
|
||||
custom_attributes: customAttributesProp,
|
||||
},
|
||||
async run(context) {
|
||||
const props = context.propsValue;
|
||||
const leadId = props.lead_id;
|
||||
|
||||
const body: Record<string, unknown> = {};
|
||||
for (const [key, value] of Object.entries(props)) {
|
||||
if (key === 'lead_id') continue;
|
||||
if (
|
||||
value !== undefined &&
|
||||
value !== null &&
|
||||
!(
|
||||
(Array.isArray(value) && value.length === 0) ||
|
||||
(typeof value === 'string' && value === '')
|
||||
)
|
||||
) {
|
||||
body[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.keys(body).length === 0) {
|
||||
throw new Error('You must specify at least one field to update.');
|
||||
}
|
||||
|
||||
await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: `/leads/${leadId}`,
|
||||
method: HttpMethod.PUT,
|
||||
body,
|
||||
});
|
||||
|
||||
return { success: true };
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,85 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { HttpError, HttpMethod, QueryParams } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { hunterAuth } from '../../index';
|
||||
import { emailProp } from '../common/props';
|
||||
|
||||
export const verifyEmailAction = createAction({
|
||||
auth: hunterAuth,
|
||||
name: 'verify-email',
|
||||
displayName: 'Verify Email',
|
||||
description: 'Check email deliverability and validation status.',
|
||||
props: {
|
||||
email: emailProp,
|
||||
},
|
||||
async run(context) {
|
||||
const { email } = context.propsValue;
|
||||
|
||||
const qparams: QueryParams = { email };
|
||||
|
||||
let respBody: any;
|
||||
try {
|
||||
respBody = await hunterApiCall({
|
||||
apiKey: context.auth,
|
||||
endpoint: '/email-verifier',
|
||||
method: HttpMethod.GET,
|
||||
qparams,
|
||||
});
|
||||
} catch (err) {
|
||||
const httpErr = err as HttpError;
|
||||
const status = httpErr.response?.status;
|
||||
const errId = (httpErr.response?.body as any)?.errors?.[0]?.id;
|
||||
|
||||
if (status === 202) {
|
||||
return { status: 'in_progress' as const };
|
||||
}
|
||||
if (status === 222) {
|
||||
throw new Error(
|
||||
'Verification failed due to an unexpected SMTP server error. Please try again later.'
|
||||
);
|
||||
}
|
||||
if (status === 400) {
|
||||
switch (errId) {
|
||||
case 'wrong_params':
|
||||
throw new Error('Missing required parameter: email.');
|
||||
case 'invalid_email':
|
||||
throw new Error('The supplied email is invalid.');
|
||||
}
|
||||
}
|
||||
if (status === 429) {
|
||||
throw new Error(
|
||||
'Rate limit exceeded (10 requests/sec, 300 req/min). Please wait and retry shortly.'
|
||||
);
|
||||
}
|
||||
if (status === 451 && errId === 'claimed_email') {
|
||||
throw new Error(
|
||||
'Cannot verify: the email owner requested no processing of their data.'
|
||||
);
|
||||
}
|
||||
const detail = (httpErr.response?.body as any)?.errors?.[0]?.details ?? '';
|
||||
throw new Error(`Hunter Email Verifier error: ${detail} (status ${status}).`);
|
||||
}
|
||||
|
||||
const data = respBody.data;
|
||||
if (!data) {
|
||||
return { status: 'in_progress' as const };
|
||||
}
|
||||
|
||||
return {
|
||||
status: data.status,
|
||||
result: data.result,
|
||||
score: data.score,
|
||||
email: data.email,
|
||||
regexp: data.regexp,
|
||||
gibberish: data.gibberish,
|
||||
disposable: data.disposable,
|
||||
webmail: data.webmail,
|
||||
mx_records: data.mx_records,
|
||||
smtp_server: data.smtp_server,
|
||||
smtp_check: data.smtp_check,
|
||||
accept_all: data.accept_all,
|
||||
block: data.block,
|
||||
sources: data.sources,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,37 @@
|
||||
import {
|
||||
HttpMethod,
|
||||
QueryParams,
|
||||
httpClient,
|
||||
HttpRequest,
|
||||
} from '@activepieces/pieces-common';
|
||||
import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
|
||||
import { hunterAuth } from '../..';
|
||||
|
||||
export async function hunterApiCall({
|
||||
apiKey,
|
||||
endpoint,
|
||||
method,
|
||||
qparams,
|
||||
body,
|
||||
}: {
|
||||
apiKey: AppConnectionValueForAuthProperty<typeof hunterAuth>;
|
||||
endpoint: string;
|
||||
method: HttpMethod;
|
||||
qparams?: QueryParams;
|
||||
body?: any;
|
||||
}) {
|
||||
const queryParams: QueryParams = {
|
||||
...(qparams ?? {}),
|
||||
api_key: apiKey.secret_text,
|
||||
};
|
||||
|
||||
const request: HttpRequest = {
|
||||
url: `https://api.hunter.io/v2${endpoint}`,
|
||||
method,
|
||||
queryParams,
|
||||
body,
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest(request);
|
||||
return response.body;
|
||||
}
|
||||
@@ -0,0 +1,473 @@
|
||||
import { Property } from '@activepieces/pieces-framework';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from './index';
|
||||
import { hunterAuth } from '../..';
|
||||
|
||||
export const campaignIdProp = Property.Dropdown({
|
||||
displayName: 'Campaign',
|
||||
required: true,
|
||||
refreshers: [],
|
||||
auth: hunterAuth,
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your Hunter account first.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/campaigns',
|
||||
method: HttpMethod.GET,
|
||||
});
|
||||
const campaigns = (resp as any).data?.campaigns as Array<{
|
||||
id: number;
|
||||
name: string;
|
||||
}>;
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: campaigns.map((c) => ({
|
||||
label: c.name,
|
||||
value: c.id,
|
||||
})),
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
export const emailsProp = Property.Array({
|
||||
displayName: 'Emails',
|
||||
required: false,
|
||||
description: 'Email addresses to add as recipients. At least one email or lead ID is required.',
|
||||
defaultValue: [],
|
||||
});
|
||||
|
||||
export const leadIdsProp = Property.Array({
|
||||
displayName: 'Lead IDs',
|
||||
required: false,
|
||||
description: 'Existing lead IDs from your Hunter account to add as recipients.',
|
||||
defaultValue: [],
|
||||
});
|
||||
|
||||
export const leadIdsDropdownProp = Property.MultiSelectDropdown({
|
||||
displayName: 'Leads',
|
||||
required: false,
|
||||
auth: hunterAuth,
|
||||
description: 'Select leads from your Hunter account to add as recipients.',
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your Hunter account first.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: { limit: '100' }
|
||||
});
|
||||
|
||||
const leads = (resp as any).data?.leads || [];
|
||||
return {
|
||||
disabled: false,
|
||||
options: leads.map((lead: any) => ({
|
||||
label: `${lead.first_name || ''} ${lead.last_name || ''} (${lead.email})`.trim(),
|
||||
value: lead.id
|
||||
}))
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export const domainProp = Property.ShortText({
|
||||
displayName: 'Domain',
|
||||
required: false,
|
||||
description:
|
||||
'Domain name to count addresses for (e.g., "stripe.com"). At least one of domain or company is required.',
|
||||
});
|
||||
|
||||
export const companyProp = Property.ShortText({
|
||||
displayName: 'Company',
|
||||
required: false,
|
||||
description:
|
||||
'Company name to count addresses for (e.g., "Stripe"). At least one of domain or company is required.',
|
||||
});
|
||||
|
||||
export const companyLeadProp = Property.ShortText({
|
||||
displayName: 'Company',
|
||||
required: false,
|
||||
description: 'Name of the company the lead is working in.',
|
||||
});
|
||||
|
||||
export const emailTypeProp = Property.Dropdown({
|
||||
auth: hunterAuth,
|
||||
displayName: 'Type',
|
||||
required: false,
|
||||
description:
|
||||
'Count only "personal" or "generic" email addresses. Leave blank for both.',
|
||||
options: async () => ({
|
||||
disabled: false,
|
||||
|
||||
options: [
|
||||
{ label: 'Personal', value: 'personal' },
|
||||
{ label: 'Generic', value: 'generic' },
|
||||
],
|
||||
}),
|
||||
refreshers: []
|
||||
});
|
||||
|
||||
export const emailProp = Property.ShortText({
|
||||
displayName: 'Email',
|
||||
required: true,
|
||||
description: 'The email address of the lead.',
|
||||
});
|
||||
|
||||
export const firstNameProp = Property.ShortText({
|
||||
displayName: 'First Name',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const lastNameProp = Property.ShortText({
|
||||
displayName: 'Last Name',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const positionProp = Property.ShortText({
|
||||
displayName: 'Position',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const companyIndustryProp = Property.ShortText({
|
||||
displayName: 'Company Industry',
|
||||
required: false,
|
||||
description:
|
||||
'Sector of the company (e.g. Finance, Technology, Education, etc.).',
|
||||
});
|
||||
|
||||
export const companySizeProp = Property.ShortText({
|
||||
displayName: 'Company Size',
|
||||
required: false,
|
||||
description: 'Size of the company (e.g. 1-10, 201-500 employees).',
|
||||
});
|
||||
|
||||
export const confidenceScoreProp = Property.Number({
|
||||
displayName: 'Confidence Score',
|
||||
required: false,
|
||||
description:
|
||||
'Probability the email is correct (0–100).',
|
||||
});
|
||||
|
||||
export const websiteProp = Property.ShortText({
|
||||
displayName: 'Website',
|
||||
required: false,
|
||||
description: 'Domain name of the company.',
|
||||
});
|
||||
|
||||
export const countryCodeProp = Property.ShortText({
|
||||
displayName: 'Country Code',
|
||||
required: false,
|
||||
description: 'ISO 3166-1 alpha-2 country code.',
|
||||
});
|
||||
|
||||
export const linkedinUrlProp = Property.ShortText({
|
||||
displayName: 'LinkedIn URL',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const phoneNumberProp = Property.ShortText({
|
||||
displayName: 'Phone Number',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const twitterProp = Property.ShortText({
|
||||
displayName: 'Twitter Handle',
|
||||
required: false,
|
||||
});
|
||||
|
||||
export const notesProp = Property.ShortText({
|
||||
displayName: 'Notes',
|
||||
required: false,
|
||||
description: 'Personal notes about the lead.',
|
||||
});
|
||||
|
||||
export const sourceProp = Property.ShortText({
|
||||
displayName: 'Source',
|
||||
required: false,
|
||||
description: 'Origin where the lead was found.',
|
||||
});
|
||||
|
||||
export const leadsListIdProp = Property.Number({
|
||||
displayName: 'Leads List ID',
|
||||
required: false,
|
||||
description:
|
||||
'ID of the list to add the lead to; defaults to your most recent list.',
|
||||
});
|
||||
|
||||
export const leadsListIdsProp = Property.Array({
|
||||
displayName: 'Leads List IDs',
|
||||
required: false,
|
||||
description:
|
||||
'Array of list IDs to add the lead to; defaults to your most recent list.',
|
||||
defaultValue: [],
|
||||
});
|
||||
|
||||
export const leadsListDropdownProp = Property.Dropdown({
|
||||
auth: hunterAuth,
|
||||
displayName: 'Leads List',
|
||||
required: false,
|
||||
description: 'Select which list to add the lead to; defaults to your most recent list.',
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your Hunter account first.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: { limit: '100' }
|
||||
});
|
||||
|
||||
const leads = (resp as any).data?.leads || [];
|
||||
const uniqueLists = new Map();
|
||||
|
||||
leads.forEach((lead: any) => {
|
||||
if (lead.leads_list) {
|
||||
uniqueLists.set(lead.leads_list.id, lead.leads_list);
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: Array.from(uniqueLists.values()).map((list: any) => ({
|
||||
label: `${list.name} (${list.leads_count} leads)`,
|
||||
value: list.id
|
||||
}))
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export const customAttributesProp = Property.Json({
|
||||
displayName: 'Custom Attributes',
|
||||
required: false,
|
||||
description:
|
||||
'Key/value map of any custom attributes, e.g. { "customer_id": "cus-1234abcd" }.',
|
||||
});
|
||||
|
||||
export const leadIdProp = Property.Number({
|
||||
displayName: 'Lead ID',
|
||||
required: true,
|
||||
description: 'Identifier of the lead to delete.',
|
||||
});
|
||||
|
||||
export const leadSelectDropdownProp = Property.Dropdown({
|
||||
auth: hunterAuth,
|
||||
displayName: 'Lead',
|
||||
required: true,
|
||||
description: 'Select a lead from your Hunter account.',
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your Hunter account first.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: { limit: '100' }
|
||||
});
|
||||
|
||||
const leads = (resp as any).data?.leads || [];
|
||||
return {
|
||||
disabled: false,
|
||||
options: leads.map((lead: any) => ({
|
||||
label: `${lead.first_name || ''} ${lead.last_name || ''} (${lead.email})`.trim(),
|
||||
value: lead.id
|
||||
}))
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export const leadDeleteDropdownProp = Property.Dropdown({
|
||||
auth: hunterAuth,
|
||||
displayName: 'Lead to Delete',
|
||||
required: true,
|
||||
description: 'Select the lead to delete from your Hunter account.',
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect your Hunter account first.',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const resp = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: { limit: '100' }
|
||||
});
|
||||
|
||||
const leads = (resp as any).data?.leads || [];
|
||||
return {
|
||||
disabled: false,
|
||||
options: leads.map((lead: any) => ({
|
||||
label: `${lead.first_name || ''} ${lead.last_name || ''} (${lead.email})`.trim(),
|
||||
value: lead.id
|
||||
}))
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export const fullNameProp = Property.ShortText({
|
||||
displayName: 'Full Name',
|
||||
required: false,
|
||||
description:
|
||||
"The person's full name (if you can't supply both first and last name).",
|
||||
});
|
||||
|
||||
export const maxDurationProp = Property.Number({
|
||||
displayName: 'Max Duration (seconds)',
|
||||
required: false,
|
||||
description:
|
||||
'How long Hunter should spend refining results (3-20, default 10).',
|
||||
});
|
||||
|
||||
export const filterProp = (name: string, description: string) =>
|
||||
Property.ShortText({ displayName: name, required: false, description });
|
||||
|
||||
export const emailFilterProp = filterProp(
|
||||
'Email',
|
||||
'Filter by email (use "*" for any, "~" for empty, or substring).'
|
||||
);
|
||||
export const firstNameFilterProp = filterProp(
|
||||
'First Name',
|
||||
'Filter by first name.'
|
||||
);
|
||||
export const lastNameFilterProp = filterProp(
|
||||
'Last Name',
|
||||
'Filter by last name.'
|
||||
);
|
||||
export const positionFilterProp = filterProp(
|
||||
'Position',
|
||||
'Filter by position.'
|
||||
);
|
||||
export const companyFilterProp = filterProp(
|
||||
'Company',
|
||||
'Filter by company.'
|
||||
);
|
||||
export const industryFilterProp = filterProp(
|
||||
'Industry',
|
||||
'Filter by industry.'
|
||||
);
|
||||
export const websiteFilterProp = filterProp(
|
||||
'Website',
|
||||
'Filter by website.'
|
||||
);
|
||||
export const countryCodeFilterProp = filterProp(
|
||||
'Country Code',
|
||||
'Filter by ISO 3166‑1 alpha‑2 country code.'
|
||||
);
|
||||
export const companySizeFilterProp = filterProp(
|
||||
'Company Size',
|
||||
'Filter by company size.'
|
||||
);
|
||||
export const sourceFilterProp = filterProp(
|
||||
'Source',
|
||||
'Filter by source.'
|
||||
);
|
||||
export const twitterFilterProp = filterProp(
|
||||
'Twitter Handle',
|
||||
'Filter by Twitter handle.'
|
||||
);
|
||||
export const linkedinUrlFilterProp = filterProp(
|
||||
'LinkedIn URL',
|
||||
'Filter by LinkedIn URL.'
|
||||
);
|
||||
export const phoneNumberFilterProp = filterProp(
|
||||
'Phone Number',
|
||||
'Filter by phone number.'
|
||||
);
|
||||
|
||||
|
||||
export const syncStatusProp = Property.Dropdown({
|
||||
displayName: 'Sync Status',
|
||||
required: false,
|
||||
description: 'Filter by synchronization status.',
|
||||
auth: hunterAuth,
|
||||
options: async () => ({
|
||||
disabled: false,
|
||||
options: [
|
||||
{ label: 'Pending', value: 'pending' },
|
||||
{ label: 'Error', value: 'error' },
|
||||
{ label: 'Success', value: 'success' },
|
||||
],
|
||||
}),
|
||||
refreshers: []
|
||||
});
|
||||
|
||||
export const arrayStringProp = (name: string, description: string) =>
|
||||
Property.Array({
|
||||
displayName: name,
|
||||
required: false,
|
||||
description,
|
||||
defaultValue: [],
|
||||
});
|
||||
|
||||
|
||||
export const sendingStatusProp = arrayStringProp(
|
||||
'Sending Status(es)',
|
||||
'Filter by sending status(es): clicked, opened, sent, pending, error, bounced, unsubscribed, replied, or "~" (unset).'
|
||||
);
|
||||
export const verificationStatusProp = arrayStringProp(
|
||||
'Verification Status(es)',
|
||||
'Filter by verification status(es): accept_all, disposable, invalid, unknown, valid, webmail, or "pending".'
|
||||
);
|
||||
|
||||
export const dateFilterProp = filterProp(
|
||||
'Activity/Contact Date',
|
||||
'Use "*" for any value or "~" for unset.'
|
||||
);
|
||||
|
||||
export const customAttributesFilterProp = Property.Json({
|
||||
displayName: 'Custom Attributes Filter',
|
||||
required: false,
|
||||
description:
|
||||
'JSON object of slug→filterValue (use "*", "~", or substrings).',
|
||||
});
|
||||
|
||||
export const queryProp = Property.ShortText({
|
||||
displayName: 'Query',
|
||||
required: false,
|
||||
description:
|
||||
'Search first_name, last_name or email containing this substring.',
|
||||
});
|
||||
|
||||
export const limitProp = Property.Number({
|
||||
displayName: 'Limit',
|
||||
required: false,
|
||||
description: 'Max leads to return (1-1000). Defaults to 20.',
|
||||
});
|
||||
|
||||
export const offsetProp = Property.Number({
|
||||
displayName: 'Offset',
|
||||
required: false,
|
||||
description: 'Number of leads to skip (0-100000). Defaults to 0.',
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
export interface Lead {
|
||||
id: number;
|
||||
email: string;
|
||||
first_name?: string | null;
|
||||
last_name?: string | null;
|
||||
position?: string | null;
|
||||
company?: string | null;
|
||||
company_industry?: string | null;
|
||||
company_size?: string | null;
|
||||
confidence_score?: number | null;
|
||||
website?: string | null;
|
||||
country_code?: string | null;
|
||||
source?: string | null;
|
||||
linkedin_url?: string | null;
|
||||
phone_number?: string | null;
|
||||
twitter?: string | null;
|
||||
sync_status?: string | null;
|
||||
notes?: string | null;
|
||||
sending_status?: string | null;
|
||||
last_activity_at?: string | null;
|
||||
last_contacted_at?: string | null;
|
||||
verification?: {
|
||||
date: string | null;
|
||||
status: string | null;
|
||||
};
|
||||
leads_list?: {
|
||||
id: number;
|
||||
name: string;
|
||||
leads_count: number;
|
||||
};
|
||||
created_at: string;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
import { hunterAuth } from '../../index';
|
||||
import { createTrigger, TriggerStrategy, PiecePropValueSchema, AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
|
||||
import { DedupeStrategy, HttpMethod, Polling, pollingHelper } from '@activepieces/pieces-common';
|
||||
import { hunterApiCall } from '../common';
|
||||
import { Lead } from '../common/types';
|
||||
|
||||
export const newLeadTrigger = createTrigger({
|
||||
auth: hunterAuth,
|
||||
name: 'new-lead',
|
||||
displayName: 'New Lead',
|
||||
description: 'Fires when a new lead is created.',
|
||||
type: TriggerStrategy.POLLING,
|
||||
props: {},
|
||||
async onEnable(context) {
|
||||
await pollingHelper.onEnable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue
|
||||
});
|
||||
},
|
||||
async onDisable(context) {
|
||||
await pollingHelper.onDisable(polling, {
|
||||
auth: context.auth,
|
||||
store: context.store,
|
||||
propsValue: context.propsValue
|
||||
});
|
||||
},
|
||||
async test(context) {
|
||||
return await pollingHelper.test(polling, context);
|
||||
},
|
||||
async run(context) {
|
||||
return await pollingHelper.poll(polling, context);
|
||||
},
|
||||
sampleData: {
|
||||
id: 123,
|
||||
email: 'john.doe@example.com',
|
||||
first_name: 'John',
|
||||
last_name: 'Doe',
|
||||
company: 'Example Inc.',
|
||||
position: 'CEO',
|
||||
created_at: '2025-07-24T12:00:00Z'
|
||||
}
|
||||
});
|
||||
|
||||
const polling: Polling<AppConnectionValueForAuthProperty<typeof hunterAuth>, Record<string, never>> = {
|
||||
strategy: DedupeStrategy.TIMEBASED,
|
||||
async items({ auth }) {
|
||||
const response = await hunterApiCall({
|
||||
apiKey: auth,
|
||||
endpoint: '/leads',
|
||||
method: HttpMethod.GET,
|
||||
qparams: { limit: '100' }
|
||||
});
|
||||
const leads = (response as { data: { leads: Lead[] } }).data?.leads as Lead[];
|
||||
return leads.map((lead) => ({
|
||||
epochMilliSeconds: new Date(lead.created_at).valueOf(),
|
||||
data: lead
|
||||
}));
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"importHelpers": true,
|
||||
"noImplicitOverride": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noPropertyAccessFromIndexSignature": true
|
||||
},
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user