IntegrationsNotifications & AlertsMicrosoft Teams

Microsoft Teams

Datafly Signal posts events to a Microsoft Teams channel as Adaptive Card messages through a Workflows webhook. Useful for routing lead notifications, sign-ups and high-value orders to the team that owns them.

⚠️

Microsoft retired the Office 365 / Microsoft 365 connectors, including the webhook.office.com Incoming Webhook, in May 2026. Those URLs no longer deliver. Create the webhook with the Teams Workflows app as described below and replace the URL in any existing integration.

Why route Microsoft Teams through Datafly Signal

  • Alerts fire off the same event stream as everything else. No separate instrumentation, and no gap between what your destinations received and what Microsoft Teams told you about.
  • Which events reach you is configuration, not code. The trigger conditions live in the pipeline alongside every other rule, so tuning what reaches Microsoft Teams does not require an application release.
  • Alert volume is rate-limited. Signal applies the same rate limiting and retry behaviour it uses for any destination, so an incident that spikes your event rate does not flood the channel.

Prerequisites

  • A Microsoft Teams team and channel you can add workflows to.
  • One webhook per channel: split traffic by creating one Signal integration per channel.

Get your credentials

  1. In Microsoft Teams, open the channel, select More options (…) next to it and choose Workflows.
  2. Pick the template Send webhook alerts to a channel (or create a flow with the When a Teams webhook request is received trigger that posts the received Adaptive Card).
  3. Configure the team and channel and save.
  4. Copy the webhook URL the workflow shows. It looks like https://....logic.azure.com/workflows/.../invoke?...&sig=... (or a Power Platform environment URL).
⚠️

The URL is a secret: anyone holding it can post to the channel. Workflows belong to the user who created them; add a co-owner so the flow keeps running if that person leaves.

Configure in Signal

Configuration fields

FieldRequiredDescription
webhook_urlYesThe Workflows webhook URL. Stored as a secret.

Management UI setup

  1. Go to Integrations > Add Integration > Microsoft Teams.
  2. Paste the webhook_url and choose the General preset.
  3. Click Save.
⚠️

Turn on Only send mapped fields (strict_output_contract) for this integration. It is the default for integrations created since the strict contract became the default; an integration created before it, or one set to forward unmapped fields, also sends every property the blueprint did not map, which can include personal data added by identity enrichment (#1557).

API endpoint

Signal POSTs JSON to the webhook URL. There is no other credential.

Event mapping

General preset

Signal eventMessage titleDetail linesDefault
purchaseNew orderOrder ID (transaction_id, else order_id); value and currency (value, else revenue; currency upper-cased)On
generate_leadNew leadLead type; value and currencyOn
sign_upNew sign-upSign-up method; planOn
subscription_startedNew subscriptionPlan; value and currencyOff
Every other event, page views includedDropped

A missing value shows as -, and the detail text is truncated at 20,000 bytes so the card stays within Teams’ 28 KB message limit. No message carries the visitor’s email, phone, name or address.

Example: purchase

{
  "type": "message",
  "attachments": [{
    "contentType": "application/vnd.microsoft.card.adaptive",
    "content": {
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.2",
      "body": [
        { "type": "TextBlock", "text": "New order", "weight": "Bolder", "size": "Medium" },
        { "type": "TextBlock", "text": "Order: ORD-001\n\nValue: 129.99 GBP", "wrap": true }
      ]
    }
  }],
  "title": "New order"
}

The root title is the event title the delivery spec always adds; the Workflows trigger ignores it.

Splitting events across channels

Create one integration per channel, each with its own Workflows URL, and enable only the events that channel should see.

Identity

Teams cards carry no identity data: no email, phone, name, address or user ID.

Teams notifications are internal operational alerts. Configure the integration under the functional consent category.

Verify it’s working

Step 1: Trigger a test event

From a page running Datafly.js:

datafly.track("generate_lead", {
  lead_type: "Test from Signal"
});

Step 2: Check the Teams channel

Within a few seconds, a card titled New lead with Lead type: Test from Signal should appear in the channel.

Step 3: Inspect the Signal event debugger

In the Signal Management UI, open the integration’s Recent Events tab. You should see the event with a 2xx response and the Adaptive Card payload that was posted.

Troubleshooting

ProblemSolution
No card appears, 2xx responseOpen the workflow’s run history in the Workflows app: the flow may be off, or its owner may have left (add a co-owner).
404 or 410 from a webhook.office.com URLThe connector was retired in May 2026. Create a Workflows webhook and update webhook_url.
Burst of events causes some to dropTeams throttles a channel above about 4 requests per second (429). Signal rate-limits below this; split high-volume events across channels.
Card shows as raw JSON or not at all after a mapping editThe workflow expects the attachments[0] Adaptive Card envelope; revert the edited mapping to the preset’s.

See also