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

# Notification events

> The full catalogue of in-app and email notifications Flowella sends, grouped by category, with delivery channels and whether they can be unsubscribed.

Flowella sends notifications when something important happens in your workspace — a template gets approved, you're approaching a usage threshold, a HubSpot sync fails, or a teammate accepts an invite. This page catalogues every event Flowella can emit, where it shows up, and how to manage your preferences.

For the in-app notifications feed itself, see [Notifications](/app/notifications). For notification preferences UI, see [Settings → Notification preferences](/settings/notification-preferences).

## How notifications are delivered

Notifications can land in up to three places:

| Channel               | Where it appears                                | Customisable                   |
| --------------------- | ----------------------------------------------- | ------------------------------ |
| **In-app feed**       | Bell icon, top right — `/notifications`         | Per category (most events)     |
| **Email**             | The email address on your Flowella user profile | Per category (most events)     |
| **Operational email** | The org's billing email                         | Always on for billing/security |

Each event below shows which channels deliver it by default.

## Event catalogue

### Account & authentication

| Event key                   | Description                                                                                      | Channels       | Optional?          |
| --------------------------- | ------------------------------------------------------------------------------------------------ | -------------- | ------------------ |
| `WELCOME`                   | Sent immediately after you register a Flowella account. Confirms signup and links to onboarding. | In-app + email | No                 |
| `AUTH_PASSWORD_CHANGED`     | Your password was changed.                                                                       | In-app + email | **No — mandatory** |
| `AUTH_MAGIC_LINK_REQUESTED` | A magic-link sign-in was requested for your account.                                             | Email only     | **No — mandatory** |
| `AUTH_NEW_DEVICE`           | A new device or location signed in.                                                              | In-app + email | **No — mandatory** |
| `ORG_INVITE_ACCEPTED`       | Someone you invited accepted and joined the org.                                                 | In-app         | Yes                |

<Note>
  Authentication and security events cannot be unsubscribed from. This is enforced server-side regardless of your notification preferences.
</Note>

### Billing & usage

| Event key                        | Description                                                                                                  | Channels                   | Optional?             |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------- | --------------------- |
| `BILLING_SUBSCRIPTION_STARTED`   | A new subscription was activated for the org.                                                                | In-app + operational email | Operational always on |
| `BILLING_SUBSCRIPTION_CHANGED`   | Plan was upgraded or downgraded.                                                                             | In-app + operational email | Operational always on |
| `BILLING_PAYMENT_FAILED`         | Stripe could not charge the card on file.                                                                    | In-app + operational email | Operational always on |
| `BILLING_PAYMENT_RECOVERED`      | A failed payment succeeded on retry.                                                                         | In-app + operational email | Operational always on |
| `BILLING_SUBSCRIPTION_CANCELLED` | The subscription has been cancelled and will end at the period close.                                        | In-app + operational email | Operational always on |
| `BILLING_TRIAL_STARTED`          | The 14-day free trial was provisioned at signup.                                                             | In-app + email             | Yes                   |
| `BILLING_TRIAL_ENDING`           | The 14-day trial ends in less than 72 hours.                                                                 | In-app + email             | Yes                   |
| `BILLING_TRIAL_EXPIRED`          | The trial window has closed.                                                                                 | In-app + operational email | Operational always on |
| `USAGE_SOFT_50`                  | You have used 50% of your plan's monthly conversation allowance (or your trial's 5,000-message cap).         | In-app + email             | Yes                   |
| `USAGE_SOFT_80`                  | You have used 80% of your plan's monthly allowance.                                                          | In-app + email             | Yes                   |
| `USAGE_HARD_100`                 | You have used 100% of your plan's monthly allowance — overage applies (or, on trial, sends are now blocked). | In-app + operational email | Operational always on |

### Templates

