DealSleek API · Workflows

Preview

Enroll Entity

Manually enroll one entity in a published workflow.

POST/api/v1/workflows/dispatch

Authorization

Minimum role
ManagerThe caller must hold this role or a higher one.
Action
ENROLL_ENTITY

Headers

  • AuthorizationstringRequired

    Access token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.

  • X-CQRS-ActionstringRequired

    Names the command to run. Must be ENROLL_ENTITY for this endpoint.

  • Content-TypestringRequired

    Always application/json.

  • X-Idempotency-KeystringOptional

    A key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.

  • X-Correlation-IdstringOptional

    Your own identifier for the request. Returned in the x-correlation-id response header; generated when you leave it out.

Request body

  • definition_iduuidRequired

    No description yet.

  • entity_iduuidRequired

    No description yet.

  • entity_typestringRequired

    No description yet.

  • recordanyRequired

    Record JSON the enrollment service evaluates predicates against. Carries the dedupe key plaintext too.

  • tenant_iduuidRequired

    No description yet.

  • autonomy_levelenum or nullOptional

    No description yet.

    Allowed values
    • OBSERVE
    • ADVISE
    • ACT_WITH_APPROVAL
    • ACT_AUTONOMOUSLY
  • budgetanyOptional

    No description yet.

  • control_group_pct_bpinteger or nullOptional

    No description yet.

    at least 0
  • daganyOptional

    No description yet.

  • owner_addressstring or nullOptional

    The 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_address so a SEND_EMAIL node authored with recipientMode: Owner reaches 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_coverageanyOptional

    No description yet.

  • policy_epsilon_bpinteger or nullOptional

    Exploration 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 nullOptional

    Which 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 nullOptional

    No description yet.

    at least 0
  • policy_valuesanyOptional

    No description yet.

  • recipient_addressstring or nullOptional

    Finding 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_address so per-entity actions (send_email) target this subject rather than a static authored to. None → the action falls back to its authored config.to.

  • trigger_event_seqinteger or nullOptional

    Optional 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.

  • successbooleanRequired

    true when the command was applied.

  • error_messagestringRequired

    Empty when the command was applied.

  • projected_stateobjectOptional

    The record as it stands after the command.

  • event_payloadobjectOptional

    The event the command recorded.

  • insightsarray of objectOptional

    Advisory notes about the result. Each has a code, a message and an impact number.

Errors

Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.

  • 400X-CQRS-Action is missing or names a command this route does not accept. Send ENROLL_ENTITY.
  • 400DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types.
  • 401The access token is missing, expired or not valid.
  • 401L1_AUTHThe caller's role is below manager or the caller has no access to this record.
  • 403L1_POLICYA business rule refused the command. The message names the rule.
  • 409L1_IDEMPOTENCYA command with this idempotency key was already applied.
  • 409CONFLICTThe command would duplicate a record that must be unique.
  • 500L3_COMMITThe command was valid but could not be saved.
Generated from the API contract · revision b8b16ed87f68f36c