Skip to Content
NotificationsOverview

Notifications — Overview

FlowState sends email notifications for account events, tenant membership/billing/feature events, and integration disconnects.

How notifications work

Event flow

  1. An event occurs somewhere in FlowState (for example, a role change, a failed payment, or an integration disconnect).
  2. Duplicate events within a 7-day window are suppressed, so retries or duplicate webhook deliveries don’t cause double emails.
  3. Recipients are resolved for the category (see below) and filtered by bounce/complaint state and category preferences.
  4. An HTML and plaintext email is rendered and sent via Amazon SES with a List-Unsubscribe header.
  5. A record of the send is logged.

Recipient resolution

Who receives a notification depends on its category:

  • account.* — the specific user involved in the event.
  • tenant.* — admins and owners of the tenant.
  • hubspot.* / slack.* — every active member of the tenant.
  • org_billing.* — the union of this tenant’s own admins/owner and the organization’s admins, since neither audience alone is guaranteed to be both able to fix billing and aware this specific tenant is at risk.

For each candidate recipient, in order (highest precedence first):

  1. If their email is in a bounce or complaint state, delivery is skipped — this overrides everything else, including an always-on category.
  2. If the category is always-on, they receive it regardless of preferences.
  3. If they’ve set a per-tenant override for this category (see Manage Preferences), that override decides delivery for this tenant, regardless of their global setting.
  4. Otherwise, their global category preference is checked.

Deduplication

Before dispatching, FlowState writes a dedup record for the event with a 7-day expiry. If the same event fires multiple times within 7 days, only the first send is dispatched. This prevents double-emails from retries or duplicate webhook deliveries.

Always-on categories

Some categories cannot be opted out. Opting out of these would prevent receipt of security alerts, legal notices, or the invitations that are themselves the consent mechanism:

CategoryReason always-on
account.invite_receivedThe invitation email is how users are told they have been invited. Disabling it would make invitations unusable.
account.gdpr_export_readyDelivery of the presigned URL for the data export — the only way to receive the export.
org_billing.suspended_nonpaymentWarns that a tenant has been suspended for non-payment — the first step toward permanent deletion.
org_billing.purge_warningWarns that a suspended tenant’s data will be permanently deleted on a specific date.

Default preferences at signup

New users and new tenants receive all notification categories by default. You can turn off any optional category at any time — see Manage Preferences for how.

SES sending

All emails are sent from noreply@flowstate.copebit.io via Amazon SES. Bounce and complaint feedback is processed automatically to keep sending healthy and to update an account’s bounce/complaint status — see Deliverability.