Dialogflow Connector

We help companies to connect the Google Dialogflow NLU engine to telephony and system integrators to build pre-trained voicebot templates.
Dialogflow Connector

Best-In-Class Dialogflow ES and CX Telephony Integration

Voximplant offers the greatest flexibility on the market. We’ve natively integrated the Dialogflow ES and CX engines into our telephony so you can easily create rich, natural language conversations using AI into telephony call flows.

Unlock the Full Power of NLU

  • Intercept function calls. Our platform enhances Dialogflow capabilities. For instance, ES doesn’t support a voicebot-to-agent handoff. But with Voximplant, you can intercept this function and forward the call to agents.
  • Easily manage integrations. If you want to integrate business systems to dip into data sources, it’s easier to do so using Voximplant than building complex Dialogflow Cloud Functions. You also save money since Google charges for their Cloud Functions.
  • Build multilingual voicebots. Go global with a single voicebot. Your voicebot can recognize and seamlessly switch to the language the customer is speaking. No one of our competitors can do that.
Inbound call scenario
 require(Modules.AI)  var dialogflowcallhangup  // Inbound call processing VoxEngine.addEventListener(AppEvents.CallAlerting, (e) => {  call = e.call;  call.addEventListener(CallEvents.Connected, ;onCallConnected);  call.addEventListener(CallEvents.Disconnected, VoxEngine.terminate);  call.answer(); })  function onCallConnected(e) {  // Create Dialogflow object  dialogflow = AI.createDialogflow({  lang: DialogflowLanguage.ENGLISH_US })  dialogflow.addEventListener(AI.Events.DialogflowResponse, onDialogflowResponse)  // Sending WELCOME event to let the agent says a welcome message  dialogflow.sendQuery({event : {name: "WELCOME", language_code:"en"} })  // Playback marker used for better user experience  dialogflow.addMarker(-300);  // Start sending media from Dialogflow to the call  dialogflow.sendMediaTo(call);   dialogflow.addEventListener(AI.Events.DialogflowPlaybackFinished, (e) => {  // Dialogflow TTS playback finished. Hangup the call if hangup flag was set to true  if (hangup) call.hangup(); })  dialogflow.addEventListener(AI.Events.DialogflowPlaybackStarted, (e) => {  // Dialogflow TTS playback started }) dialogflow.addEventListener(AI.Events.DialogflowPlaybackMarkerReached, (e) => {  // Playback marker reached - start sending audio from the call to Dialogflow  call.sendMediaTo(dialogflow); }); }  // Handle Dialogflow responses  function onDialogflowResponse(e) {  // If DialogflowResponse with queryResult received - the call stops sending media to Dialogflow  // in case of response with queryResult but without responseId we can continue sending media to dialogflow  if (e.response.queryResult !== undefined && e.response.responseId === undefined) {  call.sendMediaTo(dialogflow); } else if (e.response.queryResult !== undefined && e.response.responseId !== undefined) {  // Do whatever required with .response.queryResult or e.response.webhookStatus    // If we need to hangup because end of conversation has been reached    if (e.response.queryResult.diagnosticInfo !== undefined && e.queryResult.diagnosticInfo.end_conversation == true) {  hangup = true; }    // Telephony messages arrive in fulfillmentMessages array    if (e.response.queryResult.fulfillmentMessages != undefined) {  e.response.queryResult.fulfillmentMessages.forEach((msg) => {  if (msg.platform !== undefined && msg.platform === "TELEPHONY") processTelephonyMessage(msg); }); } } }    // Process telephony messages from Dialogflow  function processTelephonyMessage(msg) {  // Transfer call to msg.telephonyTransferCall.phoneNumber  if (msg.telephonyTransferCall !== undefined) {  /**  *Example:  *dialogflow.stop()  *let newcall = VoxEngine.callPSTN(msg.telephonyTransferCall.phoneNumber, "put verified CALLER_ID here")  *VoxEngine.easyProcess(call, newcall)  **/ }    // Synthesize speech from msg.telephonySynthesizeSpeech.text  if (msg.telephonySynthesizeSpeech !== undefined) {  // See the list of available TTS languages at https://voximplant.com/docs/references/voxengine/language  // Example:  // if (msg.telephonySynthesizeSpeech.ssml !==undefined) call.say(msg.telephonySynthesizeSpeech.ssml, {“language”: VoiceList.Amazon.en_US_Joanna})  // else call.say(msg.telephonySynthesizeSpeech.text, {“language”: VoiceList.Amazon.en_US_Joanna}) }  // Play audio file located at msg.telephonyPlayAudio.audioUri    if (msg.telephonyPlayAudio !== undefined) {  // audioUri contains Google Storage URI (gs://), we need to transform it to URL (https://)  let url = msg.telephonyPlayAudio.audioUri.replace('gs://', 'https://storage.googleapis.com/');  // Example: call.startPlayback(url) } } }

