<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Azure Communication Services Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/azure-communication-services/bg-p/AzureCommunicationServicesBlog</link>
    <description>Azure Communication Services Blog articles</description>
    <pubDate>Tue, 28 Apr 2026 01:34:16 GMT</pubDate>
    <dc:creator>AzureCommunicationServicesBlog</dc:creator>
    <dc:date>2026-04-28T01:34:16Z</dc:date>
    <item>
      <title>From Call Transcripts to CRM Gold: AI-Powered Post-Call Intelligence</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/from-call-transcripts-to-crm-gold-ai-powered-post-call/ba-p/4456337</link>
      <description>&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;What if those transcripts could talk back?&lt;/P&gt;
&lt;H2&gt;How We Transform Call Transcripts into CRM Data&lt;/H2&gt;
&lt;P&gt;Instead of just explaining what's possible, we built something you can click through and try on your own.&lt;/P&gt;
&lt;img&gt;The five-step workflow transforms raw customer conversations into structured business data with human oversight before CRM integration.&lt;/img&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;The real value isn't just saving time on data entry. It's about not losing what actually happened on that call.&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/lAd_GmXEEW8?si=pyCnVXXtcDWa0DrL/1758735581619" data-video-remote-vid="https://youtu.be/lAd_GmXEEW8?si=pyCnVXXtcDWa0DrL/1758735581619" class="lia-video-container lia-media-is-center lia-media-size-medium"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FlAd_GmXEEW8%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlAd_GmXEEW8&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FlAd_GmXEEW8%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H2&gt;How Human-AI Collaboration Ensures Reliable Results&lt;/H2&gt;
&lt;P&gt;We made some choices that matter if you're thinking about real business use.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Raw transcripts are a mess.&lt;/STRONG&gt; 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.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Human oversight isn't just editing typos.&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Human reviewers can edit AI analysis before it goes to the CRM, ensuring business context and nuance are preserved in customer records&lt;/img&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Structured output changes guarantees consistent CRM data.&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img&gt;&lt;EM&gt;AI-structured call data formatted as JSON payload ready for direct CRM integration via API&lt;/EM&gt;&lt;/img&gt;
&lt;H2&gt;Business Intelligence You Can Act on Immediately&lt;/H2&gt;
&lt;P&gt;Once you've got structured call intelligence, things get interesting fast.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Structured call data unlocks immediate actions, business intelligence, and real-time agent support capabilities&lt;/img&gt;
&lt;H2&gt;The Real Opportunity&lt;/H2&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H2&gt;How to Connect Live Call Data to Your AI Analysis&lt;/H2&gt;
&lt;P&gt;Real implementations need live conversation data rather than static transcripts. That's where the integration work begins.&lt;/P&gt;
&lt;P&gt;Azure Communication Services &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/how-tos/call-automation/real-time-transcription-tutorial?pivots=programming-language-javascript" target="_blank" rel="noopener"&gt;Call Automation APIs&lt;/A&gt; 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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H2&gt;Simple Technology Stack: Node.js + Azure OpenAI&lt;/H2&gt;
&lt;P&gt;We deliberately chose straightforward technology to prove a point: you don't need exotic tools for sophisticated call intelligence.&lt;/P&gt;
&lt;P&gt;Node.js backend. Vanilla JavaScript frontend. OpenAI structured output with strict JSON schemas. That's it.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What do we mean by "structured output"?&lt;/STRONG&gt; 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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H2&gt;Try the Post-Call Intelligence Demo&lt;/H2&gt;
&lt;P&gt;Clone the &lt;A href="https://github.com/seanryankeegan/post-call-intelligence" target="_blank" rel="noopener"&gt;repository&lt;/A&gt; 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.&lt;/P&gt;
&lt;img&gt;Simple setup process: clone the repository, install dependencies, configure Azure OpenAI credentials, and launch the demo.&lt;/img&gt;
&lt;P&gt;For more information and resources, check out &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/how-tos/call-automation/real-time-transcription-tutorial?pivots=programming-language-javascript" target="_blank" rel="noopener"&gt;the docs on real-time transcription&lt;/A&gt; or see more &lt;A href="https://github.com/Azure-Samples" target="_blank" rel="noopener"&gt;communication API + AI sample demos&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 11:59:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/from-call-transcripts-to-crm-gold-ai-powered-post-call/ba-p/4456337</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2026-01-29T11:59:50Z</dc:date>
    </item>
    <item>
      <title>How AI + Communication APIs Are Transforming Work Across Industries</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/how-ai-communication-apis-are-transforming-work-across/ba-p/4454224</link>
      <description>&lt;H1&gt;The Specialization Revolution&lt;/H1&gt;
&lt;P&gt;Businesses across industries want AI-driven automation that actually meets their unique needs. Generic, one-size-fits-all solutions aren’t cutting it anymore.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H1&gt;A Framework for Communication Intelligence&lt;/H1&gt;
&lt;P&gt;Not every interaction needs the same level of AI. Think about your communications in four buckets:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;STRONG&gt;Automated at Scale:&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt; Contextually Intelligent:&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt; Human-Augmented:&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt; Purely Human:&lt;/STRONG&gt; 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.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;&lt;EM&gt;Four levels of AI involvement in communications, from fully automated to purely human.&lt;/EM&gt;&lt;/img&gt;
&lt;P&gt;Figure out where your communications fit, and you'll spot the best places to add AI.&lt;/P&gt;
&lt;H1&gt;Industry Transformation in Action&lt;/H1&gt;
&lt;P&gt;Here's how different industries are applying these concepts to solve real problems.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Healthcare: Secure, Compliant Patient Communication&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Healthcare has strict privacy rules and handles tons of sensitive patient information, but patients still expect things to move quickly and smoothly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Smart Appointment Management&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;See this in action: &lt;/EM&gt;&lt;A class="lia-external-url" href="https://github.com/pereiralex/sms-appointment-scheduler" target="_blank" rel="noopener"&gt;AI SMS Appointment Scheduler demo&lt;/A&gt;&lt;EM&gt; shows how natural conversation flows work for scheduling and rescheduling.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Intelligent Call Routing&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;img&gt;Healthcare AI routing patient communications to appropriate staff based on urgency and topic.&lt;/img&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Financial Services: Balancing Compliance with Personal Service&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Banks and financial firms must document everything and stay compliant, but clients still want personal, responsive service.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Streamlined Client Onboarding&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Automated Compliance Documentation&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;Financial services are using AI to handle the regulatory heavy lifting so advisors can focus on actually advising and building relationships.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Recruiting: Scaling Personal Connection&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Recruiting is all about balancing efficiency with personal touch. You need to reach hundreds of candidates but make each one feel special.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Smart Outreach Campaigns&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Coordinated Interview Scheduling&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Retail and E-commerce: Responsive Customer Service&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Intelligent Issue Routing&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;See this in action: &lt;A class="lia-external-url" href="https://github.com/pereiralex/Simple-bot-handoff-sample" target="_blank" rel="noopener"&gt;Customer Service Chat with AI Handoff demo&lt;/A&gt; &lt;/EM&gt;shows smooth transitions from AI help to human agents with conversation summaries.&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/mU5mEFMN_JI?si=WzzS47Wla9GSCkGr/1757956649860" data-video-remote-vid="https://youtu.be/mU5mEFMN_JI?si=WzzS47Wla9GSCkGr/1757956649860" class="lia-video-container lia-media-is-center lia-media-size-medium"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FmU5mEFMN_JI%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DmU5mEFMN_JI&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FmU5mEFMN_JI%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&lt;STRONG&gt;Proactive Problem Resolution&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;Retail works best when AI handles routine stuff quickly while making sure complex or emotional situations get immediate human attention with complete context.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Sales and Account Management: Relationship Intelligence&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Sales is about building relationships over time. You need deep understanding of client needs, preferences, and business context&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Automated Relationship Maintenance&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Meeting Intelligence and Follow-ups: &lt;/STRONG&gt;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.&lt;STRONG&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;See how it works:&lt;/EM&gt; The &lt;A href="https://www.youtube.com/watch?v=3OEnY7S8YPY" target="_blank" rel="noopener"&gt;Build an AI Email Agent with Copilot Studio&lt;/A&gt; video below shows step-by-step implementation.&lt;/P&gt;
&lt;div data-video-id="https://youtu.be/3OEnY7S8YPY?si=2B-b_TAOl5M1ZLAz/1757956707423" data-video-remote-vid="https://youtu.be/3OEnY7S8YPY?si=2B-b_TAOl5M1ZLAz/1757956707423" class="lia-video-container lia-media-is-center lia-media-size-medium"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F3OEnY7S8YPY%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D3OEnY7S8YPY&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F3OEnY7S8YPY%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P class="lia-clear-both"&gt;Sales teams get value when AI handles data analysis and admin tasks while humans focus on strategy and relationship building.&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;Education: Personalized Student Support&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;Schools manage communications across tons of different people with different needs and preferences.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Accessible Student Support&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Proactive Student Engagement&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;Educational implementations work best when AI handles routine admin communications while keeping meaningful educational relationships human-centered.&lt;/P&gt;
&lt;H1&gt;Getting Started&lt;/H1&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;img&gt;A 24-month implementation roadmap from pilot phase to enterprise automation.&lt;/img&gt;
&lt;P class="lia-clear-both"&gt;&lt;STRONG&gt;Start Simple&lt;/STRONG&gt;: 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. &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/overview" target="_blank" rel="noopener"&gt;Get started with Azure Communication Services&lt;/A&gt; or check out &lt;A href="https://ai.azure.com/doc/" target="_blank" rel="noopener"&gt;integrating Azure AI Foundry&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Scale Up When Ready&lt;/STRONG&gt;: For complex workflows, &lt;A href="https://learn.microsoft.com/en-us/microsoft-copilot-studio/fundamentals-what-is-copilot-studio" target="_blank" rel="noopener"&gt;Copilot Studio&lt;/A&gt; lets you build conversational AI that connects to your business data and works across Teams, websites, and other channels.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What makes it work&lt;/STRONG&gt;: 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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Quick resources:&lt;/STRONG&gt; &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/" target="_blank" rel="noopener"&gt;Azure Communication Services&lt;/A&gt;, &lt;A href="https://learn.microsoft.com/en-us/azure/ai-services/" target="_blank" rel="noopener"&gt;Azure AI Foundry&lt;/A&gt;, &lt;A href="https://learn.microsoft.com/en-us/microsoft-copilot-studio/" target="_blank" rel="noopener"&gt;Copilot Studio&lt;/A&gt;, &lt;A href="https://github.com/Azure-Samples" target="_blank" rel="noopener"&gt;GitHub examples&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Pick one workflow. Build something simple. See what you learn.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 11:55:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/how-ai-communication-apis-are-transforming-work-across/ba-p/4454224</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2026-01-29T11:55:46Z</dc:date>
    </item>
    <item>
      <title>General Availability of Teams Phone extensibility</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/general-availability-of-teams-phone-extensibility/ba-p/4446092</link>
      <description>&lt;P&gt;We are proud to &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/microsoftteamsblog/streamline-voice-and-crm-telephony-across-your-organization-with-teams-phone-ext/4450515" target="_blank" rel="noopener" data-lia-auto-title="announce the general availability of Teams Phone extensibility (TPE) powered by Azure Communication Services" data-lia-auto-title-active="0"&gt;announce the general availability of Teams Phone extensibility (TPE) powered by Azure Communication Services&lt;/A&gt;. This enables Contact Center as a Service (CCaaS) vendors to integrate seamlessly with Teams Phone, offering benefits such as consolidated telephony for Unified Communications as a Service (UCaaS) and Contact Center as a Service (CCaaS), conversational AI integration, extended UCaaS capabilities, agent notification handling, cost efficiency and broader geographic availability. &amp;nbsp;Additional advantages include seamless provisioning, advanced call routing and mid-call controls, convenience recording, efficient call control and management via Azure Communication Services Call Automation.&lt;/P&gt;
&lt;P&gt;Organizations today face a divide between UCaaS platforms like Microsoft Teams and CCaaS systems. This separation makes it difficult to unlock the full potential of generative AI, such as real-time agent assistance, automated workflows, or customer insights consolidation. TPE addresses this challenge by unifying telephony infrastructure across UCaaS and CCaaS. With TPE, businesses gain integrated, customizable solutions that provide a complete view of customer interactions and enable robust data handling for improved customer and agent experiences.&lt;/P&gt;
&lt;H2&gt;Teams Phone extensibility Benefits&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Teams Phone extensibility powered by Azure Communication Services Call Automation&lt;/STRONG&gt;&amp;nbsp;enables CCaaS vendors to seamlessly integrate with Teams Phone, offering several benefits:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Consolidate&lt;/STRONG&gt;&lt;STRONG&gt; Telephony for UCaaS and CCaaS:&amp;nbsp;&lt;/STRONG&gt;Simplified setup with no need to configure and administer separate phone systems. Organizations can leverage their existing Teams Phone investment for contact center deployments.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Conversational AI Integration&lt;/STRONG&gt;: Developers can use Call Automation APIs to use AI-powered tools, play personalized greeting messages, and recognize conversational voice inputs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extend UCaaS Capabilities to CCaaS:&lt;/STRONG&gt;&amp;nbsp;Take advantage of Teams Phone enterprise features, including emergency calling and dial plan policies.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Agent Notification Handling:&lt;/STRONG&gt;&amp;nbsp;Enable data segregation between CCaaS and UCaaS roles with the choice of ringing either the Teams standard client or a CCaaS application.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cost Efficiency:&lt;/STRONG&gt;&amp;nbsp;Enable ISVs to build cost-effective solutions using existing Teams Phone plans, without adding Azure Communication Services numbers or Direct Routing.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Broader Geographic Availability&lt;/STRONG&gt;: Integration with Teams Calling Plans, Direct Routing, and Operator Connect provides wider telephony options.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;H2&gt;Key Features&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Conversational AI Integration&lt;/STRONG&gt;: Developers can use Call Automation APIs to leverage AI-powered tools, play personalized greeting messages, and recognize conversational voice inputs. Get started today with this&amp;nbsp;Call Automation OpenAI sample.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Provisioning for Seamless Integration&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: 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.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Call Routing and Mid-Call Controls&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: Advanced call routing capabilities for efficient call management and escalation to agents. Mid-call controls enable adding participants and transferring calls seamlessly.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Convenience Recording&lt;/STRONG&gt;: Integrate call recording capabilities into Microsoft Teams for CCaaS scenarios, enabling customized recording processes controlled by CCaaS admins. For more information, see &lt;A href="https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/call-recording" target="_blank" rel="noopener"&gt;Call Recording overview&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;On-Behalf-Of (OBO) Calling&lt;/STRONG&gt;: Enable applications to initiate and manage voice calls on behalf of a Teams Phone service number, enabling seamless integration with enterprise workflows&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Leverage Call Automation:&amp;nbsp;&lt;/STRONG&gt;Azure Communication Services&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/call-automation/call-automation" target="_blank" rel="noopener"&gt;Call Automation APIs&lt;/A&gt;&amp;nbsp;provide call control and enable CCaaS providers to build server-based and intelligent call flows for IVRs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Leverage Client SDK:&amp;nbsp;&lt;/STRONG&gt;Azure Communication Services &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/calling-sdk-features" target="_blank" rel="noopener"&gt;Client SDK&lt;/A&gt; enables a CCaaS provider to develop a custom client for CCaaS&amp;nbsp; persona workflows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Emergency Calling&lt;/STRONG&gt;: With Azure Communication Services&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/calling-sdk-features" target="_blank" rel="noopener"&gt;Calling SDK&lt;/A&gt;, 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Billing&lt;/STRONG&gt;: The TPE business model charges vendors for consumption when they build solutions with Azure Communication Services SDKs and services. Teams users and service numbers leverage Teams calling plans and Teams Phone licenses as described &lt;A class="clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark" href="https://learn.microsoft.com/en-us/microsoftteams/phones/phones-for-teams#required-licenses" target="_blank" rel="noopener"&gt;here&lt;/A&gt;. More details on Azure Communication Services pricing can be found &lt;A href="https://azure.microsoft.com/en-us/pricing/details/communication-services/?msockid=29591b22ce2367e3338a0afdcfe86647" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Telemetry&lt;/STRONG&gt;: Developers and Contact Center as a Service can access calling details and logging tools as part of the Teams Phone extensibility. Telemetry allows developers and system admins to monitor call use and debug call quality from the Azure portal. They can do this by analyzing the Call Summary and Call Diagnostic Logs with a clear Team Phone Extensibility identifier or using the &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/call-diagnostics" target="_blank" rel="noopener"&gt;Call Diagnostic Center&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Public Preview of New AI Insights Features&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Automated Meeting Summaries:&amp;nbsp;&lt;/STRONG&gt;Leverage the built-in AI-powered summarization feature - an automated tool that listens to calls and meetings, extracts key decisions and action items in real time, and compiles them into concise, actionable recaps. This automation streamlines follow-up, saves valuable time otherwise spent on manual notetaking, and ensures all stakeholders have immediate access to clear and consistent records. This enhances accountability and improves communication across teams.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Sentiment analysis&lt;/STRONG&gt; also tracks emotional tone, allowing contact center supervisors to monitor interactions and intervene when necessary, helping support both customers and agents in sensitive situations.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PII Redaction for Compliance:&amp;nbsp;&lt;/STRONG&gt;Integrate the PII Redaction action to identify and mask personally identifiable information from calls and communications in real time. This ensures that sensitive details—such as names, addresses, or identification numbers—are never stored in backend systems or logs, supporting compliance with privacy regulations and reinforcing trust with end-users.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Language Detection: &lt;/STRONG&gt;Use AI-driven real-time language identification to detect spoken languages automatically, eliminating the need for users to select their language before talking to enable smooth, natural conversations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Conversational AI capabilities - meeting summary, sentiment analysis, language detection and PII redaction can be found&amp;nbsp;&lt;/SPAN&gt;&lt;A class="clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://learn.microsoft.com/en-us/azure/communication-services/how-tos/call-automation/real-time-transcription-tutorial?pivots=programming-language-csharp#sentiment-analysis-preview" target="_blank" rel="noopener"&gt;here.&lt;/A&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Get started today&lt;/H2&gt;
&lt;P&gt;We look forward to supporting partners and customers like you to leverage these new capabilities. In addition to Dynamics 365 Contact Center, ISV solutions that have been certified for TPe are:&lt;A href="https://www.audiocodes.com/blog/voca-cic-is-now-unify-certified-by-microsoft-what-that-means-for-teams-contact-centers" target="_blank" rel="noopener"&gt; AudioCodes&lt;/A&gt;, &lt;A class="lia-external-url" href="https://www.centrepal.com/unify?utm_source=microsoft&amp;amp;utm_medium=referral&amp;amp;utm_campaign=unify_certification_msft" target="_blank" rel="noopener"&gt;CentrePal,&lt;/A&gt; &lt;A href="https://www.computer-talk.com/product/enterprise-contact-center/ice-contact-center-for-teams" target="_blank" rel="noopener"&gt;ComputerTalk&lt;/A&gt;, &lt;A href="https://www.heedify.io/en/blog/modele-unify-microsoft-teams-la-cle-pour-une-vraie-integration-de-popc" target="_blank" rel="noopener"&gt;Heedify&lt;/A&gt;, and &lt;A href="https://landistechnologies.com/blog/landis-achieves-microsoft-unify-contact-center-certification/" target="_blank" rel="noopener"&gt;Landis&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Together, we can build and improve your contact center solutions using consolidated telephony for UCaaS and CCaaS, conversational AI integration and global availability!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Concept:&amp;nbsp;&lt;A href="https://aka.ms/TPe-Overview" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-Overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;FAQ: &lt;A href="https://aka.ms/TPe-FAQ" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-FAQ&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tutorials: &lt;A href="https://aka.ms/TPe-Tutorials" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-Tutorials&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Support:&lt;A href="https://aka.ms/TPe-Support" target="_blank" rel="noopener"&gt; https://aka.ms/TPe-Support&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 04 Sep 2025 00:17:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/general-availability-of-teams-phone-extensibility/ba-p/4446092</guid>
      <dc:creator>AnkurAgarwal</dc:creator>
      <dc:date>2025-09-04T00:17:57Z</dc:date>
    </item>
    <item>
      <title>Azure Communication Services is now Generally Available in Azure Government</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/azure-communication-services-is-now-generally-available-in-azure/ba-p/4448034</link>
      <description>&lt;P data-start="469" data-end="834"&gt;We’re excited to announce that Azure Communication Services (ACS) is now Generally Available in Azure Government, including Video and Chat capabilities. This milestone empowers U.S. government agencies and their partners to deliver&amp;nbsp;modern, secure, and compliant communication experiences - all within their own applications. From telehealth and virtual hearings to workforce collaboration and citizen engagement, ACS makes it possible to build trusted digital services that bring people together wherever they are.&lt;/P&gt;
