ai
44 TopicsFrom Call Transcripts to CRM Gold: AI-Powered Post-Call Intelligence
Call transcripts are full of business intelligence that never makes it to your Customer Relationship Management (CRM) software. Customer sentiment, promised follow-ups, escalation signals – all lost in walls of conversational text. We’ve all seen it happen. Agent frantically scribbles notes during calls. Promised callbacks fall through cracks. Critical details get buried in transcript files that sit untouched for months. Meanwhile, your CRM holds half-empty case records and incomplete customer histories. What if those transcripts could talk back? How We Transform Call Transcripts into CRM Data Instead of just explaining what's possible, we built something you can click through and try on your own. Pick from realistic customer scenarios – an airline passenger with a mystery credit card charge, a small business owner confused about cloud billing. Watch AI pull out the important stuff while you keep full control before anything touches your systems. Takes minutes, not hours. The real value isn't just saving time on data entry. It's about not losing what actually happened on that call. If you're more of a visual person and would like to see a video demonstration of this project in action, check out the walkthrough below: How Human-AI Collaboration Ensures Reliable Results We made some choices that matter if you're thinking about real business use. Raw transcripts are a mess. Full of "ums" and "let me transfer you" and customers repeating themselves. AI cuts through all that noise to find what you need: the core issue, what you promised, what happens next. Your agents get the story, not a wall of text. Human oversight isn't just editing typos. The demo shows what real business judgment looks like. Sometimes what sounds like anger is actually relief. Sometimes "I'll call you back" means different things in different contexts. AI spots patterns brilliantly, but humans understand nuance and catch the edge cases that matter for customer relationships. Structured output changes guarantees consistent CRM data. Here's the technical piece that makes everything else possible: we use JSON schemas to guarantee consistent results. Same format every time, no parsing messy text responses. Your CRM integration becomes trivial – clean data that maps directly to fields without custom logic to handle variations. Business Intelligence You Can Act on Immediately Once you've got structured call intelligence, things get interesting fast. Picture this: sentiment analysis flags an angry customer at 2 PM. Your senior agent gets pinged before the promised callback at 4 PM. Or someone mentions a competitor during what should've been routine support. Your sales team knows by end of day, not next quarter. A customer describes the same technical issue three other people called about this week? Your product team sees the pattern before it becomes a crisis trending on social media. The flow works the same whether you're dealing with frustrated airline customers, confused SaaS users, or financial service complaints. It’s the same AI extraction, same human review, just different actions triggered by what you find. The Real Opportunity Every company with customer calls has intelligence locked in transcripts and recordings. Communication APIs plus AI can unlock that intelligence and automate workflows that currently eat up agent time. This demo shows one practical path: structured AI analysis with human oversight, feeding straight into business systems. Scales from small teams manually reviewing suggestions to enterprise deployments processing thousands of calls with minimal human touch. You're not just automating data entry. You're capturing business intelligence that vanishes the moment each call ends. And with the human review layer, you're building confidence in the system while training it to handle your specific business context. How to Connect Live Call Data to Your AI Analysis Real implementations need live conversation data rather than static transcripts. That's where the integration work begins. Azure Communication Services Call Automation APIs provide real-time transcription during calls. Microsoft Teams APIs extract transcripts from recorded meetings. Most phone systems can export call transcripts via API these days. The workflow stays identical – transcript → AI analysis → human review → business actions – but connecting those data sources requires additional plumbing. Real production systems also need async processing. Instead of waiting for AI analysis during the call, you'd typically queue transcripts for background processing and surface insights when agents need them. Simple Technology Stack: Node.js + Azure OpenAI We deliberately chose straightforward technology to prove a point: you don't need exotic tools for sophisticated call intelligence. Node.js backend. Vanilla JavaScript frontend. OpenAI structured output with strict JSON schemas. That's it. What do we mean by "structured output"? Instead of returning free-form text, the LLM is instructed to respond with JSON that matches a predefined schema. This ensures the output is predictable, machine-readable, and easy to integrate directly into systems like CRMs with no extra parsing or guesswork required. Important caveat: not all LLMs support structured output yet. OpenAI, Azure OpenAI, and a few others do, but if you're using a different provider, you'd need additional validation logic to ensure consistent formatting. The structured approach is what makes CRM integration seamless, so it's worth choosing providers that support it. Try the Post-Call Intelligence Demo Clone the repository and test it out today! The demo includes setup instructions and realistic scenarios. Not production code, but shows how AI-powered call intelligence works in practice. Full instructions are in the README of the repo, but you only need to enter a few commands in your terminal. For more information and resources, check out the docs on real-time transcription or see more communication API + AI sample demos. Those transcripts sitting in your phone system? They're not just records of what happened. They're roadmaps for what should happen next. The intelligence is sitting there. The tools exist to extract it reliably. Question is whether you'll let it keep disappearing into the void.Build Your AI Email Agent with Microsoft Copilot Studio
In this tutorial, you'll learn how to create an AI agent that can send emails on your behalf. We'll use Microsoft Copilot Studio and the robust infrastructure of Azure Communication Services to create the AI agent that can be published on M365 Copilot, Teams, the web and many more. You can view the video tutorial for creating your AI agent below: Prerequisites: Microsoft Copilot Studio Access: You will need a license to use the platform. Azure Subscription: An active Azure account is required to set up the email sending service. Step 1: Create Your First Agent in Copilot Studio First, we'll create the basic framework for our AI assistant. Navigate to Copilot Studio: Open your web browser and go to copilotstudio.microsoft.com. Describe Your Agent: On the homepage, you'll see a prompt that says, "Describe your agent to create it." In the text box, type a simple description of what you want your agent to do. For this tutorial, use: "I want to create an agent that can send out emails using Azure communication services." Configure the Agent: Copilot Studio will generate a basic agent for you. You'll be taken to a configuration page. Give your agent a descriptive name, such as "AI Email Agent." Review the auto-generated description and instructions. You can modify these later if needed. Create the Agent: Click the Create button. Copilot Studio will now set up your agent's environment. Step 2: Set Up Your Email Service in Azure To give your agent the ability to send emails, we need to configure a backend service in Microsoft Azure. Go to the Azure Portal: Log in to your account at portal.azure.com. Create Resources: You will need to create two services: Communication Services: Search for "Communication Services" in the marketplace and create a new resource. This will serve as the main hub. More details can be found here: Create a communication service resource. Email Communication Services: Search for "Email Communication Services" and create this resource. This service is specifically for adding email capabilities. More details can be found here: Send email via azure communication services email Get Your Sender Address: Once these resources are created, you will have a sender address (e.g., DoNotReply@...). This is the email address your AI agent will use. Step 3: Connect Your Services with an Azure Function We need a way for Copilot Studio to communicate with Azure Communication Services to send the email. An Azure Function is the perfect tool to act as this bridge. Create a Function App: In the Azure portal, create a new Function App. This app will host our code. When setting it up, select Python as the runtime stack. Develop the Function: You'll write a simple Python script that acts as a web API. This script will: Receive data (recipient, subject, body) from Copilot Studio. Connect to your Azure Communication Services resource. Send the emai The code for the Azure Function app can be found on our Github page Deploy the Function: Once your code is ready, deploy it to the Function App you created. After deployment, make sure to get the Function URL, as you'll need it in the next step. In the Azure portal head over to your Function App. Go to Settings > Environment Variables, click Add. Add the following: Name: ACS_CONNECTION_STRING Value: <insert your connection string> Name: ACS_SENDER_EMAIL Value: <insert your send email address> (e.g. “DoNotReply@...) Make sure to click Apply, so your settings are applied. Note: For this tutorial, you can use Visual Studio Code with the "Azure Functions" and "Azure Resources" extensions installed to write and deploy your code efficiently. Step 4: Design the Conversation Flow in Copilot Studio Now, let's teach our agent how to interact with users to gather the necessary email details. We'll do this using a "Topic." Go to the Topics Tab: In your Copilot Studio agent, navigate to the Topics tab on the menu. Create a New Topic: Click + Add a topic and select From blank. You can ask Copilot to create a topic for you but for this tutorial we are going to create from scratch. Set the Trigger: The first node is the Trigger. This is what starts the conversation. Click on it and under "Phrases," add phrases like "send an email." This means whenever a user types this phrase, this topic will activate. Ask for the Recipient: Click the + icon below the trigger and select Ask a question. In the text box, type: "What's the recipient email?" Under "Identify," choose User's entire response. Save the response in a new variable called varRecipient. Ask for Subject and Body: Repeat the process above to ask for the Subject and Message body. Save the responses in variables named varSubject and varBody, respectively. Ask for Personalization (Optional): You can also ask for the Recipient's name for a personalized greeting and save it in a variable called varName. Step 5: Call the Azure Function to Send the Email With all the information gathered, it's time to send it to our Azure Function. Add an HTTP Request Node: Click the + icon below your last question. Go to Advanced > Send HTTP request. Configure the Request: URL: Paste the Function URL you copied from your Azure Function. Method: Select POST. Headers and body: Click Edit. For the body, select JSON content and use the formula editor to structure your data, mapping your topic variables (e.g., Topic.varSubject, Topic.varBody) to the JSON fields your function expects. Save the Response: The result from the Azure Function can be saved to a variable, such as varSendResult. This allows you to check if the email was sent successfully. Step 6: Test and Publish Your Agent Your AI email assistant is now fully configured! Let's test it out. Open the Test Panel: On the right side of the screen, open the Test your agent panel. Start a Conversation: Type your trigger phrase, "send an email," and press Enter. Follow the Prompts: The agent will ask you for the recipient, subject, and body. Provide the information as requested. Check Your Inbox: The agent will process the request and send the email. Check the recipient's inbox to confirm it has arrived! Publish: Once you are satisfied with the agent's performance, click the Publish button at the top of the page. You can then go to the Channels tab to deploy your agent to various platforms like Microsoft Teams, a demo website, or even Facebook. Congratulations! You have successfully built and deployed a functional AI email agent. Debugging and Troubleshooting Agent asking unnecessary information: If you want the agent to only ask the question that you have input and to not add anything extra. In your agent settings in Copilot Studio, turn off generative AI orchestration. This will force the AI agent to only asks questions Agent stuck in a loop: If, after sending, the agent jumps back to “What’s the recipient email?”, explicitly end the topic. Add + → Topic management → End current topic immediately after your success message. If you want branching, remember the HTTP Request action has no built-in success check, you can save the response (e.g., varSendResult), add a Condition that tests varSendResult.ok == true, and on success send a confirmation and End current topic to prevent loops.How AI + Communication APIs Are Transforming Work Across Industries
The Specialization Revolution Businesses across industries want AI-driven automation that actually meets their unique needs. Generic, one-size-fits-all solutions aren’t cutting it anymore. Think about it: a healthcare AI sending HIPAA-compliant appointment reminders has completely different challenges than a retail AI handling returns. It's not just different words — it's understanding compliance rules, knowing what's urgent, and getting the relationship dynamics that matter in each industry. We're seeing a shift from cookie-cutter automation to AI that gets context. Communication APIs plus AI tools let you build systems that understand these industry quirks and feel both efficient and personal. Note: This blog focuses on what's possible rather than step-by-step how-tos. You'll see real examples and use cases, with links to docs and samples if you want to dig deeper. A Framework for Communication Intelligence Not every interaction needs the same level of AI. Think about your communications in four buckets: Automated at Scale: High-volume, routine stuff handled smartly but still feels personal. This could be AI email templates that mention customer history, or sophisticated bots that trigger based on schedules and events. Contextually Intelligent: Communications that need real-time analysis and smart routing. Basic version: sentiment analysis routes angry calls properly. Advanced version: specialized agents with complex escalation rules. Human-Augmented: Complex conversations where AI helps people with context, suggestions, and busy work. Simple version: auto-logging CRM data from emails. Fancy version: real-time compliance monitoring and automated follow-ups. Purely Human: Sensitive, high-stakes conversations that need human judgment and relationship-building. AI still helps with prep and follow-up, but the actual conversation is all human. Figure out where your communications fit, and you'll spot the best places to add AI. Industry Transformation in Action Here's how different industries are applying these concepts to solve real problems. Healthcare: Secure, Compliant Patient Communication Healthcare has strict privacy rules and handles tons of sensitive patient information, but patients still expect things to move quickly and smoothly. Smart Appointment Management: Healthcare systems use communication APIs to send HIPAA-compliant reminders via SMS, email, and voice calls. AI personalizes messages based on patient history and what kind of appointment it is. Urgent calls get routed to the right medical staff fast. If you want to get fancy, conversational agents can handle rescheduling and escalate urgent stuff automatically. See this in action: AI SMS Appointment Scheduler demo shows how natural conversation flows work for scheduling and rescheduling. Intelligent Call Routing: When patients call with concerns, communication platforms analyze what they're saying and figure out how urgent it is. Medication questions go to nurses, billing problems go to admin staff, and everyone keeps the full context. The key here isn't replacing doctors and nurses, it's handling all the compliance-heavy routine stuff that bogs them down, so they can focus on actual patient care. Healthcare teams tell us this cuts their admin work while making patients happier through faster, smarter routing and personalized messages. Financial Services: Balancing Compliance with Personal Service Banks and financial firms must document everything and stay compliant, but clients still want personal, responsive service. Streamlined Client Onboarding: Financial institutions use communication APIs to automate onboarding workflows: personalized welcome messages, scheduling required meetings based on specific milestones. Basic version handles document requests and compliance reminders. Advanced setups use tools like Copilot Studio for complex regulatory workflows that connect to multiple backend systems. Automated Compliance Documentation: Instead of making advisors manually document every client conversation, AI transcribes calls, spots compliance requirements, and generates the right records. This cuts paperwork while making sure nothing slips through the cracks. Financial services are using AI to handle the regulatory heavy lifting so advisors can focus on actually advising and building relationships. Recruiting: Scaling Personal Connection Recruiting is all about balancing efficiency with personal touch. You need to reach hundreds of candidates but make each one feel special. Smart Outreach Campaigns: Recruiting teams use Azure Communication Services with Azure OpenAI to craft personalized messages that reference specific skills, experience, and mutual connections. Systems automatically customize email templates based on candidate profiles. Advanced teams run complex, multi-touch campaigns across email, SMS, and professional platforms. Coordinated Interview Scheduling: Communication platforms handle smart scheduling by looking at calendars and sending personalized invitations and reminders. It handles scheduling conflicts and sends confirmations automatically. Comprehensive setups manage multi-round interviews with automatic rescheduling. Success comes from using AI to kill the busy work while keeping humans involved in relationship building. Recruiting teams using AI-powered communication report faster hiring and happier candidates through more responsive, personalized interactions. Retail and E-commerce: Responsive Customer Service E-commerce customer service ranges from "where's my order?" to complex technical support. You need systems that handle simple questions fast while getting complex issues to humans with full context. Intelligent Issue Routing: When customers contact support, Azure Communication Services with Azure OpenAI looks at what they're asking and their history to figure out the best response. Simple order status questions get automatic responses with real-time tracking. Product issues go to specialist teams with all the context they need. See this in action: Customer Service Chat with AI Handoff demo shows smooth transitions from AI help to human agents with conversation summaries. Proactive Problem Resolution: AI watches order fulfillment and shipping to reach customers before they even contact you. When shipments get delayed, customers get personalized updates with realistic delivery estimates and appropriate compensation based on their history. Retail works best when AI handles routine stuff quickly while making sure complex or emotional situations get immediate human attention with complete context. Sales and Account Management: Relationship Intelligence Sales is about building relationships over time. You need deep understanding of client needs, preferences, and business context Automated Relationship Maintenance: Sales teams monitor communication patterns and get suggestions for client outreach. Communication APIs enable personalized check-ins based on contract renewal dates or industry news. Advanced setups automatically schedule meetings and generate industry-specific insights. Meeting Intelligence and Follow-ups: During client calls, AI captures key points and action items, then helps generate follow-ups. Teams are building AI agents with Copilot Studio that actually send those follow-up emails automatically, crafting personalized messages based on meeting notes and handling bulk outreach. See how it works: The Build an AI Email Agent with Copilot Studio video below shows step-by-step implementation. Sales teams get value when AI handles data analysis and admin tasks while humans focus on strategy and relationship building. Education: Personalized Student Support Schools manage communications across tons of different people with different needs and preferences. Accessible Student Support: Schools use communication APIs to handle routine student questions about schedules, deadlines, and campus resources through smart chat interfaces. These route academic concerns to appropriate counselors while keeping context about each student's needs. Basic versions provide 24/7 info access, cutting admin burden significantly without expensive enterprise platforms. Proactive Student Engagement: By looking at engagement patterns and academic performance, AI helps spot students who might need extra support and helps connect them with appropriate resources. These solutions focus on flagging at-risk students rather than complex intervention workflows. Educational implementations work best when AI handles routine admin communications while keeping meaningful educational relationships human-centered. Getting Started Start by looking at your current communication workflows. Look for high-volume, routine interactions that eat up time but don't build relationships, such as appointment reminders, status updates, scheduling coordination. These are your best starting points. Start Simple: Azure Communication Services gives you secure, compliant multi-channel communication. Adding Azure AI Foundry brings intelligence for content generation, sentiment analysis, and routing. Pick one workflow and see what happens. Get started with Azure Communication Services or check out integrating Azure AI Foundry. Scale Up When Ready: For complex workflows, Copilot Studio lets you build conversational AI that connects to your business data and works across Teams, websites, and other channels. What makes it work: Define clear boundaries between AI and human interactions. Keep human control with review and override capabilities. Design for context continuity across channels. Start small and learn as you go. Quick resources: Azure Communication Services, Azure AI Foundry, Copilot Studio, GitHub examples The companies doing this well aren't replacing human connection, they're using AI to handle the routine work so people can focus on conversations that actually matter. Pick one workflow. Build something simple. See what you learn.General Availability of Teams Phone extensibility
General Availability of Teams Phone Extensibility Powered by Azure Communication Services (ACS) Organizations often struggle with fragmented workflows between UCaaS (e.g., Microsoft Teams) and CCaaS platforms. This limits the potential of generative AI to unify customer interactions and streamline operations. Teams Phone Extensibility (TPE) powered by Azure Communication Services bridges this gap - enabling seamless integration between Teams Phone and CCaaS systems. Key Benefits Unified Telephony: Use Teams Phone for both UCaaS and CCaaS without separate systems. Conversational AI: Integrate AI tools for voice input, greetings, and sentiment analysis. Automated Meeting Summaries: AI captures key decisions and action items in real time, reducing manual notetaking and improving team alignment. Human-Like Communication: AI auto-detects spoken languages to enable natural, seamless conversations without manual selection. Sentiment Analysis: AI tracks emotional tone in real time, helping supervisors support both customers and agents during sensitive interactions. PII Redaction: AI masks sensitive personal data in real time to ensure compliance and build user trust. Extended UCaaS Features: Emergency calling, dial plan policies, and more. Agent Notification Handling: Choose between Teams client or CCaaS app for alerts. Cost Efficiency: Leverage existing Teams Phone plans without extra ACS numbers. Global Reach: Supports Teams Calling Plans, Direct Routing, and Operator Connect. Core Features Provisioning: Connect ACS deployments with Teams tenants for seamless setup. Advanced Call Routing & Controls: Manage calls, add participants, transfer mid-call. Convenience Recording: Customizable call recording for CCaaS scenarios. On-Behalf-Of (OBO) Calling: Apps can initiate/manage calls via Teams Resource Accounts. Call Automation & SDKs: Build intelligent call flows and custom CCaaS clients. Emergency Calling Support: Agents can dial emergency services with location data. Billing Model: Charges apply for ACS SDK usage; Teams licenses required for agents. Telemetry & Diagnostics: Monitor and debug call quality via Azure portal tools. Resources to Get Started https://aka.ms/TPe-Overview https://aka.ms/TPe-FAQ https://aka.ms/TPe-Tutorials https://aka.ms/TPe-SupportBuilding an AI Receptionist: A Hands-On Demo with Azure Communication Services and OpenAI
Ever missed an appointment because of a rigid SMS system? What if you could text a change and get an immediate, natural response that understands your intent and confirms a new slot quickly? In this post, we'll show you how to build an AI receptionist that does just that, using Azure Communication Services and Azure OpenAI. We'll guide you through a hands-on demo that uses a simulated but realistic calendar for reliable confirmations and rescheduling, and show you how to make it production-ready. A natural text thread with the scheduling agent Watch the Walkthrough Prefer a walkthrough? Watch the video demo to see the app in action with live code explanations. This demo is ideal for anyone who wants to explore conversational AI with minimal setup -- whether you're a developer, product manager, or just curious about integrating Azure services. What Actually Happens Under the Hood Here’s the simple set of moving parts behind the “AI receptionist” feel. First a quick look at each piece, then the exact path a message takes. Core pieces we’re using for this demo: Azure Communication Services: Provides the real phone number, receives incoming text messages, and sends replies. Azure Event Grid: Immediately forwards each new message event to a public URL (the webhook) your app exposes. FastAPI: Hosts that webhook (an HTTP endpoint) and keeps simple in‑memory conversation and calendar data. Azure OpenAI: Generates the receptionist’s reply using the running conversation plus a small snapshot of available appointment times. Simulated calendar: Thirty upcoming business days with realistic fullness so the system can offer believable open slots. Then the message moves through this path: You send a text message to the demo phone number (handled by Azure Communication Services). Azure Communication Services raises a “message received” event. Azure Event Grid delivers that event as an HTTP POST to the FastAPI webhook (a regular URL). The webhook quickly returns “OK” and kicks off a background function (process_sms in main.py) so the user is never kept waiting. If this is your first message, it creates a mock appointment for “tomorrow” and sends a reminder; otherwise it adds your new message to the conversation history. It selects a few upcoming open slots from the simulated calendar, adds them to the system prompt, asks Azure OpenAI for a receptionist‑style reply, and receives the response. The reply goes back through Azure Communication Services, and the conversation state stays in memory. That’s the loop. An event arrives, flows through a thin path, and a reply goes out. No constant checking (polling) or scheduled scripts needed. Demo vs Production In the demo you start the conversation by texting the number. In a production rollout, you usually send an automated reminder (for example 24 hours before) and let the patient reply to confirm or change. From there the path is straightforward: swap the simulated calendar for a real scheduling API, persist conversation and appointment state, add authentication and signed webhook validation, and layer in logging and compliance. The event flow itself staysthe same. The Calendar Trick We prebuild the next 30 business days (weekdays only), 09:00–17:00 in 30-minute slots, mark about 80 percent as “booked,” and keep the rest “available.” On each turn we pull a small handful of near-term open times and add them to the system prompt. That gives the model concrete, bounded choices and prevents it from inventing odd times like “3:10 AM” or “Saturday 7 PM.” A single snapshot replaces custom slot logic while still feeling live. The FastAPI routes for getting calendar logic Prompt Strategy The system prompt frames a single role: a friendly receptionist limited to scheduling (no medical advice, within business hours, 30-minute increments). Each user message refreshes the availability lines so the model always sees current openings. The rules: only offer specific times when rescheduling, stay concise, and confirm final details. This balance keeps replies natural while keeping time suggestions controlled. Where to Take It Next To evolve the demo into a dependable production service you layer durability, richer scheduling logic, safety, and observability onto the same event path - no rewrite required. Productization Persist conversations and appointments (database + real scheduling/calendar API) Authentication, signed webhook validation, rate limiting Structured logging, tracing, latency and token metrics Scheduling intelligence Function / tool calls for explicit slot selection Real calendar integration (Outlook, scheduling API, electronic health record system) Time zones, appointment types, user preferences (language, time windows) Safety & context Moderation / compliance filters Retrieval for policies, preparation instructions, service types Insights & analytics Analytics (reminder → confirmation rate, response latency, fallback counts) Getting It Running (You’ll Spend Minutes, Not Hours) This setup is intentionally light. The only potentially slow step is acquiring a phone number in Azure Communication Services (see the official quickstart). Full step-by-step instructions (environment variables, dev tunnel, Event Grid subscription) live in the demo repository README. The high-level overview is: Clone the repository and copy .env.example to .env Add Azure Communication Services connection string + phone number and Azure OpenAI endpoint/key/model. Install dependencies and start the app on port 8000. Expose port 8000 with a dev tunnel and point an Event Grid SMSReceived subscription to /api/sms/webhook. Text your Azure Communication Services number and observe inbound event and reply in the terminal. Screenshot of a terminal log with inbound event + “SMS sent to ACS number" Closing You now have an event‑driven SMS conversation that feels like a live receptionist using only a phone number, a webhook, a lightweight availability snapshot, and a model prompt. Clone the repository, run the demo, and try a reschedule from your own phone. Extend it and make it your own - whether that means integrating a real scheduling API, adding persistence, or incorporating compliance features. We’d love to see what you build.10 Things You Might Not Know You Could Do with Azure Communication Services
Azure Communication Services gives developers the building blocks for voice, video, chat, SMS, and more. But the real magic happens when you start combining those capabilities with other Azure services to solve real-world problems. This blog isn’t a feature list or a product pitch. It’s a collection of creative, practical scenarios that show what’s possible with Azure Communication Services today. Each one is based on real questions, real demos, and real developer experiences. Some are simple. Some are surprisingly powerful. All of them are designed to spark ideas. We’ve included links to sample code, documentation, and visuals to help you dive deeper. And we’ll keep this post updated as new scenarios emerge, so if you’ve built something cool, let us know! Build a Voice Assistant That Understands Users—and Follows Through 🔎 Quick Look What it does: Create a voice-first assistant that can understand, respond, and follow up using natural language. Why it matters: Offers a more intelligent, flexible alternative to traditional IVRs. What you'll need: Azure Communication Services for voice, Azure OpenAI, and backend logic to handle actions. Most voice agents are limited to scripted menus or keyword matching. But with Azure Communication Services and Azure OpenAI, you can build a voice experience that actually understands what users are saying and responds with meaningful action. In this demo, a user calls a virtual assistant looking for dinner inspiration. Instead of navigating a rigid menu, they just talk naturally. The assistant interprets the request, asks follow-up questions, and sends a personalized recipe link via SMS—all powered by Azure Communication Services for both the voice and messaging workflows. This kind of voice-first interaction is ideal for customer support, concierge services, or any scenario where users want to speak naturally and get something done. Watch the video below to see the full experience in action or explore the demo yourself here. Send Responsive Messages in Real-Time 🔎 Quick Look What it does: Trigger personalized messages based on real-time user behavior (like missed appointments or failed logins). Why it matters: Helps you move beyond static reminders to more timely, relevant communication. What you’ll need: Azure Communication Services, Azure Event Grid, Azure OpenAI, and an event source like a Logic App or backend service. Most messaging systems are built around schedules: send a reminder at 9 AM, a follow-up two days later, and so on. But what if your messages could respond to what your users are doing right now? With Azure Communication Services, you can build event-driven workflows that trigger messages based on real-time behavior. A customer misses an appointment. A user completes a transaction. A login attempt fails. Using Azure Event Grid, you can detect these events, generate a tailored message with Azure OpenAI, and send it instantly via SMS, email, or WhatsApp using Azure Communication Servies. This approach helps teams move beyond static, one-size-fits-all messaging. It enables timely, relevant communication that’s easier to maintain and scale - without manually scripting every variation. Learn more and get started: Azure Communication Services as an Event Grid source Handle SMS events with Event Grid Push notifications overview Use Event Grid to send calling push notifications Let Users Schedule Appointments by Text – In Their Own Words 🔎 Quick Look What it does: Enable natural language scheduling over SMS. No apps, menus, or portals required. Why it matters: Makes scheduling faster and more user-friendly, especially for service-based businesses. What you’ll need: Azure Communication Services for SMS, Azure OpenAI to interpret intent, and a backend or Logic App to manage availability and confirmations. Coordinating appointments over email or phone is slow and manual. Even traditional SMS-based schedulers often rely on rigid decision trees that break when users type something unexpected. This demo takes a smarter approach. By combining Azure Communication Services with Azure OpenAI, it lets users book, confirm, or reschedule appointments through natural, conversational SMS - no app, no portal, no menus. Just text like you normally would: “Hey, can I move my appointment to next Tuesday?” “Do you have anything earlier in the day?” Behind the scenes, Azure Communication Services handles the messaging layer, while OpenAI interprets the user’s intent and routes it to backend logic that manages availability and confirmations. It’s a lightweight, flexible solution that’s ideal for clinics, service providers, or any business that wants to streamline scheduling—without sacrificing user experience. Try the SMS scheduling demo. Everything you need to get started is in the README. Reach Customers on WhatsApp – Right Alongside SMS & Email 🔎 Quick Look What it does: Send messages across WhatsApp, SMS, and email from a single workflow. Why it matters: Increases engagement by meeting users where they are. What you’ll need: Azure Communication Services with Advanced Messaging SDK, verified sender setup for each channel Your customers are already on WhatsApp. Now your app can be too, without rearchitecting your entire messaging stack. Azure Communication Services lets you send and receive WhatsApp messages using the same platform you already use for SMS, email, and chat. That means you can reuse your existing workflows, backend logic, and delivery infrastructure - just with a new channel that meets your users where they are. Whether it’s appointment reminders, shipping updates, or live customer support, WhatsApp becomes just another part of your communication toolkit. You can trigger messages using Azure Event Grid, automate replies with Azure Bot Framework, and manage everything through the Advanced Messaging SDK. Want to see it in action? This quickstart guide walks you through registering your WhatsApp Business Account, connecting it to Azure Communication Services, and sending both text and media messages. > Channels selected from the blade menu. Learn more: Overview of Advanced Messaging for WhatsApp Send text and media WhatsApp messages (Quickstart) Publish an agent to WhatsApp using Copilot Studio Let Customers Join a Teams Meeting- Without a Teams Account 🔎 Quick Look What it does: Embed a browser-based Teams meeting experience into your app or site. Why it matters: Makes it easy for customers to join secure meetings without downloading Teams or signing in. What you’ll need: Azure Communication Services with Teams interop, a Teams meeting link, and a web app or portal. Not every customer wants to download an app or create a Microsoft account just to join a meeting. With Azure Communication Services, you can embed a fully branded, browser-based meeting experience into your app or website that connects directly to a Microsoft Teams meeting - no Teams account required. This is especially useful for industries like healthcare, legal, or financial services, where external participants need to join secure consultations or appointments without friction. You control the UI, the branding, and the flow, while Azure Communication Services handles the real-time voice and video connection to Teams. You can see how this works in the interop-quickstart demo, which shows how to create a Teams meeting, generate a join link, and embed the experience in a custom app. Handle Teams Calls Inside Your CRM—No App Switch Required 🔎 Quick Look What it does: Let agents make and receive Teams calls directly inside Dynamics 365 or a custom contact center UI. Why it matters: Reduces context switching and improves agent efficiency. What you’ll need: Teams Phone Extensibility, Azure Communication Services Call Automation, Dynamics 365 or another CCaaS. Most contact center agents juggle multiple tools - CRM, phone, notes, AI assistants - just to handle a single call. But what if they could do it all in one place? With Teams Phone Extensibility, powered by Azure Communication Services, agents can make and receive Teams calls directly inside Dynamics 365 or any custom contact center app. No need to open the Teams client. Here’s what’s possible: Answer calls in a custom agent desktop, routed through Teams Phone. Trigger AI workflows mid-call—like summarizing the conversation with Azure OpenAI or escalating to a supervisor. Initiate outbound calls from bots or workflows using ACS’s Call Automation APIs. Record and analyze calls with full control over logic and storage. It’s a surprising way to bring AI, voice, and CRM together, without rebuilding your contact center from scratch. Embed Secure Video Visits to Your Healthcare App–Fast 🔎 Quick Look What it does: Add HIPAA-compliant video calling with identity integration. Why it matters: Enables secure, branded telehealth or consultation experiences. What you’ll need: Azure Communication Services for video, Azure AD B2C, and a secure frontend. Telehealth is here to stay. But building a secure, compliant video experience from scratch can be a heavy lift. Azure Communication Services makes it easier. With built-in support for HIPAA, GDPR, and SOC 2, encrypted media transport, and identity integration via Azure AD B2C, Azure Communication Services lets you embed video calling directly into your app—without compromising on privacy or user experience. The Sample Builder shows how to combine video, chat, and SMS into a seamless patient-provider experience. It’s ready to deploy, customize, and scale. Learn more: Azure Communication Services HIPAA compliance overview Quickstart - Add video calling to your app - An Azure Communication Services quickstart | Microsoft Learn Combine AI and Human Support in a Single Chat Experience 🔎 Quick Look What it does: Start with an AI assistant and escalate to a human agent with full context. Why it matters: Scales support while preserving the human touch when needed. What you’ll need: Azure Communication Services for chat, Azure OpenAI, bot framework, and agent handoff logic. Most customer service chats start with automation—but they shouldn’t get stuck there. With Azure Communication Services, you can build a chat experience that begins with an AI assistant and hands off to a human agent when it makes sense. This demo shows how it works: a customer starts chatting through a web widget. An AI assistant, powered by Azure OpenAI, handles common questions and tasks. If the conversation gets complex or the user asks for help, the chat transitions smoothly to a live agent—no context lost. Agents can even generate AI-powered summaries to get up to speed quickly before jumping in. It’s a practical way to scale support without sacrificing the human touch. . On the left, a dialog box displays the user experience, while on the right, the agent's view shows the conversation summary and includes a button to take over the automated chat. Build a voice-first, AI virtual assistant in Under a Week 🔎 Quick Look What it does: Launch a branded voice assistant quickly using Zammo.ai and ACS. Why it matters: Speeds up deployment of voice experiences across channels. What you’ll need: Zammo.ai, Azure Communication Services for voice, and a publishing channel (e.g., Alexa, web). When Montgomery County, Maryland needed to support COVID-19 vaccine registration, they didn’t have months to build a solution. In just six business days, they launched a voice-first virtual assistant that handled 100% of inbound calls: automating appointment scheduling, supporting English and Spanish, and deflecting thousands of calls from live agents. They partnered with Zammo.ai to build the experience, all without writing custom code. Where Azure Communication Services fits in: Azure Communication Services powered the voice infrastructure, enabling a scalable, multilingual experience that saved time, reduced hold times by 90%, and helped the county serve residents more equitably. Don’t take our word for it, learn more about how it came together here. Know What You’ll Pay, Before You Ship 🔎 Quick Look What it does: Estimate costs and usage before you build. Why it matters: Helps you plan and budget more effectively. What you’ll need: Azure Communication Services pricing calculator, usage estimator, and billing dashboard. One of the first questions developers ask when building with Azure Communication Services is: “How much is this going to cost me?” And the answer is: it depends, but in a good way. Azure Communication Services uses a flexible, pay-as-you-go pricing model. You’re only billed for what you use - no upfront commitments, no recurring subscription fees. That makes it easy to prototype, test, and scale without overcommitting. Each communication channel (SMS, email, voice/video calling, and WhatsApp) has its own pricing structure based on usage volume, geography, and delivery method. For example: SMS to U.S. numbers is priced differently than international messages. Voice calls vary depending on whether you’re using VoIP, PSTN, or Teams interop. WhatsApp pricing may involve partner-based rates through Messaging Connect. There are a few exceptions to the pay-as-you-go model. For instance, leasing a dedicated phone number incurs a monthly fee. But overall, the model is transparent and developer-friendly. To help you estimate costs and plan ahead, here are some helpful resources: Azure portal pricing calculator: Azure Communication Services pricing | Microsoft Azure Azure Communication Services Pricing Overview: Azure Communication Services pricing | Microsoft Azure What Will You Build Next? Azure Communication Services gives you the flexibility to build the communication experience your users actually want - whether that’s a quick SMS, a secure video call, or a voice assistant that gets things done. And when you combine ACS with other Azure services like OpenAI, Event Grid, and Bot Framework, the possibilities expand even further. We’ll keep this post updated as new scenarios and demos emerge. If you’ve built something interesting with ACS, we’d love to hear about it—and maybe even feature it in a future post. Check out our official documentation to get started today!Messaging Connect: Global SMS Coverage Now Available in Azure Communication Services
Messaging Connect is now in public preview—Messaging Connect is a new partner-based model for Azure Communication Services that enables global SMS coverage in over 190 countries—starting with Infobip. It simplifies compliant delivery, removes provisioning complexity, and helps developers reach users or Agents reach humans, worldwide using the Azure Communication Service SMS API they already know.Build an AI Email Responder with OpenAI and Azure Communication Services
Customer support is vital but often bogged down by repetitive queries like password resets, billing issues, and basic troubleshooting. Automating these common responses frees up valuable time, allowing your team to focus on more complex tasks. In this tutorial, we'll build an AI-Powered Email Responder that leverages OpenAI’s GPT models to craft intelligent replies and Azure Communication Services to handle email delivery seamlessly. How It Works Here's how our AI-powered responder works: Input Query: Enter the recipient’s email, subject, and customer query. Generate Response: GPT quickly drafts a detailed reply. Review & Edit: You can adjust the response as needed. Send Email: Azure Communication Services dispatches the message instantly. Prefer a walkthrough? Watch the full video demo to see the app in action with live code explanations. Tools We’re Using This project is ideal for developers, solution architects, or anyone exploring practical AI integrations with minimal setup. We will utilize the following services: Azure OpenAI Service: Provides state-of-the-art GPT models capable of intelligent text generation and conversational responses. Azure Communication Services: Delivers reliable, scalable, and secure email capabilities suitable for enterprise-level applications. Azure Environment Setup Follow these steps to configure your Azure environment: 1. Azure OpenAI Service Go to Azure Portal and create an "Azure OpenAI" resource (see how: docs). In Azure AI Studio, deploy your selected GPT model (such as GPT-4o). Retrieve your API Key, Endpoint URL, and Deployment ID. 2. Azure Communication Services In Azure Portal, create "Communication Services" and "Email Communication Services" resources (see how: docs or video). Provision a free Azure subdomain and obtain your verified sender email address. Copy your Connection String from your Communication Services resource for later use. Coding the Application You can view the full project on GitHub to access the complete, ready-to-use code, and skip the manual steps — or follow the highlights below to understand how everything works. Create two files; an .env file and app.py file in your preferred IDE. 3. Environment Variables (.env file): Replace OpenAI and Azure Communication Services configurations with your credentials obtained in the above steps. Store sensitive credentials securely: # OpenAI Configuration OPENAI_API_KEY=your_azure_openai_key OPENAI_ENDPOINT=https://your-openai-resource.openai.azure.com/ # Azure Communication Services Configuration ACS_CONNECTION_STRING=endpoint=https://your-resource.communication.azure.com/;accesskey=your_key ACS_SENDER_EMAIL=DoNotReply@your-resource.communication.azure.com RECIPIENT_EMAIL=someone@example.com 4. Python Application (app.py): The app.py file provided uses Streamlit to create an intuitive and interactive user interface. Users input recipient details and customer queries directly through the web-based form. Behind the scenes, the app makes API calls to Azure OpenAI, sending the customer's query to generate a contextually relevant reply using the GPT model. It also leverages Azure Communication Services API to dispatch the finalized email instantly to the specified recipient. You can access the full detailed code and in-depth explanations in the GitHub repository. Below is the breakdown of the app’s core functionality, highlighting how each user action maps to backend logic for generating, editing, and sending AI-crafted responses. 🧠 Generate Response We send the user’s query to Azure OpenAI with a prompt like: "You are a support agent. Respond only with the email body. Be concise, helpful, and use numbered steps if needed." 💬 Preview and Edit The AI-generated response is displayed in a text area, allowing human review and manual editing. ✉️ Send via Azure Communication Services Email We use the EmailClient from the azure.communication.email package to send the final message. Ideas for Extension The app provides a strong foundation for exploring AI automation using large language models and email APIs, and it can easily be extended with additional capabilities such as: RAG (Retrieval-Augmented Generation): Integrate with internal knowledge bases for more tailored answers. Ticketing Integration: Connect directly with your existing support or ticketing system to fetch queries and update responses automatically. Role-based Prompts: Fine-tune the AI’s tone based on use case (e.g., sales vs. tech support). Analytics & Logs: Track usage and monitor AI-generated replies for compliance and quality. Final Thoughts This project shows how easy it is to bring real AI capabilities into customer workflows using Azure. You get powerful language understanding via OpenAI and production-grade email delivery through Azure Communication Services—all in a minimal Python app. Whether you're prototyping a support bot or building internal tools, this project offers a practical entry point into real-world AI automation. Get started by exploring the GitHub repository.Public Preview of Teams Phone extensibility for CCaaS ISV solution developers
At Enterprise Connect in March, we introduced Teams Phone extensibility for Dynamics 365 Contact Center and contact center as a service (CCaaS) ISV solutions to help organizations extend their telephony investment with Teams Phone into the contact center. On June 2nd 2025, we are pleased to announce that ISV developers can now access Teams Phone extensibility in public preview for their CCaaS solutions. Background With generative AI, Contact Center as a Service (CCaaS) providers can easily advise human agents so they’re responsive to customer needs, can automate workflows and ultimately improve the overall customer experience. However, workflows are often divided between Unified Communications as a Service (UCaaS) providers like Microsoft Teams and CCaaS systems. This division limits generative AI's potential to streamline operations and deliver a consolidated view of data. Today, organizations want integrated, customizable solutions from their CCaaS providers that unify telephony infrastructure for a complete view of customer interactions and robust data handling. Teams Phone extensibility benefits for CCaaS developers Teams Phone extensibility, which is powered by Azure Communication Services (ACS), enables CCaaS vendors to integrate seamlessly with Teams Phone and deliver several benefits to their customers and end-users, including: Consolidated Telephony for UCaaS and CCaaS: Simplified setup with no need to configure and administer separate phone systems. Customers can use their Teams phone telephony investment for contact center deployments. Conversational AI Integration: Developers can use Call Automation APIs to use AI-powered tools, play personalized greeting messages, and recognize conversational voice inputs. Extend UCaaS Capabilities to CCaaS: Take advantage of Teams Phone enterprise features, including emergency calling and dial plan policies. Agent Notification handling: Enable data segregation between CCaaS persona and UCaaS persona with the choice of ringing either the Teams standard client or a CCaaS application. Cost Efficiency: Enable ISVs to build cost-effective solutions using existing Teams Phone plans, without adding Azure Communication Services numbers or Direct Routing. Broader Geographic Availability: Integration with Teams Calling Plans, Direct Routing, and Operator Connect provides wider telephony options. Key Features Provisioning for Seamless Integration: Empower CCaaS providers to connect their ACS deployments with customers' Teams tenants, enabling the use of Teams telephony features for a cohesive and efficient communication experience. Call Routing and Mid-Call Controls: Advanced call routing capabilities for efficient call management and escalation to agents. Mid-call controls enable adding participants, redirecting calls, and transferring calls seamlessly. Convenience Recording: Integrate call recording capabilities into Microsoft Teams for CCaaS scenarios, enabling customized recording processes controlled by CCaaS admins. For more information, see Call Recording overview. Conversational AI Integration: Developers can use Call Automation APIs to leverage AI-powered tools, play personalized greeting messages, recognize conversational voice inputs, and use sentiment analysis to improve customer service. Get started today with this Call Automation OpenAI sample. On-Behalf-Of (OBO) calling enables applications to initiate and manage voice calls on behalf of a Teams Resource Account, enabling seamless integration with enterprise workflows Leverage Call Automation: Azure Communication Services Call Automation APIs provide call control and enable CCaaS providers to build server-based and intelligent call flows. Leverage Client SDK: Azure Communication Services Client SDK provide the means for a CCaaS provider to develop a custom client for CCaaS persona workflows In this release, we are adding the following new features: Emergency Calling: Powered by Azure Communication Services Calling SDK, we bring enhanced emergency calling support for agents who can dial emergency services, provide their static location, and receive callbacks from public safety answering points with Teams Phone service numbers. Billing: The Teams Phone extensibility business model charges CCaaS vendors for using Azure Communication Services SDKs, including Calling SDK, VoIP consumption, Audio Insights, and Call Recording, while end users must use Teams Calling Plans and enable necessary Teams licenses for agents and resource accounts. More details on Azure Communication Services pricing can be found here. Telemetry: Developers and CCaaS providers can access calling details and logging tools as part of the Teams Phone extensibility. Telemetry enables developers and system admins to monitor call use and debug call quality from the Azure portal either. They can do this by analyzing the Call Summary and Call Diagnostic Logs with a clear Team Phone Extensibility identifier or using the Call Diagnostic Center. We want your feedback We are eager to hear your feedback on the performance, reliability, and overall user experience. Your insights on any missing functionalities or additional scenarios that should be considered are invaluable. Your feedback helps us refine and enhance the feature before general release, ensuring it meets the needs of our customers. We look forward to hearing your thoughts! Get started today Developers can join the Azure Communication Services Technology Adoption Program (TAP) here: Azure Communication Services Technology Adoption Program Registration. We look forward to seeing how partners and customers like you leverage these new capabilities to improve your contact center operations. Concept: https://aka.ms/TPe-Overview FAQ: https://aka.ms/TPe-FAQ Tutorials: https://aka.ms/TPe-Tutorials Support: https://aka.ms/ACS-Support1.7KViews0likes0CommentsMoving Email Traffic from Exchange to Azure Communication Services
This article describes the important steps and considerations for transitioning from Exchange Online or other on-premises solutions to the Azure Communication Services email platform. It is also relevant for customers migrating from other mail solutions, whether on-premises or hybrid, to Azure Communication Services.