Preview. This site is still being built. Features, prices and terms may change, and nothing here is a binding offer. Read the preview notice

Preview. Still being built; nothing here is a binding offer. Details

CRM

31 routes. Paths are relative to https://api.intersink.com/v1.

All groups

List activities (filter by contact / deal / type / done)

GET/crm/activities

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
contact_idstring, query
deal_idstring, query
typestring, queryOne of: "note", "call", "email", "meeting", "task", "stage_change", "status_change", "consent", "lead_created".
doneboolean, queryTasks: open (false) / done (true). Sent as the string "true"/"false".
due_fromstring, queryTasks and meetings due on or after this time (ISO 8601): the calendar window.
due_tostring, queryTasks / meetings due before (ISO 8601).
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).

Response

200. The payload in data is not described in the spec yet.

Log a note / call / email / meeting / task

POST/crm/activities

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
typerequiredstringOne of: "note", "call", "email", "meeting", "task".
contact_idstring
deal_idstring
subjectstringAt most 200 characters.
bodystringAt most 10000 characters.
directionstringcalls / emails One of: "inbound", "outbound".
occurred_atstringWhen it happened (defaults to now).
due_atstringTasks / meetings.
donebooleanTasks: completion (the server stamps completed_at).
duration_minutesnumberMinimum 0, maximum 1440.
event_typestringMeetings / tasks: the booking type shown on the calendar (e.g. "Consultation"). At most 60 characters.

Response

201. The payload in data is not described in the spec yet.

Edit an activity / tick a task (not history entries)

PATCH/crm/activities/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
subjectstringAt most 200 characters.
bodystringAt most 10000 characters.
directionstringcalls / emails One of: "inbound", "outbound".
occurred_atstringWhen it happened (defaults to now).
due_atstringTasks / meetings.
donebooleanTasks: completion (the server stamps completed_at).
duration_minutesnumberMinimum 0, maximum 1440.
event_typestringMeetings / tasks: the booking type shown on the calendar (e.g. "Consultation"). At most 60 characters.

Response

200. The payload in data is not described in the spec yet.

Delete an activity (not history entries)

DELETE/crm/activities/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

List / search / filter contacts (staff)

GET/crm/contacts

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
qstring, querySearch name / email / company / phone (case-insensitive). At most 100 characters.
tagstring, queryAt most 40 characters.
owner_idstring, queryOwner id, or "none" for unassigned.
sourcestring, queryAt most 40 characters.
marketing_consentboolean, query
sortstring, queryOne of: "date_created", "-date_created", "date_updated", "-date_updated", "name", "-name".
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Create a contact (409 on duplicate email/phone)

POST/crm/contacts

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
namestringAt most 200 characters.
emailstringAt most 254 characters.
phonestringE.164 (+447700900123), or national format with phone_country. At most 32 characters.
phone_countrystringCountry for a national-format phone (default GB). One of: "GB", "US", "IE", "IN".
companystringAt most 200 characters.
job_titlestringAt most 120 characters.
owner_idstringAssigned staff member (must manage the channel).
user_idstringPlatform account of this channel, when known.
user_profile_idstring
tagsstring[]
custom_fieldsobjectFlat object; keys may be restricted per channel. Max 8 KB.
intereststringAt most 200 characters.
descriptionstringAt most 5000 characters.
sourcestringAt most 40 characters.
utm_sourcestringAt most 200 characters.
utm_mediumstringAt most 200 characters.
utm_campaignstringAt most 200 characters.
utm_termstringAt most 200 characters.
utm_contentstringAt most 200 characters.
marketing_consentbooleanMarketing consent (UK GDPR / PECR). The server stamps the time.
marketing_consent_sourcestringHow consent was captured, e.g. "phone call", "paper form". At most 64 characters.

Response

201. The payload in data is not described in the spec yet.

Get a contact

GET/crm/contacts/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Update a contact (consent changes are timestamped)

PATCH/crm/contacts/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
namestringAt most 200 characters.
emailstringAt most 254 characters.
phonestringE.164 (+447700900123), or national format with phone_country. At most 32 characters.
phone_countrystringCountry for a national-format phone (default GB). One of: "GB", "US", "IE", "IN".
companystringAt most 200 characters.
job_titlestringAt most 120 characters.
owner_idstringAssigned staff member (must manage the channel).
user_idstringPlatform account of this channel, when known.
user_profile_idstring
tagsstring[]
custom_fieldsobjectFlat object; keys may be restricted per channel. Max 8 KB.
intereststringAt most 200 characters.
descriptionstringAt most 5000 characters.
sourcestringAt most 40 characters.
utm_sourcestringAt most 200 characters.
utm_mediumstringAt most 200 characters.
utm_campaignstringAt most 200 characters.
utm_termstringAt most 200 characters.
utm_contentstringAt most 200 characters.
marketing_consentbooleanMarketing consent (UK GDPR / PECR). The server stamps the time.
marketing_consent_sourcestringHow consent was captured, e.g. "phone call", "paper form". At most 64 characters.