&lt;H2 data-start="836" data-end="871"&gt;Empowering Government Missions&lt;/H2&gt;
&lt;P data-start="872" data-end="931"&gt;With ACS now available in Azure Government, agencies can:&lt;/P&gt;
&lt;UL data-start="932" data-end="1641"&gt;
&lt;LI data-start="932" data-end="1095"&gt;&lt;STRONG data-start="934" data-end="965"&gt;Enhance citizen experiences&lt;/STRONG&gt; – Enable secure video appointments, real-time case updates, and virtual assistance that improve accessibility and satisfaction.&lt;/LI&gt;
&lt;LI data-start="1096" data-end="1272"&gt;&lt;STRONG data-start="1098" data-end="1137"&gt;Support mission-critical operations&lt;/STRONG&gt; – Facilitate remote collaboration for defense, justice, and healthcare agencies while maintaining the highest standards of security.&lt;/LI&gt;
&lt;LI data-start="1273" data-end="1424"&gt;&lt;STRONG data-start="1275" data-end="1312"&gt;Accelerate digital transformation&lt;/STRONG&gt; – Embed communications directly into existing apps and workflows to reduce complexity and improve efficiency.&lt;/LI&gt;
&lt;LI data-start="1425" data-end="1641"&gt;&lt;STRONG data-start="1427" data-end="1455"&gt;Stay compliant by design&lt;/STRONG&gt; – ACS in Azure Government inherits critical certifications, including FedRAMP High, giving agencies confidence in meeting regulatory and compliance obligations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-start="1643" data-end="1664"&gt;Why this matters&lt;/H2&gt;
&lt;P data-start="1665" data-end="1953"&gt;Government agencies are under pressure to&lt;STRONG&gt; &lt;/STRONG&gt;deliver services faster, more securely, and more inclusively.&lt;STRONG&gt; &lt;/STRONG&gt;ACS in Azure Government provides the tools to do just that—helping leaders modernize engagement, empower employees, and deliver better outcomes for citizens and mission partners.&lt;/P&gt;
&lt;H2 data-start="1955" data-end="1977"&gt;Get started today&lt;/H2&gt;
&lt;P data-start="1978" data-end="2174"&gt;Learn how your organization can take advantage of ACS in Azure Government by visiting the&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/" target="_blank" rel="noopener"&gt; Azure Communication Services documentation.&lt;/A&gt;&lt;/P&gt;
&lt;P data-start="2176" data-end="2414"&gt;With Azure Communication Services now generally available in Azure Government, agencies have a powerful new way to build&lt;STRONG&gt; &lt;/STRONG&gt;secure, scalable, and citizen-centric communication solutions - all backed by the trusted Azure Government cloud.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 16:43:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/azure-communication-services-is-now-generally-available-in-azure/ba-p/4448034</guid>
      <dc:creator>hrazi</dc:creator>
      <dc:date>2025-08-29T16:43:59Z</dc:date>
    </item>
    <item>
      <title>Build Your AI Email Agent with Microsoft Copilot Studio</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/build-your-ai-email-agent-with-microsoft-copilot-studio/ba-p/4448724</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;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.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You can view the &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=3OEnY7S8YPY" target="_blank" rel="noopener"&gt;video tutorial&lt;/A&gt; for creating your AI agent below:&lt;/SPAN&gt;&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=3OEnY7S8YPY/1756311112580" data-video-remote-vid="https://www.youtube.com/watch?v=3OEnY7S8YPY/1756311112580" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F3OEnY7S8YPY%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D3OEnY7S8YPY&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F3OEnY7S8YPY%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H3&gt;&lt;SPAN class="lia-text-color-21"&gt;Prerequisites:&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Microsoft Copilot Studio Access&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; You will need a license to use the platform.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Azure Subscription&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; An active Azure account is required to set up the email sending service.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN class="lia-text-color-21"&gt;Step 1: Create Your First Agent in Copilot Studio&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;First, we'll create the basic framework for our AI assistant.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Navigate to Copilot Studio&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; Open your web browser and go to &lt;/SPAN&gt;&lt;A class="lia-external-url" href="http://copilotstudio.microsoft.com" target="_blank" rel="noopener"&gt;copilotstudio.microsoft.com&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Describe Your Agent&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; 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: &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;"&lt;EM&gt;I want to create an agent that can send out emails using Azure communication services.&lt;/EM&gt;"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;Configure the Agent:&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Copilot Studio will generate a basic agent for you.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;You'll be taken to a configuration page. Give your agent a descriptive name, such as "AI Email Agent."&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;Review the auto-generated description and instructions. You can modify these later if needed.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;Create the Agent&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Click the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Create&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; button. Copilot Studio will now set up your agent's environment.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Step 2: Set Up Your Email Service in Azure&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To give your agent the ability to send emails, we need to configure a backend service in Microsoft Azure.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Go to the Azure Portal&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; Log in to your account at &lt;/SPAN&gt;&lt;A class="lia-external-url" href="http://portal.azure.com/" target="_blank" rel="noopener"&gt;portal.azure.com&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Create Resources&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; You will need to create two services:&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Communication Services:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; 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: &lt;/SPAN&gt;&lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/create-communication-resource?tabs=unix&amp;amp;pivots=platform-azp" target="_blank" rel="noopener"&gt;Create a communication service resource&lt;/A&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Email Communication Services:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Search for "Email Communication Services" and create this resource. This service is specifically for adding email capabilities. More details can be found here: &lt;/SPAN&gt;&lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://www.youtube.com/watch?v=Q2RRqgy_G9g" target="_blank" rel="noopener"&gt;Send email via azure communication services email&lt;/A&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;Get Your Sender Address&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Once these resources are created, you will have a sender address (e.g., DoNotReply@...). This is the email address your AI agent will use.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Step 3: Connect Your Services with an Azure Function&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;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.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Create a Function App&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; In the Azure portal, create a new &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Function App&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. This app will host our code. When setting it up, select &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Python&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; as the runtime stack.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Develop the Function&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; You'll write a simple Python script that acts as a web API. This script will:&lt;/SPAN&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Receive data (recipient, subject, body) from Copilot Studio.&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Connect to your Azure Communication Services resource.&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Send the emai&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;The code for the Azure Function app can be &lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://github.com/farhanhussainleo/ai-email-agent" target="_blank" rel="noopener"&gt;found on our Github page&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;Deploy the Function&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Once your code is ready, deploy it to the Function App you created. After deployment, make sure to get the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Function URL&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;, as you'll need it in the next step.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;In the Azure portal head over to your Function App. Go to&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Settings &amp;gt; Environment Variables&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;, click &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Add&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;. Add the following:&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;Name&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;: ACS_CONNECTION_STRING&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Value&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;: &amp;lt;insert your connection string&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;Name&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;: ACS_SENDER_EMAIL&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Value&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;: &amp;lt;insert your send email address&amp;gt; (e.g. “DoNotReply@...)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;Make sure to click &lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Apply, &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;so your settings are applied.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; 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.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Step 4: Design the Conversation Flow in Copilot Studio&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Now, let's teach our agent how to interact with users to gather the necessary email details. We'll do this using a "Topic."&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Go to the Topics Tab&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; In your Copilot Studio agent, navigate to the &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Topics&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; tab on the&amp;nbsp;menu.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Create a New Topic&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Click &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;+ Add a topic&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; and select &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;From blank.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;You can ask Copilot to create a topic for you but for this tutorial we are going to create from scratch.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Set the Trigger&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; The first node is the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Trigger&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;. This is what starts the conversation.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Click on it and under "Phrases," add phrases like&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;"send an email."&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; This means whenever a user types this phrase, this topic will activate.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Ask for the Recipient&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Click the&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;+&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; icon below the trigger and select &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Ask a question&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;In the text box, type:&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;"What's the recipient email?"&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Under "Identify," choose&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;User's entire response&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Save the response in a new variable called varRecipient.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Ask for Subject and Body&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Repeat the process above to ask for the &lt;/SPAN&gt;&lt;EM&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Subject&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; and &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Message body&lt;/SPAN&gt;&lt;/EM&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;. Save the responses in variables named &lt;EM&gt;varSubject&lt;/EM&gt; and &lt;EM&gt;varBody&lt;/EM&gt;, respectively.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Ask for Personalization&lt;/STRONG&gt; &lt;STRONG&gt;(Optional)&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; You can also ask for the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Recipient's name&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; for a personalized greeting and save it in a variable called &lt;EM&gt;varName&lt;/EM&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Step 5: Call the Azure Function to Send the Email&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With all the information gathered, it's time to send it to our Azure Function.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Add an HTTP Request Node&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; Click the &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;+&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; icon below your last question. Go to &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Advanced&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; &amp;gt; &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Send HTTP request&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Configure the Request&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;URL:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Paste the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Function URL&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; you copied from your Azure Function.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Method:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Select &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;POST&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Headers and body:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Click &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Edit&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;For the body, select&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;JSON content&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; 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.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Save the Response&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; 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.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;H3 aria-level="4"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Step 6: Test and Publish Your Agent&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your AI email assistant is now fully configured! Let's test it out.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Open the Test Panel:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt; On the right side of the screen, open the &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Test your agent&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; panel.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Start a Conversation&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Type your trigger phrase, &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;"send an email,"&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; and press Enter.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Follow the Prompts&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; The agent will ask you for the recipient, subject, and body. Provide the information as requested.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Check Your Inbox&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; The agent will process the request and send the email. Check the recipient's inbox to confirm it has arrived!&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Publish&lt;/STRONG&gt;:&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; Once you are satisfied with the agent's performance, click the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Publish&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; button at the top of the page. You can then go to the &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Channels&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; tab to deploy your agent to various platforms like Microsoft Teams, a demo website, or even Facebook.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Congratulations! You have successfully built and deployed a functional AI email agent.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:240,&amp;quot;335559739&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="4"&gt;&lt;EM&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 4"&gt;Debugging and Troubleshooting&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:319,&amp;quot;335559739&amp;quot;:319}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Agent asking unnecessary information&lt;/STRONG&gt;: &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;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 &lt;EM&gt;&lt;STRONG&gt;generative AI orchestration&lt;/STRONG&gt;&lt;/EM&gt;. This will force the AI agent to only asks questions&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;&lt;STRONG&gt;Agent stuck in a loop&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;If, after sending, the agent jumps back to “What’s the recipient email?”, explicitly end the topic. &lt;EM&gt;&lt;STRONG&gt;Add&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;EM&gt;&lt;STRONG&gt;+ → Topic management → End&lt;/STRONG&gt;&lt;/EM&gt; current topic&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;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.,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;varSendResult&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;), add a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;Condition&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;that tests&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;varSendResult.ok == true&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;, and on success send a confirmation and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;End current topic&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;to prevent loops.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:0,&amp;quot;335551620&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Aug 2025 22:49:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/build-your-ai-email-agent-with-microsoft-copilot-studio/ba-p/4448724</guid>
      <dc:creator>farhanhussain</dc:creator>
      <dc:date>2025-08-27T22:49:57Z</dc:date>
    </item>
    <item>
      <title>Building an AI Receptionist: A Hands-On Demo with Azure Communication Services and OpenAI</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/building-an-ai-receptionist-a-hands-on-demo-with-azure/ba-p/4442959</link>
      <description>&lt;P&gt;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?&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;A natural text thread with the scheduling agent&lt;/P&gt;
