Webhook tool

Microsoft Teams AI voice agents that flag urgent calls

When a call needs a person, the agent sends the caller, the reason and the urgency to a service of yours, which posts them to a Teams channel.

Front desk agent

Answers calls and alerts the team in Teams.

Instructions

Answer opening hours, store location and billing questions from your knowledge. If the caller reports something urgent or asks for a callback, send the team a short message with their name, the reason and how urgent it is. If it is an emergency, send the message first, then transfer to the on-call line.

Handoff
On-call line

Connected tools

  • Notify teamWebhook
  • Transfer to on-callTransfer

What a Microsoft Teams AI voice agent can do

Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.

An urgent call posts to the channel your team already watches, with the caller's name, their number and what they need.

Tool definitions

Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.

Webhook

Notify team

Sends the call details to your service, which posts to a Teams channel.

Show the JSON definition
notify_team
{
  "type": "webhook",
  "name": "notify_team",
  "description": "Posts a message about this call to the team's Microsoft Teams channel. Use it for urgent calls and callback requests.",
  "pre_tool_speech": "auto",
  "execution_mode": "async",
  "response_timeout_secs": 15,
  "api_schema": {
    "url": "https://api.your-company.com/teams/alert",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "caller_name": {
          "type": "string",
          "description": "The caller's name, as they gave it."
        },
        "phone": {
          "type": "string",
          "dynamic_variable": "system__caller_id"
        },
        "reason": {
          "type": "string",
          "description": "What the caller needs, in one or two plain sentences, under 300 characters."
        },
        "urgency": {
          "type": "string",
          "enum": [
            "callback",
            "urgent",
            "emergency"
          ],
          "description": "How urgent the call is."
        }
      },
      "required": [
        "caller_name",
        "reason",
        "urgency"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Transfer

Transfer to on-call

Cold transfer to the on-call number.

Show the JSON definition
transfer_to_on_call
{
  "config": {
    "system_tools": {
      "transfer_to_number": {
        "description": null,
        "pre_tool_speech": "auto",
        "transfers": [
          {
            "destination": {
              "type": "phone",
              "phone_number": "+14155550141"
            },
            "condition": "The caller reports an emergency, after the Teams message is sent."
          }
        ]
      }
    }
  }
}

Set it up

No native connector. The tool calls a service of yours, which posts an Adaptive Card to a webhook URL that the Teams Workflows app gives you. Vendor details read in November 2026.

  1. Create the workflow

    In the Teams channel, open More options, then Workflows, and pick the Send webhook alerts to a channel template. Save it and copy the webhook link.

  2. Limit who can trigger it

    In Power Automate, set Who can trigger the flow to Specific users in my tenant, and add the object ID of a service principal your service signs in as.

  3. Run the post endpoint

    Your service gets a Microsoft Entra token for that service principal with the audience https://service.flow.microsoft.com/, then POSTs a message with an Adaptive Card attachment to the webhook link.

  4. Add the tool and test

    Point the tool at your service with a bearer secret, call the agent, report something urgent, and check the card in the channel.

Before you build

Why not call the workflow URL directly

With Anyone allowed, the sig value in the URL is the only key, and a webhook tool stores its URL as plain configuration. The tenant options need an Entra token, which expires.

Why not Microsoft Graph

Graph only allows app-only permission on channel messages for migration. Posting as your service would need a signed-in user's delegated ChannelMessage.Send token.

Four requests a second

Teams throttles a webhook that gets more than four requests in a second, and rejects messages over 28 KB. One post per call stays well inside both.

Give the workflow a co-owner

A workflow belongs to the person who made it, not to the channel. Add a co-owner so posts don't stop when that person leaves the company.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Microsoft Teams AI voice agent FAQs

Can an AI agent answer Microsoft Teams Phone calls?

Microsoft's Teams Phone Agent can. It extends Teams auto attendants with AI conversations and is billed in Copilot Credits. The Cartesia agent on this page doesn't sit on Teams Phone. It answers your own phone number and, when a call needs a person, posts an alert card to a Teams channel.

Can an AI voice agent post a message to a Teams channel?

Yes. The agent calls a service of yours, and the service posts an Adaptive Card to a webhook link from the Teams Workflows app, using the "Send webhook alerts to a channel" template. The agent doesn't read or answer Teams messages.

Can I use an old Office 365 connector webhook?

No. Microsoft retired Office 365 connectors in Teams, including connector-based incoming webhooks, in May 2026. Workflows webhooks replace them, and this page uses the "Send webhook alerts to a channel" template.

Why not post to Teams with Microsoft Graph?

Graph allows app-only permission on channel messages only for migration. Posting as your service would need a signed-in user's delegated ChannelMessage.Send token, so this page uses a Workflows webhook instead.

What does a phone agent that alerts Teams cost?

Cartesia bills the agent at $0.03/min, plus LLM usage and telephony. Phone minutes depend on the number. Cartesia-provisioned numbers are US only and carry Cartesia's telephony fee. Numbers from your Twilio account or a SIP trunk pay your carrier's rates instead.

Get started today

Talk to an expert.

Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.

Contact Sales

Start building.

Access our models via API and bring a voice agent into production in minutes.

Try Cartesia