# Notifications

> The bell in the top bar and the Notifications page: what creates a notification, how read state works, how bursts of email collapse into one digest, and how to read them with the API.

The bell in the top bar, right after **Support** and before **Ask Fenn**, is where FoxReach tells you what needs attention without sending you an email for every event. A badge on the bell counts what you have not read yet. It updates about once a minute and when you come back to the tab.

## The bell

Click the bell to see your latest notifications, grouped under **Today**, **Yesterday**, **Earlier this week**, **Last week** and then month names. Each row has a coloured icon, a one line title, a one line summary, the time it happened and a small tag for its category. A dot marks the ones you have not read. The **All** and **Unread** switch at the top narrows the list.

- **Click a row** to open what it is about (the campaign, the inbox list, your billing settings) and mark it read.
- **Click the arrow at the right of a row** to expand it in place. You see the full text, the details behind it (each interested reply with the lead, the first line of what they wrote and a link to the thread; each inbox that dropped in health with its old and new score; the counts for a finished campaign or import) and one or two buttons such as **Open campaign**, **View replies**, **Reconnect inbox** or **Update payment**. Expanding a row marks it read.
- **Mark all read** clears the badge.
- **View all notifications** opens the full page.

## The Notifications page

Open it from **View all notifications**. It lists everything from the last 90 days, newest first, under the same date headings, which stay in view as you scroll. **Show more** at the bottom loads the next 20 and continues the heading you were in.

- **All** and **Unread** switch between everything and what you have not read.
- Under it, one pill per category with a count: **Replies**, **Campaigns**, **Inboxes**, **Imports & leads**, **Billing** and **Workspace**. Click one or several to show only those. The counts follow the **All** or **Unread** switch. **Clear filters** shows everything again. The address keeps your choice (`?category=replies,campaigns&unread=1`), so a refresh or a shared link opens the same view.
- When a filter matches nothing the page says so, for example "No billing notifications".
- **Mark all read** marks every unread notification when no category is selected. With a category selected the button reads **Mark these read** and marks only the unread notifications in the categories you selected; the other categories stay unread. It is hidden when nothing in the selection is unread.

**Email preferences** links to **Settings**, **Notifications**, where you choose which emails you get.

## What creates a notification

| Notification | When |
|--------------|------|
| Campaign finished | A campaign sent to every lead in its sequence |
| Campaign paused | The bounce guard paused a campaign, with the reason |
| Campaign not sending | An active campaign has no inbox that can send |
| Inbox disconnected | An inbox stopped working. One notification per disconnect, not one per failed retry |
| Inbox still disconnected | A disconnected inbox is still disconnected a day later |
| Inbox health dropped | One or more inboxes crossed into unhealthy |
| Import finished | A lead import completed, with how many leads were added |
| Saved search has new leads | A Lead Finder saved search found new people |
| Interested replies | One or more replies were classified as interested. Replies to the same campaign collapse into one row, such as "3 interested replies in Q4 outbound", until you read it |
| Payment problem | A payment failed or your bank needs you to confirm it. Owners and admins get these |
| Domain renewal | A mailbox domain renews soon, expires soon, or its renewal payment failed |
| Teammate joined | Someone accepted your workspace invitation |

Notifications are written whether or not you turned the matching email off. The email toggles only control email. Every reply still goes to the **Inbox** exactly as before; only interested ones also create a notification.

Read state is yours: marking something read does not mark it read for a teammate.

## Fewer emails, same information

When the digest is on, a burst of the same kind of email collapses into one. If three campaigns finish within 15 minutes of each other you get one email listing all three, each with its link, instead of three. The same applies to import finished, campaign paused and inbox disconnected emails. A single event still sends its normal email.

Billing, payment, sign-in and security emails are never delayed or combined. Your email preferences and unsubscribe links work as before, and a toggle you switch off before the digest goes out is honoured.

## Use the API

An API key reads and marks the notifications of the user who created it, in the key's workspace. The list takes a `category` filter and each notification carries its `category` and `details`; a separate call returns the count per category. See [Notifications](/api-reference/notifications/overview) in the API reference, the `list_notifications`, `get_notification_unread_count` and `mark_notifications_read` tools in the [MCP server](/mcp-server), the Python and TypeScript SDKs (`client.notifications`), and `foxreach notifications` in the CLI.
