Ellipse Gradient for Header

Freshsales Integration Guide

Connect Freshsales CRM data to enterprise applications through REST APIs, selected webhook-style notifications, and secure Martini workflows.

Freshsales integration options at a glance

Freshsales provides REST APIs for managing Leads, Contacts, Accounts, Deals, sales activities, Tasks, and related CRM data using JSON requests and responses. Selected Freshsales automation scenarios can send webhook-style outbound notifications, which Martini can receive through an exposed API and use to start workflows. API key authentication is documented, while OAuth 2.0 is available through Freshworks developer applications subject to scopes and tenant configuration. Attachment and note-related operations are available in selected contexts. Martini can orchestrate paginated synchronization, retrieve current resources after notifications, transform CRM data, apply business rules, and deliver results to downstream applications.

Integration pointSupported by Freshsales?Common use casesHow Martini supports it
REST APIsYesCreate, read, update, and delete Freshsales Leads, Contacts, Accounts, Deals, sales activities, Tasks, and other resources exposed by the tenant and API version.Martini can consume Freshsales REST endpoints from workflows, send JSON requests, paginate through responses, map fields, and orchestrate downstream writes.
Webhooks / outbound callbacksLimitedSelected Freshsales automation and workflow scenarios can send outbound webhook-style notifications for configured CRM events or conditions.Martini can expose a REST API to receive notifications, validate them, retrieve the current Freshsales object, and start an integration workflow.
File / attachment APIsLimitedNotes and attachment-related operations are available in selected CRM contexts, with resource-specific support and possible multipart upload requirements.Martini can process multipart or binary content where the Freshsales operation is documented, apply file validation, and transfer content to a downstream system.
AuthenticationYesFreshsales documents account API keys using the Token token authorization format; Freshworks developer applications can also use OAuth 2.0 subject to scopes and tenant configuration.Martini can store API keys, OAuth client credentials, and refresh tokens in secrets or secured environment configuration and apply them to API workflows.
Bulk / async / batch APIsNot confirmedA general-purpose bulk or asynchronous API covering all Freshsales CRM resources was not confirmed.Martini can implement paginated, incremental, and workflow-level batched synchronization with controlled concurrency and rate-limit-aware retries.
GraphQL APIsNot confirmedA public Freshsales GraphQL API was not confirmed in the reviewed documentation.Martini can consume REST APIs instead; a GraphQL integration should only be considered if Freshworks documents an applicable endpoint for the tenant.
SOAP APIsNot confirmedA Freshsales SOAP API was not confirmed in the reviewed documentation.Martini should use the Freshsales REST API rather than assume SOAP support.
Database / analytics accessNoDirect customer database or ordinary JDBC access to Freshsales is not an expected integration mechanism.Martini can use Freshsales APIs or documented export and reporting mechanisms, but it should not connect directly to the Freshsales database.

How Freshsales exposes data and business events

Freshsales REST APIs

Freshsales REST APIs are the primary integration mechanism for creating, reading, updating, and deleting CRM resources. The APIs generally use JSON and expose resources such as Leads, Contacts, Accounts, Deals, sales activities, and Tasks, although fields and operations can vary by edition, tenant configuration, and API version.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with an API key or configured OAuth credentials, retrieves or writes Freshsales resources, handles pagination and throttling, maps vendor fields to a canonical model, and records synchronization state for repeatable processing.

Implementation sequence

Authenticate using secured Freshsales credentials
Request the required Freshsales resource
Continue through all response pages
Map Freshsales JSON to the canonical model
Apply validation and business rules
Write the result to the target system and store synchronization state

Freshsales webhook-style notifications

Freshsales supports outbound webhook-style requests through selected automation and workflow scenarios. These notifications are not confirmed as a universal event stream for every object or field change, so event coverage, payloads, authentication, and retry behavior must be verified for the specific account configuration.

Martini implementation pattern

Martini implementation pattern: expose a controlled Martini API, validate the incoming notification, extract the Freshsales object identifier, retrieve the current resource through the REST API, and process the authoritative representation while recording the event or object ID for deduplication.

Implementation sequence

