Elementary sends alerts using Microsoft Teams Adaptive Cards format, which provides rich formatting and interactive capabilities. You can create a webhook URL using either Microsoft Teams Connectors (legacy, being deprecated) or Power Automate Workflows (recommended).
First create a Microsoft Teams team:
Create a new Team
Go to the Microsoft Teams desktop app and create a new team.
Create a team from from a template and use the From Scratch template.
Choose Public as the kind of a team.
Call it Elementary (or whatever you prefer) and connect it to the workspace of your choice.
Now it's time to set up a webhook. You have two options for creating a webhook:
Create a webhook using Connectors
Note: Microsoft 365 Connectors are set to be deprecated end of 2025. Consider using Power Automate Workflows (Option 2) for new integrations.
Go to a channel in your Team and choose Manage channel
Choose Edit connectors.
Search for Incoming webhook and choose Add.
Choose Add again and add name your webhook ElementaryWebhook (or whatever you prefer). And Create the webhook.
Copy the URL of the webhook.
Create a webhook using Power Automate
You can create a webhook using Power Automate in two ways:
Method 1: Directly from Teams (Recommended)
Go to your Teams channel
Click the three dots (...) next to the channel name
Select Workflows
Choose the template "Post to channel when a webhook request is received"
Search for "When a HTTP request is received" as your trigger
In the flow, add a "Post adaptive card in a chat or channel" action
Configure the team and channel where you want to post
Save the flow and copy the HTTP POST URL
Important Notes:
When using Power Automate Workflows, Elementary CLI cannot directly verify if messages were successfully delivered. You'll need to monitor your workflow runs in Power Automate to check for any delivery issues.
Workflows can't post in private channels as a flow bot, but can post on behalf of a user
Workflows can only be created in your default environment
Lastly, pass the webhook URL (from either method) to the CLI as a param or in the config.yml file:
Webhook:
Use the webhook URL when you execute edr monitor using the option -tw, --teams-webhook:
To alert on source freshness, you will need to run edr run-operation upload-source-freshness right after each execution of dbt source freshness.
This operation will upload the results to a table, and the execution of edr monitor will send the actual alert.
Note that dbt source freshness and upload-source-freshness needs to run from the same machine.
Note that upload-source-freshness requires passing --project-dir argument.
In order to monitor continuously, use your orchestrator to execute it regularly (we recommend running it right after
your dbt job ends to monitor the latest data updates).
Read more about how to deploy Elementary in production.
If you need help or wish to consult on this, reach out to us
on Slack.