DealSleek API · Connectors
PreviewRegister Connector
Register a tenant-scoped third-party connector after its authorization flow completes.
/api/v1/connectors/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
REGISTER_CONNECTORfor this endpoint.Content-TypestringRequiredAlways
application/json.X-Idempotency-KeystringRequiredA 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
kindenumRequiredNo description yet.
- Allowed values
- CRM
- ERP
- COMMUNICATION
- SOCIAL
- AI_MODEL
- DATA_PROVIDER
namestringRequiredNo description yet.
- minimum length 1
tenant_iduuidRequiredNo description yet.
binding_iduuid or nullOptionalNo description yet.
connected_emailstring or nullOptionalNo description yet.
fallback_owner_iduuid or nullOptionalNo description yet.
metadataanyOptionalNo description yet.
primary_owner_iduuid or nullOptionalKey-person risk: who answers for this binding, and who inherits it when they leave.
primary_owner_iddefaults touser_id(the operator who connected it) when omitted.providerenum or nullOptionalNo description yet.
- Allowed values
- google_ads
- linkedin_ads
token_expires_in_secondsinteger or nullOptionalProvider-reported lifetime of the access token just issued. The engine derives
metadata.token_expires_atfrom it; a missing or non-positive value means "provider did not say" and stamps nothing.user_iduuid or nullOptionalPer-binding metadata the boot-time scan needs to reconstruct the in-memory registry without re-running OAuth: the operator user_id (RBAC), the platform string (drives provider-specific code paths), the connected email (UI label), and free-form
metadatafor future per-platform fields (Google Ads login-customer-id, etc.). All optional so existing callers / tests stay compiling.
Response
Status 202. The command was applied. The body is the record as it stands after the command: a JSON object whose fields depend on the record.
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. SendREGISTER_CONNECTOR. - 400
DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types. - 400
IDEMPOTENCY_KEY_REQUIREDX-Idempotency-Keyis missing. - 401The access token is missing, expired or not valid.
- 401
L1_AUTHThe caller's role is belowtenantadminor 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.