DealSleek API · Workflows
PreviewEnroll Entity
Manually enroll one entity in a published workflow.
/api/v1/workflows/dispatchHeaders
AuthorizationstringRequiredAccess token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.
X-CQRS-ActionstringRequiredNames the command to run. Must be
ENROLL_ENTITYfor this endpoint.Content-TypestringRequiredAlways
application/json.X-Idempotency-KeystringOptionalA key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.
X-Correlation-IdstringOptionalYour own identifier for the request. Returned in the
x-correlation-idresponse header; generated when you leave it out.
Request body
definition_iduuidRequiredNo description yet.
entity_iduuidRequiredNo description yet.
entity_typestringRequiredNo description yet.
recordanyRequiredRecord JSON the enrollment service evaluates predicates against. Carries the dedupe key plaintext too.
tenant_iduuidRequiredNo description yet.
autonomy_levelenum or nullOptionalNo description yet.
- Allowed values
- OBSERVE
- ADVISE
- ACT_WITH_APPROVAL
- ACT_AUTONOMOUSLY
budgetanyOptionalNo description yet.
control_group_pct_bpinteger or nullOptionalNo description yet.
- at least 0
daganyOptionalNo description yet.
owner_addressstring or nullOptionalThe record's assigned rep, resolved by the Go dispatcher from the owner column (leads.assigned_rep_id / deals.owner_id → identity_users.email). Injected into every node config as
__owner_addressso a SEND_EMAIL node authored withrecipientMode: Ownerreaches the person who owns the record rather than the record itself. None → an Owner-mode node fails, which is the honest outcome for an alert with no recipient.policy_coverageanyOptionalNo description yet.
policy_epsilon_bpinteger or nullOptionalExploration floor in basis points (default 1000 = 10%). The fraction of decisions that take a random branch, keeping the off-policy estimate valid. Propensity is logged either way.
- at least 0
policy_model_versionstring or nullOptionalWhich policy produced
policy_values— stamped into every decision record so OPE can segment by acting policy. "branch_greedy" (P0, historical branch average) or "uplift" (P1, per-lead CATE). Go sets "uplift" only when every branch got a model prediction. Default "branch_greedy".policy_pessimism_bpinteger or nullOptionalNo description yet.
- at least 0
policy_valuesanyOptionalNo description yet.
recipient_addressstring or nullOptionalFinding 1 — the enrolled entity's OWN contact address, resolved by the Go dispatcher from the entity record (leads.email in v1). Injected into every node config as
__recipient_addressso per-entity actions (send_email) target this subject rather than a static authoredto. None → the action falls back to its authoredconfig.to.trigger_event_seqinteger or nullOptionalOptional persisted event identity. The engine loads and verifies it.
Response
Status 202. The command was applied. The body reports the outcome and, where the command changes a record, that record's new state.
successbooleanRequiredtruewhen the command was applied.error_messagestringRequiredEmpty when the command was applied.
projected_stateobjectOptionalThe record as it stands after the command.
event_payloadobjectOptionalThe event the command recorded.
insightsarray of objectOptionalAdvisory notes about the result. Each has a
code, amessageand animpactnumber.
Errors
Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.
- 400
X-CQRS-Actionis missing or names a command this route does not accept. SendENROLL_ENTITY. - 400
DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types. - 401The access token is missing, expired or not valid.
- 401
L1_AUTHThe caller's role is belowmanageror the caller has no access to this record. - 403
L1_POLICYA business rule refused the command. The message names the rule. - 409
L1_IDEMPOTENCYA command with this idempotency key was already applied. - 409
CONFLICTThe command would duplicate a record that must be unique. - 500
L3_COMMITThe command was valid but could not be saved.