&lt;/img&gt;
&lt;H4&gt;Watch the Walkthrough&lt;/H4&gt;
&lt;P&gt;Prefer a walkthrough? Watch the video demo to see the app in action with live code explanations.&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=depI_5oV_i8/1755102726771" data-video-remote-vid="https://www.youtube.com/watch?v=depI_5oV_i8/1755102726771" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FdepI_5oV_i8%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdepI_5oV_i8&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FdepI_5oV_i8%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H2&gt;What Actually Happens Under the Hood&lt;/H2&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Core pieces we’re using for this demo:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;: Provides the real phone number, receives incoming text messages, and sends replies.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Event Grid&lt;/STRONG&gt;: Immediately forwards each new message event to a public URL (the webhook) your app exposes.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FastAPI&lt;/STRONG&gt;: Hosts that webhook (an HTTP endpoint) and keeps simple in‑memory conversation and calendar data.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure OpenAI&lt;/STRONG&gt;: Generates the receptionist’s reply using the running conversation plus a small snapshot of available appointment times.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Simulated calendar&lt;/STRONG&gt;: Thirty upcoming business days with realistic fullness so the system can offer believable open slots.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Then the message moves through this path:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;You send a text message to the demo phone number (handled by Azure Communication Services).&lt;/LI&gt;
&lt;LI&gt;Azure Communication Services raises a “message received” event.&lt;/LI&gt;
&lt;LI&gt;Azure Event Grid delivers that event as an HTTP POST to the FastAPI webhook (a regular URL).&lt;/LI&gt;
&lt;LI&gt;The webhook quickly returns “OK” and kicks off a background function (process_sms&amp;nbsp;in &lt;EM&gt;main.py&lt;/EM&gt;) so the user is never kept waiting.&lt;/LI&gt;
&lt;LI&gt;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.&lt;/LI&gt;
&lt;LI&gt;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.&lt;/LI&gt;
&lt;LI&gt;The reply goes back through Azure Communication Services, and the conversation state stays in memory.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H4&gt;Demo vs Production&lt;/H4&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H4&gt;The Calendar Trick&lt;/H4&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;The FastAPI routes for getting calendar logic&lt;/P&gt;
&lt;/img&gt;
&lt;P class="lia-clear-both"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Prompt Strategy&lt;/H4&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H4&gt;Where to Take It Next&lt;/H4&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Productization&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Persist conversations and appointments (database + real scheduling/calendar API)&lt;/LI&gt;
&lt;LI&gt;Authentication, signed webhook validation, rate limiting&lt;/LI&gt;
&lt;LI&gt;Structured logging, tracing, latency and token metrics&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Scheduling intelligence&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Function / tool calls for explicit slot selection&lt;/LI&gt;
&lt;LI&gt;Real calendar integration (Outlook, scheduling API, electronic health record system)&lt;/LI&gt;
&lt;LI&gt;Time zones, appointment types, user preferences (language, time windows)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Safety &amp;amp; context&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Moderation / compliance filters&lt;/LI&gt;
&lt;LI&gt;Retrieval for policies, preparation instructions, service types&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Insights &amp;amp; analytics&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Analytics (reminder → confirmation rate, response latency, fallback counts)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Getting It Running (You’ll Spend Minutes, Not Hours)&lt;/H2&gt;
&lt;P&gt;This setup is intentionally light. The only potentially slow step is acquiring a phone number in Azure Communication Services (see &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/telephony/get-phone-number?tabs=windows&amp;amp;pivots=platform-azp-new" target="_blank" rel="noopener"&gt;the official quickstart&lt;/A&gt;). Full step-by-step instructions (environment variables, dev tunnel, Event Grid subscription) live in &lt;A href="https://github.com/pereiralex/sms-appointment-scheduler" target="_blank" rel="noopener"&gt;the demo repository README&lt;/A&gt;. The high-level overview is:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Clone the repository and copy &lt;EM&gt;.env.example&lt;/EM&gt; to &lt;EM&gt;.env&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Add Azure Communication Services connection string + phone number and Azure OpenAI endpoint/key/model.&lt;/LI&gt;
&lt;LI&gt;Install dependencies and start the app on port 8000.&lt;/LI&gt;
&lt;LI&gt;Expose port 8000 with a dev tunnel and point an Event Grid &lt;EM&gt;SMSReceived&lt;/EM&gt; subscription to&amp;nbsp;&lt;EM&gt;/api/sms/webhook&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;Text your Azure Communication Services number and observe inbound event and reply in the terminal.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;
&lt;P&gt;Screenshot of a terminal log with inbound event + “SMS sent to ACS number"&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Closing&lt;/H2&gt;
&lt;P&gt;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. &lt;A href="https://github.com/pereiralex/sms-appointment-scheduler" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Clone the repository&lt;/STRONG&gt;&lt;/A&gt;, 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.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 11:57:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/building-an-ai-receptionist-a-hands-on-demo-with-azure/ba-p/4442959</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2026-01-29T11:57:57Z</dc:date>
    </item>
    <item>
      <title>ACS Email now Generally Available in Azure Government</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/acs-email-now-generally-available-in-azure-government/ba-p/4438814</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Microsoft today announced the General Availability (GA) of its Email Communication Service within Azure Government, a milestone that marks a significant advancement in secure and compliant digital communication for U.S. federal, state, and local government agencies. This release also includes FedRAMP High authorization, aligning the service with the most rigorous standards for cloud security and data protection.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The Email Communication Service, part of Azure Communication Services (ACS), enables government customers to reliably send high-scale, programmatic email communications -- whether transactional, informational, promotional, or mission-critical -- while ensuring compliance with federal mandates and cybersecurity frameworks.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits for Government Customers:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;FedRAMP High Authorization: Provides assurance for handling Controlled Unclassified Information (CUI) and other sensitive government data.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Built for Mission-Critical Communication: Enables reliable email delivery for scenarios like citizen engagement, emergency notifications, program updates, and case management.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Scalable, Secure, and Compliant:&amp;nbsp;Leverages&amp;nbsp;the resiliency and compliance of Azure Government infrastructure, including FIPS 140-2 encryption, data residency, and advanced DDoS protection.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Integration Ready: Seamlessly integrates with existing systems, applications, and services through REST APIs and SDKs, enabling faster modernization of legacy communication workflows.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For more information, detailed guidance, or to get started, government customers are encouraged to explore Azure Communication Services&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/email/email-overview" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;documentation&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;for&amp;nbsp;additional&amp;nbsp;support.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Aug 2025 20:05:13 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/acs-email-now-generally-available-in-azure-government/ba-p/4438814</guid>
      <dc:creator>hrazi</dc:creator>
      <dc:date>2025-08-04T20:05:13Z</dc:date>
    </item>
    <item>
      <title>10 Things You Might Not Know You Could Do with Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/10-things-you-might-not-know-you-could-do-with-azure/ba-p/4438775</link>
      <description>&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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!&lt;/P&gt;
&lt;H2 id="mcetoc_1j1elpobs_1"&gt;Build a Voice Assistant That Understands Users—and Follows Through&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎 Quick Look&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What it does&lt;/EM&gt;: Create a voice-first assistant that can understand, respond, and follow up using natural language.&lt;BR /&gt;&lt;EM&gt;Why it matters&lt;/EM&gt;: Offers a more intelligent, flexible alternative to traditional IVRs.&lt;BR /&gt;&lt;EM&gt;What you'll need&lt;/EM&gt;: Azure Communication Services for voice, Azure OpenAI, and backend logic to handle actions.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Watch the video below to see the full experience in action or explore the demo yourself &lt;A href="https://github.com/anujb-msft/communication-services-realtime-voice-agent" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=EhKG1_iZGUY/1753988343192" data-video-remote-vid="https://www.youtube.com/watch?v=EhKG1_iZGUY/1753988343192" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FEhKG1_iZGUY%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEhKG1_iZGUY&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FEhKG1_iZGUY%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H2&gt;Send Responsive Messages in Real-Time&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎 Quick Look&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What it does&lt;/EM&gt;: Trigger personalized messages based on real-time user behavior (like missed appointments or failed logins).&lt;BR /&gt;&lt;EM&gt;Why it matters&lt;/EM&gt;: Helps you move beyond static reminders to more timely, relevant communication.&lt;BR /&gt;&lt;EM&gt;What you’ll need&lt;/EM&gt;: Azure Communication Services, Azure Event Grid, Azure OpenAI, and an event source like a Logic App or backend service.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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 &lt;EM&gt;right now&lt;/EM&gt;?&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Using&amp;nbsp;&lt;STRONG&gt;Azure Event Grid&lt;/STRONG&gt;, you can detect these events, generate a tailored message with&amp;nbsp;&lt;STRONG&gt;Azure OpenAI&lt;/STRONG&gt;, and send it instantly via&amp;nbsp;&lt;STRONG&gt;SMS, email, or WhatsApp&lt;/STRONG&gt;&amp;nbsp;using Azure Communication Servies.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;img&gt;A diagram outlining the flow of events to send messages: Event trigger to Azure Event Grid to Azure OpenAI and finally to Azure Communication Services&lt;/img&gt;
&lt;P&gt;Learn more and get started&lt;STRONG&gt;:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/event-grid/event-schema-communication-services" target="_blank" rel="noopener"&gt;Azure Communication Services as an Event Grid source&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/sms/handle-sms-events" target="_blank" rel="noopener"&gt;Handle SMS events with Event Grid&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/notifications" target="_blank" rel="noopener"&gt;Push notifications overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/tutorials/add-voip-push-notifications-event-grid" target="_blank" rel="noopener"&gt;Use Event Grid to send calling push notifications&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Let Users Schedule Appointments by Text – In Their Own Words&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎 Quick Look&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What it does&lt;/EM&gt;: Enable natural language scheduling over SMS. No apps, menus, or portals required.&lt;BR /&gt;&lt;EM&gt;Why it matters&lt;/EM&gt;: Makes scheduling faster and more user-friendly, especially for service-based businesses.&lt;BR /&gt;&lt;EM&gt;What you’ll need&lt;/EM&gt;: Azure Communication Services for SMS, Azure OpenAI to interpret intent, and a backend or Logic App to manage availability and confirmations.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;This &lt;A href="https://github.com/pereiralex/sms-appointment-scheduler" target="_blank" rel="noopener"&gt;demo&lt;/A&gt; takes a smarter approach. By combining&amp;nbsp;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;&amp;nbsp;with&amp;nbsp;&lt;STRONG&gt;Azure OpenAI&lt;/STRONG&gt;, it lets users book, confirm, or reschedule appointments through natural, conversational SMS - no app, no portal, no menus. Just text like you normally would:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;“Hey, can I move my appointment to next Tuesday?”&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;“Do you have anything earlier in the day?”&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;img&gt;A GIF of a mobile phone where a user texts with an AI agent to reschedule their appointment using natural language.&lt;/img&gt;
&lt;P&gt;Try &lt;A href="https://github.com/pereiralex/sms-appointment-scheduler" target="_blank" rel="noopener"&gt;the SMS scheduling demo&lt;/A&gt;. Everything you need to get started is in the README.&lt;/P&gt;
&lt;H2&gt;Reach Customers on WhatsApp – Right Alongside SMS &amp;amp; Email&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt; Quick Look&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What it does:&lt;/EM&gt; Send messages across WhatsApp, SMS, and email from a single workflow.&lt;BR /&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt; Increases engagement by meeting users where they are.&lt;BR /&gt;&lt;EM&gt;What you’ll need:&lt;/EM&gt; Azure Communication Services with Advanced Messaging SDK, verified sender setup for each channel&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Your customers are already on WhatsApp. Now your app can be too, without rearchitecting your entire messaging stack.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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&amp;nbsp;&lt;STRONG&gt;Azure Event Grid&lt;/STRONG&gt;, automate replies with&amp;nbsp;&lt;STRONG&gt;Azure Bot Framework&lt;/STRONG&gt;, and manage everything through the&amp;nbsp;&lt;STRONG&gt;Advanced Messaging SDK&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Want to see it in action? This&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/advanced-messaging/whatsapp/get-started" target="_blank" rel="noopener"&gt;quickstart&amp;nbsp;guide&lt;/A&gt; walks you through registering your WhatsApp Business Account, connecting it to Azure Communication Services, and sending both text and media messages.&lt;/P&gt;
&lt;img&gt;A screenshot of the Azure Portal, with the Advanced Messaging -&amp;gt; Channels selected from the blade menu.&lt;/img&gt;
&lt;P&gt;&lt;STRONG&gt;Learn more:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/advanced-messaging/whatsapp/whatsapp-overview" target="_blank" rel="noopener"&gt;Overview of Advanced Messaging for WhatsApp&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/advanced-messaging/whatsapp/get-started" target="_blank" rel="noopener"&gt;Send text and media WhatsApp messages (Quickstart)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/microsoft-copilot-studio/publication-add-bot-to-whatsapp" target="_blank" rel="noopener"&gt;Publish an agent to WhatsApp using Copilot Studio&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Let Customers Join a Teams Meeting- Without a Teams Account&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt; Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Embed a browser-based Teams meeting experience into your app or site.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt; Makes it easy for customers to join secure meetings without downloading Teams or signing in.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Azure Communication Services with Teams interop, a Teams meeting link, and a web app or portal.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;You can see how this works in &lt;A href="https://github.com/Azure-Samples/communication-services-javascript-quickstarts/tree/main/place-interop-group-calls" target="_blank" rel="noopener"&gt;the interop-quickstart demo&lt;/A&gt;, which shows how to create a Teams meeting, generate a join link, and embed the experience in a custom app.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Handle Teams Calls Inside Your CRM—No App Switch Required&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Let agents make and receive Teams calls directly inside Dynamics 365 or a custom contact center UI.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Reduces context switching and improves agent efficiency.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Teams Phone Extensibility, Azure Communication Services Call Automation, Dynamics 365 or another CCaaS.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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?&lt;/P&gt;
&lt;P&gt;With&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/interop/tpe/teams-phone-extensibility-overview" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Teams Phone Extensibility&lt;/STRONG&gt;&lt;/A&gt;, powered by&amp;nbsp;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;, agents can make and receive Teams calls directly inside&amp;nbsp;&lt;STRONG&gt;Dynamics 365&lt;/STRONG&gt;&amp;nbsp;or any custom contact center app. No need to open the Teams client.&lt;/P&gt;
&lt;P&gt;Here’s what’s possible:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Answer calls&lt;/STRONG&gt;&amp;nbsp;in a custom agent desktop, routed through Teams Phone.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Trigger AI workflows mid-call&lt;/STRONG&gt;—like summarizing the conversation with Azure OpenAI or escalating to a supervisor.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Initiate outbound calls&lt;/STRONG&gt;&amp;nbsp;from bots or workflows using ACS’s Call Automation APIs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Record and analyze calls&lt;/STRONG&gt;&amp;nbsp;with full control over logic and storage.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;It’s a surprising way to bring AI, voice, and CRM together, without rebuilding your contact center from scratch.&lt;/P&gt;
&lt;img&gt;A diagram showing how Azure Communication Services is at the core of connecting Microsoft Teams Phone with various parts of the CCaaS environment and workflow.&lt;/img&gt;
&lt;H2&gt;Embed Secure Video Visits to Your Healthcare App–Fast&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Add HIPAA-compliant video calling with identity integration.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Enables secure, branded telehealth or consultation experiences.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Azure Communication Services for video, Azure AD B2C, and a secure&amp;nbsp;frontend.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;With built-in support for&amp;nbsp;&lt;STRONG&gt;HIPAA, GDPR, and SOC 2&lt;/STRONG&gt;, encrypted media transport, and identity integration via&amp;nbsp;&lt;STRONG&gt;Azure AD B2C&lt;/STRONG&gt;, Azure Communication Services lets you embed video calling directly into your app—without compromising on privacy or user experience.&lt;/P&gt;
&lt;P&gt;The &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/tutorials/virtual-visits/sample-builder" target="_blank" rel="noopener"&gt;Sample Builder&lt;/A&gt; shows how to combine video, chat, and SMS into a seamless patient-provider experience. It’s ready to deploy, customize, and scale.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;A screenshot of the Sample Builder where a user has customized their theme.&lt;/img&gt;
&lt;P&gt;Learn more:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/answers/questions/1687871/is-azure-communication-services-hipaa-compliant" target="_blank" rel="noopener"&gt;Azure Communication Services HIPAA compliance overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/voice-video-calling/get-started-with-video-calling?pivots=platform-web" target="_blank" rel="noopener"&gt;Quickstart - Add video calling to your app - An Azure Communication Services quickstart | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Combine AI and Human Support in a Single Chat Experience&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Start with an AI assistant and escalate to a human agent with full context.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Scales support while preserving the human touch when needed.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Azure Communication Services for chat, Azure OpenAI, bot framework, and agent handoff logic.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;This &lt;A href="https://github.com/pereiralex/Simple-bot-handoff-sample" target="_blank" rel="noopener"&gt;demo&lt;/A&gt; shows how it works: a customer starts chatting through a web widget. An AI assistant, powered by&amp;nbsp;&lt;STRONG&gt;Azure OpenAI&lt;/STRONG&gt;, 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.&lt;/P&gt;
&lt;P&gt;It’s a practical way to scale support without sacrificing the human touch.&lt;/P&gt;
&lt;img&gt;A screenshot of the B2C Customer Service Demo in action. 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.&lt;/img&gt;
&lt;H2&gt;Build a voice-first, AI virtual assistant in Under a Week&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Launch a branded voice assistant quickly using Zammo.ai and ACS.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Speeds up deployment of voice experiences across channels.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Zammo.ai, Azure Communication Services for voice, and a publishing channel (e.g., Alexa, web).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;They partnered with Zammo.ai to build the experience, all without writing custom code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Where Azure Communication Services fits in:&lt;/STRONG&gt;&lt;BR /&gt;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.&lt;/P&gt;
&lt;P&gt;Don’t take our word for it, learn more about how it came together &lt;A href="https://www.microsoft.com/en/customers/story/1354241398257818859-zammo-ai-partner-professional-services-cognitive-services" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Know What You’ll Pay, Before You Ship&lt;/H2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;🔎&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;Quick Look&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What it does:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Estimate costs and usage before you build.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;Why it matters:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt; Helps you plan and budget more effectively.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;EM&gt;What&amp;nbsp;you’ll&amp;nbsp;need:&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-charstyle="Normal"&gt;&amp;nbsp;Azure Communication Services pricing calculator, usage estimator, and billing dashboard.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;One of the first questions developers ask when building with Azure Communication Services is:&amp;nbsp;&lt;EM&gt;“How much is this going to cost me?”&lt;/EM&gt;&amp;nbsp;And the answer is: it depends, but in a good way.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SMS&lt;/STRONG&gt;&amp;nbsp;to U.S. numbers is priced differently than international messages.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Voice calls&lt;/STRONG&gt;&amp;nbsp;vary depending on whether you’re using VoIP, PSTN, or Teams interop.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;WhatsApp&lt;/STRONG&gt;&amp;nbsp;pricing may involve partner-based rates through Messaging Connect.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To help you estimate costs and plan ahead, here are some helpful resources:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Azure portal pricing calculator: &lt;A href="https://azure.microsoft.com/en-us/pricing/details/communication-services/" target="_blank" rel="noopener"&gt;Azure Communication Services pricing | Microsoft Azure&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Azure Communication Services Pricing Overview: &lt;A href="https://azure.microsoft.com/en-us/pricing/details/communication-services/" target="_blank" rel="noopener"&gt;Azure Communication Services pricing | Microsoft Azure&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;What Will You Build Next?&lt;/H2&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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 &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/" target="_blank" rel="noopener"&gt;official documentation&lt;/A&gt; to get started today!&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 13:24:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/10-things-you-might-not-know-you-could-do-with-azure/ba-p/4438775</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2026-01-29T13:24:30Z</dc:date>
    </item>
    <item>
      <title>Messaging Connect: Global SMS Coverage Now Available in Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/messaging-connect-global-sms-coverage-now-available-in-azure/ba-p/4436829</link>
      <description>&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;For developers building intelligent, automated communication experiences with Microsoft Azure Communication Services (ACS), global SMS coverage has long been a constraint. Today,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;we’re&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;&amp;nbsp;removing that barrier.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;We’re&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;&amp;nbsp;excited to announce the public preview of Messaging Connect, a new partner-led program that brings global SMS coverage to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;A&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;zure&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;C&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;ommunication&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;S&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;ervices&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;—starting with Infobip, one of the world’s leading communication providers.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Messaging Connect is more than just global delivery.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;It’s&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;&amp;nbsp;the foundation for enabling SMS-powered interactions across your applications, workflows, and AI-driven agents. Whether&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;you're&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;&amp;nbsp;orchestrating appointment reminders from Copilot Studio, triggering alerts via Azure Functions, or integrating two-way SMS into CRM workflows with Power Automate, Messaging Connect makes it possible to reach mobile users in 190+ markets—without changing how you build in Azure.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="1"&gt;&lt;SPAN class="lia-text-color-21"&gt;A Trusted Global Partner&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;This launch is made possible through a strategic partnership with &lt;A class="lia-external-url" href="https://www.infobip.com/docs/integrations/microsoft-azure-acs-messaging-connect" target="_blank" rel="noopener"&gt;Infobip&lt;/A&gt;, a global communications platform with direct connections to 800+ carriers across more than 190 countries and territories. Infobip brings decades of regulatory&amp;nbsp;expertise, carrier relationships, and enterprise-grade reliability to the Messaging Connect program.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;By combining Infobip’s global telco infrastructure with Microsoft’s&amp;nbsp;communications&amp;nbsp;developer platform and trusted cloud, customers now have a single API to send and receive messages worldwide—while keeping their data, insights, and logic anchored in Azure.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Built for What's Next&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;With Messaging Connect&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;w&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;e’re&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;enabling communication for the agentic era. In this new era, AI agents,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;C&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;opilots, and automation workflows must engage users through natural channels like SMS, WhatsApp, RCS, and voice.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;With Messaging Connect,&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;AI agents can&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;leverage&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;global SMS, without compromising&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;observability, compliance, or platform integration.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Take Microsoft Copilot Studio for example. Developers can build flows that send proactive SMS notifications, listen for replies, and trigger downstream logic—without&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;leaving the Azure ecosystem&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;Messages are delivered globally via the partner network, but events like delivery reports and inbound messages flow back into Azure Event Grid, Log Analytics, and your app—where business logic lives.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;Azure Communication Services provides a single API endpoint for global SMS delivery—abstracting regional complexity while enabling seamless messaging across 190+ markets through trusted partners like Infobip. Business logic remains in Microsoft services such as Copilot Studio, Azure Functions, and Power Automate, while Messaging Connect partners handle message delivery and reception worldwide.&lt;/img&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why Messaging Connect&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;Matters&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;for Developers &amp;amp; Businesses&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Messaging Connect offers advantages to developers and businesses who need reliable, scalable messaging:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559685&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="none"&gt;Global reach without custom telco integrations&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[8]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="none"&gt;Zero change to your Azure deployment&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="none"&gt;Direct partner billing—you control rates and volume with&amp;nbsp;the Messaging Connect Partner&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[8]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="none"&gt;Observability-first architecture with native Azure monitoring&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[8]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1080,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;Compliance handled at the source—partners manage local registration&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[8]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Developers can continue using the Azure Communication Services SMS API and event model they’re familiar with. Behind the scenes, Messaging Connect handles the routing, delivery, and partner interaction. You send the message—the Messaging Connect ecosystem delivers it.&lt;BR /&gt;&lt;/SPAN&gt; &lt;BR /&gt;&lt;SPAN data-contrast="none"&gt;&lt;STRONG&gt;Developer tip&lt;/STRONG&gt;: You’ll keep using the same Azure Communication Services SMS API you already know. To send messages via Messaging Connect, just include a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;messagingConnect&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt; object like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;{
  "from": "+447700900123",
  "to": ["+14155550100"],
  "message": "Hello from Messaging Connect!",
  "options": {
    "messagingConnect": {
      "apiKey": "your-partner-api-key",
      "partner": "[partner name]"
    }
  }
}&lt;/LI-CODE&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;Try Messaging Connect Today&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559731&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Messaging Connect is now in public preview with Infobip as the first integrated partner. Whether&amp;nbsp;you're&amp;nbsp;building customer notification workflows, Copilot-driven agent experiences, or global SMS alerting systems—this is your path to scale.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559685&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;🌏To learn more about Messaging Connect, including supported geographies and how to get started, visit the &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/sms/messaging-connect" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;Messaging Connect page on Microsoft Learn.&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Stay tuned, build boldly, and let us know what you create.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559731&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335551550&amp;quot;:6,&amp;quot;335551620&amp;quot;:6,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jul 2025 17:05:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/messaging-connect-global-sms-coverage-now-available-in-azure/ba-p/4436829</guid>
      <dc:creator>Diego_Basantes</dc:creator>
      <dc:date>2025-07-28T17:05:45Z</dc:date>
    </item>
    <item>
      <title>Identities with Custom ID: A Simpler, Smarter Way to Manage Communication Users</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/identities-with-custom-id-a-simpler-smarter-way-to-manage/ba-p/4435083</link>
      <description>&lt;P&gt;In today's multi-modal communication landscape, both humans and AI agents can interact across multiple sessions—via chat, voice, or other communication channels. Managing those user sessions securely and consistently has been a challenge when using short-lived, ephemeral identities. Azure Communication Services (ACS) now solves that with Identities with Custom IDs.&lt;/P&gt;
&lt;P&gt;This new feature allows developers to associate ACS-generated identities with custom application-defined identifiers (like emails or usernames). These custom identifiers make it easy to recognize and reuse an ACS user identity across multiple sessions — enabling smoother experiences, stronger data consistency, and more intelligent engagement across the entire customer journey.&lt;/P&gt;
&lt;P&gt;💡 With Custom IDs, developers can now unlock deeper intelligence across customer journeys — from onboarding to support to re-engagement — all powered by consistent identity data. Imagine a telehealth platform where patients log in using their email addresses. Previously, developers had to build and maintain a custom mapping layer to associate those emails with ACS identities. Now, with Custom IDs, that mapping is handled automatically—developers can use the email (or any custom identifier) directly using the customId attribute when creating an Identity, and ACS ensures it consistently maps to the same ACS-generated identity across sessions.&lt;/P&gt;
&lt;H2&gt;How Identity Management is Simplified with Custom IDs:&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The diagram compares two approaches to identity management in Azure Communication Services:&lt;/P&gt;
&lt;H4&gt;Traditional Identity Flow (Left Diagram):&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Authentication Initiation – The customer starts the process by logging into the Woodgrove Client App.&lt;/LI&gt;
&lt;LI&gt;Token Retrieval – The client app authenticates the user and retrieves a secure token from the Identity and Access Management system (IAM).&lt;/LI&gt;
&lt;LI&gt;Identity Mapping – The client app sends an identifier to a back-end identity mapping service, which maps such identifier to an ACS identity.&lt;/LI&gt;
&lt;LI&gt;ACS Token Retrieval – The client app obtains an ACS authentication token from the IAM for the mapped ACS identity.&lt;/LI&gt;
&lt;LI&gt;Start communication – The client app uses the ACS token to start communication through the different services (chat, calling, etc.)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This traditional flow requires the app to manage ACS identity creation and short-lived identifiers for each session.&lt;/P&gt;
&lt;H4&gt;Custom ID Flow with Durable Identity (Right Diagram):&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Authentication Initiation – The customer starts the process by logging into the Woodgrove Client App.&lt;/LI&gt;
&lt;LI&gt;Token Retrieval – The client app authenticates the user and retrieves a secure token from the Identity and Access Management system (IAM).&lt;/LI&gt;
&lt;LI&gt;ACS Token creation with custom Id – The client app creates an authentication token using the custom Id and gets an access token for a consistent ACS identity.&lt;/LI&gt;
&lt;LI&gt;Start communication – The client app uses the ACS token to start communication through the different services (chat, calling, etc.)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This flow eliminates the need to manage ACS identity mapping or short-lived identifiers for each session.&lt;/P&gt;
&lt;H3&gt;Example Code: How Custom ID Works&lt;/H3&gt;
&lt;LI-CODE lang="csharp"&gt;//Authenticate the client
var client = new CommunicationIdentityClient(connectionString);

// Alphanumeric custom ID
string customId = "alice@contoso.com"; 

// Create Access Tokens with using an Identity with Custom Id
var userAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat }, customId: customId);
var user = userAndTokenResponse.Value.User;
Console.WriteLine($"\nUser ID: {user.Id}");

