Skip to main content

Authenticate an integration

Send your Cconnect token in the authorization header over HTTPS:
Customer endpoints do not accept member session cookies, query-string tokens, Meta tokens, mailbox passwords, or SIP bridge secrets as API credentials. Credentials belong to one company. The server derives the company from the credential; request bodies cannot choose a company. An optional X-Organization-Slug header must match the credential’s company.

Scopes and products

Scopes are independent: tickets:write does not grant tickets:read. Linking a new ticket to a conversation also requires conversations:read and Chat entitlement. Subscription changes and expired trials are checked on subsequent requests.

Create a credential

Only an active, email-activated company administrator can manage credentials. The backend refreshes the administrator’s role from the database, so an old browser session cannot retain these privileges after a demotion. A dedicated Settings screen is not included yet. Until it is connected, an administrator can use the management API from the authenticated Cconnect application. For example, run this in your browser’s developer console while signed in on the trusted company application origin:
This requires the application to route /api/settings/api-credentials to the updated backend. The developer portal is for documentation; it does not manage member sessions. The response contains data.credential metadata and data.token. The server stores only the token’s SHA-256 hash. Subsequent list requests do not return the token. Credentials expire after 90 days by default. An optional expires_at timestamp must be more than one minute and no more than 365 days in the future. You can have up to 20 active credentials per company.

List and revoke credentials

Use your administrator session and the X-Cconnect-Admin: true header: A bearer integration credential cannot issue or revoke credentials. Management requests from untrusted browser origins are refused.

Rotate a token

Create a replacement with the required scopes, update your integration’s secret manager, verify the replacement with GET /api/v1/me, then revoke the previous credential. Newly authenticated requests reject revoked tokens; requests already in progress may finish.