The examples show the structure; replace names such as “Sales” or “Service” with your own. “›” stands for a connection; nodes and outputs are in bold.
Call with a voice menu
Mapping: the service number with the skill “Service” and the language English.
Main path:
- Start › Inbound call › Background Music.
- › DTMF Character with the announcement “For orders, press 1. For all other matters, press 2.”
- Character 1 › Set Skill “Sales” › Queue.
- Character 2 and Timeout › Queue — the skill “Service” comes from the mapping.
- Start › Transferred call › also to Background Music.
Event paths:
- Queue Exit Event › Out of business hours, Holiday closed and Manually closed › Media Playback “We are currently unavailable …” › Terminate.
- Too many waiting, Too long waiting and Timeout › Media Playback “Please call again later.” › Terminate.
- No agent logged in › Voicemail › Success › Terminate.
Offering a callback
Instead of turning callers away when the waiting time is too long, the flow offers a callback:
- Queue Exit Event › Too long waiting ›
Branch with the expression
!string.IsNullOrEmpty(CallerNumber). - True › Text To Speech “We will call you back as soon as possible.” › Virtual queue in Callback mode.
- False › Voicemail › Success › Terminate.
- Start › Virtual call › Queue — if the customer calls again before the callback, this takes them straight to the queue.
If the customer should choose a time slot, use the Callback scheduler instead of the virtual queue: Scheduled › confirmation announcement › Terminate, Timeout › Voicemail. The time slots come from the Callback limits of the skill.
Position announcement
Every 30 seconds, the caller hears their position in the queue:
- State Change Event › Waiting › Start Timer with a timer “Position”, 30 seconds, Repeat.
- Timer Elapsed Event › Position › Text To Speech “You are in position %Position%.” › Wait for termination.
The background music keeps playing and gets quieter for the announcement. When an agent takes over, the timers end.
Consent to recording
- Start › DTMF Character with the announcement “If we may record this call for quality assurance, press 1; otherwise, press 2.”
- Character 1 › Allow recording › Start Recording with the Recording source All › Queue.
- Character 2 and Timeout › Queue.
Without consent, the agent does not record the customer’s voice either.
Recognizing customers
The flow looks up the caller in your customer database:
- Start › Database Read with the display name “Customer”: the customer
table, filter “Phone equals
?CallerNumber”, columns Name, Number and AccountManager. - Success › Attach data with the entries “Customer” =
Customer.Nameand “Customer number” =Customer.Number› Set Customer with%Customer.Name%› Queue with Preferred agents%Customer.AccountManager%and Preferred Agent Timeout 30 seconds. - No Result › Queue.
The agent sees the name and customer number in the Attached data module; if the account manager is free, they get the call first.
Email with confirmation of receipt
Mapping: the mailbox “service@…” with the skill “Service”.
- Start › Output › Move to Folder with Filter
Yes: keywords
newsletter|abwesend|out of officein the Subject, target “Archive”. - Moved › Terminate with the Reason Auto responder detected.
- Not moved › Automatic answer with the confirmation of receipt ›
Branch
Subject.Contains("Rechnung"). - True › Set Skill “Accounting” › Queue; False › Queue.
Connect Sent and Not sent of the automatic answer — otherwise the path ends if sending fails.
Chat with a selection menu
- Start › Output › Digit recognition with a boilerplate “How can we help you? 1 = order, 2 = technical support”.
- Character 1 › Set Skill “Sales” › Queue.
- Character 2 › Set Skill “Technical support” › Queue.
- Timeout › Automatic answer “We did not receive a reply. Feel free to write to us again.” › Terminate.
Under End of chat in the flow properties, you choose the text the customer receives at the end.
Notification at the end
A call flow with a voicemail informs the team by email:
- Voicemail with External recipient (optional) “team@…” sends the recording itself as an MP3 file.
- Or: End Event › Send Email with a boilerplate that contains
%CallerNumber%and%Skill%. System variables belong in the boilerplate; in the Subject field, the flow only replaces its own variables.