sales_engagement_write
sales_engagement_write performs POST / PATCH / PUT requests against your own
tenant’s connected sales engagement platform. It is a live write path
and is deny-by-default — your tenant must be granted the tool explicitly.
Confirm the exact records and change with the user first, and prefer the
narrowest operation.
DELETE is not supported here.
Provider discovery comes first
Section titled “Provider discovery comes first”Call get_tenant_settings, read
settings.sep.type, and use that provider’s resource names and body
shape — Outreach uses JSON:API ({"data": {"type": ...}}), the others
differ.
Inputs
Section titled “Inputs”| Parameter | Type | Required | Description |
|---|---|---|---|
http_method | string | Yes | POST, PATCH, or PUT. |
relative_url | string | Yes | API path relative to the provider API root — never repeat the root. |
json_body | object | No | Request body. |
params | object | No | Query-string parameters. |
Path rules
Section titled “Path rules”| Provider | API root | Example relative_url |
|---|---|---|
| Outreach | api/v2/ | prospects |
| Salesloft | v2/ | people |
| Gong | v2/ | flows |
| Reply.io | v3/ | sequences, contacts |
CRM-first gate
Section titled “CRM-first gate”When the tenant has a connected CRM, creating a prospect in the SEP is
refused unless a matching CRM upload has already minted a proof row — a
completed crm_write with
entity_type="prospect". SEP-only tenants (no CRM connected) pass
straight through.
Returns
Section titled “Returns”JSON with status (success / target_http_error), status_code, and
content.
Notes & limits
Section titled “Notes & limits”- Reads are redirected to
sales_engagement_read. - The structured SepTer endpoints (list cadences, enroll, …) already handle provider mapping internally — prefer them when they fit, and reach for a raw path only for what they don’t cover.