Skip to main content

Microsoft Teams Integration | Changes, Common Issues and Best Practices

Webhooks, Teams, Teams Integrations, Integrations, Best practices, Security, Microsoft

Updated over a week ago

Overview 💥

Liongard enables seamless integration with Microsoft Teams to deliver Actionable Alerts directly into Teams channels. These alerts are transmitted via webhook URLs, which are unique HTTP endpoints designed to receive JSON payloads. Once configured, Liongard posts alert information automatically into the selected Teams channel, providing real-time notifications about system events, security issues, or operational changes. This setup allows IT teams to respond faster, maintain visibility across multiple environments, and reduce the risk of critical alerts being missed.

Over the past year, Microsoft has introduced several updates to Teams connectors and webhook URL formats, including the gradual deprecation of the Office 365 Connector app and the introduction of the Workflows app for webhook creation. These changes have led to confusion among partners, particularly when older URL formats no longer function as expected, or when partners attempt to use Power Automate designer links that are not valid webhook endpoints.

This article provides:

  • A full explanation of how Teams integration works with Liongard

  • Microsoft’s deprecation timelines and what they mean for Liongard

  • Common partner issues and troubleshooting guidance

  • Best practices for setup and maintenance

Following these guidelines ensures uninterrupted delivery of Actionable Alerts and avoids pitfalls caused by recent Microsoft updates.


Understanding Integration Methods and Common Confusion 🤔

1. Integration Methods

Incoming Webhook (Recommended)

  • Can appear as Incoming Webhook or under Workflows (Power Automate) depending on your tenant.

  • Both generate valid webhook URLs in the format:

    https://<tenant>.webhook.office.com/webhookb2/...
  • This is fully supported by Liongard and is the simplest, most reliable method.

  • Best choice for most partners.

Power Automate Relay (Optional / Advanced)

  • A Flow is created with the trigger “When an HTTP request is received.”

  • URL format:

    https://prod-xx.logic.azure.com/workflows/...
  • Can transform or enrich messages before posting them into Teams.

  • ⚠️ Important: Liongard does not accept these URLs directly. If you want to use Power Automate, you must create a Flow that receives from Liongard and then posts to a Teams Incoming Webhook (acting as a relay).

❌ Not Supported: Portal Links

  • URLs like:

    https://make.powerautomate.com/...
  • These are portal management links and cannot accept posts from Liongard.

Microsoft’s Deprecation Timeline

Feature

Status

Notes

Office 365 Connector App

Deprecated Aug 2024, Retiring Dec 2025

Still supported but would be retiring soon. Recommended action would be to move with new workflow.

Incoming Webhook Connector

Supported

Appears directly or via Workflows; generates webhook.office.com URLs

Workflows App

Supported

Produces the same webhook URL as Incoming Webhook

Power Automate Flows

Supported (advanced use)

Can relay messages; URLs logic.azure.com; not required for standard integration

Tip: Migrate early to avoid legacy connector issues.


Steps to Integrate with Teams 🔖

Step 1 — Open Teams and Add Workflows App

  1. Navigate to the Teams channel where you want Liongard alerts delivered.

  2. Click More Options (…) → Workflows (or Apps → Workflows depending on your Teams version).

  3. Workflows is the supported method to create a Teams Incoming Webhook post.

Step 2 — Create an Incoming Webhook Workflow

  1. Select “Post to a channel when a webhook request is received” template, or create a custom workflow with the same trigger.

    Screenshot showing workflow templates
  2. Configure the workflow (name it appropriately, e.g., “Liongard Alerts”).

    Screenshot showing workflow rename option and change account option
  3. Save the workflow. A dialog will appear showing the generated webhook URL:

    https://prod-24.westus.logic.azure.com:443/workflow/…

    This is the workflow’s HTTP trigger URL, which Liongard will post to.

    Screenshot showing a confirmation that a workflow has been added.

Step 3 — Add the Webhook URL to Liongard

  1. Log in to Liongard → Admin → Integrations → Microsoft Teams.

  2. Click Add Channel, paste the webhook URL from Workflows, and give the integration a descriptive name.

    1914
  3. Click Send Test to Teams to confirm the webhook works. You should see a test message in the selected Teams channel.