Response

200. The payload in data is not described in the spec yet.

Erase a contact and its timeline (deals are kept, unlinked)

DELETE/crm/contacts/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Contact timeline: its and its deals' activities, newest first

GET/crm/contacts/{id}/timeline

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query
contact_idstring, query
deal_idstring, query
typestring, queryOne of: "note", "call", "email", "meeting", "task", "stage_change", "status_change", "consent", "lead_created".
doneboolean, queryTasks: open (false) / done (true). Sent as the string "true"/"false".
due_fromstring, queryTasks and meetings due on or after this time (ISO 8601): the calendar window.
due_tostring, queryTasks / meetings due before (ISO 8601).
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).

Response

200. The payload in data is not described in the spec yet.

Export the filtered contacts as CSV (streamed, staff)

GET/crm/contacts/export

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).
qstring, querySearch name / email / company / phone (case-insensitive). At most 100 characters.
tagstring, queryAt most 40 characters.
owner_idstring, queryOwner id, or "none" for unassigned.
sourcestring, queryAt most 40 characters.
marketing_consentboolean, query

Response

200. The payload in data is not described in the spec yet.

Import contacts from CSV (max 5,000 rows) with a rejected-rows report (staff)

POST/crm/contacts/import

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
duplicatesstring, queryExisting contact with the same email/phone: skip (reject row) or update it. One of: "skip", "update".
dry_runboolean, queryValidate only; write nothing.
phone_countrystring, queryCountry for national-format phones in the file (default GB). One of: "GB", "US", "IE", "IN".
channel_idstring, query

Request body multipart/form-data

FieldTypeDescription
filerequiredfile

Response

200. The payload in data is not described in the spec yet.

List / search / filter deals

GET/crm/deals

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
pipeline_idstring, query
stage_idstring, query
owner_idstring, query
contact_idstring, query
statusstring, queryOne of: "open", "won", "lost".
tagstring, queryTag of the deal's contact. At most 40 characters.
qstring, querySearch the title and the contact's name / email / company. At most 100 characters.
sortstring, queryOne of: "date_created", "-date_created", "date_updated", "-date_updated", "value_minor", "-value_minor", "expected_close_date", "-expected_close_date", "stage_entered_at", "-stage_entered_at".
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).

Response

200. The payload in data is not described in the spec yet.

Create a deal (default pipeline / first open stage when omitted)

POST/crm/deals

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
titlerequiredstringAt most 200 characters.
contact_idstring
pipeline_idstringDefaults to the channel's default pipeline (created on first use).
stage_idstringDefaults to the pipeline's first open stage.
value_minornumberInteger minor units (pence / cents). Minimum 0, maximum 10000000000000.
currencystringISO 4217, e.g. GBP (default).
owner_idstring
expected_close_datestring
sourcestringAt most 40 characters.
intereststringAt most 200 characters.

Response

201. The payload in data is not described in the spec yet.

Get a deal

GET/crm/deals/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Update a deal. To change its stage, use /move or /close.

PATCH/crm/deals/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
titlestringAt most 200 characters.
contact_idstring
value_minornumberMinimum 0, maximum 10000000000000.
currencystring
owner_idstring
expected_close_datestring
sourcestringAt most 40 characters.
intereststringAt most 200 characters.

Response

200. The payload in data is not described in the spec yet.

Delete a deal

DELETE/crm/deals/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Mark won / lost with a reason

POST/crm/deals/{id}/close

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
outcomerequiredstringOne of: "won", "lost".
reasonstringRequired for lost. At most 500 characters.

Response

200. The payload in data is not described in the spec yet.

Stage / status history of a deal

GET/crm/deals/{id}/history

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query
contact_idstring, query
deal_idstring, query
typestring, queryOne of: "note", "call", "email", "meeting", "task", "stage_change", "status_change", "consent", "lead_created".
doneboolean, queryTasks: open (false) / done (true). Sent as the string "true"/"false".
due_fromstring, queryTasks and meetings due on or after this time (ISO 8601): the calendar window.
due_tostring, queryTasks / meetings due before (ISO 8601).
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).

Response

200. The payload in data is not described in the spec yet.

Move to a stage (recorded in the deal history)

POST/crm/deals/{id}/move

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
stage_idrequiredstringA stage of the deal's pipeline. Moving to a won/lost stage closes the deal.
reasonstringRequired when the target stage is a lost stage. At most 500 characters.

Response

200. The payload in data is not described in the spec yet.

Deal timeline, newest first

GET/crm/deals/{id}/timeline

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query
contact_idstring, query
deal_idstring, query
typestring, queryOne of: "note", "call", "email", "meeting", "task", "stage_change", "status_change", "consent", "lead_created".
doneboolean, queryTasks: open (false) / done (true). Sent as the string "true"/"false".
due_fromstring, queryTasks and meetings due on or after this time (ISO 8601): the calendar window.
due_tostring, queryTasks / meetings due before (ISO 8601).
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).

