Becoming a Provider
CCaaS API Recommendations
Below, we have outlined key recommendations for a contact center’s data sharing. It’s based on three types of connectivity:
- Webhook events for near-realtime integration
- API routes to gather more information about events
- API routes to sync and backfill any missing webhooks or historical data
Below is incomplete in absence of knowing intricacies of each contact center, but provides a solid footing for data sharing.
Terminology
Different CCaaS platforms have different terminology, so for clarity and consistency below is a glossary of potential confusing terms:
- Agent: Whoever is handling a conversation on behalf of the company, whether real or virtual.
- Consumer: The customer, member, client, or whoever is on the other end of the conversation not on behalf of the CCaaS client.
- Interaction: This is a start-to-finish connection between a consumer and an agent, often referred to as a segment.
- Engagement: This is a start-to-finish interaction between a consumer and a contact center. Engagements can have multiple agents (virtual or real), and each of those would have their own interaction.
- Invitee: Someone added to an engagement by an agent.
Webhook events for near-realtime integration
We recommend the following events (more is ok). Some items not provided in webhooks we can query on a schedule. For example, we can operate without “new agent” events, but we will need to pick them up.
- Agent assigned/unassigned to a queue
- Engagement Ended
- Engagement Updated
- After call work complete
Generally, for webhook events we recommend identifiers for organization/client and the relevant thing that was updated or created (engagement or agent). We will then hit typical API routes to gather all the details.
API Routes
For each api route, we will need to query by identifier or some time window (e.g. date updated).
Engagements
Typically, engagements are best described by looking at event log.
- Key identifiers and any necessary metadata:
- Flow(s)
- Disposition
- Queue(s)
- Agent
- Consumer
- Channel
- Direction
- Key Timestamps:
- Start time
- End time
- Recording URL (see below)
- Events (typically a list in order): common examples below, all provided with timestamp
- Queue: assignment/routing, transfer
- Agent events: accept, added someone to call, bridged, connected callback, callback dialing, canceled adding someone, hangup, hold, miss, mute, ringing, unmute
- IVR variable setting
- Consumer events: answer, bridged, callback accepted, callback offered, hangup, ringing
- Invitee Events: accepted, joined
- Voicemail events
- Transfer events and routing paths
A key way to study the completeness of events is whether they can reconstruct the following important time segments of an engagement.

Agents
- Unique identifiers for agents
- Agent information such as name, email and extension/number
Queues
- Real-time queue status updates
- Unique identifier for queues
- Wait times and abandon rates
Additional Nodes
We are more than happy to integrate additional data. The above are the mostly-necessary pieces, and some other platforms have provided additional data like surveys, qa forms, schedule activity and adherence, campaign information, and skills.
Recording Requirements
Sometimes, recordings and/or transcriptions come separately and/or delayed from the engagement data. If so, we will need additional nodes and webhooks accordingly.
Requirements for recordings:
- Secure download capabilities
- Associated engagement id
- Recording start time
- Recording length
Requirements for transcripts:
- Multilingual support
- All segments, included start and end
- Speaker diarization
Updated 24 days ago