For additional details please refer out doc : Microsoft Teams Integration


Common Issues & Fixes 👨‍💻

Symptom

Likely Cause

Resolution

Liongard rejects the webhook URL

The URL entered is not a Teams webhook endpoint or was not created properly.

✅ Confirm it starts with https://<tenant>.webhook.office.com/webhookb2/....
✅ Recreate the webhook if needed.

No alerts appear in Teams

Webhook deleted, rotated, or payload rejected by Teams.

✅ Use Send Test to Teams in Liongard.
✅ Test with curl: bash curl -H "Content-Type: application/json" -d '{"text":"Test from Liongard"}' "<YourWebhookURL>"
✅ Recreate the webhook if Teams does not respond.

Duplicate alerts / noisy channel

Multiple Liongard integrations target the same channel.

✅ Review Liongard Alert Templates.
✅ Use dedicated Teams channels for different environments or severities.

“Unsupported URL” or “Format changed”

Microsoft rotated the endpoint, or a non-supported URL was used.

✅ If Power Automate: copy the Flow trigger endpoint, not the portal link.
✅ If Teams webhook: re-create using Incoming Webhook and update Liongard.

Troubleshooting Decision Tree 🪢

  1. URL starts with https://<tenant>.webhook.office.com/webhookb2/...
    ✅ Supported → Test via curl or Liongard Send Test.

  2. URL starts with https://make.powerautomate.com/...
    ❌ Not valid → Portal link; create proper Teams webhook.

  3. URL starts with https://prod-xx.logic.azure.com/...
    ⚠️ Relay only → Configure Flow to post into Incoming Webhook; then point Liongard to Flow trigger URL.

  4. Other unexpected URLs
    ❌ Invalid → Ensure Incoming Webhook URL or properly configured Flow relay.


Best Practices 🤩

  1. Prefer Incoming Webhooks: Use Workflows/Incoming Webhook-generated URLs for long-term reliability.

  1. Document URLs: Keep track of where each webhook is used, with rotation dates.

  2. Separate Channels: Use dedicated Teams channels for test vs production alerts.

  3. Secure Webhooks: Treat URLs as secrets. Rotate if exposed.

  4. Migrate Early: Don’t wait until December 2025 — migrate to new Incoming Webhooks now.

  5. Validate Regularly: Use Liongard’s Send Test to Teams feature to confirm.


Quick Reference 🤓


FAQs 🧑‍🏫

Q: Does Liongard support Power Automate trigger URLs (logic.azure.com)?
No. Liongard does not accept these directly. You must configure a Flow that posts into a Teams Incoming Webhook and then integrate Liongard with that webhook.

Q: Will Teams integration stop working after December 2025?
Not if you’re using Incoming Webhooks. The only thing being retired is the Office 365 Connector app. However, legacy connectors may stop earlier depending on Microsoft’s rollout. Liongard recommends migrating to new Workflows/Incoming Webhooks now or as soon as possible to avoid any unnecessary errors our trouble in future.

Q: Which method should I use — Workflows or Power Automate?
Use Incoming Webhooks created via Workflows/Teams. Power Automate is optional and only needed if you want to transform or filter alert payloads.

Q: What format should my webhook URL have?
Valid URLs follow this format:

https://<tenant>.webhook.office.com/webhookb2/...

If it looks like https://make.powerautomate.com/..., it’s invalid.

Q: Can I test my Teams webhook before saving it in Liongard?
Yes. Use curl:

curl -H "Content-Type: application/json" \ -d '{"text":"Test from Liongard"}' \ "<YourWebhookURL>"

If successful, the message will appear in Teams.

Q: Do I need to recreate my webhook after Connector retirement?
Yes, if your webhook was created using the old Office 365 Connector app. Create a new webhook using Incoming Webhook (Workflows), update Liongard, and retest.


Contact Support 🫡

If you have any questions or experience issues, please reach out to Liongard Support. We are happy to assist in any way possible!

Did this answer your question?