Overview
Send Teams Message is a Dynamic Workflow action that posts a message to a Microsoft Teams channel or chat when a workflow runs. For example, you can post a notice to your IT team’s chat whenever a leaver is processed, an employee goes on leave, or a mover is detected.
Setting it up has three parts:
Create a webhook in Microsoft Teams for the channel or chat you want to post to.
Register that webhook in Clarity as an Outbound Webhook. You only do this once per Teams channel or chat.
Add the Send Teams Message step to any workflow and write the message.

Before You Begin
Clarity access: you need an administrator role to manage Outbound Webhooks.
A Teams Workflows webhook URL for the channel or chat you want to post to. This is created in Microsoft Teams using the Workflows app (see Part 1).
Note
Clarity requires a webhook created with the Teams Workflows app. The older Office 365 “Incoming Webhook” connector is not supported.
Part 1: Create the webhook in Microsoft Teams
Someone with access to the target channel or chat creates the webhook in Teams:
In Microsoft Teams, open the channel or chat you want Clarity to post to.
Open the Workflows app from that channel or chat (from the … menu or the + apps list).
Choose the template that posts to a channel or chat when a webhook request is received, and pick the channel or chat to post to.
Finish the template. Teams shows the webhook URL.
Copy the URL and keep it somewhere safe until you add it to Clarity.
Note
Treat this URL like a password. Anyone who has it can post messages to that channel or chat.
Part 2: Register the webhook in Clarity
Go to Settings > Workflows, then click Webhooks in the top navigation.
Select the Outbound Webhooks tab.
Click Add Webhook.
Fill in the form:
Field | What to enter |
|---|---|
Name | A name that tells workflow authors where messages will go, for example “IT Notices — Teams”. Required. |
Platform | Microsoft Teams. Required. |
Description | Optional notes, for example who owns the Teams chat. |
Enabled | Leave checked. Only enabled webhooks can be picked in a workflow. |
Webhook URL | Paste the URL from Part 1. Must start with https://. Required. |
Click Create.

The URL is stored securely and is never shown again. The list only shows the first few characters (URL Prefix) so you can tell webhooks apart.
Test the webhook
On the webhook’s row, click Test. Clarity posts the message “Clarity test message – webhook name” to the channel or chat and shows whether it worked. Always test after adding or replacing a URL.
Edit, replace, or remove a webhook
Edit changes the name, description, platform, or enabled status without touching the stored URL.
To change the URL, click Edit, then Replace URL, and paste the new one.
To pause messages, uncheck Enabled. Workflow steps that use a disabled webhook will fail rather than post.
Delete is blocked while any workflow step still uses the webhook. Clarity tells you how many steps use it. Remove it from those steps first, or disable it instead. The platform also can’t be changed while the webhook is in use.
Part 3: Add the Send Teams Message step to a workflow
Step 1: Add the action
In the workflow builder, add a new step and choose Send Teams Message from the Integrations category.
Step 2: Configure the step
Field | What it does |
|---|---|
Webhook | Choose the Teams webhook to post to. Only enabled Microsoft Teams webhooks are listed. Use Manage webhooks to open the Outbound Webhooks page in a new tab, or Add webhook to register one without leaving the workflow. |
Message | The text to post. Supports placeholders (see below). Required. |
Timestamp Transforms | Optional. Converts a date or time from the workflow into a readable format and timezone for use in the message. |
Retry Attempts | Optional. How many times to try before the step fails for good (1–10, default 3). Only temporary problems are retried. |
Retry Delays (seconds) | Optional. Comma-separated wait times between attempts (default 30,60,120). |

Step 3: Save the workflow
When the workflow runs and reaches this step, Clarity fills in the placeholders and posts the message to Teams.
Writing the message
The message is posted to Teams as a card with a single block of text. There is no separate title field. If you want a headline, put it on the first line.
Placeholders
Placeholders are wrapped in curly braces and are replaced with real values when the workflow runs. Common examples:
Placeholder | Value |
|---|---|
{identity.fullname} | The identity’s full name |
{identity.first_name}, {identity.last_name} | First or last name |
{identity.email} | The identity’s email address |
{identity.Job Title} | Any identity attribute, by its display name (for example {identity.Work Location} or {identity.Employment Status}) |
{identity.supervisor.fullname} | The identity’s manager’s full name |
{transformed.your_name} | A value produced by a Timestamp Transform on this step |
Example message:
Leaver processed: {identity.fullname} ({identity.Work Location})
Job title: {identity.Job Title}
Manager: {identity.supervisor.fullname}
Note
Use {identity.supervisor.fullname} for the manager’s name. {identity.Supervisor} shows the raw stored value (usually an ID), not a name.
Entitlement list placeholders are not supported in Teams messages.
If a placeholder can’t be filled in, it is left blank in the message, and the step’s output lists which placeholders were blank. If every placeholder is blank and nothing is left to send, the step fails.
Dates and times
To show a date in a friendly format or a local timezone (for example “August 6, 2026 at 9:00 AM CDT”), add a Timestamp Transform on the step, then use its {transformed.your_name} placeholder in the message. A transform is only available to the step it is defined on. See the Timestamp Transforms article for details.
What happens if a message fails
Situation | What Clarity does |
|---|---|
Teams is unreachable, times out, is rate-limiting, or returns a server error | Retries using the step’s retry settings (default 3 attempts, waiting 30, 60, then 120 seconds). |
The webhook is disabled, deleted, has no URL, or is not a Teams webhook | The step fails right away. No retry. |
Teams rejects the request (for example, the URL is wrong or the Teams workflow was deleted) | The step fails right away and records the error from Teams. No retry. |
The message is posted | The step completes. |
When a step fails, the workflow run is marked as failed and any steps that depend on it are cancelled. Steps on other branches still run.
Tips & Best Practices
Test before you rely on it. Use Test on the webhook, then run the workflow once against a test identity.
Keep notifications off the critical path. Place the Teams step so that no other step depends on it. That way a Teams outage can’t stop offboarding or provisioning steps.
Name webhooks by destination and purpose so workflow authors pick the right one.
Disable rather than delete if you only need to pause messages for a while.
Use Teams alongside email if some recipients aren’t in the Teams chat. Both steps can run from the same point in the workflow.
Need Help?
If you have any problems, contact your customer success team. You can also get in touch with our general support via email, open a support ticket. Our general support team is available Monday - Friday from 8:00 AM - 6:30 PM CST.