| Event key                   | Description                                                                  | Channels       | Optional? |
| --------------------------- | ---------------------------------------------------------------------------- | -------------- | --------- |
| `TEMPLATE_SUBMITTED`        | A template was submitted to Meta for approval.                               | In-app         | Yes       |
| `TEMPLATE_APPROVED`         | Meta approved a template.                                                    | In-app + email | Yes       |
| `TEMPLATE_REJECTED`         | Meta rejected a template. The notification includes Meta's rejection reason. | In-app + email | Yes       |
| `TEMPLATE_FLAGGED`          | Meta paused a template due to quality issues.                                | In-app + email | Yes       |
| `TEMPLATE_CATEGORY_CHANGED` | Meta re-categorised a template (for example, Marketing → Utility).           | In-app + email | Yes       |

### WhatsApp Flows & forms

| Event key             | Description                                                               | Channels       | Optional? |
| --------------------- | ------------------------------------------------------------------------- | -------------- | --------- |
| `FLOW_SYNC_SUCCEEDED` | A HubSpot form was successfully synced to a WhatsApp Flow.                | In-app         | Yes       |
| `FLOW_SYNC_FAILED`    | A sync run failed. The notification includes the user-safe error message. | In-app + email | Yes       |
| `FLOW_PUBLISHED`      | A Flow was published to Meta.                                             | In-app         | Yes       |

### HubSpot integration

| Event key              | Description                             | Channels       | Optional? |
| ---------------------- | --------------------------------------- | -------------- | --------- |
| `HUBSPOT_CONNECTED`    | HubSpot OAuth completed.                | In-app         | Yes       |
| `HUBSPOT_DISCONNECTED` | HubSpot connection was lost or revoked. | In-app + email | Yes       |
| `HUBSPOT_SYNC_FAILED`  | A scheduled HubSpot sync run failed.    | In-app + email | Yes       |

### Channels & Meta

| Event key                     | Description                                                 | Channels       | Optional? |
| ----------------------------- | ----------------------------------------------------------- | -------------- | --------- |
| `CHANNEL_CONNECTED`           | A new WhatsApp channel was added.                           | In-app         | Yes       |
| `META_VERIFICATION_REQUIRED`  | The channel needs business verification before it can send. | In-app + email | Yes       |
| `META_VERIFICATION_COMPLETED` | Business verification completed.                            | In-app         | Yes       |
| `QUALITY_RATING_DROP`         | Channel quality rating dropped to **Medium** or **Low**.    | In-app + email | Yes       |

### Exports & long-running jobs

| Event key          | Description                                          | Channels | Optional? |
| ------------------ | ---------------------------------------------------- | -------- | --------- |
| `EXPORT_READY`     | A CSV/PDF export you triggered is ready to download. | In-app   | Yes       |
| `IMPORT_COMPLETED` | A CSV import (for example, opt-outs) finished.       | In-app   | Yes       |

## Operational sweeps

Flowella runs a **daily notification reminders sweep**. If an unread `TEMPLATE_REJECTED`, `HUBSPOT_SYNC_FAILED`, or `BILLING_PAYMENT_FAILED` notification has been sitting for more than 24 hours, the sweep re-surfaces it with an email reminder. This means you can't silently miss a critical event by closing the bell icon.

## Where to manage your preferences

* **Per-user, per-category** — Settings → Notification preferences. Each category above can be toggled for in-app, email, or both, with the exception of mandatory categories (auth, billing operational).
* **Per-org operational email** — Settings → Organisation → Notifications email. This is the recipient for billing, security, and other org-wide operational mails.

<Tip>
  If you're not receiving emails you expect, first check Settings → Profile that your email address is verified, then check your spam folder for messages from `notifications@flowella.io`. Unverified emails do not receive notifications.
</Tip>

## Related

<CardGroup cols={2}>
  <Card title="Notification preferences" icon="bell" href="/settings/notification-preferences">
    Choose which categories deliver in-app, by email, or both.
  </Card>

  <Card title="Notifications feed" icon="inbox" href="/app/notifications">
    Read and clear notifications in-app.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/settings/webhooks">
    Push the same events to your own systems.
  </Card>

  <Card title="Status and incidents" icon="activity" href="/essentials/status-and-incidents">
    Operational events and where to triage when something breaks.
  </Card>
</CardGroup>
