Skip to main content

Freshsales integration

Sync contacts, accounts, deals, and tasks on behalf of your clients' Freshsales CRM accounts.

What it does

The Freshsales integration lets you run sales-ops automations on behalf of any client running the Freshworks CRM. Connect a Freshsales account once, then list and create contacts, sales accounts, deals, tasks, and leads, and route live Freshsales events (contact created, deal stage changed) into the rest of your workflow without writing any code.

Connect a Freshsales account

  1. In TaskJuice, open Settings, Connections and choose Add connection, Freshsales.
  2. Enter your client's Freshsales bundle subdomain (the part before .myfreshworks.com in their CRM URL, e.g. acme for acme.myfreshworks.com).
  3. In Freshsales, open Profile (top-right), Settings, API Settings on the user account TaskJuice should act as. Copy the API key and paste it into the Freshsales API Key field.

The connection is read- and write-capable across contacts, sales accounts, deals, tasks, and leads scoped to that user account. Rotate or revoke the API key from the same API Settings page at any time. Freshsales sends the key as Authorization: Token token=<api_key> on every outbound request.

Triggers

  • freshsales/contact-created. Fires when a new contact is created in the Freshsales account.
  • freshsales/deal-stage-changed. Fires when an existing deal transitions to a new stage.

Both triggers verify the inbound POST against a shared-secret header. In Freshsales, open Admin Settings, Workflows, create a workflow on the Contact module (for create events) or Deal module (for stage updates), set the action to Trigger Webhook, point it at the TaskJuice incoming webhook URL, and add the shared secret to the Authorization header field as Bearer <secret>. Configure the JSON payload to include a top-level entity object containing the placeholders you want downstream steps to see.

Actions

  • freshsales/list-contacts. List contacts in the account, sorted and paginated by page number.
  • freshsales/create-contact. Create a new contact with a first name, last name, email, mobile, work number, job title, sales accounts, owner, and lead source.
  • freshsales/get-contact. Look up a single contact by ID, optionally including sales accounts, owner, or deals.
  • freshsales/create-sales-account. Create a new sales account (company) with a name, website, phone, industry, employees, and owner.
  • freshsales/create-deal. Create a deal with a name, amount, currency, sales account, stage, pipeline, owner, expected close, probability, and associated contacts.
  • freshsales/create-task. Create a task on a contact, sales account, or deal with a title, description, due date, and owner.
  • freshsales/list-leads. List leads in the account (when the Leads module is enabled), sorted and paginated by page number.

Known limitations

  • Freshsales applies a per-plan API rate limit documented at https://developers.freshworks.com/crm/api/#ratelimit. TaskJuice retries on 429 responses honoring the Retry-After header.
  • Page-based pagination is fixed at 25 items per page on most listing endpoints. TaskJuice stops paginating after 100 pages by default; raise the ceiling on the action if you need a deeper sweep.
  • The webhook payload shape is fully controlled by the Freshsales workflow's JSON template. Place the entity fields under an entity object in the template so downstream steps can dereference them reliably.
  • API key authentication is scoped to the Freshsales user whose key was copied. Switching users requires rotating the connection's API key.
  • The Leads module is only available on the Freshsales Suite plan; the freshsales/list-leads action returns an empty list on accounts without it.
Was this helpful?
Freshsales integration | TaskJuice Docs