.png)
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.
Common Freshsales integration patterns
Common Freshsales data objects used in integrations
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.