2025-07-31

Introduction to Azure Communication Services

Integrate voice, video, chat, text messaging/SMS, email, and more to your applications.

Azure Communication Services Overview

Azure Communication Services (ACS) is a set of fully managed APIs and SDKs that enable you to integrate voice, video, chat, SMS, email, and telephony into your apps using cloud-scale infrastructure.

Some key capabilities include:

  • Email, SMS, Chat, Voice, and Video Calling
  • Cross-platform SDKs for JavaScript, .NET, Java, Python, etc.
  • Identity integration (Azure AD or ACS identities)
  • Global delivery and compliance support
  • Easy connection with Microsoft 365 and Graph APIs

Azure Communication Services opens up a wide range of possibilities for integrating real-time, multichannel communication into apps and workflows—especially powerful for SMBs looking to scale client engagement, support, and automation.

Common Use Cases

Here’s how businesses and developers are leveraging ACS:

  • Customer Support & Engagement
    • Embed chat, voice, or video into websites or portals for live support.
    • Enable SMS or email notifications for order updates, reminders, or onboarding.
  • Virtual Appointments & Telehealth
    • Schedule and host secure video calls between clients and professionals.
    • Use chat and file sharing for pre-visit forms or post-visit summaries.
  • E-commerce & Retail
    • Send transactional emails or SMS (order confirmations, delivery alerts).
    • Offer in-app chat for product questions.
  • Mobile & Web Apps
    • Add real-time messaging and calling features to your mobile apps.

Here is a Basic Example

Let's suppose you have a contact form in a website. When submitted, the data is posted to an Azure Function that delivers it through a preconfigured ACS email service, which is connected to your business email domain. This is the basic (and simplified) code for this purpose:

// function.js

const { app } = require('@azure/functions');
const { EmailClient } = require("@azure/communication-email");

/**
 * Azure Function that gets triggered by making an HTTP request to its URL
 */
app.http('submitForm', {
    methods: ['POST'],
    authLevel: 'anonymous',
    handler: async (request) => {
        const { name, email, subject, message } = request.params || {};

        const msg = {
            to: 'you@<yourdomain>',
            subject: subject,
            html: "<p>From: " + name + " @ " + email + "</p>"
                + "<p>Message: " + message + "</p>",
        };

        const connection = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
        const client = new EmailClient(connection);

        sendMail(client, msg);
    }
});

/**
 * Sends the email via Azure Communication Services
 * @param client: The Azure Communication Services client
 * @param msg: The form submitted data
 */
async function sendMail(client, msg) {
    const emailMessage = {
        senderAddress: "donotreply@<yourdomain>",
        content: {
            subject: msg.subject,
            html: msg.html,
        },
        recipients: {
            to: [{ address: msg.to }],
        },
    };

    const poller = await client.beginSend(emailMessage);
    const result = await poller.pollUntilDone();

    console.log(`ID: ${result.id}: ${result.status}`);
}

Struggling to connect with clients across channels?

Unlock seamless business messaging with Azure. From SMS workflows to omnichannel engagement, we engineer communication that scales. Contact DUNAMYX today!