Skip to main content

Freshsales

CRM

The Freshsales connector reads and writes contacts, accounts and deals through the Freshsales REST API. Every read goes through a saved view.

When to use it​

  • You move contacts, accounts and deals between Freshsales and another CRM.
  • You push new customers from a database into Freshsales as contacts, or pull won deals into a warehouse.
  • You read records, transform them, and write the results back with Update.

What you need​

  • Your Freshsales bundle alias.
  • A Freshsales API key.

Freshsales offers an API key only.

Find your bundle alias​

Sign in to Freshsales and look at the browser address bar. The label between https:// and .myfreshworks.com is your bundle alias. For https://acme.myfreshworks.com/crm/sales that is acme. Enter the label alone. A value with a dot, a slash, a colon or an at sign is refused.

Set up in Freshsales​

  1. Sign in to Freshsales and note the bundle alias in the address bar.
  2. Go to Profile Settings > API Settings and copy the API key.
  3. In DataLug, add a Freshsales connection.
  4. Enter the bundle alias and paste the API key.
  5. Click Test connection.

Connect​

The connection form lists its steps on the left. Open any step from that list. The Environments step holds the values that differ per environment.

Test connection is in the form footer. Beside it, Test against picks Base, the connection as saved, or an environment, whose values are applied first.

FieldStepWhat to enter
Auth TypeAuthenticationAPI Key. Freshsales offers an API key only.
API KeyAuthenticationFrom Profile Settings > API Settings.
Bundle AliasConnectionThe label alone, such as acme.

Stored secrets are never sent back to the browser. To change one, use Replace.

Supported operations​

Objects. Contact, Account and Deal. Account is the Freshsales sales account.

ActionNodeOperations
Query (Source)Source nodeQuery, through a saved view, with an optional Limit
Load (Target)Load nodeInsert, Update, Delete

Writes go one record per request to the object itself. Views do not apply to writes.

Not supported: Upsert, Leads, Tasks, Notes, Appointments, Sales Activities.

Every read goes through a view​

Freshsales serves records through a saved view, the same views as in the Freshsales sidebar. On a Source node, Configure Action shows a View picker under Query Filters once you pick an object. DataLug loads the object's views and selects the all-records view, such as "All Contacts".

  • The view decides what the data pipeline reads. A narrower view reads a subset. The view is the only filter for this connector.
  • A Source node with no view does not run, and the run log says so.

Custom fields​

Freshsales holds custom field values under a separate custom_field object on each record. If a custom field maps but arrives empty, the account Owner emails DataLug support at support@datalug.io with the object and field name.

Limits​

Freshsales limits API requests per account, per minute and per hour, and the limits depend on the plan. Freshsales answers 429 Too Many Requests past a limit. Find your plan's limit in Freshsales, then enter it under Requests per period.

The API limits card has no default throttle for Freshsales. Page size is at most 100.

The API limits card on the connection form is collapsed by default. Every field on it is optional, and a blank field uses the default shown below it.

SettingWhat it doesDefault
Requests per period, PeriodPaces outgoing calls. Set both to throttle.No throttle, or the rate shown on the card.
Page sizeRows per request. A larger value is reduced to the provider's maximum.The maximum shown on the card, or set by the provider.
Max attemptsTries per call, including the first.3
Cool-off (ms)The first wait after a 429. Later waits grow from it.500 ms
Requests at onceRequests open at the same time within one run.No limit

A Retry-After header from the provider overrides the cool-off. The pace applies per connection and is shared by every run on it. See Run performance.

DataLug retries a call that the provider refused with 429, and a call that could not connect. A read is also retried after a 408, a 5xx or a dropped connection. A write is retried only after a 429 or a failed connection.

A Retry-After delay of up to one minute is honoured. A longer one fails the call with the 429.

Troubleshooting​

What you seeWhat it meansWhat to try
Freshsales reads through a saved view. Choose one in Configure Action.No view is chosen.Open Configure Action and pick one under Query Filters.
The View picker is emptyThe object has no views the key's user can see.Create or share a view in Freshsales, then reopen Configure Action.
Add the bundle alias to this Freshsales connection and save before testing.Bundle Alias is blank or not a plain label.Enter the label alone, such as acme.
401 on test or on a runThe key is wrong, or its user was deactivated.Copy the key from Profile Settings > API Settings and paste it with Replace.
A run reads fewer records than you expectThe chosen view is narrower than the object.Pick the all-records view.
429 Too Many RequestsPast your plan's per-minute or per-hour limit.The run backs off and retries. If it recurs, set Requests per period to your plan's figure.
A custom field maps but arrives emptyCustom field values sit under custom_field.Email the object and field name to DataLug support at support@datalug.io.