DealSleek API · Leads

Preview

Commit Import Batch

Open the commit: fixes the lawful basis and disposition, after which the batch creates leads. Only reachable from a validated batch.

POST/api/v1/leads/dispatch

Authorization

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

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 COMMIT_IMPORT_BATCH 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

  • batch_iduuidRequired

    No description yet.

  • consent_channelsarray of enumRequired

    The lawful basis, carried onto every lead the batch creates.

    Allowed values
    • EMAIL
    • SMS
    • PHONE
    • LINKEDIN
    • PROGRAMMATIC_AD
    • AI_OUTREACH
    • POSTAL
  • consent_evidence_refstringRequired

    No description yet.

    minimum length 1
  • consent_jurisdictionobjectRequired

    No description yet.

    2 child fields
    • countrystringRequired

      ISO 3166-1 alpha-2 ("US", "DE", "BD").

    • subRegionstringRequired

      Sub-region for split regimes ("US-CA", "DE-BY"). Empty = whole country.

  • current_statusenumRequired

    Batch lifecycle. Nothing is written to leads before 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_policyenumRequired

    What happens when an imported row matches an existing lead.

    Allowed values
    • SKIP
    • MERGE
  • activation_pathenum or nullOptional

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

    No description yet.

    Allowed values
    • BUDGET
    • AUTHORITY
    • NEED
    • TIMING
    • OTHER
  • merge_precedenceenum or nullOptional

    On merge, which side wins a field both sides populate.

    Allowed values
    • IMPORTED_WINS
    • EXISTING_WINS
  • owner_iduuid or nullOptional

    No description yet.

  • sequence_iduuid or nullOptional

    No description yet.

  • wake_triggerenum or nullOptional

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

  • 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 COMMIT_IMPORT_BATCH.
  • 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 49d871e9cf4ff307