In my last post I reviewed Dialogflow's new Phone Gateway feature. Dialogflow makes it dirt simple to add a phone number to a bot, but the Phone Gateway feature is pretty limited (and it is in Beta after all).
What if you like Dialogflow for building your bot/IVR, but do not want to use Google's numbers or PSTN gateway service? There are a growing number of third-party alternatives looking to expand voicebot capabilities into business IVRs. Google announced a number of telephony platform partners that are interfacing with it as part of Google's Contact Center AI initiative. However, these programs are all in Beta with very limited access and appear to largely be aimed at existing large contact center customers of these companies. VoxImplant and SignalWire are 2 CPaaS options that started down this path much earlier and have products they can show publicly.
Alexey of VoxImplant gave a preview of their Dialogflow Connector in an earlier post here. A review of SignalWire was a logical next step, so here it is.
SignalWire is from the team behind FreeSWITCH, the popular open source telephony platform. SignalWire is a CPaaS based on a lot of that software that has been tuned for purpose. It was only launched late this July. It is currently in a closed Beta, but that should be ending within weeks. Developers can request a login at signalwire.com
I provide a qualitative, less-technical assessment of SignalWire's Dialogflow connector in the first part below and a short walkthrough further down.
I see a few benefits in using SignalWire's connector vs. Dialogflow's Phone Gateway.
You can add as many phone numbers to your agent as you want. The Dialogflow Phone Gateway only lets you pick one per agent. Multiple numbers for the agent allows you to localize them for a geography. Running multiple numbers on the same endpoint is also critical for call tracking in campaigns where specific phone numbers are tied to ads.
Potential SMS integration
Dialogflow provides their Phone Gateway for voice calling and a number of options for SMS interaction. Surprisingly, there is no way to combine voice and SMS on the same number with any of their standard integration options. SignalWire does not have SMS-to-Dialogflow-chatbot functionality built in natively, but this is possible to build via their API interfaces (in what I would say would take a few hours if you know the Dialogflow APIs).
Currently SignalWire only charges $0.005 per minute for the call and their phone numbers are currently free. If you want a permanent number that doesn't expire after 30 days, Dialogflow charges you $0.05 per minute. The reality is SignalWire is not charging users for their Dialogflow fees. I do not see how this is sustainable, but the SignalWire team assures me they will be competitive with Dialogflow's Phone Gateway rate. In any case, you can't beat the price for now - ⅒ of the Dialogflow Enterprise Essentials plan price).
Dialogflow's GUI lets you see intent history and they have the ability to export their logs to Stackdriver on Google Cloud or Chatbase. I have not found an easy way to just see sessions that came in over the phone or to filter them by phone number. SignalWire gives you logging by phone number with a history of the interaction. Unfortunately that interaction does not include the Dialogflow responses. Still, the provided speech detection inputs are helpful for debugging and identifying problem callers.
No Google Voice integration issues
This is not a problem for most, but its a huge one for me. Dialogflow doesn't work when you call it from a Google Voice number. I don't have good reception in my office and generally only use Google Voice, making testing of the Dialogflow Phone Gateway difficult. Its nice to be able to call the agent number and have it work no matter how I dial.
I ran into a few bugs that I reported. To be fair, SignalWire is in a closed Beta and I suspect most of these issues will be quickly addressed.
Dialogflow lets you choose from multiple Text-to-Speech (TTS) voices in their audio responses. Unfortunately this is limited to US-English if you have the phone gateway. SignalWire currently only uses the default US voice. So if you set your Dialogflow bot to something different than the default you won't hear that voice. The SignalWire team says a fix on this is imminent.
Say a welcome message repeats on silence
The "Say a welcome message" field you set in the SignalWire agent setup automatically repeats when it the user does not say anything for several seconds. This make it a more useful reminder prompt when the user goes silent. Dialogflow has some of those capabilities built in already, so I am not so sure another set of prompts outside bot framework will be helpful. Even at call start, when SignalWire says this message will be played, I think it is better to just let the Dialogflow Welcome intent handle the transition. Fortunately you can just turn this off if you don't like it.
Unverified app warning
When authenticating with Dialogflow, it gives an unverified app warning as shown below:
The SignalWire team say this is a recent bug they are working with Google to fix it.
This was all very easy to setup. Then again the Dialogflow Phone Gateway was easy too. So why bother with using an external party like SignalWire? I think the most compelling reason to use SignalWire is the ability to influence its development. Team behind it does custom development, so if you really need something you can pay them to do it. That's not an option with Google.
In addition, Google is not a CPaaS and is unlikely to go too deep down that path (thus partnering with some telephony platforms instead). Just being able to add some programmability to the process is also helpful vs. what Dialogflow has today. SignalWire's programmability on Dialogflow is pretty limited today, but its not hard to see how this will change quickly the way they have their system setup. The SignalWire team tells me they will be adding more logic commands for Dialogflow to let you invoke it like the other recording and conferencing parts of their offer. That would let you make a recording of the whole call or join an agent into the Dialogflow session.
Overall I think there is a lot of potential for this category. There are a lot of crappy IVRs with complex telephony environments. If you want to add a voicebot to these environments, some kind of RTC-bot gateway is required, and that is what we are starting to see.
First you will need to setup an account. After a few confirmation emails and some Space and Project setup you should come to a screen like this where you can select a Dialogflow agent.
If you click on the import you'll need to authenticate to your Dialogflow account. As mentioned above, you might get a "This app isn't verified" screen where you need to click on Advanced to proceed. Assuming you trust the SignalWire team up to this point, it's fine to proceed.
After that you should see the list of Agents:
Just select the ones you want to make available and then configure them in this screen:
Here you have the option of saying a welcome message and identifying some text to feed to Dialogflow when the call starts. As mentioned earlier, the "Say a Welcome Message" is better used as a silence prompt if you use it at all. In my bot, "Hello" and similar phrases are tied to the Default Welcome Intent in Dialogflow. Adjust or turn off as needed for yours.
That's all you need to do to connect to Dialogflow; now we just need to get a phone number and assign it to the Dialogflow agent. That is also super simple - just go to Phone Numbers and enter an area code:
Select the one you want to Buy - as mentioned above, its free for now, so there is no buying.
Then you'll come to a new phone number setup screen. Again, no rocket science here - just fill in the descriptions, pick "A DialogFlow Agent" for handling incoming calls, and select the appropriate agent.
Make a call to your number and verify it works. That's it!
About the Author
Chad Hart is an analyst and consultant with cwh.consulting, a product management, marketing, and and strategy advisory helping to advance the communications industry. He recently co-authored a study on AI in RTC - check it out at krankygeek.com/research.