DealSleek API · Leads
PreviewCommit Import Batch
Open the commit: fixes the lawful basis and disposition, after which the batch creates leads. Only reachable from a validated batch.
/api/v1/leads/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
COMMIT_IMPORT_BATCHfor 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
batch_iduuidRequiredNo description yet.
consent_channelsarray of enumRequiredThe lawful basis, carried onto every lead the batch creates.
- Allowed values
- SMS
- PHONE
- PROGRAMMATIC_AD
- AI_OUTREACH
- POSTAL
consent_evidence_refstringRequiredNo description yet.
- minimum length 1
consent_jurisdictionobjectRequiredNo description yet.
2 child fields
countrystringRequiredISO 3166-1 alpha-2 (
"US","DE","BD").subRegionstringRequiredSub-region for split regimes (
"US-CA","DE-BY"). Empty = whole country.
current_statusenumRequiredBatch lifecycle. Nothing is written to
leadsbefore COMMITTING, so an operator can upload, map and validate without consequence — the dry run is the whole reason the aggregate exists.- Allowed values
- UPLOADED
- MAPPED
- VALIDATED
- COMMITTING
- COMPLETED
- REJECTED
- CANCELLED
- ROLLED_BACK
- PARTIAL
- PARTIAL
- Committed, but some rows failed. Distinct from Completed because the operator has a reject list to act on.
duplicate_policyenumRequiredWhat happens when an imported row matches an existing lead.
- Allowed values
- SKIP
- MERGE
activation_pathenum or nullOptionalNo description yet.
- Allowed values
- enroll
- cryo
- discovery
- disqualify
- enroll
- Route + start the lifecycle (default), then enroll into a sequence.
- cryo
- Park in cryo-sleep until a wake signal fires (HIBERNATE_LEAD).
- discovery
- Keep as a finder discovery — no lead is created (RECORD_DISCOVERY).
- disqualify
- Close out with a BANT category + reason (DISQUALIFY_LEAD).
disqualify_reasonenum or nullOptionalNo description yet.
- Allowed values
- BUDGET
- AUTHORITY
- NEED
- TIMING
- OTHER
merge_precedenceenum or nullOptionalOn merge, which side wins a field both sides populate.
- Allowed values
- IMPORTED_WINS
- EXISTING_WINS
owner_iduuid or nullOptionalNo description yet.
sequence_iduuid or nullOptionalNo description yet.
wake_triggerenum or nullOptionalNo description yet.
- Allowed values
- FUNDING_ROUND
- EXECUTIVE_CHANGE
- COMPETITOR_CONTRACT_EXPIRING
- SEMANTIC_WEB_SIGNAL
- INBOUND_ENQUIRY
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. SendCOMMIT_IMPORT_BATCH. - 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.