Flow Signals

Signals are a way to listen for events that happen and then react to them when they occur. Signals can be caught or thrown. You can design your flow take a certain path based on which signal is caught. Flow signals are thrown and caught by various areas of CxEngage - for example, the Skylight and Flow itself. Flow signals are also used for reporting statistics.

This reference contains a list of the commonly used flow signals available for CxEngage. These signals include ones that you can catch and do things on (for example, catch a resource-acquired so that a work offer can be presented to an agent). Signal handlers exist for the life of the customer flow. With Signal Entries, the signal handler stops picking up new signals when that flow ends even if the interaction is ongoing.

Escalations are a subset of signals which can occur when there is an error in the flow. If an escalation isn't caught, the branch of the flow is terminated. For a list of common escalations, see Flow Escalations.

  • Signal Name: The name of the signal to enter in the Signal Name field of the flow notation. This is the signal being thrown or caught. Signal Name is available in notations such as: Resource Entry, Signal Entry, Intermediate Catch, and Intermediate Throw. Refer to the Flow Designer Reference for a current list of flow notations to identify which use signals.

  • Description: A description of the signal and what action it causes or is a result of.

  • Parameters (Events): Parameters you can include when the signal is thrown. Parameters can be bound to variables when the signal is caught. External sources, like Skylight, send signals to flow through the Interrupts API.

Signal Name Description Parameters (Events)
agent-session-end Thrown when an agent ends their session - for example, closing the browser tab. This signal causes the agent to disconnect and ends any pending wrap-up.
{}
auto-state-change-completed When using Auto State Change, this signal is thrown when the agent has been successfully placed back in a Ready state.
Copy
{}
callback-offer-accepted Thrown when the customer accepts a callback request but hasn't yet confirmed their information.
"{
  callbackQueue: {source: expression, value: callbackQueue},
  originalQueue: {source: expression, value: originalQueue}
}"
customer-conversation-end Thrown when the conferenced-in customer leaves during Conference Customer In. For example, if the customer is in a conversation with an agent and disconnects or the last agent disconnects to end the conference (even if the customer remains on the call to complete a CSAT survey or is placed in a new queue).
Copy
{}
customer-disconnect-callback Thrown if customer disconnects during a callback request.
Copy
{}
customer-hold Holds the currently-conferenced customer.
Copy
{resource-id: {source: expression, value: resource-id}}
customer-resume Resumes the currently-conferenced customer.
Copy
{}
customer-transfer Initiates a customer transfer. The same signal is used for cold transfers (transfers) and warm transfers (add participant actions). The transfer-type parameter indicates which should be used.
{}
customer-warm-transfer Initiates a customer transfer. This signal is used specifically for add participant actions (warm transfers).
Copy
{}
dequeue-forced Thrown by Queue Interaction when the Exit Queue notation is used to dequeue a call. This signal must be caught with a decoration on Queue Interaction. If it is not, a dequeue-timeout escalation is thrown.
Copy
{queue: {source: expression, value: queue}}
hold-all-resources Holds all active resources except for those in the 'exempt-resource-ids' list.
Copy
{exempt-resource-ids: {source: expression, value: [resource-id]}}
message-sent Sent by a flow with Send Rich Message when a message is sent.  
message-received Sent by a flow with Send Rich Message when a rich text message has been received.  
message-postback-received Sent by a flow with Send Rich Message when a postback acknowledgement of a message has been received.  
message-delivery-error Sent by a flow with Send Rich Message when there has been a problem sending a message and an error has been received.  
queue-callback-answered Thrown when a callback request is successfully answered by a customer.
Copy
"{
  callbackQueue: {source: expression, value: callbackQueue},
  callbackNumber: {source: expression, value: callbackNumber},
  callbackRequestedTime: {source: expression, value: callbackRequestedTime},
  resource-id: {source: expression, value: resource.id}
}"
remove-resource Thrown by frontend to signal flow to remove an agent from a call. For example, an agent clicking the hang up button in Skylight triggers a resource disconnect.
Copy
{}
resource-acquired Thrown when an applicable resource is found for an interaction.
Copy
{resource: {source: expression, value: resource}
resource-add-participant-end Thrown when a conferenced resource has been successfully added to an interaction.
Copy
"{
  resource-id: {source: expression, value: resource.id},
  resource: {source: expression, value: resource}
}"
resource-hold Holds the target-resource. The resource-id is the agent who is placing the specified agent (target-resource-id) on hold.
{}
resource-mute Mutes the target-resource
{}
resource-resume Resumes the target-resource.
"{ 
  target-resource: {value: resource-id, source: expression}}" 
resource-unmute Unmutes the target-resource.
"{
  target-resource: {value: target-resource, source: expression},
  resource-id: {value: resource-id, source: expression}
}"
silent-monitor-start Indicates that the current interaction is being silently monitored by a supervisor.
Copy
{supervisor: {source: expression, value: supervisor}}
third-party-conference-end Thrown from Conference Third Party if a custom flow is provided and the conferenced resource either disconnects or completes the custom flow.
"{
  customer: {source: expression, value: titan/customer},
  third-party-resource-extension: {source: expression, value: endpoint.value},
  third-party-resource-type: {source: expression, value: endpoint.type}
}"
work-accepted Thrown when a work offer is accepted by a resource.
Copy
{resource: {source: expression, value: resource}}
work-offer-expired Thrown when a work offer times out before a resource can accept or reject.
Copy
{resource: {source: expression, value: resource}}
wrapup-end Thrown when wrap up is completed by the agent.
Copy
"{
  resource: {value: resource, source: expression},
  resource-id: {value: resource.id, source: expression}
}"
wrapup-finished Thrown by Auto Wrap-Up when its time to end the interaction.
Copy
{resource: {value: resource, source: expression}}