Skip to main content
Alerting & Cases

Send Alerts to a Microsoft Teams Channel

Connect octoja to a Microsoft Teams channel and post alert cards via Power Automate.

Send Alerts to a Microsoft Teams Channel

You can connect octoja to a Microsoft Teams channel so your monitoring alerts arrive in Teams. You create the channel, confirm the wiring with a synthetic test card from the Send test button, and switch it to active. Real check alerts then arrive whenever an alert rule on a check points at this channel.

Microsoft Teams accepts external messages through a Power Automate workflow. You create one workflow in Teams that points at the channel; octoja POSTs Adaptive Card payloads to the workflow's trigger URL.

Prerequisites

  • You need the Integration Management permission in octoja. This permission lets you create, edit, and delete integration channels for the tenant. Permissions are assigned under Administration → Groups.
  • You need permission to create a Power Automate workflow in the target Microsoft 365 tenant. Most Teams users can create workflows for channels they own; restrictive tenants may need a Teams or Power Platform admin to do this step.

Steps — Microsoft Teams side

  1. Open the Teams channel that should receive the alerts. Click the ••• menu next to the channel name → Workflows.
  2. Choose the template Post to a channel when a webhook request is received.
  3. Follow the wizard: name the workflow, confirm the Team and channel, and click Add workflow.
  4. When the wizard completes, Teams shows the workflow URL. Copy it — you will paste it into octoja in the next section. It is an https:// URL whose host ends with .api.powerplatform.com, followed by a workflow-specific path and query.

For Microsoft's authoritative walkthrough of this step (including screenshots of their current UI), see Microsoft's "Post a workflow when a webhook request is received" article. Microsoft owns the Teams UI; this section is intentionally short so it does not drift when their wizard changes.

Steps — octoja side

  1. Go to Administration → Integrations and click Manage Teams channels on the Microsoft Teams card.
  2. Click Add Teams channel.
  3. Fill in the dialog:
FieldDescription
NameDisplay label for this channel. Free text — pick something that identifies the receiving Teams channel (e.g. "Ops — #alerts")
Power Automate workflow URLPaste the workflow URL from Microsoft Teams. octoja checks the host, not the whole address: the scheme must be https, and the host must end with .api.powerplatform.com — the only accepted suffix. The path and query after the host are free-form, so a real trigger URL ending in /triggers/manual/paths/invoke?api-version=1 is fine. An http URL is rejected with "The URL must use HTTPS." Any other host is rejected with "The URL must be a Power Automate workflow URL with a *.api.powerplatform.com host."
  1. Click Create. The dialog closes and the new channel appears in the list with the confirmation "Teams channel created." New channels start Disabled, so nothing is delivered before you have tested the wiring.
  2. Click the new channel's row in the list to open its detail page.
  3. On the Configuration tab, set up the channel and click Save:
FieldDescription
Card languageLanguage for the card text. Choose from the languages octoja ships — currently English, Deutsch, Français, and Nederlands. New channels start on English. Test cards are always English — they are diagnostic, not user-facing
  1. Click Send test in the page header to deliver a synthetic test card to the Teams channel right now. Test deliveries bypass the channel's active/disabled state, so you can verify the wiring before enabling the channel. A test is one-shot: it is never retried and never counts toward the auto-disable threshold, so testing against a broken workflow cannot switch your own channel off. Send it again after each fix.
  2. Once the test card shows up in Teams, flip the toggle above the tabs from Disabled to Active. The toggle commits immediately — it is not part of the Save form. Turn it off again during maintenance on the Teams channel.

Note: after creation, octoja never displays the workflow URL again — the detail page states "URL is treated as a secret and never returned by the API."

The walkthrough below shows the create-channel dialog (steps 2-4). Detail-page configuration (language, Send test) is described in the table above and the following sections:

Add Teams channel dialog with Name set to Ops — #alerts and a Power Automate workflow URL ending in .api.powerplatform.com. The Create button is highlighted.

Why the host must end with .api.powerplatform.com

Microsoft migrated Teams workflow triggers off two earlier URL patterns:

  • *.logic.azure.com — retired by Microsoft on 2025-11-30; existing flows were force-migrated to environment.api.powerplatform.com.
  • *.webhook.office.com — the deprecated O365 Connector channel; Microsoft retired the underlying connectors at the end of 2024.

If you carried a workflow URL from before either migration, octoja will reject it. Recreate the workflow inside Teams using the current template — you will get a URL on the current .api.powerplatform.com host.

What octoja sends

The Send test button delivers a fixed two-line test card to verify the wiring: octoja POSTs an Adaptive Card to the workflow URL with the heading "🐙 Octo webhook test" and the body "If you can see this in Teams, your workflow URL is wired up correctly."

For real monitoring alerts, attach an alert rule to a check and point it at this Teams channel — see Set up alerts for a check. When the check trips, octoja posts an Adaptive Card headed Alert: or Warning: plus the check name, with a fact list holding Customer, Device, Status, Failures in window and Occurred at. Whatever the check reported is appended under Output, and an Open device in octoja button links back to the device. When the check clears, the same channel receives a Recovered: card. All of it follows this channel's Card language; the test card always uses the fixed two-line English layout.

Retry and auto-disable

If the workflow returns a non-2xx status or the request times out (15-second per-attempt timeout), octoja retries on the same schedule as standard webhooks — see Set up Webhooks § Retry and auto-disable for the exact retry intervals and the 20-consecutive-failure auto-disable threshold. After 20 consecutive delivery failures, the channel is automatically disabled; fix the workflow and re-enable from the detail page.

4xx responses are treated as permanent receiver errors and are not retried. 5xx responses, network errors, and timeouts trigger the retry schedule.

Replaying a missed delivery

The History tab on the detail page lists recent deliveries with their outcome, response code, and timing. Pick Replay on a delivery to send the stored card again, unchanged — it keeps the original wording and the original Occurred at time; only the delivery attempt is new. Useful when the Teams workflow was temporarily broken and you want to push missed cards through manually.

Switch the channel back to Active before you replay. A replayed alert passes the same gate as a live delivery, so a channel still sitting on Disabled — whether you switched it off or auto-disable did — drops it without a trace. Only test cards reach Teams while the toggle is off.

Tips

  • Create one Teams channel record per Teams channel — do not multiplex events across channels by switching the URL.
  • If your team uses quiet hours in Teams (mute notifications on channels overnight), schedule them in Teams itself. octoja delivers as soon as an event fires; the silencing happens on the Teams side.
  • If a workflow returns 401 or 403, regenerate the URL inside Teams — Microsoft occasionally rotates workflow tokens. The workflow URL is fixed when the channel is created, so move the channel to the new URL by deleting it and adding it again. The name stays editable — click it in the page header to rename the channel.
  • The Help button next to Send test on the detail page restates the Power Automate setup and what Card language covers, without leaving the page.
  • Troubleshooting: if cards never arrive, check Product Status & Known Limitations first; check on the Microsoft side (Teams → Workflows / Power Automate) that the workflow still exists and its trigger URL still sits on a .api.powerplatform.com host — octoja treats the URL as a secret and never displays it after creation; click Send test on the detail page to surface the exact response Teams returns.