# Notifications

Salfio's per-user notifications — the in-app inbox, email delivery with an immediate or daily-summary mode, per-type toggles with test sending, and one-click mute controls in every email.

Salfio notifies you personally about things that concern you. Every notification lands in your **in-app inbox** (the bell icon), and — unless you turn it off — also reaches you **by email**, so value finds you even on days you don't open Salfio. Every notification deep-links to the next action, and every email carries one-click mute controls.

Notification settings live in their own **Notifications** section of Settings, with two pages: **General** holds email delivery, and **Notification Types** holds the per-type switches.

## Email delivery modes

Under **Settings → Notifications → General** you choose how notification emails reach you:

- **Immediate** (the default) — one email per notification, as it happens.
- **Daily summary** — one bundled email per day carrying everything since the last summary.
- **Off** — no notification emails at all. Your in-app inbox keeps working exactly as before.

Changing the mode also applies to notifications already waiting to be sent: switching to Immediate releases a pending daily bundle right away, and switching to Off cancels anything still queued.

Time-sensitive notifications — [meeting recaps and meeting-prep briefs](/docs/reports) — skip the daily bundle and always email right away: a recap of this afternoon's call is no use tomorrow morning, and a prep brief bundled past the meeting is no use at all. Off and per-type mutes still apply to them like to everything else.

## Muting from an email

Every notification email ends with a **Notification settings** link to the settings page, next to the controls that work without logging in:

- **Mute this notification** — stops this kind of notification entirely, in the app and by email. This is the same toggle you see on the settings page, so you can re-enable it there anytime. A daily summary covers several kinds at once, so it leaves this control out.
- **Stop all notifications from Salfio** — turns email delivery off. Your in-app inbox is untouched.

Mail apps that support one-click unsubscribe (Gmail's "Unsubscribe" button, for example) trigger the stop-all-email action.

## Per-type toggles

**Settings → Notifications → Notification Types** lists every notification type with its own switch. A type switched off is fully silent — no inbox entry and no email — until you switch it back on.

Almost every type starts switched on. The exception is **Meeting prep briefs**, which starts **off**: nothing is sent until you enable the toggle. Its card also holds the brief's **Send time** (how far before the meeting it arrives) — see [Reports](/docs/reports).

## Churn risk alerts

Salfio continuously assesses each client's churn risk (low, medium, or high) from that client's communication history. Whenever the level actually **moves** — in either direction — the client's **account managers** are notified personally: the alert names the client, shows the previous and new level, lists the current warning signals, and deep-links to the client's page.

A few deliberate rules keep this alert trustworthy:

- **Account managers only.** Nobody else in the organization is notified. If a client has no account manager, no one is alerted — assign an account manager on the client's page to start receiving churn alerts for that client.
- **Level moves only.** A client's very first assessment and updates that only refresh the underlying signals (level unchanged) never notify.
- **No pile-ups.** While a churn alert for a client sits unread in your inbox, further level moves for that same client don't create additional alerts or emails; once you've read it, the next move notifies again.

Following the link opens the client's page, where the current level and its signals are on the **Overview** pill — see [Customer Overview → Churn risk](/docs/customer-overview#churn-risk).

Churn risk alerts respect your **email delivery** mode like any regular notification: on **Daily summary** they arrive in the daily bundle (the in-app inbox entry is immediate either way), and the **Churn risk changes** toggle under Notification Types silences them entirely. The card's **Test** button sends yourself one sample churn alert through the full pipeline — note that unlike the report test emails, it respects the toggle.

## Upsell opportunity alerts

Alongside churn risk, Salfio watches each client for **upsell openings**: an upsell opportunity level (low, medium, or high) read from the client's communications and matched against your organization's service catalog. Whenever that level actually **moves** — in either direction — the client's **account managers** are notified personally: the alert names the client, shows the previous and new level, lists the current buying signals, names the matched services from your catalog ("Openings for: …"), and deep-links to the client's page. A cooling signal notifies too, so you know when to stop preparing the pitch.

The level, its signals, and the matched services are also on the client's **Overview** pill — see [Customer Overview → Upsell opportunity](/docs/customer-overview#upsell-opportunity).

The same rules as churn alerts apply: account managers only (no account manager assigned means no one is alerted), level moves only (a client's first assessment and updates that only refresh the signals or services stay silent), and no pile-ups while an alert sits unread. Churn and upsell alerts are tracked separately: an unread churn alert never hides a new upsell alert for the same client, and vice versa.

Upsell alerts are switched on by default and have their own **Upsell opportunities** toggle under Notification Types, fully independent of the churn toggle — turning one off never affects the other. The card carries the same **Test** button: it sends yourself one sample upsell alert through the full pipeline, and it respects the toggle.

## Testing report emails

The **Meeting prep briefs** and **Meeting recaps** cards each carry a **Test** button. It opens a dialog where you pick one of your own customer meetings — any customer-matched meeting for a prep brief, and only meetings that already happened and have a transcript summary for a recap — and Salfio generates a real report email from that meeting's data and sends it **to you only**. It works while the toggle is off, so you can see exactly what you'd get before opting in. The recap test also previews your own voice: when you have a [tone of voice](/docs/profile#tone-of-voice) set, its suggested follow-up email is drafted in it. Nothing is saved: no report appears in the app, nobody else is notified, and the email is the only output.

The report is written fresh each time, so generation typically runs for a minute or two and occasionally longer — keep the dialog open until it confirms. Test sends are rate-limited: three in quick succession, then roughly one every six minutes.

A prep-brief test follows the same rule as a real brief: if the **Context** section cannot be produced, the dialog reports the failure and no email is sent. Retrying usually works — see [Meeting-prep briefs](/docs/reports).

## Testing your setup

Use **Send test notification** (`POST /v1/notifications/test` for API users) to push one test notification through the whole pipeline: it appears in your inbox instantly, and the email follows within about a minute when email delivery is on.

## Related pages

- [Administrator Tools](./administrator-tools.md)
- [Agent Tools](./mcp-external-servers.md)
- [Assign a Slack channel to a client over the API](./guides-assign-slack-channel.md)
- [Authenticated health check](./api-reference-gethealth.md)
- [Authentication](./api-authentication.md)
- [Cards](./cards.md)
- [Changelog](./changelog.md)
- [Changelog](../changelog.md)
- [Connect a workspace](./getting-started-connect-workspace.md)
- [Connect an integration](./getting-started-connect-integration.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
