Add Multiple Participants to a Messaging Conference
With Conferencing for Bring Your Own Channel for CCaaS, a rep adds one or more additional reps to an ongoing Messaging session to help resolve customer concerns. They can directly add a new rep, add a rep by adding a queue, or add a rep by initiating an Omni-Channel flow. Adding a rep provides a warm transfer, where information is passed between reps before one rep leaves the session. Or multiple reps can stay in the session with the messaging end user. These instructions are for implementations with partner-owned routing (ConversationChannelDefinition.routingOwner
is Partner
). If Salesforce controls routing, no implementation is necessary.
Bring Your Own Channel for CCaaS doesn’t support conferencing with external contacts. Reps can only have a conference with other users in the same Salesforce org. Like all enhanced Messaging channel types, Bring Your Own Channel for CCaaS also doesn’t currently support conferencing with AI agents or bots.
-
When you create the ConversationChannelDefinition record, set these fields to support the Conferencing feature.
- To specify that your integration supports conferencing, set
isConferenceSupported
totrue
. - To set your own limit for how many participants can be in a Messaging session conference, set a number value for
MaxParticipantsForCnfrOverride
. This field is needed only if you want to use a different limit instead of the platform limit. If this field isn’t set or is set to a value higher than the Messaging platform limit, the integration defaults to the Messaging platform limit of how many participants can be in a Messaging session conference at one time. See Service Cloud Messaging Limits and Considerations for the platform limit.
- To specify that your integration supports conferencing, set
-
Reps search for contacts to include in the conference in a Start Conference destination list.
To support this list, modify your connector code for the Service Cloud Connector API method getContacts() to filter which contacts can be requested for a conference. For Contact, the
listType
parameter has possible values ofTransfer
,Conference
, orAll
. This parameter specifies whether a rep can be listed as a transfer destination, as a contact that can be added to a messaging conference, or both (All
). -
Implement your connector to listen for a routing requested event that fires when a rep selects another rep, a queue, or a flow from the Request Conference target list. This event has
routingType
set toConference
to signify that this request is for a conference. -
Perform these Interaction Service API calls in the order listed when the rep clicks on the conferencing target.
-
To start a conference with a flow or queue, call the Route API (
POST /api/v1/route
) withroutingType
set toConference
. Don’t call this API for adding a rep to a conference directly.- To start a conference using a flow, use this API call to execute the
flowId
provided by the routing requested event. Provide a fallbackqueueId
in case the Omni-Channel flow fails. The Omni-Channel flow uses the logic in the flow to route the conversation to a rep or queue. The flow returns thepsrId
with theuserId
(rep) orqueueId
(queue). - To start a conference using a queue, specify the
queueId
of the target queue provided by the routing requested event.
- To start a conference using a flow, use this API call to execute the
-
Call the agentWork API (
POST /api/v1/agentWork
) withroutingType
set toConference
to create an AgentWork record when the system finds a rep to add to the work item. -
Call the routingResult API (
POST /api/v1/routingResult
) withroutingType
set toConference
to notify Salesforce whether adding a participant to the Messaging session succeeded or failed.
-
-
If a rep cancels a conference that they requested, Salesforce sends a RoutingResult event with
CancelReason
set toCancel
.- If the AgentWork is already created when the rep cancels the conference request, call the Cancel AgentWork API (
PATCH /api/v1/agentWork
).
- If the AgentWork is already created when the rep cancels the conference request, call the Cancel AgentWork API (
-
Listen for a work declined event sent through onAgentWork() to note when a rep that’s requested to join a conference declines, and handle declining the work.
-
If a rep that’s requested for a conference doesn’t accept the conference request, call the Cancel AgentWork API (
PATCH /api/v1/agentWork
). -
If the conferencing request otherwise results in an error, call the Clear Routing API (
DELETE /api/v1/route
) to delete the pending service request (PSR) record. Specify thecancelReason
as part of the API call.
See Also
- Salesforce Help: Add Conferencing to Messaging Sessions
- Service Cloud Connector API: getContacts()
- Service Cloud Connector API: Contact
- Interaction Service API
- GitHub: Interaction Service APIs