.png)
Lusha Integration Guide
Integrate Lusha with enterprise systems by consuming its REST APIs to search and enrich contact and company data, then orchestrating secure synchronization workflows.
Lusha integration options at a glance
Lusha’s primary integration mechanism is its REST API, which supports prospecting searches, contact enrichment, company enrichment, and structured JSON responses. API requests use an API key, with the exact header and endpoint requirements confirmed against the applicable Lusha documentation and subscription. Martini can invoke these endpoints from workflows, validate and transform responses, apply matching and qualification rules, and deliver approved data to CRM, sales engagement, marketing, or database systems. Webhooks, callbacks, and bulk or asynchronous operations should be treated as feature- and plan-dependent until verified. Where no event or batch capability is available, scheduled workflows can process paginated results with checkpoints and controlled retries.
| Integration point | Supported by Lusha? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | Search Contacts or Companies using prospecting criteria and enrich known contacts or companies. Responses provide structured JSON for downstream synchronization. | Martini can consume Lusha REST endpoints from workflows, supply parameters and authentication, validate responses, transform JSON, and invoke downstream APIs. |
| Authentication | Yes | Lusha API requests use an API key; the current header name and endpoint-specific format should be confirmed before deployment. | Martini stores the key as a secret and applies it through REST request authentication or header configuration without embedding it in workflow definitions. |
| Webhooks / outbound callbacks | Not confirmed | Webhook or callback availability must be verified for the specific Lusha product, event, plan, and API version. Universal change notifications should not be assumed. | If a documented Lusha callback exists, Martini can receive it through an API endpoint or webhook-consuming workflow; otherwise it can use scheduled polling. |
| Bulk / async / batch APIs | Not confirmed | Endpoint-specific batch or asynchronous enrichment capabilities require confirmation against the current API reference and subscription entitlements. | Martini can implement controlled pagination or chunked processing when the available API supports it, subject to usage limits and response semantics. |
| JSON responses | Yes | Prospecting and enrichment endpoints return structured data suitable for contact, company, and CRM synchronization. | Martini parses, validates, maps, and transforms JSON responses into canonical and target-system models. |
| File / attachment APIs | Not confirmed | No general Lusha file or attachment API was confirmed. Any user-interface CSV capability should not be treated as an API integration without documentation. | Martini can process files when an officially supported Lusha file endpoint is confirmed, but the REST API is the recommended basis for this integration. |
| Database access | No | Customer integrations should access Lusha-managed data through its APIs rather than direct database connectivity. | Martini can write retrieved Lusha data to supported SQL databases, but it should not connect directly to Lusha’s managed database. |
| Scheduled synchronization | Limited | Scheduled polling is an integration pattern when applicable event notifications are unavailable or unconfirmed. | Martini scheduler-triggered workflows can retrieve pages, persist checkpoints, apply bounded concurrency, and retry transient failures. |
How Lusha exposes data and business events
Lusha REST APIs
Lusha documents REST APIs for prospecting searches, contact enrichment, company enrichment, and structured JSON responses. These APIs are the primary confirmed mechanism for integrating Lusha with enterprise applications.
Martini implementation pattern
Martini implementation pattern: a workflow receives an enrichment or search request, constructs the Lusha REST call with a secret-managed API key, validates the response, maps contact or company data to a canonical model, applies business rules, and calls the destination application or database.
Implementation sequence
Scheduled Lusha synchronization
Lusha does not provide confirmed universal event notifications for contact or company changes. Scheduled retrieval is therefore a practical pattern for freshness-sensitive workflows when polling is permitted by the relevant API and subscription.
Martini implementation pattern
Martini implementation pattern: a scheduler-triggered workflow retrieves eligible records or prospecting pages, stores a cursor or last-successful checkpoint, processes results in bounded batches, and retries transient failures without creating duplicates.
Implementation sequence
Lusha webhook or callback notifications
Webhook or outbound callback support is not confirmed as a universal Lusha capability. It must be verified for the specific product, plan, event type, and API version before being selected as the trigger.
Martini implementation pattern
Martini implementation pattern: where Lusha documentation confirms a callback, Martini exposes a controlled API endpoint, authenticates and validates the notification, retrieves current Lusha data when necessary, and forwards the normalized result to downstream systems. If no callback is available, the workflow uses scheduled polling instead.
Implementation sequence
Common Lusha integration patterns
Pattern 1: Enrich CRM contacts with Lusha
When to use this pattern
Use this pattern when Salesforce, HubSpot, or Microsoft Dynamics 365 needs additional professional contact data. The flow can be user-triggered, API-triggered, or scheduled and should preserve source provenance while avoiding uncontrolled overwrites.
Integration direction
Example Mapping
| Lusha Field | Canonical Field | Target Field |
|---|---|---|
| person.email | Contact.email | |
| jobTitle | person.jobTitle | Contact.title |
| company.name | organization.name | Contact.accountName |
| company.domain | organization.domain | Contact.accountDomain |
Martini implementation pattern
Martini receives a CRM identifier, validates the available enrichment keys, calls Lusha, normalizes the response, and applies matching, consent, and field-governance rules before updating the CRM. No-match, throttling, quota, and downstream validation failures are classified and retried or routed for review.
Martini capabilities used
- workflows
- API consumption
- data mapping
- business rules
- validation
- error handling
Pattern 2: Enrich accounts from company domains
When to use this pattern
Use this pattern when account teams need Lusha firmographic data for selected CRM Accounts or Organizations. It is appropriate when Lusha is a supplementary source and manually maintained account fields must remain protected.
Integration direction
Example Mapping
| Lusha Field | Canonical Field | Target Field |
|---|---|---|
| domain | organization.domain | Account.website |
| industry | organization.industry | Account.industry |
| employeeRange | organization.employeeRange | Account.employeeRange |
| headquarters | organization.headquarters | Account headquarters |
Martini implementation pattern
A Martini workflow selects eligible accounts, submits domains or names to Lusha, validates company match status, and writes approved attributes with a retrieval timestamp and source marker. Stable identifiers and domain-based matching make reruns safe, while partial responses are handled without erasing existing values.
Martini capabilities used
- scheduled workflows
- API consumption
- data mapping
- conditional routing
- data provenance
- retry handling
Pattern 3: Send qualified prospects to a sales engagement platform
When to use this pattern
Use this pattern when prospecting results from Lusha must be filtered and delivered to Outreach or Salesloft. Qualification should occur before creation so existing customers, duplicates, restricted territories, and contacts without permitted communication data are excluded.
Integration direction
Example Mapping
| Lusha Field | Canonical Field | Target Field |
|---|---|---|
| id | source.prospectId | prospect.externalId |
| firstName | person.firstName | prospect.firstName |
| lastName | person.lastName | prospect.lastName |
| company.domain | organization.domain | prospect.companyDomain |
Martini implementation pattern
A scheduled Martini workflow calls a Lusha prospecting endpoint, follows documented pagination, filters results against CRM and compliance data, and sends qualified prospects to the target API. The workflow stores source identifiers and match keys, uses bounded concurrency, and retries transient failures without recreating accepted prospects.
Martini capabilities used
- scheduler triggers
- API consumption
- pagination orchestration
- data mapping
- business rules
- idempotency
- monitoring
Pattern 4: Run a controlled CRM data-quality pipeline
When to use this pattern
Use this pattern when an organization wants to enrich a selected population of CRM Contacts or Accounts but review or govern changes before they are committed. It supports periodic quality improvement without treating Lusha as the system of record.
Integration direction
Example Mapping
| Lusha Field | Canonical Field | Target Field |
|---|---|---|
| crmId | source.recordId | audit.sourceRecordId |
| retrievedAt | provenance.retrievedAt | audit.retrievedAt |
| sourceIdentifier | provenance.lushaId | audit.lushaId |
| changedFields | changeSet.fields | audit.changedFields |
Martini implementation pattern
Martini retrieves a controlled set of CRM records, enriches them through Lusha, compares returned values with current data, and writes only approved changes. It can persist audit information in a supported database, classify rejected or incomplete responses, and resume from durable checkpoints after interruption.
Martini capabilities used
- scheduled workflows
- API consumption
- comparison logic
- mapping and transformation
- SQL database access
- audit handling
- error handling
Applications commonly integrated with Lusha
Lusha data can be incorporated into sales, marketing, and account-planning workflows through standards-based API orchestration. The following applications represent practical enterprise architecture targets; any native product-level integration should be verified separately.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Salesforce | Enrich Leads, Contacts, and Accounts with Lusha contact and company data for prospecting and account planning. | Lusha → Martini → Salesforce | A Martini workflow receives a Salesforce identifier or prospecting request, calls the relevant Lusha enrichment or search endpoint, normalizes the JSON response, applies duplicate and field-governance rules, and updates Salesforce through its API. Failed enrichments and CRM validation errors are logged for retry or review. |
| HubSpot | Improve contact and company profiles and support lead-generation workflows using Lusha enrichment data. | Lusha → Martini → HubSpot | Martini retrieves identifiers from HubSpot or receives an event from an upstream process, calls Lusha, maps approved contact and company attributes, and writes changes to HubSpot. Source timestamps and Lusha identifiers can be retained for provenance and duplicate prevention. |
| Microsoft Dynamics 365 | Enrich Leads and Accounts used by sales teams and account-based programs. | Lusha → Martini → Microsoft Dynamics 365 | A scheduled or API-triggered Martini workflow selects eligible Dynamics records, submits company or contact identifiers to Lusha, validates returned fields, and updates only approved attributes. Business rules can prevent overwriting manually curated values. |
| Outreach | Send qualified Lusha prospects to sales sequences after territory, consent, and deduplication checks. | Lusha → Martini → Outreach | Martini runs a controlled Lusha prospecting search, excludes existing customers and previously processed prospects, transforms eligible Contacts, and submits them to Outreach through its API or an approved CRM-mediated flow. Durable match keys make reruns safe. |
| Salesloft | Provide prospect and company information to sales engagement workflows. | Lusha → Martini → Salesloft | Martini orchestrates prospect searches or enrichment requests, applies qualification and compliance rules, maps Lusha data to Salesloft fields, and records submission outcomes. Rate-limit responses are retried with bounded backoff. |
| Marketo | Use enriched contact and company information for segmentation and lead qualification. | Lusha → Martini → Marketo | A Martini workflow enriches selected contacts or companies, validates communication and territory fields, and sends approved updates to Marketo. The workflow preserves Lusha retrieval timestamps and avoids replacing fields that are governed by other sources. |
| Pipedrive | Enrich People and Organizations used by sales teams with contact and company intelligence. | Lusha → Martini → Pipedrive | Martini accepts a Pipedrive person or organization identifier, calls the appropriate Lusha endpoint, transforms the response, performs a stable match, and updates Pipedrive. No-match, quota, and downstream validation outcomes are separated for operational handling. |
How to build a Lusha integration in Martini
Objective
Configure secure access to Lusha and the downstream applications without exposing API keys or sensitive contact data.
Instructions in Martini
- Confirm the current Lusha API-key header and endpoint requirements
- Store the Lusha key in Martini Secrets Management
- Configure downstream API authentication separately
- Restrict secret access through environment authorization
Objective
Select the execution model that matches the business process and Lusha capability being used.
Instructions in Martini
- Use an API-triggered workflow for on-demand enrichment
- Use a scheduler for polling and periodic prospecting
- Use a webhook trigger only when the applicable Lusha callback is confirmed
- Define a durable correlation or source identifier
Objective
Call the appropriate Lusha REST endpoint and safely handle search, enrichment, pagination, and match outcomes.
Instructions in Martini
- Validate email, name, domain, or prospecting criteria
- Invoke the documented Lusha REST endpoint
- Read endpoint-specific pagination metadata
- Classify no-match, throttling, quota, and authorization responses
Objective
Coordinate Lusha retrieval, validation, target updates, checkpoints, and exception routes in a maintainable Martini workflow.
Instructions in Martini
- Separate retrieval from transformation and delivery stages
- Persist a page cursor or last-successful checkpoint
- Use bounded processing rather than unbounded parallel requests
- Route permanent failures and review cases separately
Objective
Transform Lusha Contacts, Companies, and enrichment results into a canonical model and target-system schema.
Instructions in Martini
- Parse the returned JSON response
- Normalize names, domains, job fields, and company associations
- Handle optional, null, and plan-dependent fields defensively
- Retain Lusha identifiers, source, and retrieval timestamps
Objective
Ensure only eligible and governed data reaches CRM, sales, marketing, or database targets.
Instructions in Martini
- Match on stable Lusha identifiers where available
- Use normalized email, name, and domain as fallback matching inputs
- Prevent overwriting manually curated fields without approval
- Apply territory, consent, suppression, and customer-exclusion rules
Common Lusha data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Contacts | Individual professional contacts with identity, job, company association, location, and available contact details. | Salesforce, HubSpot, Microsoft Dynamics 365, Outreach, Salesloft, Marketo, Pipedrive | Martini validates identifiers, normalizes contact and job fields, applies privacy and duplicate rules, and maps approved values to the target schema. |
| Companies | Organizations with firmographic attributes such as name, industry, size, location, domain, and revenue-related data where available. | Salesforce, HubSpot, Microsoft Dynamics 365, Marketo, Pipedrive | Martini enriches accounts or organizations using domains or names, preserves source metadata and retrieval timestamps, and applies field overwrite policies. |
| Contact enrichment results | Data returned when a known person is enriched using identifiers such as email, name, company, or LinkedIn-related information. | Salesforce Contacts and Leads, HubSpot Contacts, Microsoft Dynamics 365 Leads, Marketo | Martini validates match status and optional fields, maps the result to a canonical contact model, and routes no-match or quota outcomes separately. |
| Company enrichment results | Data returned when a company is enriched using a domain or company name. | Salesforce Accounts, HubSpot Companies, Microsoft Dynamics 365 Accounts, Pipedrive Organizations | Martini normalizes firmographic fields, retains the source identifier and timestamp, and writes only fields approved by business rules. |
| Prospecting search results | Collections of Contacts or Companies returned from Lusha prospecting criteria. | Salesforce, HubSpot, Outreach, Salesloft, Marketo, Pipedrive | Martini processes pagination, filters territory and compliance criteria, deduplicates results, and delivers qualified prospects to downstream APIs. |
| Intent or buying-signal data | Potential sales-intelligence signals where included in the customer’s Lusha product, plan, and API version. | CRM, sales engagement, or marketing applications | Martini should process this object only after endpoint and schema availability are confirmed, using defensive mapping and explicit source validation. |
Authentication and security considerations
API-key authentication
Lusha API access uses an API key. Confirm the current header name and endpoint-specific authentication format in the applicable Lusha documentation before deployment.
Secret management
Store the key in Martini Secrets Management rather than embedding it in workflows. Restrict access through environment authentication and authorization controls.
Data protection
- Avoid logging API headers or unnecessary contact and company payloads.
- Apply access controls to enriched personal and professional data.
- Review lawful basis, retention, suppression, and regional transfer requirements.
Operational considerations for Lusha integrations
Usage and rate limits
Account for Lusha credits, plan entitlements, endpoint restrictions, and HTTP throttling. Use bounded concurrency, controlled retries, and backoff rather than unbounded enrichment requests.
Pagination and checkpoints
Read the pagination model documented by each endpoint and persist a cursor, page checkpoint, or last successful synchronization timestamp so interrupted jobs can resume safely.
Idempotency and freshness
Use Lusha identifiers where available, or carefully defined combinations of normalized email, name, and company domain. Store retrieval timestamps and avoid overwriting manually curated values without explicit rules.
Schema and error handling
Response fields can vary by endpoint, plan, and API version. Validate optional fields, nulls, match statuses, and enumeration values, and classify authorization, no-match, quota, throttling, service, and downstream validation failures.
Testing and monitoring
Test representative matches, no-match responses, partial data, pagination, throttling, quota exhaustion, and duplicate reruns. Monitor workflow outcomes without exposing API keys or unnecessary personal data.
Why use Martini instead of scripts or point-to-point integrations?
Reusable orchestration
Martini separates Lusha API consumption, transformation, qualification, target delivery, and error handling into maintainable workflows rather than embedding logic in isolated scripts.
Controlled data movement
Centralized mappings and business rules help govern which enriched fields can update CRM, sales, marketing, or database systems while preserving source identifiers and timestamps.
Operational resilience
Scheduled execution, checkpoints, bounded retries, validation, monitoring, and exception routes provide more predictable behavior than point-to-point calls.
API-led access
Martini can expose a controlled internal API façade over enrichment workflows, allowing other applications to consume governed results without receiving Lusha credentials directly.
Frequently asked questions
Lusha can be integrated primarily through its REST APIs for prospecting searches, contact enrichment, and company enrichment. An integration can authenticate with an API key, retrieve structured JSON, transform Contacts and Companies, and deliver approved data to CRM, sales engagement, marketing, or database systems. Webhooks, callbacks, and batch capabilities should be verified for the applicable Lusha plan and API version.
Yes. Martini can consume Lusha REST APIs from workflows, store the API key securely, validate and transform returned JSON, apply matching and business rules, and update downstream applications. No native Martini connector for Lusha is documented in the supplied sources.
No dedicated Lusha connector is required. Martini can integrate with Lusha using its confirmed REST APIs and API-key authentication, with scheduled workflows available when event or callback support is unavailable or unconfirmed.
Lonti does not charge an additional per-connector or per-vendor fee to integrate Lusha. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Lusha, cloud infrastructure, or other third-party systems based on subscription, usage, and deployment model.
The documented and recommended method is the Lusha REST API for prospecting and enrichment. API-key authentication is required, while webhook, callback, and batch or asynchronous capabilities should be confirmed for the specific product, plan, and API version before use. No Lusha GraphQL or SOAP API was confirmed.
Universal webhook support for contact, company, enrichment, or intent changes should not be assumed. If Lusha confirms a callback for a particular feature, Martini can receive it through a secured API endpoint; otherwise, scheduled polling of the relevant REST endpoints is the safer integration pattern.
Martini can run on demand or on a schedule, retrieve Lusha pages or enrichment responses, map them to a canonical model, and update target applications. Stable Lusha identifiers, normalized email and domain matching, pagination checkpoints, retrieval timestamps, and source metadata help prevent duplicates and preserve data provenance.
Martini can classify invalid credentials, invalid parameters, no matches, throttling, quota exhaustion, temporary service errors, and downstream validation failures. Bounded retries with backoff can address transient failures, while stable identifiers or composite matching keys and durable checkpoints make reruns idempotent. Martini can also expose a controlled API façade for internal applications that need governed access to the resulting data.
Related Martini documentation
Workflows
Connect Lusha with Martini
Use Martini to orchestrate Lusha REST API enrichment, prospecting searches, validation, transformation, and governed delivery to enterprise applications.