# Notiflows > Notification infrastructure for SaaS products. Model a notiflow once and deliver it across in-app, email, SMS, mobile push, web push, chat, and webhooks from a single API. A notiflow is the orchestration unit of the platform: a structured sequence of steps that decides which notifications go out, on which channels, and under what conditions. Teams design notiflows in a visual builder or as versioned JSON, then trigger them from a server-to-server API. The platform handles per-user preferences, digesting, throttling, provider failover, and a real-time in-app inbox. Notiflows can also be managed as code through a CLI, an MCP server, and an agent toolkit. - [Documentation home](https://notiflows.com/docs): Entry point for all guides and the API reference ## Getting Started - [Quick Start](https://notiflows.com/docs/getting-started/quick-start): Send your first notification with Notiflows in minutes - [What is Notiflows?](https://notiflows.com/docs/getting-started/what-is-notiflows): Learn what Notiflows is and what it can do for you ## Concepts - [Broadcasts](https://notiflows.com/docs/concepts/broadcasts): Send notifications to everyone subscribed to a topic - [Channel Settings](https://notiflows.com/docs/concepts/channel-settings): Storing recipient-specific data for channels like device tokens and chat connections - [Channel Subscriptions](https://notiflows.com/docs/concepts/channel-subscriptions): Managing per-device push subscriptions for web push and other subscription-based channels - [Channels](https://notiflows.com/docs/concepts/channels): Learn about notification channels - [Deliveries](https://notiflows.com/docs/concepts/deliveries): Learn about notification deliveries - [Notifications](https://notiflows.com/docs/concepts/notifications): Understanding notifications - [Notiflows](https://notiflows.com/docs/concepts/notiflows): Understanding Notiflows - [Preferences](https://notiflows.com/docs/concepts/preferences): Learn about user preferences - [Subscriptions](https://notiflows.com/docs/concepts/subscriptions): Understanding subscriptions - [Users](https://notiflows.com/docs/concepts/users): Understanding users in Notiflows ## Channels & Providers - [Channels Providers overview](https://notiflows.com/docs/channels-providers): Channels and providers in Notiflows - [Browser Push overview](https://notiflows.com/docs/channels-providers/browser-push): Web push notifications - [Discord](https://notiflows.com/docs/channels-providers/chat/discord): Configure Discord as a chat provider in Notiflows - [Chat overview](https://notiflows.com/docs/channels-providers/chat): Send notifications to chat platforms - [Slack](https://notiflows.com/docs/channels-providers/chat/slack): Configure Slack as a chat provider in Notiflows - [Telegram](https://notiflows.com/docs/channels-providers/chat/telegram): Configure Telegram as a chat provider in Notiflows - [WhatsApp](https://notiflows.com/docs/channels-providers/chat/whatsapp): Configure WhatsApp as a chat provider in Notiflows - [Email overview](https://notiflows.com/docs/channels-providers/email): Send email notifications through various providers - [MailerSend](https://notiflows.com/docs/channels-providers/email/mailersend): Configure MailerSend as an email provider in Notiflows - [Mailgun](https://notiflows.com/docs/channels-providers/email/mailgun): Configure Mailgun as an email provider in Notiflows - [Postmark](https://notiflows.com/docs/channels-providers/email/postmark): Configure Postmark as an email provider in Notiflows - [Resend](https://notiflows.com/docs/channels-providers/email/resend): Configure Resend as an email provider in Notiflows - [SendGrid](https://notiflows.com/docs/channels-providers/email/sendgrid): Configure SendGrid as an email provider in Notiflows - [Amazon SES](https://notiflows.com/docs/channels-providers/email/ses): Configure Amazon SES as an email provider in Notiflows - [SMTP](https://notiflows.com/docs/channels-providers/email/smtp): Configure any email provider via SMTP in Notiflows - [In App overview](https://notiflows.com/docs/channels-providers/in-app): Display notifications directly within your application - [Notiflows In-App](https://notiflows.com/docs/channels-providers/in-app/notiflows-in-app): Built-in in-app notification center - [Apple APNs](https://notiflows.com/docs/channels-providers/mobile-push/apns): Configure Apple Push Notification service in Notiflows - [Firebase Cloud Messaging](https://notiflows.com/docs/channels-providers/mobile-push/fcm): Configure Firebase Cloud Messaging in Notiflows - [Mobile Push overview](https://notiflows.com/docs/channels-providers/mobile-push): Send push notifications to mobile devices - [Sms overview](https://notiflows.com/docs/channels-providers/sms): Send SMS notifications - [SMSAPI](https://notiflows.com/docs/channels-providers/sms/smsapi): Configure SMSAPI as an SMS provider in Notiflows - [Twilio](https://notiflows.com/docs/channels-providers/sms/twilio): Configure Twilio as an SMS provider in Notiflows - [Web Push overview](https://notiflows.com/docs/channels-providers/web-push): Web push notifications using the Web Push standard (VAPID) - [Webhooks overview](https://notiflows.com/docs/channels-providers/webhooks): Deliver notifications to any HTTP endpoint ## Building Notiflows - [Learn overview](https://notiflows.com/docs/learn): Learn how to use Notiflows - [Channel Step](https://notiflows.com/docs/learn/building-notiflows/channel-step): Send notifications through a configured channel - [Condition Step](https://notiflows.com/docs/learn/building-notiflows/condition-step): Route notifications into different branches based on conditions - [Digest Step](https://notiflows.com/docs/learn/building-notiflows/digest-step): Group multiple notifications together - [Overview overview](https://notiflows.com/docs/learn/building-notiflows/overview): Learn how to build notiflows with Notiflows - [Templates](https://notiflows.com/docs/learn/building-notiflows/templates): Create dynamic notification content with Liquid templating - [Throttle Step](https://notiflows.com/docs/learn/building-notiflows/throttle-step): Limit notification frequency for recipients - [Trigger Step](https://notiflows.com/docs/learn/building-notiflows/trigger-step): The entry point for your notiflow - [Versioning](https://notiflows.com/docs/learn/building-notiflows/versioning): Manage notiflow versions and publishing - [Wait Step](https://notiflows.com/docs/learn/building-notiflows/wait-step): Delay notification delivery for a specified duration - [Allowed Origins](https://notiflows.com/docs/learn/security/allowed-origins): Control which domains can make browser requests to the Notiflows User API - [API Keys](https://notiflows.com/docs/learn/security/api-keys): Understand the different keys used to authenticate with Notiflows APIs - [Client Authentication](https://notiflows.com/docs/learn/security/client-authentication): Secure client-side API requests with signing keys and security modes - [Security overview](https://notiflows.com/docs/learn/security): How Notiflows secures your integration across APIs, keys, and origins ## SDKs - [Sdks overview](https://notiflows.com/docs/sdks): Notiflows SDKs for server-side and client-side integration - [JavaScript](https://notiflows.com/docs/sdks/client-side/javascript): Notiflows JavaScript SDK for client-side notification integration - [Kotlin](https://notiflows.com/docs/sdks/client-side/kotlin): Notiflows Kotlin SDK for Android - [React](https://notiflows.com/docs/sdks/client-side/react): Notiflows React SDK with hooks and components for notification UI - [Swift](https://notiflows.com/docs/sdks/client-side/swift): Notiflows Swift SDK for iOS, iPadOS, macOS, and watchOS - [.NET](https://notiflows.com/docs/sdks/server-side/dotnet): Notiflows .NET SDK for server-side integration - [Go](https://notiflows.com/docs/sdks/server-side/go): Notiflows Go SDK for server-side integration - [Java](https://notiflows.com/docs/sdks/server-side/java): Notiflows Java SDK for server-side integration - [Node.js](https://notiflows.com/docs/sdks/server-side/node): Notiflows Node.js SDK for server-side integration - [PHP](https://notiflows.com/docs/sdks/server-side/php): Notiflows PHP SDK for server-side integration - [Python](https://notiflows.com/docs/sdks/server-side/python): Notiflows Python SDK for server-side integration - [Ruby](https://notiflows.com/docs/sdks/server-side/ruby): Notiflows Ruby SDK for server-side integration ## CLI (notiflows as code) - [Account tokens](https://notiflows.com/docs/cli/account-tokens): An account token (prefix nf_at_) is the credential that authenticates every Notiflows developer surface — the CLI, the MCP server, the agent toolkit, and the Management API. Create one in the dashboard, use it, and rotate it safely. - [CI/CD](https://notiflows.com/docs/cli/ci-cd): Run the Notiflows CLI in continuous integration — environment-based authentication, idempotent pushes, publishing, and a GitHub Actions example. - [Command reference](https://notiflows.com/docs/cli/commands): The complete Notiflows CLI command reference — authentication, project inspection, sync (pull/push/diff), notiflow lifecycle, triggering runs, and channels. - [CLI Overview](https://notiflows.com/docs/cli): Install the Notiflows CLI, authenticate with an account token, and manage your notiflows as code — pull, edit, push, and publish from the terminal or CI. - [Notiflows as code](https://notiflows.com/docs/cli/notiflows-as-code): The on-disk format the Notiflows CLI uses — notiflows.json project config, per-notiflow notiflow.json with a flat steps array, extracted template bodies, and environment-variable substitution. ## AI Surfaces (MCP, agent toolkit, skills) - [Agent Toolkit](https://notiflows.com/docs/ai/agent-toolkit): The Notiflows agent toolkit (@notiflows/agent-toolkit) turns your published notiflows into typed, callable tools for your own AI agents — Vercel AI SDK, OpenAI function calling, and LangChain. - [Notiflows for AI](https://notiflows.com/docs/ai): Notiflows is AI-native — manage notiflows as code and let your own AI agents inspect, create, and trigger them. Your AI, your tokens. - [llms.txt & docs for agents](https://notiflows.com/docs/ai/llms-txt): Machine-readable Notiflows documentation for grounding AI assistants — llms.txt, llms-full.txt, and raw-markdown routes for individual doc pages. - [MCP Server](https://notiflows.com/docs/ai/mcp): Connect the hosted Notiflows MCP server to Claude Code, Cursor, or Claude Desktop and manage, publish, and trigger notiflows conversationally over the Model Context Protocol. - [Agent Skills](https://notiflows.com/docs/ai/skills): Install the Notiflows agent skills to teach any compatible AI assistant the notiflow and template schemas, the CLI, and where authoritative docs live — grounded in the real product. ## API Reference - [Error Handling](https://notiflows.com/docs/api/errors): Understanding and handling API errors in Notiflows - [Api overview](https://notiflows.com/docs/api): Complete API reference for Notiflows Admin, User, and Management APIs - [Pagination](https://notiflows.com/docs/api/pagination): Learn how to paginate through API responses using cursor-based pagination - [Admin overview](https://notiflows.com/docs/api/admin): Server-to-server API for managing notifications, users, topics, subscriptions, and deliveries - [Management overview](https://notiflows.com/docs/api/management): Account-token API for managing notiflows as code — the surface behind the Notiflows CLI, MCP server, and agent toolkit - [User overview](https://notiflows.com/docs/api/user): Client-side API for managing user-specific feed entries, notification states, and preferences ## Changelog - [Changelog](https://notiflows.com/docs/changelog): Track updates, new features, and improvements to Notiflows ## Product pages - [Notiflows](https://notiflows.com/notiflows): The visual builder — trigger, channel, wait, digest, throttle, and condition steps, with copy-on-write versioning - [In-app inbox](https://notiflows.com/in-app): Real-time notification feed with drop-in React components over WebSockets - [Broadcasts](https://notiflows.com/broadcasts): Send one notification to a whole audience segment at once - [Templates](https://notiflows.com/templates): Per-channel message templates with Liquid variables - [Preferences](https://notiflows.com/preferences): Per-user, per-channel notification preferences and subscriptions - [Integrations](https://notiflows.com/integrations): Every supported provider — SendGrid, Resend, Amazon SES, Twilio, SMSAPI, FCM, APNs, Slack, Discord, Teams, and more - [Notiflows for AI](https://notiflows.com/ai): MCP server, CLI, and agent toolkit — manage notifications from Claude, Cursor, or any MCP client on your own model and keys - [Why Notiflows](https://notiflows.com/why-notiflows): What breaks when you build notification infrastructure in-house - [For engineering teams](https://notiflows.com/use-cases/engineers): Notification infrastructure without the in-house build - [For product & growth teams](https://notiflows.com/use-cases/product): Activation, engagement, and lifecycle messaging without engineering tickets - [For marketing teams](https://notiflows.com/use-cases/marketing): Segmented, personalised messaging across every channel from one system - [Pricing](https://notiflows.com/pricing): Free, Pro, and Enterprise plans - [About Notiflows](https://notiflows.com/about): Who builds Notiflows and why - [Contact sales](https://notiflows.com/contact-sales): Talk to the team about Enterprise ## Optional - [Full documentation as one file](https://notiflows.com/llms-full.txt): Every documentation page concatenated for LLM context - [Raw Markdown for any docs page](https://notiflows.com/docs/concepts/notiflows.md): Append `.md` to any /docs URL to get the plain-Markdown source