// Create another token with the same customId and validate that the same user is returned
var userAndTokenResponse2 = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat }, customId: customId);
var user2 = userAndTokenResponse2.Value.User;
Console.WriteLine($"\nUser ID (second call): {user2.Id}");

// Validate they are the same
Debug.Assert(user.Id == user2.Id);&lt;/LI-CODE&gt;
&lt;P&gt;This confirms that custom IDs map consistently to the same durable ACS identity.&lt;/P&gt;
&lt;P&gt;🔄 Repeated calls with alice@contoso.com return the same ACS user ID — demonstrating the reliability of Identities with Custom ID.&lt;/P&gt;
&lt;P&gt;🔐 Custom IDs are handled securely and are never exposed beyond your own app’s context, ensuring that identity data remains protected and private.&lt;/P&gt;
&lt;P&gt;📌 Explore the sample code and documentation to get started: &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/identity-model#preview-simplify-identity-mapping-with-customid" target="_blank" rel="noopener"&gt;Identity model&lt;/A&gt;, &lt;A href="https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/communication/communication-identity/README.md" target="_blank" rel="noopener"&gt;JS SDK&lt;/A&gt;, .&lt;A href="https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/communication/Azure.Communication.Identity" target="_blank" rel="noopener"&gt;NET SDK&lt;/A&gt;, &lt;A href="https://github.com/Azure-Samples/communication-services-dotnet-quickstarts/tree/main/AccessTokensWithCustomIdQuickstart" target="_blank" rel="noopener"&gt;QuickStart&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Jul 2025 19:26:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/identities-with-custom-id-a-simpler-smarter-way-to-manage/ba-p/4435083</guid>
      <dc:creator>JuanJoseSanchez</dc:creator>
      <dc:date>2025-07-22T19:26:25Z</dc:date>
    </item>
    <item>
      <title>Lockheed Martin &amp; Librestream boost mission readiness with secure video collaboration platform</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/lockheed-martin-librestream-boost-mission-readiness-with-secure/ba-p/4425309</link>
      <description>&lt;P&gt;&lt;EM&gt;The following is a public press release from Lockheed Martin &amp;amp; Librestream announcing the launch of their secure video collaboration platform.&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;In an effort to continue ensuring armed forces are ready for any mission, &lt;A class="lia-external-url" href="https://www.lockheedmartin.com/" target="_blank" rel="noopener"&gt;Lockheed Martin&lt;/A&gt; and &lt;A class="lia-external-url" href="http://Librestream.com" target="_blank" rel="noopener"&gt;Librestream&lt;/A&gt; have partnered with Microsoft to revolutionize defense sustainment with the introduction of Onsight NOW, an advanced remote collaboration platform.&lt;/P&gt;
&lt;P&gt;Onsight NOW enables seamless communication, enhances teamwork and boosts productivity through its advanced features, including chat, annotations and multi-user calling capabilities. The tool operates on Microsoft's Azure Government Cloud, which provides a secure and reliable method for defense operations teams to collaborate in real-time, enabling them to share live video feeds, annotate critical information, and capture vital information – all while maintaining the highest levels of security and compliance.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-government/documentation-government-welcome" target="_blank" rel="noopener"&gt;Azure Government services&lt;/A&gt; provide a strong and secure foundation for cloud computing that meets the high standards of defense agencies. This includes being certified for FedRAMP, which is a strict set of federal security guidelines.&lt;/P&gt;
&lt;P&gt;“Lockheed Martin’s implementation of Onsight NOW on Azure Government is a testament to its unwavering commitment to pioneering secure, cutting-edge solutions in defense sustainment. By leveraging Onsight NOW, Lockheed Martin is not only advancing operational efficiency but also setting a new benchmark for secure, interoperable video collaboration across the defense sector,” said Dan Flynn, Managing Director, Global Defense at Librestream.&lt;/P&gt;
&lt;P&gt;Onsight NOW on Azure Government is installed securely within Lockheed Martin’s own cloud environment, which ensures sensitive information is protected and handled correctly. This permits both Lockheed Martin and external partners to securely collaborate in real time.&lt;/P&gt;
&lt;P&gt;“Aligned with 1LMX – our mission-driven business and digital transformation program – Onsight NOW will ultimately deliver the speed, agility and insights our customers need to be ready to address growing security threats across the world,” says Drew Robbins, Vice President of Sustainment Operations at Lockheed Martin. “By facilitating timely maintenance, enhancing collaboration, reducing costs and ensuring compliance, Onsight NOW will ultimately improve readiness for critical missions, ensuring air dominance for America and its allies.”&lt;/P&gt;
&lt;P&gt;“We are thrilled to partner with Lockheed Martin and Librestream to launch Onsight NOW for Azure GOV,” said Bob Serr, VP of Engineering at Azure Communication Services.&lt;/P&gt;
&lt;P&gt;“This collaboration exemplifies our commitment to providing secure and innovative solutions that empower defense agencies to maintain mission-critical assets with the highest standards of security and compliance.”&lt;BR /&gt;&lt;BR /&gt;Learn more about &lt;A class="lia-external-url" href="https://www.linkedin.com/company/lockheed-martin/" target="_blank" rel="noopener"&gt;Lockheed Martin&lt;/A&gt; and &lt;A class="lia-external-url" href="https://www.linkedin.com/company/librestream-technologies-inc/posts/?feedView=all" target="_blank" rel="noopener"&gt;Librestream&lt;/A&gt; on their website or LinkedIn.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jun 2025 17:26:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/lockheed-martin-librestream-boost-mission-readiness-with-secure/ba-p/4425309</guid>
      <dc:creator>kellymoon</dc:creator>
      <dc:date>2025-06-20T17:26:59Z</dc:date>
    </item>
    <item>
      <title>Build an AI Email Responder with OpenAI and Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/build-an-ai-email-responder-with-openai-and-azure-communication/ba-p/4421127</link>
      <description>&lt;P data-pm-slice="1 1 []"&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H3 data-pm-slice="1 3 []"&gt;How It Works&lt;/H3&gt;
