The following web sequence diagrams are meant to help better understand a few of TaskRouter's key call control concepts: Blind Transfer and Warm Transfer
If you want to customize any of the flows described here for your own use, you can paste the full descriptions found below each diagram into websequencediagrams.com and edit from there.
Brand new to these call control concepts? We've got you covered: check out our documentation to learn more about blind call transfers and warm transfers.
_45title Blind Call Transfer_45_45_45_45Caller->Twilio: new call_45_45note over Twilio, App: <not shown> create Task_45_45Twilio->App: Reservation request_45_45App->Twilio: instruction:conference_45_45note right of Twilio: Twilio connects agent and caller to conference_45_45App->Twilio: Conference hold conference.participants.customer_45_45App->Twilio: New Task_45_45note right of Twilio:_45_45fill in task.requested_agent or task.desired_queue._45_45Ensure workflow acts on this information_45_45Include conference SID of existing call_45_45and TaskSID of original task_45_45end note_45_45App->Twilio: remove original agent leg from conference_45_45App->Twilio: complete original task (or move to wrap)_45_45note right of Twilio: Task gets assigned_45_45Twilio->App: Reservation request_45_45App->Twilio: instruction:call_45_45note right of Twilio: Agent answers_45_45Twilio->App: webhook for TwiML for answered call_45_45App->Twilio: <Dial><Conference>Original Task SID</Conference></Dial>
_71title Warm Transfer_71_71_71_71Caller->Twilio: new call_71_71note over Twilio, App: <not shown> create Task_71_71Twilio->App: Reservation request_71_71App->Twilio: instruction:conference_71_71note right of Twilio: Twilio connects agent and caller to conference_71_71App->Twilio: Conference hold conference.participants.customer_71_71App->Twilio: New Task_71_71alt Warm Transfer to known person_71_71 note right of Twilio:_71_71 fill in task.requested_agent_71_71 Ensure workflow acts on this information_71_71 end note_71_71else Warm Transfer to queue_71_71 note right of Twilio:_71_71 fill in task.desired_queue._71_71 Ensure workflow acts on this information_71_71 end note_71_71_71_71end_71_71note right of Twilio:_71_71For either option, include in Task:_71_71- conference SID of existing call_71_71- TaskSID of original task_71_71end note_71_71note right of Twilio: Task gets assigned_71_71Twilio->App: Reservation request_71_71App->Twilio: instruction:call_71_71note right of Twilio: Agent answers_71_71Twilio->App: webhook for TwiML for answered call_71_71App->Twilio: <Dial><Conference>Original Task SID</Conference></Dial>_71_71note over Twilio, App: Customer, Agent 1 and Agent 2 in 3-way_71_71App->Twilio: remove original agent leg from conference_71_71App->Twilio: complete original task (or move to wrap)_71_71note over Twilio, App: Customer and Agent 2 in 1:1