Receive the Freshsales notification
Validate the request and required identifiers
Check the notification or object ID for duplicates
Retrieve the current Freshsales resource
Apply mappings and downstream business rules
Acknowledge or route the result according to workflow outcome

Freshsales attachments and notes

Freshsales exposes notes and attachment-related functionality in selected CRM contexts. Support can depend on the parent object, operation, multipart field names, file size, file type, and API version, so each attachment flow requires resource-specific confirmation.

Martini implementation pattern

Martini implementation pattern: retrieve or receive the attachment content, validate metadata and content constraints, invoke the applicable Freshsales multipart or attachment operation, and transfer the resulting metadata or binary content to the target system.

Implementation sequence

Identify the supported Freshsales parent object
Validate file type, size, and required metadata
Prepare the documented multipart or binary request
Upload or retrieve the attachment
Map attachment metadata to the target system
Record the relationship and route failures for review

Common Freshsales integration patterns

Pattern 1: Synchronize Freshsales Contacts and Accounts with an ERP

When to use this pattern

Use this pattern when customer and organization data maintained in Freshsales must be available in an ERP or finance platform. A scheduled workflow can use incremental filters where available and an overlapping reconciliation window to reduce the risk of missed updates.

Integration direction
Freshsales
Martini
NetSuite
Example Mapping
Freshsales FieldCanonical FieldTarget Field
Account.nameorganizationNamecustomer.name
Account.idsourceAccountIdexternalId
Contact.emailperson.emailemail
Contact.phoneperson.phonephone
Martini implementation pattern

Martini starts a scheduled workflow, retrieves paginated Accounts and Contacts, resolves parent-child relationships, maps vendor-specific fields into a canonical customer model, and performs business-key or external-ID upserts in the target system. It stores a high-water mark and routes transient failures to backoff retries while sending validation failures to an exception process.

Martini capabilities used
  • workflows
  • scheduler triggers
  • API consumption
  • pagination orchestration
  • data mapping
  • business rules
  • error handling
  • secrets management

Pattern 2: Propagate Freshsales Deals to order or provisioning systems

When to use this pattern

Use this pattern when a Deal reaching a configured stage should create a downstream order, provisioning request, or fulfillment task. A Freshsales automation can notify Martini, while the workflow retrieves authoritative CRM data before acting.

Integration direction
Freshsales
Martini
ServiceNow
Example Mapping
Freshsales FieldCanonical FieldTarget Field
Deal.idsourceOpportunityIdcorrelationId
Deal.nameorderDescriptionshortDescription
Deal.amountcommercialValueestimatedValue
Account.idsourceAccountIdaccountReference
Martini implementation pattern

A Martini API receives the selected Freshsales notification, validates its signature or configured request controls, retrieves the full Deal and related Account and Contacts, and applies stage, amount, and completeness rules. It then calls the downstream API, records correlation identifiers, and prevents duplicate order creation through idempotency checks.

Martini capabilities used
  • API exposure
  • workflows
  • API consumption
  • data retrieval
  • data mapping
  • validation
  • business rules
  • idempotency
  • retry handling

Pattern 3: Keep Freshsales Leads aligned with a marketing platform

When to use this pattern

Use this pattern when marketing and sales teams need consistent Lead ownership, status, source, and contact information. Because webhook coverage is limited to selected scenarios, combine notifications with scheduled reconciliation when completeness matters.

Integration direction
Freshsales
Martini
HubSpot
Example Mapping
Freshsales FieldCanonical FieldTarget Field
Lead.emailperson.emailcontact.email
Lead.statuslead.lifecycleStatuscontact.lifecycleStage
Lead.lead_source_idsourcecontact.source
Lead.owner_idownerReferencecontact.ownerId
Martini implementation pattern

Martini consumes Freshsales REST data or selected notifications, normalizes email and phone values, maps status and source enumerations, and applies territory and ownership rules. It uses external IDs or normalized email for duplicate prevention, records update lineage, and runs periodic reconciliation to identify missed or rejected changes.

Martini capabilities used
  • scheduled workflows
  • webhook handling
  • data normalization
  • data mapping
  • duplicate prevention
  • conditional routing
  • monitoring

Pattern 4: Create Freshsales Tasks from external business events

When to use this pattern

