The call flows canvas is a sophisticated and powerful tool for designing the workflow for your inbound calls. The flexibility of calls flows means you can customize your call flow to match your exact needs.
Over the years, we at Ringba have identified some best practices that anyone can use to optimize your call flows. This article contains tips for building your best call flows. Before you use this article, you should understand how the Call Flows feature works and be familiar with all the nodes.
This article contains the following sections:
Tips by Task
This section contains tips for using call flows to accomplish some common tasks.
Prompting the caller for information
Many call flows use a Gather Node ask the callers to provide some kind of information about themselves to help direct the call. For example, you might ask the caller to enter their age or ZIP Code. Remember these tips as you're designing you call flow to prompt the caller for information:
- Prompting a caller for information increases the likelihood the caller will hang up. Make sure you prompt the caller only if you really need to. For example, if your publisher already collected the caller's ZIP Code on their landing page and sent it with the call, you should use that value rather than asking the caller to give it again.
- You could also use ICP to collect information you need about the caller. Set up your call flow so that the Gather Node prompts the caller only if the ICP ping fails to gather the required information.
- Use the Router Node to skip gathering information you already have and to save money on ICP. You set up the Router Node to direct the call based on the information you already collected.
Thwarting robo-dialers
Robo-dialers might dial your number. This kind of call just takes up your time and resources, especially if they accidentally convert.
Some Ringba users thwart robo-dialers using a Splitter Node. The main use case for the Splitter Node is to set up an A/B test, but you can also use it to require a percentage of your callers to press a key to continue.
By asking only some of your callers to press a key, you avoid bothering all your callers, but you also train the robo-dialers that your phone number is not worth dialing.
If you set up this solution, all the branches of the Splitter Node go to the same Dial Node.
Retrying calls that didn't connect
If your Dial Node fails to connect to any target in the routing plan, you might to use the Go To Node to send the flow back to the Dial Node again to see whether any targets have become available. However, sending a Dial Node directly back to itself can get the call into infinite loop and cause your account problems.
You can avoid this problem by adding a Play Node before returning to the Dial Node. You can use the Play Node to play a short message (such as “please wait while we transfer your call”) before you try to dial again.
Not only does the short message stall for a few seconds to let a target open up, but it also is a better experience for the caller.
Another important way to avoid the infinite loop problem to is to set the Count property on the Go To Node to a small number, 5 or less.
Another approach we have seen accounts use is to set up multiple Dial Nodes with different targets to prevent calls being lost. If the first Dial Node fails, they try the next one. They put Play Nodes in between so the caller doesn’t hear silence.
Capturing dropped calls
Unfortunately, you are going to drop a call sometimes. When no targets are available to take a call, you can use the Pixel Node and Voicemail Node to capture a list of dropped calls, including all the call data. You can then export this data for use in an outbound campaign in your outbound call application.
Tips by Node
The following sections contain best practices related to specific nodes you can add to your call flow.
All Nodes
In general, you should try to keep your call flows simple and readable so the path of a call flow is easy to trace. To keep the nodes aligned, always place the next node to the right of the node before. This makes your call flow more readable as they grow.
Consider using the campaign name in your call flow name. For example, if the campaign is called Service_Offer, name your call flow Service_Offer_Call_Flow. A naming convention like this helps you keep track of which call flow goes with each campaign. Try not to re-use call flow names because it makes troubleshooting problems very difficult.
When you add nodes to your call flow, you can give the node a name. As a best practice, you should populate that Name field. You will be happy you did when you are reviewing your call log details later.
Dial Node
If your call flow needs to dial multiple times, you may be able to reuse your Dial Node by using a Go To Node. Each Dial Node you create has its own settings, so reusing the Dial Node means you don't have to re-do the configuration each time, which is time-consuming and risks inconsistency.
Keep in mind, however, that when you use the Go To Node to return to a Dial Node, the call proceeds through all the steps in the call flow after the Dial Node, even if the call has already gone through them before.
Gather Node
When you create a Gather Node, you can configure a field called Number of Digits. If you know the number of digits, such as for a ZIP Code, you should enter the value in this field. If Ringba knows how many digits to expect, it can stop waiting for more input and move on to the next node.
If you don't enter a value in this field, the system continues waiting for input. Eventually the call flow continues when enough silence passes, but you can speed things up and improve the caller experience by cutting out the wait.
If you are capturing the ZIP Code, make sure to enter this exact value in the Gather Tag Name field:
zipcode
You must enter this value, without spaces and all lowercase, so the ZIP Code value is available for Tag Routing Filters.
Go To Node
The Go To Node lets you return the call to an earlier point in the call flow. You should use the Go To Node whenever possible to keep a singular path and avoid duplicating nodes.
It is possible to connect the Go To Node to a node that wasn't used earlier in the flow. For example, you could insert a Go To node between any nodes in the call flow and keep the call flow moving forward. If you do this, a triangle warning appears on the Go To Node. You will see a Node Failed Validation message at the top of the canvas.
This error does not prevent the call flow from working properly. However, there is no benefit to using a Go To Node this way, so if you still see this error after you have completed building and testing your call flow, you can remove the unnecessary Go To node.
JS Node
The JS Node provides a lot of options for transforming Gather data, adding tags to the call, and other processes you can complete with snippets of JavaScript.
- Consider using the JS node when you need a single piece of information from a Gather node but you need to change the input from the caller into another word. For example, if your Gather Nodes asks callers to press 1 for New York or press 2 for New Jersey, you can use the JS Node to take the 1 as input but add New York as a tag to the call.
- The JS Node can also help you when your buyers need your call data in a different format than what you have. You can write a small JavaScript snippet to transform the data to the format the buyer needs before sending the data on with the call.
- When you need a specific age for a call tag but all you know is the age range, you could use the JS Node to generate a random number for an age in a range.
- For monitoring your call flow performance, you could insert your own custom tags at a place in the process to help you figure out what point in the call flow callers drop.
See the JS Node Examples article for example JavaScript snippets for common use cases that you can use to help you get started.
Router Node
If you want to route calls based on information, such as the state the caller is calling from, you don’t have to create different campaigns; you can use the Router Node.
Router nodes aren't just for states, though. They can be based on any kind of information. For example, they can route calls based on hours to send the call to open targets.
As you work with your Router Nodes, you should understand that system checks the filters from top to bottom. If a call matches the first filter, it will never get to the second filter.
Voicemail Node
The Voicemail Node is not like the voicemail you're used to on your personal phone. If a caller leaves a voicemail through the Voicemail Node, Ringba sends an email to all the admins on the account. The email says the voicemail was left and includes a link to the recording. You can use the Ringba call transcription feature to get a text version of the message.
Call Flows FAQ
Can I reuse call flows across multiple campaigns?
Ringba lets you use the same call flow on multiple campaigns.
However, if the call flow contains only one Dial Node, you might not really need different campaigns.
By the same token, if you are adding a lot of different Dial Nodes to the same call flow to accommodate multiple campaigns, you are probably making your call flow too complicated and error-prone.