Interactive voice response app with bot

Bot Service
Cognitive Search
Language Understanding
Web Apps

Solution Idea

If you'd like to see us expand this article with more information, such as potential use cases, alternative services, implementation considerations, or pricing guidance, let us know with GitHub Feedback!

This solution idea shows how to architect an interactive voice response (IVR) application with a bot and custom machine-learning intelligence.

Potential use cases

This particular IVR app processes customer order requests for bicycles and bicycle accessories. However, this IVR architecture can be applied to a wide range of scenarios. Businesses with no existing IVR solution can easily get started automating requests. Or, businesses with human-operated systems can use this solution to extend their existing functionality and workflows.


Architectural diagram: interactive voice response (IVR) application with bot built in Azure. Download an SVG of this architecture.

Core Azure services

  • Speech service (Bing Speech API or Cognitive Services Speech Service) transcribes raw speech data into text form.
  • Language Understanding (LUIS) identifies caller intent and spoken entities from the transcribed text. Examples of intents include place an order, find an order, and so on. Examples of entities include product categories, dates, times, and so on.
  • Azure Cognitive Search matches and ranks products from the inventory against the caller's description. Common synonyms are identified with advanced text analysis.
  • Microsoft Bot Framework processes conversation results from the caller and manages the call workflow.

Supporting Azure services

  • Azure Web App hosts the core logic of the bot as a Node.js web app.
  • Cosmos DB stores shared session state for every conversation, allowing the web application to scale out in a stateless architecture.
  • Azure SQL stores product inventory and order status.


Description of the IVR app

For more details on this solution, including source code and data customization, fork or explore the Call-Center Solution project on GitHub.

Automated customer interaction is essential to a business of any size. In fact, 61% of consumers prefer to communicate via speech, and most of them prefer self-service. Because customer satisfaction is a priority for all businesses, self-service is a critical facet of any customer-facing communications strategy.

Today, mobile phones are dominant and keypads aren't always within reach. As such, interactive voice response (IVR) systems are an intuitive and convenient way for customers to convey their requests. This solution idea provides an intelligent and natural self-service experience that can be repurposed across all customer channels.

The Azure AI Platform is backed by Microsoft Azure cloud platform and provides all of the essential elements for building an automated IVR solution. There are tools for data ingestion, data storage, data processing, and advanced analytics components.

This solution deploys a fully integrated service stack that manages speech requests via Skype and the Microsoft Bot Framework.

The target use case of this solution is a fictitious company, Contoso LLC, which sells bicycles and bicycle equipment to its customers. Contoso currently processes new product orders and queries through human operators. This automated solution allows Contoso to seamlessly scale up to handle large call volumes while maintaining zero wait times and freeing up staff to manage other tasks.

Deploy this scenario

For more details on this solution, including source code and data customization, fork or explore the Call-Center Solution project on GitHub.

Next steps

Bing Speech and Cognitive Speech services:

Microsoft Learn modules:

Azure Architecture Center articles: