Click-to-call
Open a secure Ringee dialer for a contact from your CRM
Request
contactExternalId or phoneNumber. If both resolve a destination, the explicit phoneNumber wins. An unknown contactExternalId can still be used with phoneNumber, and the returned contactId will be null.
Response
A successful request returns 201 Created:Agent resolution
ownerExternalId is accepted in the payload but is not yet wired to a resolution strategy — sending it without agentEmail returns 422. Use agentEmail.
Caller ID resolution
An explicitfromNumber is normalized and used as the caller ID. When you do not send it, Ringee picks one in this order:
- the agent’s first active verified caller ID in that workspace;
- any purchased number on the workspace;
- otherwise the request fails with
422 No caller ID or purchased number is available for this workspace.
Wiring the button
Keep the call server-side
cik_live_ key must never reach the browser.Pre-open the tab
Guard the button
Never auto-dial
Errors
Next steps
Receive the call back
Embed the dialer instead
Authorizations
The cik_live_ secret key of a Custom Integration. Shown once at creation. Server-side only.
Body
The contact's id in your CRM. Resolves to a Ringee contact if you previously synced it with contact.upserted.
"ext_contact_42"
Destination number. Required unless contactExternalId resolves to a contact that already has one. When both are provided, this explicit number wins.
"+14155550123"
Email of the Ringee user who will place the call. Required for organization workspaces unless ownerEmail is provided. Take it from your authenticated session, never from a value the browser sent.
"rep@example.com"
Caller ID to use. Defaults to the agent's first active verified caller ID, then any purchased number on the workspace.
"+14155550100"
Alias for agentEmail, used when your CRM models this as a record owner.
Accepted but not yet wired to a resolution strategy. Sending it without agentEmail returns 422 — use agentEmail.
Response
A dialer session was created.
The Ringee contact, when contactExternalId resolved to one. null otherwise.
"6b2f8f1e-6a2e-4f1c-9a3d-2d1b0c7e4a55"
The Ringee user who will place the call.
"a91c4d77-1f0b-4a2e-8c3d-77b1e2f4a9c0"
Destination normalized toward E.164 when possible.
"+14155550123"
The caller ID Ringee selected.
"+14155550100"
The URL to open. Valid for 5 minutes.
"https://app.ringee.io/dashboard/dialer?session=eyJhbGciOi...&to=%2B14155550123&from=%2B14155550100"
The signed session, already embedded in dialerUrl. Do not expose this field separately, persist it, or write it to logs — it authorizes a call on the agent's behalf.
Expiry of the dialer session.
"2026-05-23T14:35:00.000Z"

