Skip to main content
Version: 5.x

Event Scenarios

The following page depicts roughly at which point events will be dispatched to an API consumer. Workitem and agent state events are dispatched as they are received from Finesse.

Agent logs in, changes state to Ready, changes state to Not Ready and logs out

sequenceDiagram participant CTI participant Agent participant API Consumer Agent-->>+CTI: Log in CTI->>+Agent : Channel state Not Ready Agent->>+API Consumer: agentStateChange( Not Ready ) Agent-->>+CTI: Set channel to ready CTI->>+Agent : Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready ) Agent-->>+CTI: Set channel to Not Ready CTI->>+Agent : Channel state is Not Ready Agent->>+API Consumer: agentStateChange( Not Ready ) Agent-->>+CTI: Logout channel CTI->>+Agent : Channel state Logout Agent->>+API Consumer: agentStateChange( Logout )

Incoming call in Ready state

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect

Incoming call in Not Ready state

sequenceDiagram CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate Agent-->>+CTI: Answer call CTI->>+Agent: Channel state is Talking Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect

Incoming call in Ready state without Wrap-Up

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect Agent-->>+CTI: End call CTI->>+Agent: Call ended Agent->>+API Consumer: workitemEnd CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )

Incoming call in Ready state with Wrap-Up

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect Agent-->>+CTI: End call CTI->>+Agent: Call ended CTI->>+Agent: Channel state is Work Ready Agent->>+API Consumer: agentStateChange( Wrap-Up ) Agent->>+API Consumer: workitemWrapup Agent-->>+CTI: Set Wrap-Up reason CTI->>+Agent: Call data updated Agent->>+API Consumer: callVariableChanged Agent->>+API Consumer: wrapupDataChanged Agent-->>+CTI: Leave Wrap-Up CTI->>+Agent: Wrap-Up ended Agent->>+API Consumer: workitemEnd CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )

Outgoing call in Ready state

sequenceDiagram participant CTI participant Agent participant API Consumer Agent-->>+CTI: Dials CTI->>+Agent: Channel state is Not Ready Agent->>+API Consumer: agentStateChange( Not Ready ) CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Outgoing call Agent->>+API Consumer: workitemCreate CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect Agent-->>+CTI: End call CTI->>+Agent: Call ended Agent->>+API Consumer: workitemEnd CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )

Outgoing call if beforeDial event is subscribed

sequenceDiagram participant CTI participant Agent participant API Consumer Agent-->>Agent: Dials (Call not initiated) Agent->>+API Consumer: beforeDial API Consumer-->>+Agent: dialOrConsult Agent-->>+CTI: Initiate Call CTI->>+Agent : Outgoing call Agent->>+API Consumer: workitemCreate

Pause / Resume call

sequenceDiagram participant CTI participant Agent participant API Consumer Agent-->>+CTI: Pause call CTI->>+Agent: Call paused Agent->>+API Consumer: workitemPause Agent-->>+CTI: Resume call CTI->>+Agent: Call resumed/active Agent->>+API Consumer: workitemResume

Update call variables

sequenceDiagram participant CTI participant Agent participant API Consumer Agent-->>+CTI: Update call data CTI->>+Agent: Call data updated Agent->>+API Consumer: callVariableChanged

Unanswered call in Ready state (RONA)

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate CTI->>+Agent: Call ended Agent->>+API Consumer: workitemEnd CTI->>+Agent: Channel state is Not Ready Agent->>+API Consumer: agentStateChange( Not Ready )

Transfer call (warm/consultative transfer) in Ready state

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate (1) Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect (1) Agent-->>+CTI: Initiate consultation call Agent->>+API Consumer: workitemPause (1) Agent->>+API Consumer: workitemCreate (2) CTI->>+Agent: Consultation call answered Agent->>+API Consumer: workitemConnect (2) Agent-->>+CTI: Complete transfer Agent->>+API Consumer: workitemEnd (2) Agent->>+API Consumer: workitemEnd (1) CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )

Transfer call (cold/blind transfer) in Ready state

sequenceDiagram CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate (1) CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect (1) Agent-->>+CTI: Initiate blind transfer Agent->>+API Consumer: workitemPause (1) Agent->>+API Consumer: workitemCreate (2) Agent->>+API Consumer: workitemEnd (2) Agent->>+API Consumer: workitemEnd (1) CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )

Conference in Ready state

sequenceDiagram CTI->>+Agent: Channel state is Reserved Agent->>+API Consumer: agentStateChange( Active ) CTI->>+Agent : Incoming call Agent->>+API Consumer: workitemCreate (1) Agent-->>+CTI: Answer call CTI->>+Agent: Call answered Agent->>+API Consumer: workitemConnect (1) Agent-->>+CTI: Initiate consultation call Agent->>+API Consumer: workitemPause (1) Agent->>+API Consumer: workitemCreate (2) CTI->>+Agent: Consultation call answered Agent->>+API Consumer: workitemConnect (2) Agent-->>+CTI: Conference Agent->>+API Consumer: workitemResume (1) Agent->>+API Consumer: workitemEnd (2) Agent-->>+CTI: Leave conference Agent->>+API Consumer: workitemEnd (1) CTI->>+Agent: Channel state is Ready Agent->>+API Consumer: agentStateChange( Ready )