Response

200. The payload in data is not described in the spec yet.

Kanban: deals grouped by stage, paged per stage

GET/crm/deals/board

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
pipeline_idstring, query
stage_idstring, query
owner_idstring, query
contact_idstring, query
statusstring, queryOne of: "open", "won", "lost".
tagstring, queryTag of the deal's contact. At most 40 characters.
qstring, querySearch the title and the contact's name / email / company. At most 100 characters.
sortstring, queryOne of: "date_created", "-date_created", "date_updated", "-date_updated", "value_minor", "-value_minor", "expected_close_date", "-expected_close_date", "stage_entered_at", "-stage_entered_at".
pagenumber, queryMinimum 1, maximum 10000.
limitnumber, queryMinimum 1, maximum 100.
created_fromstring, queryCreated on/after (ISO 8601).
created_tostring, queryCreated before (ISO 8601).
per_stagenumber, queryDeals per stage column (default 20, max 100). Minimum 1, maximum 100.

Response

200. The payload in data is not described in the spec yet.

Pipelines with their ordered stages (creates the default on first use)

GET/crm/pipelines

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Create a pipeline (with stages)

POST/crm/pipelines

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
channel_idstring, query
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
namerequiredstringAt most 120 characters.
is_defaultboolean
stagesobject[]Ordered stages; defaults to New / Interested / Meeting Booked / Converted (won) / Lost (lost).
stages[].namerequiredstringAt most 80 characters.
stages[].kindstringopen (default) | won | lost One of: "open", "won", "lost".
stages[].probabilitynumberWin probability 0–100. Minimum 0, maximum 100.

Response

201. The payload in data is not described in the spec yet.

Rename / reorder / make default

PATCH/crm/pipelines/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
namestringAt most 120 characters.
is_defaultbooleantrue makes this the channel's default (the previous default is unset).
sortnumberMinimum 0, maximum 1000.

Response

200. The payload in data is not described in the spec yet.

Delete an empty, non-default pipeline

DELETE/crm/pipelines/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.

Append a stage

POST/crm/pipelines/{id}/stages

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
namerequiredstringAt most 80 characters.
kindstringopen (default) | won | lost One of: "open", "won", "lost".
probabilitynumberWin probability 0–100. Minimum 0, maximum 100.

Response

201. The payload in data is not described in the spec yet.

Reorder all stages of a pipeline

PUT/crm/pipelines/{id}/stages/order

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
stage_idsrequiredstring[]

Response

200. The payload in data is not described in the spec yet.

Web-to-lead: a channel's website form adds a lead (deal + activity) to a new or exactly matching contact; never changes an existing contact (Public)

POST/crm/public/{channelId}/leads

Public: no sign-in needed.

Parameters

NameTypeDescription
channelIdrequiredstring, path
Idempotency-Keystring, headerOptional client-generated key (8-128 chars, [A-Za-z0-9_-]). A retry with the same key and body replays the first response (Idempotent-Replayed: true); 409 while the first is in flight; 422 if the body differs.

Request body application/json

FieldTypeDescription
namestringAt most 200 characters.
emailstringAt most 254 characters.
phonestringAt most 32 characters.
phone_countrystringOne of: "GB", "US", "IE", "IN".
companystringAt most 200 characters.
messagestringAt most 5000 characters.
intereststringWhat they're interested in (e.g. a service). At most 200 characters.
form_idstringIdentifies the form on the site (slug, e.g. "contact-page").
utm_sourcestringAt most 200 characters.
utm_mediumstringAt most 200 characters.
utm_campaignstringAt most 200 characters.
utm_termstringAt most 200 characters.
utm_contentstringAt most 200 characters.
marketing_consentbooleanOpt-in tick box (must be unticked by default under PECR).
consent_textstringThe consent wording shown next to the tick box (kept as evidence). At most 500 characters.
consent_versionstringVersion of that wording (a form definition's consent.version).
page_urlstringPage the form was submitted from. At most 500 characters.
captcha_tokenstringCloudflare Turnstile token from the form, needed when the channel turns on settings › protection › forms_captcha. At most 2048 characters.
websitestringHoneypot: leave empty. At most 500 characters.

Response

201. The payload in data is not described in the spec yet.

Rename a stage / change its kind or probability

PATCH/crm/stages/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Request body application/json

FieldTypeDescription
namestringAt most 80 characters.
kindstringOne of: "open", "won", "lost".
probabilitynumberMinimum 0, maximum 100.

Response

200. The payload in data is not described in the spec yet.

Delete an empty stage

DELETE/crm/stages/{id}

Needs a signed-in user (Bearer token or access_token cookie).

Parameters

NameTypeDescription
idrequiredstring, path
channel_idstring, query

Response

200. The payload in data is not described in the spec yet.