Use this pattern when events from a service, commerce, or delivery system should generate follow-up work for sales users. The workflow should resolve the correct Freshsales parent object before creating a Task.

Integration direction
ServiceNow
Martini
Freshsales
Example Mapping
Freshsales FieldCanonical FieldTarget Field
external.customerIdsourceCustomerIdaccount_id
external.caseReferenceworkReferencedescription
external.dueDatefollowUpAtdue_date
external.ownerassignedUserowner_id
Martini implementation pattern

Martini receives or polls the external event, validates the required customer and work data, looks up the corresponding Freshsales Account, Contact, Lead, or Deal, and creates a Task only when no matching source event has already been processed. Failed association lookups are held for operational review rather than creating orphaned Tasks.

Martini capabilities used
  • event-driven workflows
  • API consumption
  • lookup orchestration
  • mapping and transformation
  • validation
  • idempotency
  • exception handling

Applications commonly integrated with Freshsales

Freshsales can be connected to adjacent business applications when customer, sales, service, commerce, or delivery data must move across system boundaries. These pairings do not imply a dedicated native Freshsales integration; Martini can use each application's supported APIs, webhooks, files, or other confirmed endpoints to coordinate the flow.

Application Scenario Direction Martini Pattern
Salesforce Organizations may need to consolidate customer, lead, or opportunity data when different business units use different CRM platforms. Freshsales → Martini → Salesforce Use scheduled or event-driven REST workflows to retrieve Freshsales Leads, Contacts, Accounts, and Deals, map them to Salesforce objects, apply ownership and duplicate rules, and record source identifiers for idempotent updates.
ServiceNow Qualified Freshsales Deals can initiate service, onboarding, fulfillment, or account-related work while ServiceNow context can be shared with sales teams. Freshsales → Martini → ServiceNow Receive a selected Freshsales notification or run a scheduled reconciliation, retrieve the current Deal and related Account or Contact, then call ServiceNow APIs after validation and route failures for retry or review.
NetSuite Accounts, Contacts, and won Deals can be synchronized with customer, sales order, and finance-related records. Freshsales → Martini → NetSuite Build a paginated Freshsales workflow that normalizes CRM data, resolves NetSuite business keys, applies won-stage rules, and performs controlled upserts with checkpoint and exception handling.
HubSpot Businesses operating both platforms may coordinate marketing and sales data during migration, segmentation, or business-unit separation. Freshsales → Martini → HubSpot Use bidirectional workflows with canonical lead and contact mappings, normalized email matching, ownership rules, field-level change detection, and safeguards against update loops.
Jira A Freshsales Deal reaching a defined stage can create implementation, onboarding, or product-related work. Freshsales → Martini → Jira Trigger a Martini workflow from a Freshsales notification or schedule, retrieve the full Deal and Account context, map it to a Jira issue, and persist the Freshsales-to-Jira relationship.
Zendesk Sales and support teams can share customer and contact context and synchronize selected account or customer updates. Freshsales → Martini → Zendesk Map Freshsales Accounts and Contacts to Zendesk customer structures, use stable external IDs for matching, and handle partial webhook coverage with periodic reconciliation.
Shopify Commerce customer and order context can be passed into Freshsales for sales follow-up, segmentation, and account enrichment. Shopify → Martini → Freshsales Receive Shopify events or retrieve changed commerce data, normalize customer identity, look up existing Freshsales Contacts or Accounts, and create or update CRM data according to business rules.
Workday Enterprise organizations may align employee, organization, ownership, or approval-related reference data with Freshsales. Workday → Martini → Freshsales Schedule reference-data retrieval from Workday, transform organizational values into Freshsales ownership or custom-field formats, validate configuration-dependent enumerations, and report rejected updates.

How to build a Freshsales integration in Martini

Objective

Establish Freshsales access using the authentication method appropriate for the tenant and integration scope.

Instructions in Martini

  • Store the Freshsales API key or OAuth credentials in Martini secrets or secured environment configuration.
  • Use separate development, test, and production credentials where possible.
  • Restrict OAuth scopes and avoid logging authorization headers or complete request configurations.

Objective

Select a scheduled, API-led, or selected Freshsales notification trigger based on event coverage and synchronization requirements.

