Build a low code conversational SMS bot with Azure Communication Services and Azure OpenAI
In our last blog, we walked through the process of building an SMS conversational bot. Today we want to showcase a similar bot, but this time built completely on top of low code connectors for Power Automate. It is incredibly easy and exciting to leverage Azure Communication Services connectors in conjunction with Large Language Models (LLM) like ChatGPT to build a conversation bot. For this blog, we will be building Anton, a personal trainer bot for Contoso Gym. See the preview:
To follow along you will need:
- An Azure account with an active subscription. Create an account for free.
- Enable Event Grid resource provided on your subscription. See instructions.
- An active Communication Services resource and connection string. Create a Communication Services resource.
- An SMS-enabled telephone number. Get a phone number.
- Azure OpenAI resource. See instructions.
- Azure OpenAI deployed model. See instructions.
- Power Automate account. Azure Communication Services connectors require a plan that supports premium connectors.
This application will leverage Azure Event Grid to listen for incoming text messages to Azure Communication Services number, and an Azure Function to process the event and respond with an Azure OpenAI generated response.
We will start by configuring an Event Grid trigger for your Power Automate flow. This trigger will automatically connect to your existing Azure subscription and to the Azure Communication Services resource to configure your event subscription.
To keep the data organized, you will add a Parse JSON connector to help us parse the event. The event schema follows this structure:
Schema (click to see)
Add that schema to the Parse JSON connector and add the event body as the content.
Next, we must add a call to Azure OpenAI to ask the model to generate a response. We will use REST APIs to POST a request with our prompt. For the prompt, we will use a combination of the message sent by the user and a pre-designed text. In this example, we want the GPT-3 model to act like Anton, a personal trainer at Contoso Gym. We added some sample quotes from which the model can draw inspiration. These quotes help guide the model’s response and provide a more intuitive and conversational flow for the users. See the completed prompt below:
To keep the flow organized, we will add a compose connector for our prompt so we can easily reference it later.
To communicate with the Azure OpenAI service, we will use POST request inside of an HTTP connector. In return, we will receive a text generated by the Azure OpenAI model. To configure the HTTP connector, you will need the URI to your Azure OpenAI resource. You will also need the `api-key` for your Azure OpenAI resource.
Using the compose output for our prompt, we will concatenate together the prompt, the message the user sent through SMS, and a stop trigger for the Open AI model to stop generating text:
Once we have the HTTP connector d, we will use a Parse JSON connector to process the response from Azure Open AI. The expected schema from Azure Open AI takes the following format:
Schema (click to see)
We will configure it to use the body of the http request as the content the schema above.
Finally, we will configure our SMS connector for Azure Communication Services to respond with the new response generated by Azure OpenAI. You will need a connection string for your Azure Communication Services resource to initialize the SMS connector.
Now that everything is connected, test the flow by sending an SMS from your phone to the phone number you acquired through the Azure Communication Services resource.
Congratulations! using Power Automate. Azure Communication Services provides out of the box connectors for SMS, Email and Chat. Whether it is having Anton, the personal trainer bot talk to your customers or having a real person interact with them, Azure Communication Services can help. To learn more about other resources that Azure Communication Services offers see the links below:
- Overview of Azure Communication Services.
- SMS Connector
- Email Connector
- Chat Connector
- Identity Connector
- Want to learn how to do this in code, checkout out last blog post.
Published on:
Learn moreRelated posts
Azure Communication Services Ideas Board: Share your feedback with the product team
Innovation is not a solitary pursuit, and we recognize that some of the best ideas come from you, our Azure Communication Services community. ...
Engage with the Azure Community Services Ideas Board: Your Voice Matters
Innovation is not a solitary pursuit, and we recognize that some of the best ideas come from you, our Azure Communication Services community. ...
Part 2 - Multichannel notification system using Azure Communication Services and Azure Functions
In the first part of this topic, we setup all the Azure resources like the Azure Communication Services for Email, SMS, WhatsApp for...
Part 1 - Multichannel Notification System with Azure Communication Services and Azure Functions
In the interconnected digital era, it's crucial for businesses and services to communicate effectively with their audience. A robust notificat...
Building a WhatsApp AI bot for customer support
Building a WhatsApp AI Bot for customer support In this blog post, we’ll explore how to build a customer support application that integ...
Azure Communication Services September 2024 Feature Updates
The Azure Communication Services team is excited to share several new product and feature updates released in August 2024. (You can view previ...
Azure Communication Services at the DEVIntersection Conference
Join us for the DEVintersection Conference from September 10 to 12, 2024, in Las Vegas, Nevada. This event gathers technology enthusiasts from...
Azure Communication Services June 2024 Feature Updates
Data Retention with Chat threads Developers can now create chat threads with a retention policy between 30 and 90 days. This feat...
Azure Communication Services August 2024 Feature Updates
The Azure Communication Services team is excited to share several new product and feature updates released in July 2024. (You can view previou...
Anywhere365 integrates Azure Communication Services into their Dialogue Cloud Platform
Every day, companies aim to help their customers realize the most value from their products and services. They do this by providing ef...