DealSleek API · Leads

Preview

Stage Inbound Email Capture

Stage an inbound mail from the owner's opted-in mailbox as a pending capture for review.

POST/api/v1/leads/dispatch

Authorization

Minimum role
Sales repThe caller must hold this role or a higher one.
Action
STAGE_INBOUND_EMAIL_CAPTURE

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

  • capture_iduuidRequired

    No description yet.

  • owner_user_iduuidRequired

    Mailbox owner — may release the capture alongside TenantAdmins.

  • payloadobjectRequired

    captured_leads.raw_payload for an inbound-email (BYOE) capture. Built deterministically from the hydrated Message — never from AI output — and compared byte-for-byte on release, so a reviewer approves exactly what was staged. The mail body is NOT copied: it stays in messages.

    6 child fields
    • fromAddrstringRequired

      No description yet.

    • mailboxIduuidRequired

      No description yet.

    • messageIduuidRequired

      No description yet.

    • snippetstringRequired

      No description yet.

    • subjectstringRequired

      No description yet.

    • receivedAtRfc3339string or nullOptional

      Provider-stamped receive time; None when the provider gave none.

  • tenant_iduuidRequired

    No description yet.

  • overall_confidencenumberOptional

    No description yet.

    Default
    0
  • parsed_identityarray of objectOptional

    No description yet.

    3 child fields
    • confidencenumberRequired

      No description yet.

    • kindenumRequired

      Vocabulary of identifier types we recognise on a lead. Adding a new kind here is a deliberate workspace-level decision — every matcher, dedup heuristic, and UI render branch must learn the new variant.

      Allowed values
      • EMAIL
      • PHONE
      • LINKEDIN_URL
      • TWITTER_HANDLE
      • DOMAIN_EMAIL
      • EMPLOYEE_BADGE
      • O_AUTH_SUBJECT
      DOMAIN_EMAIL
      Email at a company domain — separated from generic Email so we can boost confidence on company-domain matches.
      EMPLOYEE_BADGE
      Employer-issued badge / SSO sub identifier.
      O_AUTH_SUBJECT
      OAuth subject claim — stable across vendor logins.
    • valuestringRequired

      No description yet.

  • parsed_signalsarray of objectOptional

    No description yet.

    3 child fields
    • evidencestringRequired

      No description yet.

    • intensitynumberRequired

      No description yet.

    • topicstringRequired

      No description yet.

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 STAGE_INBOUND_EMAIL_CAPTURE.
  • 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 rep 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