Teamleader – Gotchas

Service ID: teamleader

Faced with a mountain of administration? Don’t panic. We’ll guide you over.

⚠️

4 gotchas across 2 resources

These are connector-specific behaviors and limitations to be aware of when integrating.

Notes3 gotchas

allnotesAll

Teamleader only lists the notes of a single parent record, so one of filter[contact_id], filter[company_id] or filter[opportunity_id] is required. Without one, Teamleader returns a 400 error ("filter must be present"). When more than one of these filters is sent, only one is used, in this order: contact_id, then company_id, then opportunity_id. Teamleader does not return a total record count, so meta.total_count will not appear. Notes are returned newest first. Note content is stored as Markdown, so special characters such as [, ], * and _ are returned escaped (for example \[text\]), leading and trailing whitespace is trimmed, and line breaks are normalised. Notes attached to other Teamleader records (for example invoices or meetings) are not returned, because they can only be listed through those records. Leads in this connector are Teamleader contacts, so use filter[contact_id] with the lead id; lead_id is not returned on notes.

addnotesAdd

A Teamleader note is attached to exactly one parent record. When more than one of contact_id, company_id and opportunity_id is set, contact_id is used first, then company_id, then opportunity_id. One of contact_id, company_id or opportunity_id is required; without one, Teamleader returns a 400 error ("subject must be present"). Leads in this connector are Teamleader contacts, so pass a lead id as contact_id; lead_id is ignored. Only content is stored: title, owner_id, activity_id and active are ignored. content is required. Teamleader treats content as HTML and stores it as Markdown. A < directly followed by a letter (for example a<b or List<String>) is read as the start of an HTML tag, so the rest of the text can be cut off or altered even though the request succeeds. A < followed by a space or a number (for example price < 5) is kept. HTML tags such as <b> are converted to Markdown, whitespace is trimmed and special characters are returned escaped when the note is read back.

updatenotesUpdate

Only content can be updated. A note cannot be moved to another parent record: contact_id, company_id and opportunity_id are ignored on update, as are title, owner_id, activity_id and active. An update without content succeeds without changing the note; an empty content returns Teamleader's 400 error. Teamleader treats content as HTML and stores it as Markdown. A < directly followed by a letter (for example a<b or List<String>) is read as the start of an HTML tag, so the rest of the text can be cut off or altered even though the request succeeds.

addopportunitiesAdd

The primary_contact_id is required in the request body