Using Email and TaskRouter together | Appendix | Web Sequence Diagrams

If you want to customize any of the flows described here for your own use, you can paste the below descriptions into websequencediagrams.com and edit from there.

Using Email and TaskRouter together 

title 2-way Email with TaskRouter

Customer->+Email API: Customer sends email
Email API->App: Email API webhooks your app \n server with JSON of email
App->Twilio: Look for open tasks from this sender
alt New Conversation
    App->Twilio: Create New Chat Channel
    App->Twilio: Add Customer as member to \nChannel with email as identity
    App->Twilio: Create Task w/ Channel id \nas attribute
    note over Twilio, Agent: 
        TaskRouter searches 
        for available agent 
    end note
    Twilio->+Agent: Reservation Request
    Agent->Twilio: Accept and Join Chat Channel
else Existing Conversation
    Twilio->App: Return task, extract chat \nchannel from attribute
    App->Twilio: Push Email as Message into Channel
    Twilio->Agent: MessageAdded
end
note left of Agent: Agent Replies
Agent->Twilio: add message to channel
Twilio->App: messaged added event
note over App: 
    If message added by agent
    pull contents of message
end note
App->Email API: send text of reply\n as Email to API
Email API->Customer:Customer receives email reply
note over Customer, Agent: Customer or Agent Ends Conversation
App<->Twilio: Store transcript of email thread \nin CRM by saving chat transcript
App->Twilio: Close Chat Channel
App->Twilio: Move task to wrapup
Agent->Twilio: Move task to complete

 

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.