&lt;P&gt;Here's how our AI-powered responder works:&lt;/P&gt;
&lt;OL data-spread="false"&gt;
&lt;LI&gt;&lt;STRONG&gt;Input Query:&lt;/STRONG&gt; Enter the recipient’s email, subject, and customer query.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Generate Response:&lt;/STRONG&gt; GPT quickly drafts a detailed reply.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Review &amp;amp; Edit:&lt;/STRONG&gt; You can adjust the response as needed.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Send Email:&lt;/STRONG&gt; Azure Communication Services dispatches the message instantly.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Prefer a walkthrough? Watch the full &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=MKXuMtf7L7g" target="_blank" rel="noopener"&gt;video demo&lt;/A&gt; to see the app in action with live code explanations.&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=MKXuMtf7L7g/1749151949261" data-video-remote-vid="https://www.youtube.com/watch?v=MKXuMtf7L7g/1749151949261" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FMKXuMtf7L7g%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DMKXuMtf7L7g&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FMKXuMtf7L7g%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H3 data-pm-slice="1 3 []"&gt;Tools We’re Using&lt;/H3&gt;
&lt;P&gt;This project is ideal for developers, solution architects, or anyone exploring practical AI integrations with minimal setup.&lt;/P&gt;
&lt;P&gt;We will utilize the following services:&lt;/P&gt;
&lt;UL data-spread="false"&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure OpenAI Service&lt;/STRONG&gt;: Provides state-of-the-art GPT models capable of intelligent text generation and conversational responses.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;: Delivers reliable, scalable, and secure email capabilities suitable for enterprise-level applications.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-pm-slice="1 3 []"&gt;Azure Environment Setup&lt;/H3&gt;
&lt;P data-pm-slice="1 1 []"&gt;Follow these steps to configure your Azure environment:&lt;/P&gt;
&lt;H5&gt;1. Azure OpenAI Service&lt;/H5&gt;
&lt;UL data-spread="false"&gt;
&lt;LI&gt;
&lt;P&gt;Go to &lt;A class="lia-external-url" href="http://portal.azure.com" target="_blank" rel="noopener"&gt;Azure Portal&lt;/A&gt; and create an "Azure OpenAI" resource (see how: &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/create-resource?pivots=web-portal" target="_blank" rel="noopener"&gt;docs&lt;/A&gt;).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P data-pm-slice="1 1 ["&gt;In Azure AI Studio, deploy your selected GPT model (such as GPT-4o).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;Retrieve your &lt;STRONG&gt;API Key&lt;/STRONG&gt;, &lt;STRONG&gt;Endpoint URL&lt;/STRONG&gt;, and &lt;STRONG&gt;Deployment ID&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;2. Azure Communication Services&lt;/H5&gt;
&lt;UL data-spread="false"&gt;
&lt;LI&gt;In Azure Portal, create "Communication Services" and "Email Communication Services" resources (see how: &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/create-communication-resource?tabs=windows&amp;amp;pivots=platform-azp" target="_blank" rel="noopener"&gt;docs&lt;/A&gt; or &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=Q2RRqgy_G9g" target="_blank" rel="noopener"&gt;video&lt;/A&gt;).&lt;/LI&gt;
&lt;LI&gt;Provision a free Azure subdomain and obtain your verified sender email address.&lt;/LI&gt;
&lt;LI&gt;Copy your &lt;STRONG&gt;Connection String&lt;/STRONG&gt; from your Communication Services resource for later use.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-pm-slice="1 1 []"&gt;Coding the Application&lt;/H3&gt;
&lt;P&gt;You can view the full project on &lt;A class="lia-external-url" href="https://github.com/farhanhussainleo/ai-customer-support-email" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt; to access the complete, ready-to-use code, &lt;SPAN data-contrast="none"&gt;and skip the manual steps — or follow the highlights below to understand how everything works.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:0,&amp;quot;335551620&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Create two files; an &lt;EM&gt;.env&lt;/EM&gt; file and &lt;EM&gt;app.py&lt;/EM&gt; file in your preferred IDE.&lt;/P&gt;
&lt;H5&gt;3. Environment Variables (&lt;EM&gt;.env&lt;/EM&gt; file):&lt;/H5&gt;
&lt;P&gt;Replace OpenAI and Azure Communication Services configurations with your credentials obtained in the above steps. Store sensitive credentials securely:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# 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&lt;/LI-CODE&gt;
&lt;H5 data-pm-slice="1 1 []"&gt;4. Python Application (app.py):&lt;/H5&gt;
&lt;P data-pm-slice="1 1 []"&gt;The &lt;EM&gt;app.py&lt;/EM&gt; 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 &lt;A class="lia-external-url" href="https://github.com/farhanhussainleo/ai-customer-support-email" target="_blank" rel="noopener"&gt;GitHub repository&lt;/A&gt;.&lt;/P&gt;
&lt;P data-pm-slice="1 1 []"&gt;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.&lt;/P&gt;
&lt;H5 data-start="2903" data-end="2927"&gt;🧠 Generate Response&lt;/H5&gt;
&lt;P data-start="2928" data-end="2988"&gt;We send the user’s query to Azure OpenAI with a prompt like:&lt;/P&gt;
&lt;P data-start="2991" data-end="3108"&gt;&lt;EM data-start="2991" data-end="3108"&gt;"You are a support agent. Respond only with the email body. Be concise, helpful, and use numbered steps if needed."&lt;/EM&gt;&lt;/P&gt;
&lt;H5 data-start="3110" data-end="3133"&gt;💬 Preview and Edit&lt;/H5&gt;
&lt;P data-start="3134" data-end="3230"&gt;The AI-generated response is displayed in a text area, allowing human review and manual editing.&lt;/P&gt;
&lt;H5 data-start="3232" data-end="3257"&gt;✉️ Send via Azure Communication Services Email&lt;/H5&gt;
&lt;P data-start="3258" data-end="3354"&gt;We use the &lt;EM&gt;EmailClient&lt;/EM&gt; from the &lt;EM&gt;azure.communication.email&lt;/EM&gt; package to send the final message.&lt;/P&gt;
&lt;H3 data-start="3543" data-end="3565"&gt;Ideas for Extension&lt;/H3&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;UL data-start="3567" data-end="3959"&gt;
&lt;LI data-start="3567" data-end="3677"&gt;&lt;STRONG data-start="3569" data-end="3609"&gt;RAG (Retrieval-Augmented Generation)&lt;/STRONG&gt;: Integrate with internal knowledge bases for more tailored answers.&lt;/LI&gt;
&lt;LI data-start="3678" data-end="3762"&gt;&lt;STRONG data-start="77" data-end="102"&gt;Ticketing Integration&lt;/STRONG&gt;: Connect directly with your existing support or ticketing system to fetch queries and update responses automatically.&lt;/LI&gt;
&lt;LI data-start="3763" data-end="3862"&gt;&lt;STRONG data-start="3765" data-end="3787"&gt;Role-based Prompts&lt;/STRONG&gt;: Fine-tune the AI’s tone based on use case (e.g., sales vs. tech support).&lt;/LI&gt;
&lt;LI data-start="3863" data-end="3959"&gt;&lt;STRONG data-start="3865" data-end="3885"&gt;Analytics &amp;amp; Logs&lt;/STRONG&gt;: Track usage and monitor AI-generated replies for compliance and quality.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-start="3966" data-end="3983"&gt;Final Thoughts&lt;/H3&gt;
&lt;P data-start="3985" data-end="4213"&gt;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.&lt;/P&gt;
&lt;P data-start="4215" data-end="4352"&gt;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 &lt;A class="lia-external-url" href="https://github.com/farhanhussainleo/ai-customer-support-email" target="_blank" rel="noopener"&gt;GitHub repository&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Jun 2025 15:42:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/build-an-ai-email-responder-with-openai-and-azure-communication/ba-p/4421127</guid>
      <dc:creator>farhanhussain</dc:creator>
      <dc:date>2025-06-10T15:42:32Z</dc:date>
    </item>
    <item>
      <title>Moving Email Traffic from Exchange to Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/moving-email-traffic-from-exchange-to-azure-communication/ba-p/4420993</link>
      <description>&lt;P&gt;Today, businesses are continuing to modernize their email infrastructure and are looking to boost security, scalability, and efficiency. In addition, with Exchange recently announcing limits for external recipients (ERRL, TERRL), businesses are now seeking cloud-managed email platforms, like Azure Communication Services to handle high-volume email traffic.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Exchange Online and Google Workspace restrict the number of emails that can be sent to external recipients. For example, Exchange Online limits external recipients to 2,000 per day, while Google Workspace has a limit of 3,000 per day. These restrictions can impede businesses that need to send large volumes of emails. In contrast, Azure Communication Services does not have such limitations, making it a suitable solution for businesses with high email traffic requirements. In addition, Azure Communication Services email has also released support for Modern Authentication using XOAuth. &amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Deprecation of Basic Auth for SMTP –&lt;/STRONG&gt; Exchange online is retiring its support for Basic Auth for Client Submission (&lt;A href="https://techcommunity.microsoft.com/t5/exchange-team-blog/exchange-online-to-retire-basic-auth-for-client-submission-smtp/ba-p/4114750" target="_blank"&gt;SMTP Auth&lt;/A&gt;)&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;External Rate Limits -&lt;/STRONG&gt; Exchange Online does not support bulk or high-volume transactional email.&amp;nbsp; Exchange is introducing External Recipient Rate Limits (&lt;A href="https://techcommunity.microsoft.com/blog/exchange/exchange-online-to-introduce-external-recipient-rate-limit/4114733" target="_blank"&gt;ERRL&lt;/A&gt;) and Tenant Outbound Email Limits (&lt;A href="https://techcommunity.microsoft.com/blog/exchange/introducing-exchange-online-tenant-outbound-email-limits/4372797" target="_blank"&gt;TERRL&lt;/A&gt;). These limits are designed to reduce unfair usage and abuse of Exchange Online resources. Customers who need to exceed these limits are advised to use HVE for bulk internal messages or Azure Communication Services to support bulk internal and external messages.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;&lt;STRONG&gt;Why Are Customers Moving to Azure Communication Services Email?&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Customers are considering moving to Azure Communication Services for several reasons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;No External Recipient Limits&lt;/STRONG&gt;: Unlike Exchange on-premises, Exchange Online, and Google Workspace, Azure Communication Services does not impose limits on the number of external recipients. Currently, Azure Communication Services can handle up to 2 million emails per hour, with the potential to support even higher traffic levels, which requires close coordination with our field and product teams. Visit our &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/service-limits#email" target="_blank"&gt;documentation &lt;/A&gt;to learn more about our email throughout (quota) limits, key requirements and process to upgrade email throughput.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enhanced Security&lt;/STRONG&gt;: Azure Communication Services supports TLS 1.2 encryption and authentication with Microsoft Entra application IDs, ensuring secure email delivery.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scalability&lt;/STRONG&gt;: Azure Communication Services can handle high-volume email traffic, making it suitable for large-scale B2C communications.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Centralized Management&lt;/STRONG&gt;: Businesses can manage all outgoing emails from a single platform, simplifying administration and monitoring.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advanced Analytics&lt;/STRONG&gt;: Moving to Azure Communication Services helps customers better manage their B2C communications and understand ROI using advanced analytics. This includes tracking Non-Delivery Reports (NDRs) and engagement analytics. Customers can use Azure Storage to store these logs or utilize near-real-time signals through Azure Monitor.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cost Efficiency&lt;/STRONG&gt;: Azure Communication Services offers competitive pricing and flexible pay-as-you-go options, making it a cost-effective solution for businesses of all sizes (&lt;A href="https://azure.microsoft.com/en-us/pricing/details/communication-services/" target="_blank"&gt;ACS pricing&lt;/A&gt;).&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;STRONG&gt;Key Features in Azure Communication Services Email&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Azure Communication Services email service offers a range of features that makes it an attractive option for businesses:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SMTP Service along with API/SDK support&lt;/STRONG&gt;: Azure Communication Services provides a robust and scalable SMTP service for sending emails. Customers can also leverage our language specific SDKS, REST APIs, PowerShell command lets, Power Automate connectors, etc. to send their email traffic.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Bulk Email Capabilities&lt;/STRONG&gt;: Azure Communication Services facilitates high-volume transactional, bulk, and marketing emails, supporting application-to-person (A2P) use cases. This is particularly useful for businesses that need to send large volumes of emails efficiently.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Authentication Options&lt;/STRONG&gt;: Azure Communication Services supports multiple authentication methods, including local or basic authentication, modern authentication using OAuth. Azure Communication Services also supports managed identities via RBAC (&lt;A href="https://github.com/Azure-Samples/communication-services-dotnet-quickstarts/tree/main/SendEmailAdvanced/SendEmailWithManagedIdentity" target="_blank"&gt;GitHub sample&lt;/A&gt;).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Low-Code PaaS Solution&lt;/STRONG&gt;: Azure Communication Services offers a low-code platform-as-a-service (PaaS) solution, making it easy to integrate and manage email services.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Sender Authentication&lt;/STRONG&gt;: Azure Communication Services enables sender authentication through SPF, DKIM, and DMARC, ensuring email security and deliverability.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Overcoming external email limits&lt;/STRONG&gt;: Azure Communication Services provides a solution to overcome the limitations of Google Workspace, Exchange on-premises and Exchange Online, such as the external recipient rate limits, and basic authentication deprecation. This ensures that businesses can send emails without facing these constraints.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advanced Analytics&lt;/STRONG&gt;: Azure Communication Services provides detailed insights into email delivery, engagement, and performance.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;STRONG&gt;How is Azure Communication Services different from Exchange?&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Azure Communication Services uses a Pay-As-You-Go model, unlike EXO's subscription (Pay-per-seat) model. To use Azure Communication Services, an Azure subscription is required. Many organizations have an existing process to obtain an Azure subscription for their employees. Alternatively, an Azure subscription can be purchased directly from the &lt;A href="https://azure.microsoft.com/en-us/pricing/purchase-options/?msockid=186182f5f9816f1e138190c9fd816924" target="_blank"&gt;Azure portal&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;Architectural Considerations&lt;/H3&gt;
&lt;P&gt;When moving from Exchange on-premises, Exchange Online, or any other 3rd party Mail Server to Azure Communication Services, there are several architectural considerations to keep in mind:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;External storage for emails &lt;/STRONG&gt;- Customers need to understand that Azure Communication Services is not a mailbox-based solution. It is primarily designed for application-to-person communications, where applications can utilize their own storage for the bulk email traffic sent through Azure Communication Services.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Infrastructure Assessment&lt;/STRONG&gt;: Evaluate your existing email infrastructure, including on-premises Exchange servers or Exchange Online configurations, including also any other component present in the messaging stack.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Integration with Existing Systems&lt;/STRONG&gt;: Ensure that Azure Communication Services can seamlessly integrate with your current systems and workflows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compliance and Security&lt;/STRONG&gt;: Ensure that the new setup complies with &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/privacy" target="_blank"&gt;data-handling and privacy requirements&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Flexibility to manage multiple app connections: &lt;/STRONG&gt;Azure Communication Services allows customers to manage traffic from multiple apps using one or many Azure Communication Services resources. Customers can manage access to these resources using Microsoft Entra application adding another layer of security.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Modernization challenges&lt;/STRONG&gt;: Many enterprise customers are still in the process of modernizing their applications and multi-functional devices (MFDs). These apps and MFDs do not support authentication or TLS encryption, which are mandatory requirements to use Azure Communication Services. In such cases, customers can refer to an open-source hybrid solution while they continue to update their applications and MFDs. For more details, please refer to this &lt;A href="https://github.com/microsoft/MassMailingPaaSOnPremConnector" target="_blank"&gt;GitHub Wiki.&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Total Cost of Ownership (TCO) Comparison&lt;/H3&gt;
&lt;P&gt;Managing an on-premises SMTP server can be costly and complex. Here are some key points to consider:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Infrastructure Costs&lt;/STRONG&gt;: On-premises SMTP servers require significant investment in hardware, software, and maintenance.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Operational Costs&lt;/STRONG&gt;: Managing and maintaining on-premises servers involves ongoing operational processes. If the on-premises infrastructure is used for mass-mailing IP reputation maintenance costs must also be considered.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scalability&lt;/STRONG&gt;: Scaling on-premises infrastructure to handle increased email traffic can be challenging and expensive.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Public Cloud Email PaaS&lt;/STRONG&gt;: Adopting a public cloud email PaaS like Azure Communication Services email SMTP reduces TCO by eliminating the need for on-premises infrastructure and providing a scalable, pay-as-you-go model.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;STRONG&gt;How to get started&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;The Azure Communication Services team continues to support the customer onboarding journey. While our&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/email/email-overview" target="_blank"&gt;public documentation&lt;/A&gt; provides all details required to support a smooth process, we have also created video demos and quick starts to help customers get started right away. &amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.linkedin.com/events/7272328759339302912/comments/" target="_blank"&gt;(Reactor Series) Azure Communication Services Email: Understanding Azure Communication Services email as option for EXO customers&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Easy to follow blog for &lt;A href="https://techcommunity.microsoft.com/blog/azurecommunicationservicesblog/getting-started-with-email-in-azure-communication-services/4415640" target="_blank"&gt;Getting Started with Email in Azure Communication Services&lt;/A&gt; - Direct video links shared below&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=Q2RRqgy_G9g" target="_blank"&gt;How to set up including custom domain&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=hLc31-JZRu8" target="_blank"&gt;How to use email using API (example: Azure Communication Services JavaScript GitHub repo)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=6yfmMn1PoHM" target="_blank"&gt;(Reactor Series) Maximizing email insights using logs and event&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=-5OiXMbeXp8" target="_blank"&gt;Real-time email tracking and event grid viewer with Azure Communication Services&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?v=WY74o8cES7o" target="_blank"&gt;Analyzing email logs in Azure Communication Services&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;H3&gt;Testing approach&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Test all failure scenarios but avoid sending high volume traffic with high failure rates as it poses challenges.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;As Azure Communication Services team, we may not always have visibility on your approach. Therefore, we may interpret high failure rates in QA as an issue.&lt;/LI&gt;
&lt;LI&gt;In case you are sending this test traffic to 3P mail servers, it might impact your domain reputation and Azure Communication Services IP reputation.&lt;/LI&gt;
&lt;/OL&gt;
&lt;LI&gt;Do not mix high volume throughput testing with failure rate testing. If you do, use third-party tools for getting dummy emails (please research appropriate tools), make sure to mention the details on 3P tools in your support ticket for raising quota.&lt;/LI&gt;
&lt;LI&gt;If you are using third-party tools, a gradual ramp-up is not required. However, if you are using email IDs that will target third-party mail servers during QA testing, ensure a gradual ramp-up of the traffic even in a QA environment.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;Additional helpful resources&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurecommunicationservicesblog/the-u-s-small-business-administration-integrates-azure-communication-services-se/4407689" target="_blank"&gt;&lt;STRONG&gt;Customer case study&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/email/email-overview" target="_blank"&gt;&lt;STRONG&gt;Azure Communication Services documentation&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;EM&gt;Note: This link directs to the first page. Customers can explore other links under the email section to access information on various concepts.&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advanced scenarios&lt;/STRONG&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/watch?app=desktop&amp;amp;v=MKXuMtf7L7g" target="_blank"&gt;Build an AI support email tool with OpenAI and Azure Communication Services&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/samples/email-resource-management?pivots=platform-azclipython" target="_blank"&gt;Automate Email Resource Mgmt- Azure CLI in Python script&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.linkedin.com/pulse/how-email-from-your-powershell-scripts-azure-without-using-enderby-rsb8e/" target="_blank"&gt;Terraform script for infra set-up (published by influencer)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/samples/email-detect-sensitive-content" target="_blank"&gt;Detecting sensitive data and inappropriate content - ACS email + Azure AI dotnet sample&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurecommunicationservicesblog/guest-post-send-emails-with-powershell-and-managed-identity-using-azure-communic/4295928" target="_blank"&gt;Send emails with PowerShell and managed identity using Azure Communication Services | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 05 Jun 2025 14:28:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/moving-email-traffic-from-exchange-to-azure-communication/ba-p/4420993</guid>
      <dc:creator>Manish-StrategicPM</dc:creator>
      <dc:date>2025-06-05T14:28:32Z</dc:date>
    </item>
    <item>
      <title>Public Preview of Teams Phone extensibility for CCaaS ISV solution developers</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/public-preview-of-teams-phone-extensibility-for-ccaas-isv/ba-p/4414710</link>
      <description>&lt;P&gt;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.&amp;nbsp;&lt;BR /&gt;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.&lt;/P&gt;
&lt;H2&gt;Background&lt;/H2&gt;
&lt;P&gt;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.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Teams Phone extensibility benefits for CCaaS developers&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Consolidated&lt;/STRONG&gt;&lt;STRONG&gt; Telephony for UCaaS and CCaaS:&amp;nbsp;&lt;/STRONG&gt;Simplified setup with no need to configure and administer separate phone systems. Customers can use their Teams phone telephony investment for contact center deployments.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Conversational AI Integration&lt;/STRONG&gt;: Developers can use Call Automation APIs to use AI-powered tools, play personalized greeting messages, and recognize conversational voice inputs.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extend UCaaS Capabilities to CCaaS:&lt;/STRONG&gt;&amp;nbsp;Take advantage of Teams Phone enterprise features, including emergency calling and dial plan policies.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Agent Notification handling:&lt;/STRONG&gt;&amp;nbsp;Enable data segregation between CCaaS persona and UCaaS persona with the choice of ringing either the Teams standard client or a CCaaS application.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cost Efficiency:&lt;/STRONG&gt;&amp;nbsp;Enable ISVs to build cost-effective solutions using existing Teams Phone plans, without adding Azure Communication Services numbers or Direct Routing.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Broader Geographic Availability&lt;/STRONG&gt;: Integration with Teams Calling Plans, Direct Routing, and Operator Connect provides wider telephony options.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Key Features&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Provisioning&lt;/STRONG&gt;&lt;STRONG&gt; for Seamless Integration&lt;/STRONG&gt;: 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Call Routing and Mid-Call Controls&lt;/STRONG&gt;: Advanced call routing capabilities for efficient call management and escalation to agents. Mid-call controls enable adding participants, redirecting calls, and transferring calls seamlessly.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Convenience Recording&lt;/STRONG&gt;: Integrate call recording capabilities into Microsoft Teams for CCaaS scenarios, enabling customized recording processes controlled by CCaaS admins. For more information, see &lt;A href="https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/call-recording" target="_blank" rel="noopener"&gt;Call Recording overview&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Conversational AI Integration&lt;/STRONG&gt;: 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&amp;nbsp;Call Automation OpenAI sample.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;On-Behalf-Of (OBO) calling&lt;/STRONG&gt; enables applications to initiate and manage voice calls on behalf of a Teams Resource Account, enabling seamless integration with enterprise workflows&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Leverage Call Automation:&amp;nbsp;&lt;/STRONG&gt;Azure Communication Services&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/call-automation/call-automation" target="_blank" rel="noopener"&gt;Call Automation APIs&lt;/A&gt;&amp;nbsp;provide call control and enable CCaaS providers to build server-based and intelligent call flows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Leverage Client SDK:&amp;nbsp;&lt;/STRONG&gt;Azure Communication Services &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/calling-sdk-features" target="_blank" rel="noopener"&gt;Client SDK&lt;/A&gt; provide the means for a CCaaS provider to develop a custom client for CCaaS&amp;nbsp; persona workflows&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this release, we are adding the following new features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Emergency Calling&lt;/STRONG&gt;: Powered by Azure Communication Services&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/calling-sdk-features" target="_blank" rel="noopener"&gt;Calling SDK&lt;/A&gt;, 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.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Billing&lt;/STRONG&gt;: 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 &lt;A href="https://azure.microsoft.com/en-us/pricing/details/communication-services/?msockid=29591b22ce2367e3338a0afdcfe86647" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Telemetry&lt;/STRONG&gt;: 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 &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/call-diagnostics" target="_blank" rel="noopener"&gt;Call Diagnostic Center&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;We want your feedback&lt;/H2&gt;
&lt;P&gt;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!&lt;/P&gt;
&lt;H2&gt;Get started today&lt;/H2&gt;
&lt;P&gt;Developers can join the Azure Communication Services Technology Adoption Program (TAP) here: &amp;nbsp;&lt;A href="https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR4vK9ppkHpNKkyNwa3c3wRNUMUVZTlFHUlM3VzRPOUY1VEcwSTBGWDFLSC4u" target="_blank" rel="noopener"&gt;Azure Communication Services Technology Adoption Program Registration&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;We look forward to seeing how partners and customers like you leverage these new capabilities to improve your contact center operations.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Concept:&amp;nbsp;&lt;A href="https://aka.ms/TPe-Overview" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-Overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;FAQ: &lt;A href="https://aka.ms/TPe-FAQ" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-FAQ&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Tutorials: &lt;A href="https://aka.ms/TPe-Tutorials" target="_blank" rel="noopener"&gt;https://aka.ms/TPe-Tutorials&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Support:&lt;A href="https://aka.ms/ACS-Support" target="_blank" rel="noopener"&gt; https://aka.ms/ACS-Support&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 05 Jun 2025 20:14:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/public-preview-of-teams-phone-extensibility-for-ccaas-isv/ba-p/4414710</guid>
      <dc:creator>AnkurAgarwal</dc:creator>
      <dc:date>2025-06-05T20:14:06Z</dc:date>
    </item>
    <item>
      <title>Customer Support Chat Demo with Azure Communication Services and Azure OpenAI</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/customer-support-chat-demo-with-azure-communication-services-and/ba-p/4419748</link>
      <description>&lt;P&gt;You know the drill. You’re stuck in a support chat, typing “agent” like it’s a secret password. The bot doesn’t get it. You repeat yourself. You wonder if anyone is actually listening.&lt;BR /&gt;We built this demo to show how easy it can be to fix that experience—with the right tools.&lt;BR /&gt;This is a working example of how Azure Communication Services and Azure OpenAI can come together to create a customer support chat that’s fast, helpful, and human when it needs to be.&lt;/P&gt;
&lt;H3&gt;The Goal: Show, Don’t Just Tell&lt;/H3&gt;
&lt;P&gt;The goal was to create a lightweight, modular customer support experience that feels modern and responsive—without requiring a massive engineering lift. The demo includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A&amp;nbsp;&lt;STRONG&gt;Customer Chat Widget&lt;/STRONG&gt;&amp;nbsp;where users can send messages and get responses instantly.&lt;/LI&gt;
&lt;LI&gt;An&amp;nbsp;&lt;STRONG&gt;Agent Portal&lt;/STRONG&gt;&amp;nbsp;where support agents can monitor conversations, take over when needed, and get up to speed quickly.&lt;/LI&gt;
&lt;LI&gt;A&amp;nbsp;&lt;STRONG&gt;Bot Service&lt;/STRONG&gt;&amp;nbsp;that uses Azure OpenAI to generate responses and manage the conversation flow.&lt;/LI&gt;
&lt;LI&gt;A&amp;nbsp;&lt;STRONG&gt;Summary Service&lt;/STRONG&gt;&amp;nbsp;that creates quick recaps of conversations, so agents don’t have to scroll through every message.&lt;/LI&gt;
&lt;LI&gt;And at the center of it all,&amp;nbsp;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;, which handles all the real-time messaging, notifications, and chat thread management.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The result is a full customer support flow that feels modern, responsive, and human-friendly.&lt;/P&gt;
&lt;H3&gt;What Happens When a Customer Sends a Message&lt;/H3&gt;
&lt;P&gt;Here’s the flow, step by step:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The customer types a message in the chat widget and hits send.&lt;/LI&gt;
&lt;LI&gt;This message is sent to Azure Communication Services, which handles real-time delivery.&lt;/LI&gt;
&lt;LI&gt;The bot service picks it up, adds it to the conversation history, and sends it to Azure OpenAI.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Azure OpenAI returns a response, which the bot sends back through Azure Communication Services to the customer.&lt;/LI&gt;
&lt;LI&gt;The message appears in both the customer’s chat and the agent’s dashboard.&lt;/LI&gt;
&lt;LI&gt;If needed, the agent can click “Take Over” to jump in and continue the conversation directly.&lt;/LI&gt;
&lt;LI&gt;At any point, the agent can click “Summarize” to get a quick recap of the conversation so far, powered by Azure OpenAI.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;It’s a clean loop, and it’s built entirely on services that are already part of the Azure ecosystem. The diagram below provides further detail and visual clarity on the demo flow.&lt;/P&gt;
&lt;img&gt;An architectural diagram showing the flow of data and requests in the customer support demo.&lt;/img&gt;
&lt;H3&gt;Azure Communication Services at the Core&lt;/H3&gt;
&lt;P&gt;We used Azure Communication Services because it gave us everything we needed for real-time communication—chat threads, participant management, typing indicators, message delivery, and more. It’s reliable, scalable, and easy to integrate into both the frontend and backend.&lt;/P&gt;
&lt;P&gt;No custom socket servers. No polling hacks. Just real-time messaging that works.&lt;/P&gt;
&lt;H3&gt;Why OpenAI Made It Better&lt;/H3&gt;
&lt;P&gt;The AI assistant isn’t just there to answer questions—it’s there to make the whole experience smoother. It understands context, keeps track of the conversation, and knows when to step aside.&lt;/P&gt;
&lt;P&gt;We used Azure OpenAI to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Generate responses based on a system prompt and full conversation history.&lt;/LI&gt;
&lt;LI&gt;Create summaries that help agents get up to speed instantly.&lt;/LI&gt;
&lt;LI&gt;Keep the tone consistent and helpful across the entire interaction.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Built for handoff, not just automation&lt;/H3&gt;
&lt;P&gt;One of the most important parts of this demo is the agent handoff. We designed it so that the bot knows when to stop talking and let a human take over. When the agent clicks “Take Over,” the bot steps back, and the agent picks up the thread—no awkward transitions, no lost context.&lt;/P&gt;
&lt;P&gt;And because the summary service is always running in the background, the agent doesn’t have to scroll through the entire chat to figure out what’s going on. They get a quick, AI-generated recap that brings them up to speed in seconds.&lt;/P&gt;
&lt;H3&gt;What this demo proves&lt;/H3&gt;
&lt;P&gt;This demo was a focused build to prove a point: you can create a smart, real-time customer support experience using ACS and Azure OpenAI without a massive engineering lift.&lt;/P&gt;
&lt;P&gt;We wanted to show:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;How easy it is to wire up Azure Communication Services for real-time messaging.&lt;/LI&gt;
&lt;LI&gt;How OpenAI can enhance—not replace—the human support experience.&lt;/LI&gt;
&lt;LI&gt;How a little structure (like summaries and handoff logic) goes a long way.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Try it yourself!&lt;/H2&gt;
&lt;P&gt;The full demo is available now. You can &lt;A href="https://github.com/pereiralex/Simple-bot-handoff-sample" target="_blank"&gt;clone the repo&lt;/A&gt;, run it locally, and see how Azure Communication Services and Azure OpenAI work together in a real-world customer support scenario.&lt;/P&gt;
&lt;P&gt;Once you have the required Azure resources, getting this demo running is simple:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Clone the repository&lt;/LI&gt;
&lt;LI&gt;Add your credentials to a .env file&lt;/LI&gt;
&lt;LI&gt;Run &lt;EM&gt;npm start&lt;/EM&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Here’s what your .env file should look like:&lt;/P&gt;
&lt;img&gt;A screenshot of the .env file with required keys and placeholder values required for the demo to successfully run.&lt;/img&gt;
&lt;P&gt;That’s it. No scaffolding. No boilerplate. Just a working customer support experience you can run locally in minutes.&lt;/P&gt;
&lt;P&gt;The &lt;A href="https://github.com/pereiralex/Simple-bot-handoff-sample" target="_blank"&gt;GitHub repo&lt;/A&gt; includes everything you need to get started, including how to generate tokens, configure your environment, and run the app.&lt;/P&gt;
&lt;P&gt;We’d love to hear what you build with it. Or better yet, fork it and show us.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jun 2025 18:46:04 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/customer-support-chat-demo-with-azure-communication-services-and/ba-p/4419748</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2025-06-02T18:46:04Z</dc:date>
    </item>
    <item>
      <title>Getting Started with Email in Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/getting-started-with-email-in-azure-communication-services/ba-p/4415640</link>
      <description>&lt;P&gt;If you’ve already dipped your toes into email with Azure Communication Services, you know it’s easy to get started. But what happens after that first email?&lt;/P&gt;
&lt;P&gt;This blog is your guide to going from “I sent an email” to “I built something useful.” We’ve put together a four-part video series that walks through everything from sending your first message in the portal to tracking engagement in real time and triggering workflows when someone clicks a link.&lt;/P&gt;
&lt;P&gt;Whether you’re building a notification system, a marketing campaign, or just exploring what’s possible, this series helps you get up and running—and doing more—with email from Azure Communication Services.&lt;/P&gt;
&lt;H2&gt;Video 1: Send your first email from the Azure Portal&lt;/H2&gt;
&lt;div data-video-id="https://youtu.be/Q2RRqgy_G9g?si=mBV7DLW-dQZehxmn/1747756721595" data-video-remote-vid="https://youtu.be/Q2RRqgy_G9g?si=mBV7DLW-dQZehxmn/1747756721595" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FQ2RRqgy_G9g%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQ2RRqgy_G9g&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQ2RRqgy_G9g%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;In this first video, we demonstrate how to send an email directly from the Azure portal—no code required.&lt;/P&gt;
&lt;P&gt;Here’s what we cover:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Create an Email Communication resource&lt;/LI&gt;
&lt;LI&gt;Choose between a free Azure-managed subdomain or a custom domain&lt;/LI&gt;
&lt;LI&gt;Verify your domain (including DNS setup for custom domains)&lt;/LI&gt;
&lt;LI&gt;Connect your domain to your Communication Services resource&lt;/LI&gt;
&lt;LI&gt;Add custom “From” addresses and suppression lists&lt;/LI&gt;
&lt;LI&gt;Send your first email directly from the portal (with kittens, if you’d like)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If you’re just exploring or want to test things quickly, the Azure-managed subdomain is the fastest way to get started. But if you want more control—like sending from your own domain or enabling user engagement tracking—you want to go the custom domain route.&lt;/P&gt;
&lt;P&gt;Once your domain is verified and connected, you can send emails right from the portal Try Email feature. Just fill out the form, choose your sender, add a recipient, and hit send. The portal even generates sample code in multiple languages based on your selections.&lt;/P&gt;
&lt;H2&gt;Video 2: Send email using the JavaScript quickstart SDK&lt;/H2&gt;
&lt;div data-video-id="https://youtu.be/hLc31-JZRu8/1747756767659" data-video-remote-vid="https://youtu.be/hLc31-JZRu8/1747756767659" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FhLc31-JZRu8%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhLc31-JZRu8&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FhLc31-JZRu8%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;Once you send your first email from the portal, the next step is sending email programmatically. This video walks through how to do that using the official JavaScript quickstart from the Azure Communication Services GitHub repo.&lt;/P&gt;
&lt;P&gt;Here’s what you’ll see:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Cloning &lt;A href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbXpjdWd6M1Bkc0kzRlBWY0hJeHVUblFYeFFGd3xBQ3Jtc0tsWldSbXJuODJaMzJEMWswakFrSUlrZkp1QTBQal93dE9CT0lRVW1kdTA4TEhSbGF2MlBmQVN5VldkQnNaWjRZTUZOVDNFbUd3S0tWWTgtR0ZMZWFjUzVRczhhLW9UNHpMYm81N0s0cnNIUDE5U3Mxaw&amp;amp;q=https%3A%2F%2Fgithub.com%2FAzure-Samples%2Fcommunication-services-javascript-quickstarts%2Ftree%2Fmain%2Fsend-email&amp;amp;v=hLc31-JZRu8" target="_blank"&gt;the quickstart repo&lt;/A&gt; and navigating to the send-email folder&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Opening the &lt;EM&gt;send-email.js&lt;/EM&gt; file and updating three key values:&lt;/P&gt;
&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Your Azure Communication Services connection string&lt;/LI&gt;
&lt;LI&gt;Your verified sender email address&lt;/LI&gt;
&lt;LI&gt;The recipient email address&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Running the script with just two commands:&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The script sends a simple HTML email, and you see it land in your inbox in real time. It’s a great starting point for integrating email into your own apps or workflows.&lt;/P&gt;
&lt;H2&gt;Video 3: Analyzing email logs in the Azure Portal&lt;/H2&gt;
&lt;div data-video-id="https://youtu.be/WY74o8cES7o/1747757027124" data-video-remote-vid="https://youtu.be/WY74o8cES7o/1747757027124" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWY74o8cES7o%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWY74o8cES7o&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWY74o8cES7o%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;Once you can send emails, the next question is: how are they performing?&lt;/P&gt;
&lt;P&gt;This video proves a step-by-step guide to set up logging and telemetry for your Azure Communication Services email resource—so you can track delivery, failures, engagement, and more. It’s all done through the Azure portal, and once it’s configured, you’ll have access to both high-level dashboards and detailed log queries.&lt;/P&gt;
&lt;P&gt;Here’s what’s covered:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;✅ Prerequisites&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Before you can start analyzing logs, you’ll need:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An active email resource that’s already sending messages&lt;/LI&gt;
&lt;LI&gt;A Log Analytics workspace (this is where your logs live)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;🛠️ Step 1: Create a Log Analytics Workspace&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This is your central hub for telemetry data. You’ll create it like any other Azure resource—just give it a name, choose your subscription and resource group, and hit Create.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;🛠️ Step 2: Configure Diagnostic Settings&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Next, connect your Communication Services resource to the workspace:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Go to your Communication Services resource&lt;/LI&gt;
&lt;LI&gt;Under&amp;nbsp;&lt;STRONG&gt;Monitoring&lt;/STRONG&gt;, select&amp;nbsp;&lt;STRONG&gt;Diagnostic settings&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Add a new setting and select the email-related log categories:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Send mail logs&lt;/LI&gt;
&lt;LI&gt;Delivery status updates&lt;/LI&gt;
&lt;LI&gt;User engagement logs&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;Point them to your Log Analytics workspace and save&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Once that’s done, your logs start flowing automatically.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;📊 Step 3: Explore Built-in Insights&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;With logging enabled, you can use the&amp;nbsp;&lt;STRONG&gt;Insights&lt;/STRONG&gt;&amp;nbsp;tab in the portal to get a high-level overview of:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Emails delivered, failed, or suppressed&lt;/LI&gt;
&lt;LI&gt;Engagement metrics like opens and clicks&lt;/LI&gt;
&lt;LI&gt;Performance summaries and error breakdowns&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;It’s a great way to get a quick pulse on how your email system is doing.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;🔍 Step 4: Run Custom Queries with KQL&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For deeper analysis, head to the&amp;nbsp;&lt;STRONG&gt;Logs&lt;/STRONG&gt;&amp;nbsp;section and use the built-in query hub. The video covers several examples using Kusto Query Language (KQL), including how to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Find bounced or suppressed emails&lt;/LI&gt;
&lt;LI&gt;Filter by delivery status or failure reason&lt;/LI&gt;
&lt;LI&gt;Track engagement by link clicks or views&lt;/LI&gt;
&lt;LI&gt;Drill into specific emails using correlation IDs&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can even export results to CSV, Power BI, or Excel—or share queries with teammates.&lt;/P&gt;
&lt;P&gt;Whether you’re debugging delivery issues or analyzing campaign performance, this setup gives you the visibility you need.&lt;/P&gt;
&lt;H2&gt;Video 4: Real-Time email event tracking with Azure Event Grid&lt;/H2&gt;
&lt;div data-video-id="https://youtu.be/-5OiXMbeXp8/1747757103327" data-video-remote-vid="https://youtu.be/-5OiXMbeXp8/1747757103327" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F-5OiXMbeXp8%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D-5OiXMbeXp8&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F-5OiXMbeXp8%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;Want to know the moment someone opens your email? Or clicks a link in your campaign? This video shows how to set up real-time email event tracking using Azure Event Grid and a lightweight web app called the Azure Event Grid Viewer.&lt;/P&gt;
&lt;P&gt;Here’s what’s covered:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;🧱 Step 1: Deploy the Azure Event Grid Viewer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The Event Grid Viewer is a simple web app that listens for incoming events and displays them in real time. You can deploy it in just a few clicks using a &lt;A class="lia-external-url" href="https://github.com/Azure-Samples/azure-event-grid-viewer?tab=readme-ov-file" target="_blank"&gt;prebuilt GitHub repo&lt;/A&gt; and the &lt;STRONG&gt;Deploy to Azure&lt;/STRONG&gt; button.&lt;/P&gt;
&lt;P&gt;Once deployed, you get a live URL that acts as a webhook endpoint—ready to receive email events.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;🔗 Step 2: Create an Event Subscription&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Back in your Azure Communication Services resource:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Go to the&amp;nbsp;&lt;STRONG&gt;Events&lt;/STRONG&gt;&amp;nbsp;tab&lt;/LI&gt;
&lt;LI&gt;Click&amp;nbsp;&lt;STRONG&gt;+ Event Subscription&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Choose the event types you want to track (such as Email Delivery Report or Email Engagement Tracking)&lt;/LI&gt;
&lt;LI&gt;Set the endpoint type to&amp;nbsp;&lt;STRONG&gt;Webhook&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Paste in the Event Grid Viewer URL (ending in&amp;nbsp;/api/updates)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Now, every time one of those events occurs, it is sent to your viewer in real time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;📬 Step 3: Send Emails and Watch Events Roll In&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once your subscription is active, try sending a few emails from the portal. You see events appear in the viewer as they happen:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Delivery confirmations&lt;/LI&gt;
&lt;LI&gt;Open events&lt;/LI&gt;
&lt;LI&gt;Link clicks (with details on which link was clicked)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;It’s a great way to test your setup and see how email events flow through the system.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;🎯 Bonus: Filter Events by Type&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Don’t want to see every single event? You can filter them. For example, only show events where the engagement type is&amp;nbsp;click. Just go back to your event subscription, add a filter on&amp;nbsp;&lt;EM&gt;data.engagementType&lt;/EM&gt;, and set it to&amp;nbsp;click.&lt;/P&gt;
&lt;P&gt;You can even filter by correlation ID to track specific campaigns or recipients.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚙️ Automate Anything&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The Event Grid Viewer is just one example. You can use these events to trigger:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Azure Functions&lt;/LI&gt;
&lt;LI&gt;Power Automate flows&lt;/LI&gt;
&lt;LI&gt;Notifications in Microsoft Teams&lt;/LI&gt;
&lt;LI&gt;Custom dashboards&lt;/LI&gt;
&lt;LI&gt;Anything else that fits your workflow&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If it can react to a webhook, it can react to an email event.&lt;/P&gt;
&lt;H2&gt;Wrapping Up&lt;/H2&gt;
&lt;P&gt;That’s the full tour—from sending your first email in the portal to tracking engagement in real time.&lt;/P&gt;
&lt;P&gt;Here’s a quick recap of what we covered:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Send your first email&lt;/STRONG&gt;&amp;nbsp;using the Azure portal&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Send programmatically&lt;/STRONG&gt;&amp;nbsp;using the JavaScript quickstart&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Analyze logs and telemetry&lt;/STRONG&gt;&amp;nbsp;with Log Analytics and KQL&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Track events in real time&lt;/STRONG&gt;&amp;nbsp;with Azure Event Grid&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Whether you’re building a notification system, a marketing campaign, or just exploring what’s possible, Azure Communication Services gives you the tools to do it—fast. Check out any of the videos or read our &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/email/send-email" target="_blank"&gt;documentation&lt;/A&gt; to learn more about email in Azure Communication Services.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 14:11:56 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/getting-started-with-email-in-azure-communication-services/ba-p/4415640</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2025-05-21T14:11:56Z</dc:date>
    </item>
    <item>
      <title>Create next-gen voice agents with Azure AI's Voice Live API and Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/create-next-gen-voice-agents-with-azure-ai-s-voice-live-api-and/ba-p/4414735</link>
      <description>&lt;P&gt;Today at&amp;nbsp;&lt;A class="lia-external-url" href="https://build.microsoft.com/en-US/home" target="_blank" rel="noopener"&gt;Microsoft Build&lt;/A&gt;, we’re excited to announce the General Availability of bidirectional audio streaming for &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/communication-services/overview" target="_blank" rel="noopener"&gt;Azure Communication Services&lt;/A&gt; Call Automation SDK. Unveiling the power of speech-to-speech AI through Azure Communication Services!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As previously seen at Microsoft Ignite in November 2024 the Call Automation bidirectional streaming APIs already work with services like Azure OpenAI to build conversational voice agents through speech to speech integrations. Now with General Availability release of Call Automation bidirectional streaming API and Azure AI Speech Services Voice Live API (Preview), creating voice agents has never been easier. Imagine AI agents that deliver seamless, low-latency, and naturally fluent conversations, transforming the way businesses and customers interact.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bidirectional Streaming APIs allow customers to stream audio from ongoing calls to their webserver in near real-time, where their voice enabled Large Language Models (LLMs) can ingest the audio to reason over and provide voice responses to stream back into the call. In this release we have added support for extra security by adding JSON Web Token (JWT) based authentication for the websocket connection allowing developers to make sure they’re creating secure solutions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As industries like customer service, education, HR, gaming, and public services see a surge in demand for generative AI voice chatbots, businesses are seeking real-time, natural-sounding voice interactions with the latest and greatest GenAI models. Integrating Azure Communication Services with the new Voice Live API from Azure AI Speech Services provides a low-latency interface that facilitates streaming speech input and output with Azure AI Speech’s advanced audio and voice capabilities. It supports multiple languages, diverse voices, and customization, and can even integrate with avatars for enhanced engagement. On the server side, powerful language models interpret the caller's queries and stream human-like responses back in real time, ensuring fluid and engaging conversations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By integrating these two technologies customers can create new innovative solutions for:&lt;/P&gt;
&lt;H5&gt;Multilingual agents&lt;/H5&gt;
&lt;P&gt;Develop virtual customer service representatives capable of of having conversations with end customers in their preferred language, allowing customers creating solutions for multilingual regions to create one solution to serve multiple languages and regions.&lt;/P&gt;
&lt;H5&gt;Noise suppression and echo cancellation&lt;/H5&gt;
&lt;P&gt;For AI voice agents to be effective they need clear audio to understand what the user is requesting, in order to improve AI efficiency, you can use out of the box noise suppression and echo cancellation built into the Voice Live API to help provide your AI agent the best quality audio to be able to clearly understand the end users requests and assist them.&lt;/P&gt;
&lt;H5&gt;Support for branded voices&lt;/H5&gt;
&lt;P&gt;Build voice agents that stay on brand with custom voices that represent your brand in any interaction with the customer, use Azure AI Speech services to create custom voice models that represent your brand and provide familiarity for your customers.&lt;/P&gt;
&lt;H3&gt;How to Integrate Azure Communication Services with Azure AI Speech Service Voice Live API&lt;/H3&gt;
&lt;img /&gt;
&lt;H3&gt;Language support&lt;/H3&gt;
&lt;P&gt;With the integration to Voice Live API, you can now create solutions for over 150+ locales for speech input and output with 600+ realistic voices out of the box. I if these voices don’t suit your needs, customers can take this one step further and create custom speech models for their brand.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;How to start bidirectional streaming&lt;/H4&gt;
&lt;LI-CODE lang="csharp"&gt;var mediaStreamingOptions = new MediaStreamingOptions(
  new Uri(websocketUri),
  MediaStreamingContent.Audio,
  MediaStreamingAudioChannel.Mixed,
  startMediaStreaming: true
) {
  EnableBidirectional = true,
    AudioFormat = AudioFormat.Pcm24KMono
};&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;How to connect to Voice Live API (Preview)&lt;/H4&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;string GetSessionUpdate() {
    var jsonObject = new {
      type = "session.update",
        session = new {
          turn_detection = new {
              type = "azure_semantic_vad",
                threshold = 0.3,
                prefix_padding_ms = 200,
                silence_duration_ms = 200,
                remove_filler_words = false
            },
            input_audio_noise_reduction = new {
              type = "azure_deep_noise_suppression"
            },
            input_audio_echo_cancellation = new {
              type = "server_echo_cancellation"
            },
            voice = new {
              name = "en-US-Aria:DragonHDLatestNeural",
                type = "azure-standard",
                temperature = 0.8
            }
        }
    };&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Next Steps&lt;/H3&gt;
&lt;P&gt;The SDK and documentation along will be available in the next few weeks following this announcement, allowing you to build your own solutions using Azure Communication Services and Azure AI Voice Live API. You can download our latest sample from&amp;nbsp;&lt;A class="lia-external-url" href="https://aka.ms/ACS_and_VoiceLiveAPI_GitHub" target="_blank" rel="noopener"&gt;GitHub&lt;/A&gt; to try this for yourself. To learn more about the Voice Live API and all its different capabilities, see &lt;A class="lia-external-url" href="https://aka.ms/AzureAISpeech-Build2025" target="_blank" rel="noopener"&gt;Azure AI Blog&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 13:26:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/create-next-gen-voice-agents-with-azure-ai-s-voice-live-api-and/ba-p/4414735</guid>
      <dc:creator>KunaalPunjabi</dc:creator>
      <dc:date>2026-01-29T13:26:09Z</dc:date>
    </item>
    <item>
      <title>Bringing AI to Meetings with the Sample Builder</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/bringing-ai-to-meetings-with-the-sample-builder/ba-p/4414730</link>
      <description>&lt;P&gt;We’re excited to share a significant update to the&amp;nbsp;&lt;STRONG&gt;Azure Communication Services Sample Builder&lt;/STRONG&gt;. This release integrates Azure’s latest AI and video calling capabilities, implementing &lt;A href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/index-speech-to-text" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;meeting transcription&lt;/STRONG&gt;&amp;nbsp;&lt;/A&gt;and&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/ai-services/language-service/summarization/overview?tabs=text-summarization" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;AI-generated call summaries&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;/STRONG&gt;to help organizations deliver insightful and effective meeting experiences.&lt;/P&gt;
&lt;P&gt;In just a few minutes, without the need for any coding, you can use the Sample Builder to start prototyping video calling with Azure AI integration. Click the link below to begin or continue reading for further information.&lt;/P&gt;
&lt;P&gt;👉 &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/tutorials/virtual-visits/sample-builder" target="_blank" rel="noopener"&gt;Try the Sample Builder&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Note, this pattern of combining Azure Communication Services and Azure AI for meeting transcription and summarization is not limited to Sample Builder. You can take the code and overall design pattern and rebuild this experience using the underlying APIs and SDKs.&lt;/P&gt;
&lt;H2&gt;What Is the Sample Builder?&lt;/H2&gt;
&lt;P&gt;The Sample Builder is a no-code Azure Portal experience that you use to brand, customize, build, and deploy a &lt;A href="https://github.com/Azure-Samples/communication-services-virtual-visits-js" target="_blank" rel="noopener"&gt;GitHub based sample&lt;/A&gt; for prototyping. &amp;nbsp;The sample integrates and deploys multiple Azure services for secure and engaging meetings:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Application hosting&lt;/STRONG&gt; of the meeting front-end is provided by Azure App Services&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;High-definition video calling&lt;/STRONG&gt; for mobile and desktop browsers is provided by Azure Communication Services Calling&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Role-based access&lt;/STRONG&gt; for attendees and providers are implemented using Azure Communication Services Rooms&lt;/LI&gt;
&lt;LI&gt;Accessible, customizable, fluid user experience is built on the open-source Azure Communication Services UI library&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Designed for developers, IT teams, and solution architects, the Sample Builder gets you started quickly but doesn’t produce a production-ready application. After prototyping, you can take the code from GitHub, customize user experience, integrate your own systems, and fine-tune the AI interactions for production.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Smarter Meetings with Transcription and Summarization&lt;/H2&gt;
&lt;P&gt;Today’s update integrates&amp;nbsp;&lt;STRONG&gt;Azure AI Speech&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;Azure AI Language &lt;/STRONG&gt;services&lt;STRONG&gt; &lt;/STRONG&gt;directly into your meetings, transforming how companies capture, understand, and act on conversations.&lt;/P&gt;
&lt;P&gt;You can fine-tune this integration and can take advantage of the latest innovation from Azure AI, ensuring your end-users benefit from advancements in LLM models, natural language understanding, and conversation summarization.&lt;/P&gt;
&lt;P&gt;Transcription and meeting summarization are valuable across industries. For example: &amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Healthcare&lt;/STRONG&gt;: Automatically document patient-provider interactions, reduce administrative burden, and support clinical accuracy.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Financial Services&lt;/STRONG&gt;: Capture detailed records of client meetings to meet regulatory requirements and improve transparency.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Education&lt;/STRONG&gt;: Provide students and instructors with accessible records of virtual sessions, supporting learning and retention.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Real-Time Transcription&lt;/H3&gt;
&lt;P&gt;With transcription enabled,&amp;nbsp;&lt;STRONG&gt;Azure Communication Services&lt;/STRONG&gt;&amp;nbsp;uses&amp;nbsp;&lt;STRONG&gt;Azure AI Speech to Text&lt;/STRONG&gt;&amp;nbsp;to convert spoken language into a live, speaker-attributed transcript. This allows participants to stay fully engaged in the conversation without worrying about taking notes.&lt;/P&gt;
&lt;P&gt;Key benefits include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Accurate, multilingual transcription&lt;/STRONG&gt;&amp;nbsp;for a wide variety of languages. You can see the &lt;A href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=stt" target="_blank" rel="noopener"&gt;full list of supported languages here&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Speaker attribution&lt;/STRONG&gt;&amp;nbsp;for clarity and accountability&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Searchable meeting records&lt;/STRONG&gt;&amp;nbsp;for easy reference and knowledge sharing&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Support for multilingual teams&lt;/STRONG&gt;, with transcripts that can be translated or reviewed post-meeting&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Training and quality assurance&lt;/STRONG&gt;, enabling review of real conversations to improve service delivery&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Transcripts can be stored securely and managed according to your organization’s&amp;nbsp;&lt;STRONG&gt;compliance, privacy, and retention policies&lt;/STRONG&gt;, making them suitable for regulated industries.&lt;/P&gt;
&lt;H3&gt;AI-Generated Call Summaries&lt;/H3&gt;
&lt;P&gt;After the meeting,&amp;nbsp;the &lt;STRONG&gt;Azure AI Language&lt;/STRONG&gt; &lt;STRONG&gt;Summarization&lt;/STRONG&gt; &lt;STRONG&gt;API&lt;/STRONG&gt; automatically analyzes the transcript and generates a&amp;nbsp;&lt;STRONG&gt;concise, structured summary&lt;/STRONG&gt;. This summary distills the conversation into key takeaways, including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Main discussion points&lt;/LI&gt;
&lt;LI&gt;Decisions made&lt;/LI&gt;
&lt;LI&gt;Action items and next steps&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This helps teams:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Align quickly&lt;/STRONG&gt;&amp;nbsp;on outcomes and responsibilities&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Brief stakeholders&lt;/STRONG&gt;&amp;nbsp;who couldn’t attend&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Maintain consistent documentation&lt;/STRONG&gt;&amp;nbsp;for compliance, audits, or internal reporting&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reduce meeting fatigue&lt;/STRONG&gt;&amp;nbsp;by eliminating the need to rewatch or reread entire transcripts&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;How to Get Started&lt;/H2&gt;
&lt;P&gt;You can try these new features today by following a few simple steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Go through the Sample Builder&amp;nbsp;using the &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/tutorials/virtual-visits/sample-builder" target="_blank" rel="noopener"&gt;official tutorial&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the Rooms option in the booking and calling steps.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enable auto-transcription &lt;/STRONG&gt;or&lt;STRONG&gt; allow users to turn on transcription &lt;/STRONG&gt;in the booking and calling steps.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enable meeting summary&lt;/STRONG&gt; in the post-call steps.&lt;/LI&gt;
&lt;LI&gt;Choose how you want to deploy and go through follow up steps.&lt;/LI&gt;
&lt;LI&gt;Once fully deployed, start a call to test.&lt;/LI&gt;
&lt;LI&gt;If not using auto-transcription, open the meeting controls and select&amp;nbsp;&lt;STRONG&gt;“Start Transcription”&lt;/STRONG&gt;. Choose the spoken language (&lt;A href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=stt" target="_blank" rel="noopener"&gt;Click here for the list of supported languages&lt;/A&gt;).&lt;/LI&gt;
&lt;LI&gt;After the meeting ends, participants can view the&amp;nbsp;&lt;STRONG&gt;AI-generated summary&lt;/STRONG&gt;&amp;nbsp;and download the transcript.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;In the sample experience, transcripts and summaries are available temporarily. In production environments, you can store them securely and use them to support training, compliance, or analytics.&lt;/P&gt;
&lt;H2&gt;Microsoft 365 Integration&lt;/H2&gt;
&lt;P&gt;Today’s update focuses on integrating Azure AI with Azure hosted meetings. However Azure Communication Services are interoperable with Microsoft Teams, and you can use the Sample Builder to deploy a branded Azure application that joins Teams meetings.&lt;/P&gt;
&lt;P&gt;Interoperability can be incredibly helpful for organizations that are already using Microsoft Teams but want to build a custom meeting experience for business-2-consumer (B2C) interactions. Using Microsoft Teams as the meeting host allows you to leverage:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Teams Premium AI features for generating meeting notes and recommending follow-ups.&lt;/LI&gt;
&lt;LI&gt;Teams Premium virtual appointment features for scheduling of B2C meetings and sending reminders across SMS, email, and other channels.&lt;/LI&gt;
&lt;LI&gt;Teams Phone capabilities so end-users can dial into the meeting using traditional telephony.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;Get Started Today&lt;/H2&gt;
&lt;P&gt;Explore the new AI-powered features in the Sample Builder and start building smarter virtual appointment experiences:&lt;BR /&gt;👉 &lt;A href="https://learn.microsoft.com/en-us/azure/communication-services/tutorials/virtual-visits/sample-builder" target="_blank" rel="noopener"&gt;Try the Sample Builder&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;With transcription and meeting summaries, your meetings can do more than connect people—&lt;STRONG&gt;they can capture insights, drive action, and deliver lasting value.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 16 May 2025 23:15:49 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/bringing-ai-to-meetings-with-the-sample-builder/ba-p/4414730</guid>
      <dc:creator>tayaras</dc:creator>
      <dc:date>2025-05-16T23:15:49Z</dc:date>
    </item>
    <item>
      <title>Get more from your Email logs with Azure Communication Services</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/get-more-from-your-email-logs-with-azure-communication-services/ba-p/4411680</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;If&amp;nbsp;you're&amp;nbsp;sending&amp;nbsp;emails with Azure Communication Services, you already know how powerful the platform is for delivering messages at scale. But what happens after you hit send?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In our latest video, we walk through how to unlock insights from your&amp;nbsp;email&amp;nbsp;activity using &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;logs and telemetry in the Azure portal&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. Whether&amp;nbsp;you're&amp;nbsp;tracking delivery success, debugging failures, or analyzing engagement, this guide helps&amp;nbsp;you get started with the tools that matter.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=WY74o8cES7o/1746641547747" data-video-remote-vid="https://www.youtube.com/watch?v=WY74o8cES7o/1746641547747" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWY74o8cES7o%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWY74o8cES7o&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWY74o8cES7o%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H2 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;e&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;mail&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;t&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;elemetry&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;m&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;atters&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Understanding how your emails perform is critical—especially when you're running campaigns, monitoring sender reputation, or troubleshooting delivery issues. With Azure Communication Services, you can tap into &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Log Analytics&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;for&amp;nbsp;real-time visibility into:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Delivery and failure rates&lt;/SPAN&gt; &lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Suppression reasons&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;User engagement (opens, clicks)&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Correlation IDs for tracing specific messages&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;While this video focuses on email, the same logging and telemetry setup applies to other Azure Communication Services like &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;SMS&lt;/STRONG&gt;, &lt;STRONG&gt;voice&lt;/STRONG&gt;, and &lt;STRONG&gt;chat&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;—so once&amp;nbsp;you’ve&amp;nbsp;got the hang of it, you can reuse the same approach across channels.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Step 1: Set&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;u&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;p&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;y&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;our&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;l&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;og&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;a&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;nalytics&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;w&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;orkspace&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Before you can start querying logs,&amp;nbsp;you’ll&amp;nbsp;need a place to store them. In the Azure portal:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI data-leveltext="%1." data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create a &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Log Analytics workspace&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="%1." data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Choose your subscription and resource group.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="%1." data-font="" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Name your workspace and click &lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Review + Create&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This workspace acts as the central hub for all your telemetry data.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;A GIF of a user creating a Log Analytics Workspace in the Azure Portal.&lt;/P&gt;
&lt;/img&gt;
&lt;H2 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Step 2: Configure&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;d&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;iagnostic&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;s&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;ettings&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Next, connect your&amp;nbsp;Azure Communication Services&amp;nbsp;resource to the workspace:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI data-leveltext="%1." data-font="" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to your &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Communication Services&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; resource.&lt;/SPAN&gt; &lt;/LI&gt;
&lt;LI data-leveltext="%1." data-font="" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Under &lt;STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Monitoring&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;, select &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Diagnostic settings&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Add a new setting and choose the email-related log categories:&lt;BR /&gt;
&lt;UL&gt;
&lt;LI&gt;Send mail logs&lt;/LI&gt;
&lt;LI&gt;Delivery status updates&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;User engagement logs&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Point them to your Log Analytics workspace and save.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Now your logs&amp;nbsp;will&amp;nbsp;start&amp;nbsp;to&amp;nbsp;flow into the workspace automatically.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;A screenshot of how to add a "diagnostic setting" in the Azure portal, with the "Diagnostic settings" tab highlighted and specific categories to select also highlighted&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H2 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Step 3: Explore&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;i&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;nsights in the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;p&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;ortal&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With logs enabled, you can start exploring your data:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Use the &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Insights &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;tab for a high-level overview of delivery and engagement.&lt;/SPAN&gt; &lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Filter by sender address or time range.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;View metrics like delivery success, failures, and clicks.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This is great for quick checks—but for deeper analysis, you&amp;nbsp;can&amp;nbsp;write custom queries.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;A screenshot of the Insights dashboard in the Azure Portal. It shows charts with an overview of the number of emails&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;delivered&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;,&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;failed&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;, and suppressed.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H2 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Step 4: Run&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;c&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;ustom&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;q&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;ueries with KQL&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In the &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Logs &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;section of your workspace, use &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Kusto Query Language (KQL) &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;to dig into the details:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Find suppressed or bounced emails&lt;/SPAN&gt; &lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Trace delivery failures with correlation IDs&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Identify which links were clicked in a campaign&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"&gt;Export results to CSV, Power BI, or Excel&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The video walks through several examples, including how to&amp;nbsp;change&amp;nbsp;sample queries and build your own.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;A screenshot of the Azure Queries Hub from within the Azure Portal&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="caption"&gt;. It shows a sample query looking for logs that have a specific RecipientId and UserAgent&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/img&gt;
&lt;H3 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Bonus: Reuse&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;t&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;his&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;s&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;etup&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;a&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;cross&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Azure Communication Services&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;c&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;hannels&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;While this walkthrough focuses on email, the same telemetry setup works for other Azure Communication Services channels. Whether you're building with &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;SMS&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;voice&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, or &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;chat&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, you can use Log Analytics to&amp;nbsp;monitor&amp;nbsp;performance, debug issues, and improve user experience.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="3"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Watch the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;f&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;ull&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;w&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;alkthrough&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Want to see it in action? Watch the&amp;nbsp;preceding&amp;nbsp;full video above for a step-by-step demo of everything covered here.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;And if you’re already using logs in creative ways—or have questions about telemetry for other Azure Communication Services features—drop us a comment. We’d love to hear how you use it!&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 May 2025 19:10:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/get-more-from-your-email-logs-with-azure-communication-services/ba-p/4411680</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2025-05-07T19:10:37Z</dc:date>
    </item>
    <item>
      <title>Catch Up on the Azure Communication Services Fundamentals Series</title>
      <link>https://techcommunity.microsoft.com/t5/azure-communication-services/catch-up-on-the-azure-communication-services-fundamentals-series/ba-p/4410438</link>
      <description>&lt;P&gt;This April, we partnered with Microsoft Reactor to deliver a four-part webcast series designed to help developers get started with Azure Communication Services. Each 20-minute episode focused on a different communication channel—giving developers the tools to build real-time, scalable, and secure communication experiences into their apps.&lt;/P&gt;
&lt;P&gt;If you missed the live sessions, don’t worry, they’re all available on-demand! Check out &lt;A href="https://developer.microsoft.com/en-us/reactor/series/S-1511/" target="_blank" rel="noopener"&gt;the full playlist here&lt;/A&gt; or see the following individual videos.&lt;/P&gt;
&lt;P&gt;Here’s a quick look at what each episode covered:&lt;/P&gt;
&lt;H2&gt;Episode 1: WhatsApp Messaging&lt;/H2&gt;
&lt;P&gt;We kicked off the series by showing how to integrate WhatsApp Business messaging into your Azure Communication Services applications. We walked through everything from sandbox testing to connecting a verified WhatsApp Business Account and sending messages with SDKs. For a deeper dive on what was covered, read about it &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azurecommunicationservicesblog/getting-started-with-whatsapp-messaging-in-azure-communication-services-feat-mic/4406327" data-lia-auto-title="here" data-lia-auto-title-active="0" target="_blank"&gt;here&lt;/A&gt; from Gloria herself!&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=lRfhL3LfcZw/1746212045481" data-video-remote-vid="https://www.youtube.com/watch?v=lRfhL3LfcZw/1746212045481" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FlRfhL3LfcZw%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlRfhL3LfcZw&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FlRfhL3LfcZw%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Episode 2: Exploring SMS Capabilities&lt;/H2&gt;
&lt;P&gt;This session described how to provision a phone number, verify the number, and how to send/receive SMS messages. We also covered how to handle incoming messages with event grid listeners and code-based handlers. For a deeper dive on exactly what was covered, read about it &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azurecommunicationservicesblog/getting-started-with-sms-messaging-in-azure-communication-services-feat-microsof/4410176" data-lia-auto-title=" here " data-lia-auto-title-active="0" target="_blank"&gt;here &lt;/A&gt;from Pranita herself!&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=Stu_bP2ZLk4/1746212112443" data-video-remote-vid="https://www.youtube.com/watch?v=Stu_bP2ZLk4/1746212112443" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FStu_bP2ZLk4%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DStu_bP2ZLk4&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FStu_bP2ZLk4%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Episode 3: Maximizing Email Insights with Logs and Events&lt;/H2&gt;
&lt;P&gt;Next, we dove into email analytics and telemetry setting up logs and events, understanding sender reputation, and using sample queries to gain insights. From basic sample queries to advanced Kusto Query Language (KQL) queries, this session covered everything you need to run a successful email marketing campaign with Azure Communication Services.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=6yfmMn1PoHM/1746212024737" data-video-remote-vid="https://www.youtube.com/watch?v=6yfmMn1PoHM/1746212024737" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F6yfmMn1PoHM%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6yfmMn1PoHM&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F6yfmMn1PoHM%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Episode 4: Add Audio &amp;amp; Video Calling&lt;/H2&gt;
&lt;P&gt;We wrapped the season with a demo-rich session on embedding calling features into your communications application using Azure Communication Services. Highlights included new AI-powered features like captions, noise suppression, grid views, and real-time translation.&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=G0-O1ay53gA/1746211976735" data-video-remote-vid="https://www.youtube.com/watch?v=G0-O1ay53gA/1746211976735" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FG0-O1ay53gA%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DG0-O1ay53gA&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FG0-O1ay53gA%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H2&gt;What’s Next?&lt;/H2&gt;
&lt;P&gt;We’re already planning&lt;STRONG&gt; Season 2&lt;/STRONG&gt;, launching later this year, with a focus on&amp;nbsp;&lt;STRONG&gt;Azure Communication Services + AI&lt;/STRONG&gt;. Expect deeper dives, new use cases, and more interactive demos.&amp;nbsp; Want to stay in the loop? &lt;A class="lia-external-url" href="https://aka.ms/acs-season-two-updates" target="_blank" rel="noopener"&gt;Sign up for season two updates&lt;/A&gt; to be the first to know when the new season launches and tell us what you want to learn about!&lt;/P&gt;</description>
      <pubDate>Mon, 05 May 2025 17:30:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-communication-services/catch-up-on-the-azure-communication-services-fundamentals-series/ba-p/4410438</guid>
      <dc:creator>seankeegan</dc:creator>
      <dc:date>2025-05-05T17:30:45Z</dc:date>
    </item>
  </channel>
</rss>