Dialogflow’s Two Versions — ES and CX

Dialogflow voicebots are available in ES and CX editions. See the table below to choose the edition that best suits your needs.

ES edition
CX edition


A standard voicebot that is suitable for short conversations and has been praised for its simplicity.

An advanced voicebot that is suitable for complex and long conversations over 10 minutes.

Key features

  • 1 Slot filling — voicebots can recognize and ask for missing information to close the request.
  • Intent matching — when the customer says something, ES compares the expression to training phrases to find the best match.
  • All of ES plus:
  • Barge in — callers can interrupt voicebots so that it starts to listen again.
  • Handoff — voicebots can transfer calls to live agents.

When to consider

In cases where a short utterance matches one intent.

Imagine a banking support voicebot built to help customers transfer funds. If the customer forgets to say the account number or the amount to be transferred, the ES voicebot easily recognizes it and asks for the missing information.

In cases when you need to recognize the context and have more than 100 intents.

Take a state informational portal. Compared to ES, CX will easier recognize when the caller needs COVID information, pay off tax debts, or register their marriage.

Price for the connector


per 15 seconds


per 1 minute

Plug into Dialogflow in 2 Minutes

Check out the demo video where we show how to embed Dialogflow voicebots into your telephony in one click.

Use Dialogflow Telephony Connector with Voximplant Platform or Kit

Voximplant Platform

Voximplant Platform

For developers who want to program complex communications flows.

Voximplant Kit

Voximplant Kit

For non-technical users who want to build voicebots with no code.

Popular Use Cases

Self-guided help

Self-guided help

Enable callers to query your knowledge base for solutions.

Food and grocery delivery

Food and grocery delivery

Provide callers with the delivery status or allow them to make an order.

Taxi booking

Taxi booking

Allow callers to request a cab at a particular place, time, and date.

Appointment scheduling

Appointment scheduling

Automate the scheduling and rescheduling of appointments over the phone.

Emergency announcements

Emergency announcements

Create timely announcements to help callers get information based on address lookups, zones, or other information you request.

Order placement

Order placement

Automate sales to ensure you receive all customer information for proper and complete entry of orders.

Customer Story

Explore what companies similar to yours have built with Voximplant.

COVID-19 Vaccination Appointments


  • 75% of respondentssign up for vaccination
  • 8K appointmentsare scheduled per week
  • 100% of initial callsare made by a voicebot


PSTN and SIP connectivity

Phone numbers from 60 countries

Call transfer control

Inbound, outbound, and conference connectivity options

Speaker barge-in and playback interruption

DTMF detection

No audio input detection

Send Dialogflow events

Cloud IDE with real-time debugger

Set and use parameters

Keep Exploring IVRs and Dialogflow

Modern Conversational IVRs with Dialogflow

Modern Conversational IVRs with Dialogflow

This whitepaper describes approaches for integrating voicebots with telephony systems and reviews how Voximplant does this with Dialogflow.

Start your Contact Center AI Strategy with the IVR

Start your Contact Center AI Strategy with the IVR

In the coming years, expect upgrades to IVRs to recognize the intents of callers based on natural language input and respond with accurate answers, recommendations, or actions.