> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neoagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Notifications to end users

> Send one message to many of your clients' people through your end-user Teams bot, such as an outage notice

When something affects many of your clients at once, such as a Microsoft 365 outage or your data center going offline, you can tell their people in one step. The message arrives in each person's chat with your [end-user Teams bot](https://docs.neoagent.io/integrations/teams/end-user-bot.md), in your brand.

> [!NOTE]
>
> Teams only for now. You need an active end-user Teams channel, and only an admin or owner, or a person an admin gave the **Send end-user notifications** permission ([how to give it](https://docs.neoagent.io/product/rbac.md#end-user-notifications)), can send a notification or see who it reaches. An agent that runs with no person behind it, such as a triggered or scheduled agent, cannot.

## Who receives it

A person receives the notification when they have your end-user app in Teams: they installed it, or they have chatted with it. A person whose organization has the app only in its app catalog has not installed it, so they cannot receive one, and they are not counted.

You choose:

* **Companies**: one or more of your clients, or everyone the app reaches. Everyone also includes people in Microsoft 365 organizations that are not linked to any of your companies.
* **People**: everyone in those companies, or only the people you pick.
* **Chatted in the last 90 days**: only people who chatted with the bot in the last 90 days.

A company reaches people only when its Microsoft 365 tenant ID is set on its record under [**Companies**](https://dashboard.neoagent.io/end-companies). When several of your companies share one Microsoft 365 tenant, a person there who never chatted with the bot cannot be told apart between them, so a notification to one of those companies can reach them too. The preview tells you when a company shares its tenant.

## Send one from the dashboard

Open [**Chat**](https://dashboard.neoagent.io/chat?tab=notifications) and the **Notifications** tab. The tab shows when your workspace has an active end-user Teams channel.

1. Under **Companies**, pick the companies, or choose **Everyone the app reaches**. Each company shows how many people can receive it.
2. Under **People**, choose **Everyone**, **Chatted in the last 90 days**, or **Pick people** to choose them by name.
3. Write the message. **Preview** shows it as your end users will read it.
4. Click **Review and send**. Check the number of people, the companies and the text, then click **Send**.

![The Notifications tab: two companies picked with their people counts, a note that one company shares its Microsoft 365 organization, everyone in them, the message, and 203 people who can receive it](https://mintcdn.com/neoagent/eWX-1dEehPulxAmA/images/chat-agents/end-user-notifications-compose.webp?fit=max\&auto=format\&n=eWX-1dEehPulxAmA\&q=85\&s=32c02ff83912039f2bd1aa80a4cae00e)

![The confirm step: send to 203 people, the two companies, the message as it will read, and the line that a reply bills as a normal chat turn](https://mintcdn.com/neoagent/eWX-1dEehPulxAmA/images/chat-agents/end-user-notifications-confirm.webp?fit=max\&auto=format\&n=eWX-1dEehPulxAmA\&q=85\&s=09af78601d84391b855e3d72186f4bfc)

The notification opens when you send it and updates while the send runs. **Sent notifications** under the form lists every notification with its counts; click one to see the result for each person, and filter by **Sent**, **Not reachable**, **Failed** or **Waiting**.

![One notification: the message, how many people it was for, received, not reachable and failed, and the result for each person with the reason](https://mintcdn.com/neoagent/eWX-1dEehPulxAmA/images/chat-agents/end-user-notifications-detail.webp?fit=max\&auto=format\&n=eWX-1dEehPulxAmA\&q=85\&s=7dbb61f640e264ad674ee3918853937d)

## Send one by asking Neo

In the dashboard chat, ask Neo Support: *"Tell everyone at Contoso and Fabrikam that Teams is down and we are on it."* Neo:

1. Checks how many people the notification reaches, per company.
2. Shows you the exact text, the companies and the number of people, and waits for your confirmation.
3. Sends it after you approve, and tells you how many people received it.

You can ask *"Did the outage notice reach everyone?"* at any time. Neo lists who did not get it and why.

## What happens after you send

* The bot sends the message to each person in a private chat. Each client company gets at most 25 notifications a minute, so a notification to a large client takes a few minutes.
* For each person, the result is **Sent**, **Not reachable** (the bot has no chat with them) or **Failed** (Teams refused the message).
* A sent notification cannot be changed or taken back.
* A person can reply. The reply goes to your Chat Agent like any other message, and the agent sees the notification when the person already had an open chat.

> [!WARNING]
>
> A reply is a normal chat turn, so it counts as using the bot. A client where nobody used the bot this month becomes billable for the month once one of its people replies. See [End-user Teams bot pricing](https://docs.neoagent.io/chat-agents/sessions-and-billing.md#end-user-teams-bot-pricing).

## Send one with the API

The same notifications are available on Neo's public API, with an API key or as a person who may send them:

| Call | What it does |
| - | - |
| `GET /public-api/end-user-notifications/reach` | Who a notification reaches, per company. `end_company_ids` (comma-separated PSA company ids; leave out for everyone), `only_recent_chatters`, and `include_people=true` for the names |
| `POST /public-api/end-user-notifications` | Sends one. Body: `message` (markdown, up to 4,000 characters), `end_company_ids` (a list, or `null` for everyone), `recipients` (`"all"` or a list of `user_id`s from the reach), `only_recent_chatters`, `idempotency_key` |
| `GET /public-api/end-user-notifications` | Your notifications, newest first, with counts |
| `GET /public-api/end-user-notifications/{id}` | One notification and the result for each person; `outcome` filters by result |

Use a new `idempotency_key` for each notification. When you repeat a request with the same key, for example after a timeout, Neo returns the first notification and sends nothing again. One notification sends at a time, and a workspace can start up to 20 in an hour. Full reference: [API reference](https://docs.neoagent.io/developers/introduction.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.