Instructions in Martini

  • Use a Martini API for Freshsales webhook-style notifications.
  • Use a scheduler for incremental or reconciliation workflows.
  • Treat notifications as triggers rather than complete authoritative records.

Objective

Obtain the current Freshsales resource and related objects required for consistent processing.

Instructions in Martini

  • Call the Freshsales REST API using paginated requests.
  • Retrieve the current Lead, Contact, Account, Deal, activity, or Task after a notification when consistency matters.
  • Track a high-water mark or source identifiers for incremental synchronization.

Objective

Coordinate lookups, relationship resolution, transformations, downstream calls, and state handling in a maintainable Martini workflow.

Instructions in Martini

  • Resolve Accounts before dependent Contacts or Deals when required.
  • Use conditional routing for object types, stages, statuses, and validation outcomes.
  • Separate transient failures from permanent data or association errors.

Objective

Transform Freshsales JSON and tenant-specific fields into a canonical model and target schema.

Instructions in Martini

  • Map actual Freshsales object fields to target fields through explicit transformations.
  • Validate required values, enumerations, ownership references, timestamps, and custom fields.
  • Normalize email addresses, phone numbers, and time zones where appropriate.

Objective

Create or update the target system while maintaining relationships and preventing repeated business actions.

Instructions in Martini

  • Use Freshsales IDs or external identifiers as stable correlation keys.
  • Perform controlled upserts where practical rather than name-only matching.
  • Store successful synchronization state and source-to-target relationships.

Common Freshsales data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
LeadsManage prospective customers and unqualified sales prospects before conversion or qualification.Marketing platforms, CRM applications, data warehouses, and sales reporting systems.Martini retrieves Leads through paginated REST calls or processes selected notifications, normalizes identity and status fields, applies duplicate rules, and upserts the target representation.
ContactsRepresent people associated with customer or prospect organizations and support sales engagement.CRMs, service platforms, ERP systems, marketing applications, and customer data stores.Martini resolves stable identifiers such as Freshsales IDs, external IDs, or normalized email addresses, maps custom fields conservatively, and maintains association context.
AccountsRepresent companies or organizations related to Contacts and Deals.ERP and finance applications, CRMs, service platforms, and master-data repositories.Martini synchronizes Accounts before dependent Contacts or Deals when relationships require it, applies business-key matching, and isolates tenant-specific fields in mappings.
DealsTrack sales opportunities through pipelines and stages.ERP, order management, provisioning, reporting, and service-delivery systems.Martini can trigger processing for selected stage conditions, retrieve the complete Deal and related objects, validate required data, and create downstream orders or work.
Sales activitiesCapture calls, meetings, and other interactions associated with sales work.Analytics platforms, customer data stores, reporting systems, and activity histories in other CRMs.Martini maps activity types and timestamps explicitly, normalizes time zones, resolves related Freshsales IDs, and routes unsupported or incomplete activity data to exceptions.
TasksRepresent follow-up work assigned to users or teams.Project management, service management, workflow, and team productivity applications.Martini can create or update Tasks from external events after resolving the related Lead, Contact, Account, or Deal, with idempotent matching and retry handling.

Authentication and security considerations

Freshsales authentication

Freshsales documents API key authentication using the Authorization header format Token token=YOUR_API_KEY. Freshworks developer applications can also use OAuth 2.0 for delegated access, subject to application permissions and scopes.

  • Store API keys, OAuth client credentials, and refresh tokens in Martini secrets or secured environment configuration.
  • Use separate credentials for development, testing, and production where possible.
  • Restrict OAuth scopes to the objects and operations required by each workflow.
  • Do not log authorization headers, tokens, or complete request configurations.

API security

When receiving Freshsales webhook-style notifications, expose a controlled Martini API and verify the request controls available in the Freshsales configuration. Retrieve the current object through the REST API when the notification is insufficient for authoritative processing.

Operational considerations for Freshsales integrations

Pagination and rate limits

Freshsales list endpoints may return paginated data, and API plans may impose request limits. Martini workflows should continue through pages, control concurrency, avoid repeated retrieval of unchanged data, and retry throttling or temporary failures with backoff.

