Andrii Samokysh
10/23/2026, 6:53 AMemail_to, email_cc, email_bcc (arrays of addresses from the message headers). Empty headers are omitted, so email_bcc is absent in practice. Not gated by includeEmailUrl / includeEmailText.
• `POST /v3/sequences`: every settings field is now optional and nullable; an omitted field takes its documented default (e.g. daysToFinishProspect 5, emailSendingDelaySeconds 60, dailyThrottling 100, disableOpensTracking true, repliesHandlingType markAsFinished, generatedTaskOwner `sequence`; emailsCountPerDay = your workspace default).
• `POST /v3/contacts/import`: options.keys.contactId (boolean, default false) + contactId per item. The key is not additive, every item must then carry a contactId, and an id that doesn’t resolve inside your team imports a new contact.
• Inbox: new message status code linkedInInvalidUrl (LinkedIn profile URL missing/invalid or contact deleted; resending fails until the URL is fixed).
• AI SDR: unknown personalization variables now return a descriptive 400 — offer.invalidParameter (create/patch), playbook.invalidParameter (create/patch), salesAgentSequence.invalidParameter (settings patch). Example: Text contains unknown variables. Unknown variables: {{Your_Company}}. Fields: callToActions.
October 8
• Billing: GET /v3/billing (billing:read) is out of Coming soon.
• LinkedIn Accounts: PUT / DELETE /v3/linkedin-accounts/{id}/voice (channels:write) are out of Coming soon. Unlinking falls back to the team’s default voice.
• Accounts — custom field values: customFields[] on account responses, create and update (by id or name, value ≤ 4000). PUT writes only the values you send; bad value → 400 contactAccount.invalidInput, feature off → `403 contactAccount.featureDisabled`; on bulk create only the failing item fails (error 3 / 6).
• Custom Fields: new entityType (contact / account) on the model, create (default contact), update (must match) and GET /v3/custom-fields?entityType=.
• Contacts: stage (name, nullable) on read, PATCH and import. null is the only value that clears a stage; unknown/blank name → 400 listing available names.
• `GET /v3/whoami/team-users`: new isOwner, teamRole, organizationRole.
• Sequences: GET /v3/sequences/{id}/steps is ordered by position (empty array when none, 404 sequenceStep.notFound); POST /v3/sequences documents sequence.invalidStep / sequence.emptySubject.
• Reporting / sequence stats: plain-date to covers the whole day, UTC-timestamp to is an exclusive bound, times are read in the user’s time zone (the Z suffix does not shift them).
• Rate limits: weekly quota documented — 100/min, 3,000/h, 150,000/week per user. Prompt Actions: up to 6 outputs (was 5).
🔜 Coming Soon
AI SDR Sequence Structures (targeted: late October 2026)
• GET /v3/ai-sdr/sequence-structures, GET /v3/ai-sdr/sequence-structures/{id} (ai-sdr:read)
• GET / PUT /v3/sequences/ai-sdr/{sequence_id}/structure, POST /v3/sequences/ai-sdr/{sequence_id}/structure/save-as (ai-sdr:write for PUT / save-as)
Ids are g-{number} (library) or c-{number} (user-saved). PUT replaces the sequence’s steps and returns 409 sequenceStructure.changeBlocked once messages were sent. POST /v3/sequences/ai-sdr takes an optional `structureId`; 502 salesAgentSequence.structureNotSuggested means the sequence was created without steps (id in detail).
Teams (targeted: early November 2026)
Notes API (late October 2026): GET /v3/contacts/{id}/notes, GET /v3/contacts/{id}/notes/{note_id}, GET / POST /v3/contact-accounts/{id}/notes, GET /v3/contact-accounts/{id}/notes/{note_id}.
AI SDR playbooks (late October 2026): playbook draft endpoints under /v3/sequences/ai-sdr/{sequence_id}/playbook-draft (generate, regenerate, example-files, save), POST /v3/ai-sdr/playbooks/{id}/regenerate, GET /v3/ai-sdr/playbooks/{id}/sequences. Drafts are deleted after 1 hour of inactivity.
Mailbox Procurement (late October 2026 — moved from late September): new GET /v3/email-accounts/procurement/domains, POST .../domains/{domainId}/mailboxes/estimate, POST .../domains/{domainId}/mailboxes/purchase, GET .../procurement/geo/states.
Rate limits (mid October 2026): GET /v3/rate-limits — your usage per limit and window.
⚠️ Breaking Changes
1. Unknown or malformed template variables are rejected with 400 (Oct 8)
> Before: variable names were documented as case-sensitive; no rejection of unknown names was documented.
> After: email template create/update, POST /v3/sequences and step/variant create/update/bulk (email and SMS steps) return 400, e.g. Unknown variable {{firstName}}. Did you mean {{FirstName}}? …. LinkedIn, WhatsApp, call and task steps are not checked.
> Action required: check variable names against GET /v3/email-templates/variables and use the exact casing.
2. AI SDR sequence steps now come from sequence structures (Oct 22, with the late-October structures release)
> Before: POST /v3/sequences/ai-sdr required `sequenceStructureSetup`; PUT /v3/sequences/ai-sdr/{sequence_id}/generated-step-types set the channels; settings returned generatedStepTypes.
> After: sequenceStructureSetup is removed and structureId is optional; PUT .../generated-step-types and generatedStepTypes are removed.
> Action required: stop sending sequenceStructureSetup (send structureId or nothing), move to PUT .../structure, stop reading generatedStepTypes.
Housekeeping
• LinkedIn account limits: limitsMode is documented as fixed / ranged (the casing GET returns).
• New schema pages (Sequence structure, Contact Note, Playbook draft, Rate Limits and more); new sidebar groups for Sequence Structures, Teams, Purchased domains, Mailboxes on existing domains and Rate Limits.
• Authentication guide: new teams scope row; MCP pages updated for the weekly limit and Retry-After on 429.
📚 Full documentation