Skip to main content
Send Arize monitor alerts to a Microsoft Teams channel using the webhook integration and a Microsoft Teams Workflow that renders each alert as an Adaptive Card.
Before you begin: You need permission to create a Workflow in your Teams channel (Power Automate enabled for your account), and a role in Arize that can manage Alert Integrations and Monitors.

Integration Setup

Build the Teams Workflow, format the alert card in Power Automate, then register the webhook in Arize.

Integration Setup: Create Teams Workflow

Create a Teams Workflow that posts to your channel when it receives a webhook request — this generates the webhook URL you’ll register in Arize.
1

Open Workflows in your channel

The Workflows option in a Teams channel's More options menu
2

Select the webhook template

Select Send webhook alerts to a channel.
Selecting the Send webhook alerts to a channel template
3

Choose the channel

Choose the channel that should receive the alert.
Choosing the Teams channel for the alert
4

Copy the webhook URL

Copy the webhook URL — you’ll need it when you create the webhook integration in Arize. Treat it like a password: anyone with the URL can post to the channel.
Copying the generated webhook URL

Integration Setup: Modify Workflow in Power Automate

The Teams Workflow expects an Adaptive Card, but Arize sends raw JSON. Edit the Workflow in Power Automate to build a custom alert card from the fields in Arize’s webhook payload.
1

Open Power Automate

Go to make.powerautomate.com and sign in with the same credentials you use for Teams.
2

Open My flows

Select My flows.
My flows in the Power Automate navigation
3

Select your workflow

Select your webhook workflow.
Selecting the webhook workflow in My flows
4

Edit the flow

Select Edit.
The Edit button on the flow detail page
5

Open the Post card action

Expand the actions, then open Post card in a chat or channel.
The Post card in a chat or channel action in the flow designer
6

Replace the Adaptive Card

In the Adaptive Card field, remove the existing string object and paste the JSON below:
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    { "type": "TextBlock", "size": "Large", "weight": "Bolder", "color": "Attention", "text": "🔴 Arize Monitor @{triggerBody()?['status']}" },
    { "type": "TextBlock", "weight": "Bolder", "spacing": "None", "wrap": true, "text": "@{triggerBody()?['monitor_name']}" },
    { "type": "FactSet", "facts": [
      { "title": "Model / Project", "value": "@{triggerBody()?['model_name']}" },
      { "title": "Status", "value": "@{triggerBody()?['status']} (was @{triggerBody()?['previous_status']})" },
      { "title": "Metric", "value": "@{triggerBody()?['metric_description']}" },
      { "title": "Value", "value": "@{triggerBody()?['calculated_value']} (threshold @{triggerBody()?['operator']} @{triggerBody()?['threshold']})" },
      { "title": "Time (UTC)", "value": "@{triggerBody()?['timestamp']}" }
    ]}
  ],
  "actions": [
    { "type": "Action.OpenUrl", "title": "Open monitor in Arize", "url": "@{triggerBody()?['monitor_url']}" }
  ]
}
7

Save the flow

Select Save.
Saving the flow after pasting the Adaptive Card JSON

Integration Setup: Register Webhook in Arize

Register the Teams webhook URL in Arize as a webhook integration so it’s available as an alert destination for your monitors.
1

Open the Webhook integration

Go to Settings → Alert Integrations → Webhook Integration.
The Webhook Integration card in Arize Alert Integrations
2

Register the webhook

Select Add New, name the integration (for example, Teams Channel), and paste the webhook URL from the Teams Workflow. Leave Authorization Token and Custom Headers empty, then select Register New Webhook.
Registering the Teams webhook integration in Arize

Send Alerts

Assign the Teams webhook to your alerts at either level:
  • Project level — from a project’s Config tab, select the Teams webhook so every monitor in the project notifies Teams.
  • Per monitor — set it on an individual monitor, as below.
1

Create a custom monitor

In your project, go to Monitors → New Monitor → Create Custom Monitor.
2

Send notifications to the Teams webhook

Configure the monitor, then set Send Notifications to your Teams Channel webhook and the alert event to Triggered. Select Create. To also be notified when a monitor recovers, subscribe the webhook to the Cleared (and optionally No data) events.
Setting the monitor to notify the Teams Channel webhook on the Triggered event
3

Confirm the alert in Teams

Within a few minutes, the alert triggers (if its conditions are met) and posts to the Teams channel.
An Arize monitor alert rendered in the Teams channel
Alerts fire on a state change (Healthy → Triggered), not on every evaluation — a monitor won’t re-alert while it stays triggered. To test again, let it clear and re-trigger.

Troubleshooting

If no message appears in the channel:
  • Confirm the workflow is turned On in Power Automate (or the Teams Workflows app).
  • Confirm the Adaptive Card field contains valid JSON.
  • Confirm the monitor actually transitioned to Triggered — alerts fire on a state change, not on every evaluation.
  • Open the flow’s run history at make.powerautomate.com → your flow. A failed run shows the exact error (for example, an invalid Adaptive Card).

Troubleshooting: Webhook Payload Reference

When a monitor changes state, Arize sends this JSON (Content-Type: application/json). The card maps its fields from these exact names — useful if you want to customize the alert card in Teams or debug a blank value:
{
  "event": "monitor.triggered",
  "event_uuid": "f6f4ca33-5b4d-4a79-b5ee-fd9bc1f2b094",
  "space_id": "<SPACE_ID>",
  "account_organization_id": "<ORG_ID>",
  "space_name": "Your Space",
  "account_organization_name": "Your Org",
  "timestamp": "2026-06-17T23:27:25.146494727Z",
  "monitor_id": 664739,
  "monitor_name": "Teams Webhook Trigger Test",
  "model_name": "your-project",
  "status": "Triggered",
  "previous_status": "Healthy",
  "monitor_url": "https://app.arize.com/organizations/.../spaces/.../monitors/...",
  "threshold": 1,
  "operator": ">",
  "metric_description": "Count for attributes.llm.token_count.total",
  "calculated_value": 30,
  "calculated_at": "2026-06-17T23:00:00Z"
}
Having trouble? Email support@arize.com or reach us in #arize-support on Slack.