Synchronization integrity

  • Use a high-water mark based on update timestamps, with a record ID tie-breaker where necessary.
  • Use Freshsales IDs or external identifiers for idempotency and duplicate prevention.
  • Run overlapping or periodic reconciliation to identify missed notifications or rejected updates.
  • Resolve Accounts and other parent objects before dependent Contacts, Deals, activities, or Tasks.

Schema and attachment handling

Custom fields, pipelines, stages, ownership values, and enumerations can vary by tenant. Isolate Freshsales-specific mappings from canonical models. Attachment processing may require multipart or binary handling, resource-specific validation, and separate treatment of file metadata.

Testing and monitoring

Test representative tenant configurations, custom fields, relationship order, time zones, rate-limit responses, duplicate notifications, and downstream failures. Monitor workflow logs and retain correlation identifiers without exposing sensitive credentials.

Why use Martini instead of scripts or point-to-point integrations?

Centralized integration logic

Martini provides a maintainable place to orchestrate Freshsales API calls, webhook handling, relationship lookups, transformations, validation, and downstream application updates. This avoids duplicating vendor-specific logic across point-to-point scripts.

Reusable workflows and APIs

Teams can expose a controlled Martini API for Freshsales notifications or standardized customer operations, then reuse workflow assets across CRM, ERP, service, commerce, and reporting integrations.

Operational control

  • Apply consistent authentication, secrets management, validation, retries, and exception routing.
  • Separate transient API failures from permanent data-quality failures.
  • Support scheduled, event-driven, incremental, and reconciliation-based processing.
  • Change Freshsales mappings in one integration layer when tenant-specific fields or downstream schemas evolve.

Frequently asked questions

How can Freshsales be integrated with enterprise systems?

Freshsales can be integrated through its REST APIs, which support CRM resources such as Leads, Contacts, Accounts, Deals, sales activities, and Tasks. Selected automation scenarios can send webhook-style outbound notifications, while API keys and OAuth 2.0 can support authenticated access. Large synchronizations should use pagination, incremental processing, rate-limit handling, and reconciliation rather than assuming a universal bulk API.

Can Martini integrate with Freshsales?

Yes. Martini can consume the Freshsales REST API, receive selected Freshsales webhook-style notifications through an exposed Martini API, transform JSON data, apply business rules, and synchronize CRM objects with downstream applications. A native Martini Freshsales connector is not confirmed in the supplied documentation.

Do I need a connector to integrate Freshsales with Martini?

No. A dedicated Freshsales connector is not required. Martini can use Freshsales native REST APIs, selected webhook-style callbacks, documented attachment operations, and API key or OAuth authentication to implement the integration through workflows and APIs.

Is there any extra Lonti cost to integrate Freshsales with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Freshsales. Integration use is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Freshworks, cloud infrastructure, or other third-party systems based on their subscription, usage, and deployment models.

Which Freshsales integration methods should an enterprise use?

The Freshsales REST API should be the primary method for reading and writing CRM data. Selected webhook-style notifications are useful for event-driven processing, but their coverage and retry behavior must be verified for the specific tenant. Attachment and note APIs can be used where the relevant resource and multipart requirements are documented. GraphQL and SOAP were not confirmed.

Can Freshsales send events or webhooks to Martini?

Freshsales supports webhook-style outbound requests through selected automation and workflow scenarios. They should not be treated as a universal event stream for every object or field change. Martini can receive the notification, validate it, retrieve the current Freshsales object, and use the object identifier for deduplication.

How does synchronization between Freshsales and another application work?

A Martini workflow can run on a schedule, receive a selected notification, or expose an API for on-demand processing. It retrieves paginated Freshsales data, maps vendor fields to a canonical model, resolves relationships, applies business rules, and performs idempotent target updates. High-water marks, source IDs, and periodic reconciliation help detect missed changes.

How does Martini handle Freshsales errors, retries, and duplicate data?

Martini workflows can classify authentication, validation, association, rate-limit, network, and downstream errors. Transient failures can use controlled retries with backoff, while permanent failures can be routed to an exception process. Freshsales IDs, external identifiers, and carefully selected normalized email values can support idempotency and duplicate prevention.