# Courier: Docs

> Courier's developer documentation and API reference.

## Docs

###  

- [Developer Docs: Multichannel Notification API](https://www.courier.com/docs/welcome.md): Build notifications and lifecycle marketing from one API. Orchestrate journeys, manage user preferences, and reach users on email, SMS, push, Slack, MS Teams, and in-app. Design content once and reuse it across every channel.
- [Quickstart](https://www.courier.com/docs/getting-started/quickstart.md): Send your first Courier notification with one API call using cURL, the CLI, or a server SDK. No dashboard setup required, plus a path for AI agents.

### Platform

#### Send Notifications

- [How Sending Works](https://www.courier.com/docs/platform/sending/sending-overview.md): A single Courier API call handles rendering, routing, preferences, and delivery across email, SMS, push, inbox, and chat—from your app to your users.
- [Send a Message](https://www.courier.com/docs/platform/sending/send-message.md): Send notifications from your app across email, SMS, push, chat, and in-app Inbox with a single Send API request.
- [Choose a Sending Strategy](https://www.courier.com/docs/platform/sending/choosing-your-sending-strategy.md): Courier offers three ways to send notifications, from a single API call to fully managed journeys. Start simple, add orchestration only when you need it.

##### Advanced Send Concepts

- [Responses & Error Codes](https://www.courier.com/docs/platform/sending/handling-responses-and-errors.md): Interpret Send API success and error responses, add production error handling, and track delivery status via the dashboard and webhooks.
- [Delays & Delivery Windows](https://www.courier.com/docs/platform/sending/delay.md): Schedule message delivery with a duration delay, an exact timestamp, or a delivery window that restricts sends to chosen hours.
- [Send a Message Digest](https://www.courier.com/docs/platform/sending/digest-send.md): Aggregate multiple notifications into one scheduled digest so users get a single summary instead of separate messages.
- [Send Limits](https://www.courier.com/docs/platform/sending/send-limits.md): Cap message volume by user, topic, or tenant across time periods to ensure compliance, reduce overload, and protect delivery reliability.
- [Channel Settings](https://www.courier.com/docs/platform/sending/channel-settings.md): Control per-channel delivery in Courier: set Always/Best-Of routing, disable channels, add send conditions, and manage provider integrations per template.
- [Channel Priority](https://www.courier.com/docs/platform/sending/channel-priority.md): Set a top-down channel and provider priority in Courier. Use Always Send for critical alerts and let user preferences override routing rules at the top.
- [Delivery Reliability and Retries](https://www.courier.com/docs/platform/sending/delivery-pipeline-resilience.md): Courier retries failed sends for up to 24 hours using exponential backoff, ensuring delivery through provider outages, rate limits, and errors.
- [Automated Failover](https://www.courier.com/docs/platform/sending/failover.md): Configure failover so Courier reroutes messages on 408, 429, or 5xx errors. Set custom timeouts at the message, channel, and provider level.

#### Templates

- [What are Templates?](https://www.courier.com/docs/platform/content/content-overview.md): Templates define a notification's content, structure, and behavior across channels. Build them visually in Template Designer or via the Templates API.
- [Create and Edit Templates via API](https://www.courier.com/docs/platform/content/templates-api.md): Create, update, publish, and read multichannel notification templates over Courier's /notifications API.
- [Routing Strategies](https://www.courier.com/docs/platform/content/routing.md): Build multi or single channel notifications with reusable routing configurations that can be applied across templates in Design Studio.

##### Design Studio

- [Design Studio Overview](https://www.courier.com/docs/platform/content/design-studio/design-studio-overview.md): Build multi-channel notifications with Design Studio, featuring reusable routing, version history, and an improved editing experience.
- [Channels](https://www.courier.com/docs/platform/content/design-studio/channels.md): Compare block support across Email, SMS, Push, In-App, Slack, and MS Teams in Design Studio. Email supports full rich formatting; others are more limited.
- [Routing Strategies](https://www.courier.com/docs/platform/content/template-designer/routing-configuration.md): Build reusable routing strategies with single or all-channel delivery, fallback ordering, and per-channel config. One update applies across all templates.
- [AI Translation](https://www.courier.com/docs/platform/content/design-studio/ai-translations.md): Localize templates inside Design Studio by adding a language and letting AI translate subject lines, headings, body copy, and buttons automatically.
- [Test with Sample Data](https://www.courier.com/docs/platform/content/template-designer/how-to-preview-notification.md): Preview your notifications with test data and send test messages to validate content before publishing
- [Preview emails on real devices](https://www.courier.com/docs/platform/content/design-studio/device-preview.md): See how a template renders on real phones, desktops, and webmail clients before you send. Test Outlook, Apple Mail, Gmail, and dark mode in Design Studio.
- [Version History](https://www.courier.com/docs/platform/content/template-designer/history-compare-mode.md): View Courier template version history to compare draft, published, and archived versions, preview past states, and roll back to earlier ones.
- [Template Settings](https://www.courier.com/docs/platform/content/design-studio/template-settings.md): Configure template settings in Design Studio, including name, alias, conditions, subscription topics, and channel settings.

###### Blocks

- [Content Blocks](https://www.courier.com/docs/platform/content/design-studio/design-studio-block-basics.md): Drag heading, text, image, button, spacer, divider, and HTML blocks onto the canvas to build notifications in Design Studio, then reorder or copy them.
- [Heading Blocks](https://www.courier.com/docs/platform/content/design-studio/heading-blocks.md): Add section headings in Design Studio. Configure heading level and styling for email, inbox, and other channels.
- [Text Blocks](https://www.courier.com/docs/platform/content/design-studio/text-blocks.md): Add and format paragraph text in Design Studio. Use variables and rich formatting for email, SMS, and other channels.
- [Image Blocks](https://www.courier.com/docs/platform/content/design-studio/image-blocks.md): Add images in Design Studio. Set image URL, alt text, optional link, and dimensions for email and other channels.
- [Button Blocks](https://www.courier.com/docs/platform/content/design-studio/button-blocks.md): Add call-to-action buttons in Design Studio. Set label, link URL, and styling for email, inbox, and other channels.
- [Spacer Blocks](https://www.courier.com/docs/platform/content/design-studio/spacer-blocks.md): Add vertical spacing between blocks in Design Studio. Control height and spacing for email and other channels.
- [Divider Blocks](https://www.courier.com/docs/platform/content/design-studio/divider-blocks.md): Add horizontal dividers in Design Studio. Set color, thickness, and style for email and other channels.
- [List Blocks](https://www.courier.com/docs/platform/content/design-studio/list-blocks.md): Add bulleted or numbered lists in Design Studio. Use loops to iterate over data arrays and variables for dynamic content.
- [Column Blocks](https://www.courier.com/docs/platform/content/design-studio/column-blocks.md): Create multi-column layouts in Design Studio for side-by-side content like product cards, image grids, and comparison layouts.
- [HTML Blocks](https://www.courier.com/docs/platform/content/design-studio/custom-code-blocks.md): Add an inline HTML block in Design Studio, or send a full HTML email with raw HTML. Learn which to use and how.

##### Brands

- [Notification Brands Overview](https://www.courier.com/docs/platform/content/brands/brands-overview.md): Courier Brands apply a shared logo, colors, headers, and footers to templates. Use them for white-labeling, multi-product styling, or A/B testing.
- [Brand Designer](https://www.courier.com/docs/platform/content/brands/brand-designer.md): Customize brand appearance with logos, colors, headers, footers, and custom templates using the Brand Designer.
- [Brand Snippets](https://www.courier.com/docs/platform/content/brands/brand-snippets.md): Define reusable Handlebars partials—footers, disclaimers, CTAs—at the brand level and reference them in any template. Custom brands inherit snippets.
- [Email Template CSS Classes](https://www.courier.com/docs/platform/content/brands/css-classnames.md): Style Courier email templates using CSS class names for content blocks, text, and layout. All rules require !important because MJML outputs inline styles.
- [White-Labeling Email Domains](https://www.courier.com/docs/platform/content/brands/email-domain-white-labeling.md): Send emails from your customer's domain by overriding email provider API keys and configuring sender addresses for a fully white-labeled email experience.

##### Elemental Markup

- [Elemental Markup Overview](https://www.courier.com/docs/platform/content/elemental/elemental-overview.md): Courier Elemental is a JSON notification format with localization, channel-specific elements, and conditional logic for email, SMS, push, and chat.
- [Elemental Control Flow](https://www.courier.com/docs/platform/content/elemental/control-flow.md): Use if, loop, ref, and channels on Elemental elements to conditionally render content, iterate arrays, and target specific delivery channels.
- [Elemental Locales and Translations](https://www.courier.com/docs/platform/content/elemental/locales.md): Localize Elemental templates without duplicating them. Define translations for text, URLs, and images; Courier picks the locale from the recipient.
- [Elemental Email Fonts](https://www.courier.com/docs/platform/content/elemental/fonts.md): Set the font for Courier email templates in Design Studio or with Elemental font_family. 70 Google and web-safe fonts, plus a fallback for unsupported clients.
- [Export Templates to Elemental JSON](https://www.courier.com/docs/platform/content/elemental/export-to-elemental.md): Convert Design Studio templates to Elemental JSON for the Send API, Templates API, or version control. Supports adding conditionals and loops later.

###### Elements

- [Elements Reference](https://www.courier.com/docs/platform/content/elemental/elements/index.md): Complete reference for all Courier Elemental element types. Each element has its own dedicated documentation page with examples, properties, and use cases.
- [Channel](https://www.courier.com/docs/platform/content/elemental/elements/channel.md): Customize notification content based on the delivery channel. Use channel elements to provide different content for email, push, SMS, and other channels.
- [Meta](https://www.courier.com/docs/platform/content/elemental/elements/meta.md): Set metadata for your notifications including titles and subjects. Meta elements are used by channels like email (subject line) and push (notification title).
- [Text](https://www.courier.com/docs/platform/content/elemental/elements/text.md): Display text content in your Elemental notifications with rich formatting options. Text elements support inline formatting, links, images, and localization.
- [Action](https://www.courier.com/docs/platform/content/elemental/elements/action.md): Create clickable buttons and links in your Elemental notifications. Action elements support styling, alignment, and localization.
- [Comment](https://www.courier.com/docs/platform/content/elemental/elements/comment.md): Add non-rendered comments to your Elemental templates for documentation and organization. Comments are not included in the final notification output.
- [Elemental Quote Element](https://www.courier.com/docs/platform/content/elemental/elements/quote.md): Add styled blockquote elements to Elemental notifications. Configure border color, text style, and alignment, use Handlebars, and filter by channel.
- [Elemental Group Element](https://www.courier.com/docs/platform/content/elemental/elements/group.md): Wrap Elemental elements in a group to share one if condition, loop, or channel filter. Essential for conditional sections and iterating over arrays.
- [Columns](https://www.courier.com/docs/platform/content/elemental/elements/columns.md): Create multi-column layouts in your Elemental notifications. Columns support flexible widths, styling, and responsive behavior for email and other channels.
- [Elemental HTML Element](https://www.courier.com/docs/platform/content/elemental/elements/html.md): Inject raw HTML into Elemental email notifications. Supports tables, custom CSS, and Handlebars variables. Renders in email only—not push or SMS.
- [Elemental Image Element](https://www.courier.com/docs/platform/content/elemental/elements/image.md): Add images to Elemental notifications with control over alignment, width, links, and alt text. Supports localized src and href and channel filtering.
- [List](https://www.courier.com/docs/platform/content/elemental/elements/list.md): Create ordered and unordered lists in your Elemental notifications. Lists support nesting up to 5 levels deep and can use loops for dynamic content generation.
- [Divider](https://www.courier.com/docs/platform/content/elemental/elements/divider.md): Render dividing lines between elements in your Elemental notifications. Divider elements help separate content sections with customizable styling.
- [Elemental Jsonnet Element](https://www.courier.com/docs/platform/content/elemental/elements/jsonnet.md): Embed Jsonnet inside Elemental notifications to generate JSON programmatically. Supports functions, conditionals, loops, and locale templates.

##### Classic Designer

- [Overview](https://www.courier.com/docs/platform/content/template-designer/template-designer-overview.md): Build multi-channel notification templates with drag-and-drop blocks, test events, brand templates, channel settings, and reusable content.
- [Inserting Data with Variables](https://www.courier.com/docs/platform/content/variables/inserting-variables.md): Insert dynamic values from data, profile, tenant, or brand objects into content blocks, Handlebars templates, email subject fields, and channel conditions.
- [Handlebars Editor for Email Templates](https://www.courier.com/docs/platform/content/template-designer/handlebars-designer.md): Edit email HTML with Courier's Handlebars override. Supports conditionals, pluralization, variable transforms, and intl formatting. Email-only.

###### Blocks

- [Content Block Overview](https://www.courier.com/docs/platform/content/content-blocks/content-block-basics.md): Content Blocks are drag-and-drop components for cross-channel notifications. Add, reorder, and configure text, image, action, list, and quote blocks.
- [Text Content Blocks](https://www.courier.com/docs/platform/content/content-blocks/text-blocks.md): Text Blocks support rich formatting, variables, hyperlinks, and inline conditions. Email gets headers and color; SMS strips unsupported tags to plain.
- [Image Blocks in Notification Templates](https://www.courier.com/docs/platform/content/content-blocks/image-blocks.md): Add Image Blocks to Courier notifications. Renders inline in email, as URLs in SMS and push, and live in direct messages. Supports conditional display.
- [Action Content Blocks](https://www.courier.com/docs/platform/content/content-blocks/action-blocks.md): Action Blocks add buttons or links to notifications. Set text, URL, style, and color. Renders as a button in email and a plain URL in SMS and chat.
- [Divider Blocks](https://www.courier.com/docs/platform/content/content-blocks/divider-blocks.md): Add Divider Blocks to separate content in any Courier channel. Pick a color in email via hex or brand swatch; renders as a plain separator in SMS.
- [Markdown Blocks](https://www.courier.com/docs/platform/content/content-blocks/md-blocks.md): Markdown Blocks deliver formatted content across email, SMS, push, and more. Write standard Markdown, insert variables with curly braces, and add filters.
- [Quote Content Blocks](https://www.courier.com/docs/platform/content/content-blocks/quote-blocks.md): Quote Blocks highlight key text with channel-aware formatting: indented in email and Slack, quotation marks in SMS. Supports conditional visibility.
- [Template Blocks for Custom HTML Emails](https://www.courier.com/docs/platform/content/content-blocks/template-blocks.md): Write custom HTML, CSS, and Handlebars in email notifications. Render dynamic variables, inline HTML from data, and reusable Brand Snippet partials.
- [List Content Blocks](https://www.courier.com/docs/platform/content/content-blocks/list-blocks.md): List Blocks render arrays in notifications as simple, nested, or image lists. Configure the JSONPath source and use scoped variables per row.
- [Jsonnet Blocks for Slack and Teams](https://www.courier.com/docs/platform/content/content-blocks/jsonnet-blocks.md): Build dynamic Slack Block Kit and Teams Adaptive Card messages with Jsonnet blocks. Access send data, apply conditionals, and use built-in templates.

###### Settings

- [General Settings](https://www.courier.com/docs/platform/content/template-settings/general-settings.md): Manage a template's ID, brand, subscription topic, conditions, message tags, notes, and publish history.
- [Using Send Conditions](https://www.courier.com/docs/platform/content/template-settings/send-conditions.md): Use send conditions to disable notifications, channels, or content blocks based on `data` or `profile` values.
- [Customizing Email Address Fields](https://www.courier.com/docs/platform/content/template-settings/email-fields.md): Set From, Reply-To, CC, and BCC addresses for email notifications through provider defaults, channel settings, or a send-time API override.
- [Throw on Variable Not Found](https://www.courier.com/docs/platform/content/template-settings/variable-not-found.md): Prevent a channel from sending when required template variables are missing. Errors surface in preview and message logs. Only rendered blocks are checked.

##### Advanced

- [Handlebars Helpers](https://www.courier.com/docs/platform/content/template-designer/handlebars-helpers.md): Courier's Handlebars helpers for notification templates: logic, math, strings, localization, and control flow, plus tilde syntax for whitespace control.
- [Email Safe Formatting](https://www.courier.com/docs/platform/content/email-safe-formatting.md): Write HTML emails that render in Gmail, Outlook, and Apple Mail. Guidance on inline CSS, table layouts, email-safe fonts, and Outlook conditional comments.
- [Localization](https://www.courier.com/docs/platform/content/localization.md): Send notifications in multiple languages using locale-based content, the localization API, or TMS integrations.
- [Template Approval Workflow](https://www.courier.com/docs/platform/content/template-approval-workflow.md): Gate template publishing behind an external review step. Courier fires a webhook, locks the draft, and publishes only after your system resolves it.
- [Jsonnet Webhook Designer](https://www.courier.com/docs/platform/content/template-designer/jsonnet-webhook-designer.md): Configure custom webhook payloads using Jsonnet with access to send data, profile, and request metadata.

#### Journeys

- [Journeys Overview](https://www.courier.com/docs/platform/journeys/journeys-overview.md): Build customer messaging experiences with a visual workflow editor, typed data contracts, and step-by-step run inspection.
- [Journey Triggers](https://www.courier.com/docs/platform/journeys/invocation.md): Start a journey from an API call, an event on an inbound webhook, a Twilio Segment event, or an audience a user joins, each with optional trigger conditions.
- [Experiments](https://www.courier.com/docs/platform/journeys/experiments.md): A/B test messages inside a journey: run 2 to 10 weighted template variants on a single send node, compare their performance, and promote a variant.
- [Build Journeys via UI](https://www.courier.com/docs/platform/journeys/building-journeys.md): Compose journeys from triggers, send nodes, and function nodes: branch, delay, fetch data, throttle, AI, batch, add to digest, and cancel.
- [Build Journeys via API](https://www.courier.com/docs/platform/journeys/building-journeys-via-api.md): Build Courier Journeys through code. Create shells, add templates, wire the DAG, publish, and invoke runs via REST. Covers all node types, A/B experiments, and merges.
- [Journey Templates](https://www.courier.com/docs/platform/journeys/journey-templates.md): Create notification templates inside journey send nodes. Journey templates are versioned with the journey, separate from workspace-level templates.
- [Run Inspection](https://www.courier.com/docs/platform/journeys/run-inspection.md): Step through individual journey runs to see exactly what happened at every node: payloads, branch decisions, delivery status, and errors.
- [Metrics](https://www.courier.com/docs/platform/journeys/metrics.md): Track send volume, delivery, open, and click rates for every template in a journey from the Metrics tab, with a per-template drawer and breakdowns.
- [Version History](https://www.courier.com/docs/platform/journeys/version-history.md): Track published versions of your journeys, compare changes side-by-side, and revert to a previous version.

##### Nodes

- [Send Node](https://www.courier.com/docs/platform/journeys/nodes/send.md): Pick a channel, set the recipient from profile, event, or tenant data, address Slack and Microsoft Teams channels and direct messages, and control when the message goes out.
- [Branch](https://www.courier.com/docs/platform/journeys/nodes/branch.md): Split a journey into multiple conditional paths based on data from triggers, profiles, or upstream nodes.
- [Delay](https://www.courier.com/docs/platform/journeys/nodes/delay.md): Pause journey execution for a fixed duration or until a specific time before continuing to the next node.
- [Add to Digest](https://www.courier.com/docs/platform/journeys/nodes/digest.md): Add the current journey event to a digest keyed by a subscription topic. The digest accumulates events per user and releases them on the topic's configured schedule.
- [Batch](https://www.courier.com/docs/platform/journeys/nodes/batch.md): Collect events that arrive at a point in a journey and release them together as a single aggregated payload, controlled by item count, a quiet window, or a maximum wait.
- [AI](https://www.courier.com/docs/platform/journeys/nodes/ai.md): Run LLM prompts inside a journey to classify, extract, or generate structured data from context and use the output in downstream nodes.
- [Fetch Data](https://www.courier.com/docs/platform/journeys/nodes/fetch-data.md): Make HTTP requests to external services during journey execution and use the response data in downstream nodes.
- [Throttle](https://www.courier.com/docs/platform/journeys/nodes/throttle.md): Limit how many times a user or global scope can pass through a point in the journey within a time period.
- [Cancel Node](https://www.courier.com/docs/platform/journeys/nodes/cancel.md): Stop in-flight journey runs from a Cancel node or the API. Cancel one run by its ID, or cancel a group by a shared cancellation token.

#### Broadcasts

- [Broadcasts Overview](https://www.courier.com/docs/platform/broadcasts/broadcasts-overview.md): Send a one-off message to a list or audience, now or on a schedule, and track delivery, opens, clicks, and errors.
- [Create a Broadcast](https://www.courier.com/docs/platform/broadcasts/creating-a-broadcast.md): Build a broadcast's content, choose a list or audience, and send it now or schedule it for later.
- [Performance & Logs](https://www.courier.com/docs/platform/broadcasts/performance.md): See delivery, open, click, and error rates for a broadcast, and inspect every send in the per-recipient log.

#### In-App Inbox

- [Get Started with Courier Inbox](https://www.courier.com/docs/platform/inbox/inbox-overview.md): Embed a customizable, real-time in-app notification center with Courier Inbox SDKs for React, JavaScript, Vue, Angular, iOS, Android, Flutter, and React Native.
- [Authenticate Courier Inbox SDKs](https://www.courier.com/docs/platform/inbox/authentication.md): Courier Inbox and toasts use JWTs to authenticate. This guide details the JWT flow and how to test it for your app.
- [Send an Inbox Message](https://www.courier.com/docs/platform/inbox/sending-a-message.md): Send to the Inbox channel with the Send API using variable interpolation, Elemental syntax, or a saved template. Includes cURL and seven SDK examples.
- [Notify with Toasts](https://www.courier.com/docs/platform/inbox/notify-with-toasts.md): Add dismissable pop-up toast notifications for Inbox messages to JavaScript and React apps in a few lines of code, sharing Inbox's real-time delivery.
- [Organize Messages with Tabs](https://www.courier.com/docs/platform/inbox/organize-with-tabs.md): Create tabbed views in Courier Inbox so users can filter notifications by tags, read status, or archive state, then group related tabs into feeds.

#### User Profiles

- [User Overview](https://www.courier.com/docs/platform/users/users-overview.md): Learn about Courier's user management system including profiles, audiences, lists, and tenants for organizing users and scaling across multiple organizations.
- [User Management](https://www.courier.com/docs/platform/users/users.md): Learn how to define notification recipients using profiles, lists, audiences, tenants, and tokens for targeted, multi-channel delivery.
- [Lists & Audiences](https://www.courier.com/docs/platform/users/audiences.md): Target user groups with static lists or dynamic audiences auto-updated on profile changes. Supports AND/OR logic and tenant-scoped sends with MEMBER_OF.

#### Preferences

- [Notification preferences](https://www.courier.com/docs/platform/preferences/preferences-overview.md): Let users control which notifications they receive and on which channels. Courier enforces their opt-ins, opt-outs, and channel choices automatically at send time.
- [Preferences Editor](https://www.courier.com/docs/platform/preferences/preferences-editor.md): Configure subscription topics, preference sections, and channel settings so users control which notifications they get and how they get them.
- [Hosted Preference Center](https://www.courier.com/docs/platform/preferences/hosted-page.md): Give users a Courier-hosted page to manage their notification preferences, channels, and unsubscribes. Configure and brand it in the editor, with no frontend code.
- [Embedding Preferences](https://www.courier.com/docs/platform/preferences/embedding-preferences.md): Embed Courier's preference management in your React or web app with the CourierPreferences component or headless hooks, giving users native notification control.
- [Configure Digests Schedules](https://www.courier.com/docs/platform/preferences/digests-setup.md): Collect a subscription topic's notifications and deliver them together on a schedule. Configure digest delivery schedules, the digest template, and categories per topic in the Preferences Editor.
- [Get and Set User Preferences](https://www.courier.com/docs/platform/preferences/user-preference-management.md): Read, update, and bulk-import a user's notification preferences over Courier's API, including replacing or additively updating every topic in one request.
- [User Preference Logs](https://www.courier.com/docs/platform/preferences/user-preferences-logs.md): Access user preference audit trails through the dashboard and query current notification preferences through the API.

#### Tenants

- [Tenants Overview](https://www.courier.com/docs/platform/tenants/tenants-overview.md): Courier Tenants group users for B2B SaaS and white-label products. Scope notifications with per-tenant preferences, branding, and provider creds.
- [Tenant Deep Dive](https://www.courier.com/docs/platform/tenants/tenant-deepdive.md): Comprehensive technical guide to tenant hierarchies, metadata management, inheritance patterns, and integration details for complex multi-tenant architectures.
- [Sending With Tenants](https://www.courier.com/docs/platform/tenants/sending-with-tenants.md): Send notifications to tenant members, individual users with tenant context, multiple recipients, or across tenant hierarchies.
- [Inbox Notifications with Tenants](https://www.courier.com/docs/platform/tenants/inbox-with-tenants.md): Scope Courier Inbox notifications to a tenant so users only see relevant messages. Set tenantId in the Send API and SDK to isolate notification streams.
- [User Tenant Preferences](https://www.courier.com/docs/platform/tenants/user-tenant-preferences.md): Courier allows users to manage notification preferences per tenant, supporting layered opt-in/out choices based on tenant-specific or inherited defaults.

#### Embeddable Designer

- [Courier Create: Embeddable Template Editor](https://www.courier.com/docs/platform/create/create-overview.md): Courier Create embeds a template and brand editor inside React apps via @trycourier/react-designer with multi-tenant JWT auth, live preview, and auto-save.
- [Embed the Courier Designer in React](https://www.courier.com/docs/platform/create/installation.md): Embed Courier Create in React with TemplateProvider and TemplateEditor. Covers JWT auth, theming, auto-save, channel restrictions, and modal use.
- [Courier Create API](https://www.courier.com/docs/platform/create/courier-create-api.md): HTTP reference for Courier Create tenant template endpoints used by Design Studio (Elemental content, draft and publish flows).
- [Courier Create Editor Properties](https://www.courier.com/docs/platform/create/provider-props.md): Prop reference for Courier Create TemplateProvider and TemplateEditor. Covers templateId, tenantId, token, autoSave, routing, theme, and hidePublish.
- [Courier Create JWT Authentication](https://www.courier.com/docs/platform/create/authentication.md): Generate JWTs for Courier Create using the issue-token endpoint. Covers full tenant scopes and per-tenant scopes for restricting access.
- [Embeddable Brand Editor for Tenants](https://www.courier.com/docs/platform/create/brand-designer.md): Embed Courier's React BrandEditor so tenants can customize logos, colors, and styles. Uses JWT scopes for auth with auto-save and publish hooks.

#### Automations

- [Automation Overview](https://www.courier.com/docs/platform/automations/automations-overview.md): Courier's automation engine for building notification workflows with triggers, actions, batching, digests, and conditional logic.
- [Automations Designer](https://www.courier.com/docs/platform/automations/designer.md): Build notification workflows in the Automations Designer. Add trigger and action nodes, connect them sequentially, and invoke via API or in-app test.

##### Action Nodes

- [Automation Digests](https://www.courier.com/docs/platform/automations/digest.md): Aggregate user events into scheduled batch notifications. Configure digest schedules, categories, and retention in Preferences; wire up two automations.
- [Batching Notifications in Automations](https://www.courier.com/docs/platform/automations/batching.md): Group automation events into one notification using inactivity period, max wait time, or item count. Supports global, user, and dynamic batch scopes.
- [Throttle Node in Automations](https://www.courier.com/docs/platform/automations/throttle.md): Courier's Throttle Node limits how many messages a user or group receives in a set timeframe. Configure user_id, global, or dynamic scope to reduce volume.
- [Fetch Data Automation Step](https://www.courier.com/docs/platform/automations/fetch-data.md): Make authenticated GET or POST requests in a Courier automation and merge the response into run context. Supports bearer tokens, API keys, and merges.
- [Get Profile Node in Automations](https://www.courier.com/docs/platform/automations/get-profile.md): GET Profile node loads a user profile into automation context as refs.profile. Required for Audience and Schedule triggers that skip auto-loading profiles.
- [Automation Conditional Logic: If and Switch](https://www.courier.com/docs/platform/automations/control-flow.md): Add If and Switch nodes to Courier Automations to route workflows by data, profile fields, step status, or JavaScript expressions.

##### Reference

- [Ad Hoc Automation Steps](https://www.courier.com/docs/platform/automations/steps.md): Define Courier automation workflows inline in a single API call—no saved template needed. Full reference for batch, delay, fetch, send, cancel, and invoke.
- [Cancelling an Automation](https://www.courier.com/docs/platform/automations/cancel.md): Cancel a running Courier Automation using a dynamic token. Add the token in settings, then invoke a second automation with a Cancel node to stop the run.
- [Accessing Dynamic Data in Automations](https://www.courier.com/docs/platform/automations/dynamic.md): Access trigger payload values in Automation steps via the refs object. Remap nested attributes to cleaner names and interpolate into Fetch Data URLs.
- [Automation Debugger](https://www.courier.com/docs/platform/automations/debugger.md): Test Courier Automation workflows in the Debugger: create a test run context, simulate an event, and inspect node-level data before going to production.

##### Triggers

- [Audience Trigger for Automations](https://www.courier.com/docs/platform/automations/audience-trigger.md): Trigger an Automation run for each user entering or leaving a dynamic audience. Add a GET Profile step to load fields before personalized sends.
- [Webhook Trigger for Automations](https://www.courier.com/docs/platform/automations/webhook-trigger.md): Fire Courier Automations from external systems via inbound webhooks. Register a URL, send JSON payloads up to 6 MB, and invoke templates or steps.
- [Scheduling Automations](https://www.courier.com/docs/platform/automations/scheduling.md): Schedule Courier Automations with one-time, recurring, or cron triggers. Publish the automation to activate—no extra API call; fires within ~12 minutes.
- [Segment Automation Trigger](https://www.courier.com/docs/platform/automations/segment.md): Trigger Courier Automations from Segment track events. Use cancellation tokens to cancel a pending notification when a follow-up event arrives.
- [Inbound Event Triggers for Automations](https://www.courier.com/docs/platform/automations/inbound-events.md): Trigger Courier Automations from CourierJS, the REST inbound API, Segment track and identify events, or RudderStack—via dedicated trigger nodes.

#### Workspaces

- [Workspace Overview](https://www.courier.com/docs/platform/workspaces/workspaces-overview.md): Your Courier workspace isolates environments, API keys, templates, team access, and settings. Learn the core concepts and how to configure your workspace.
- [Environments, API Keys, and Assets](https://www.courier.com/docs/platform/workspaces/environments-api-keys.md): Manage Courier's isolated Test and Production environments with separate API keys, mock routing for Business tier, and asset migration across workspaces.
- [Roles and Permissions](https://www.courier.com/docs/platform/workspaces/roles-permissions.md): Courier Enterprise RBAC has six roles—Admin, Manager, Developer, Designer, Support Specialist, Analyst—each with defined access to templates and logs.
- [Workspace Security Settings](https://www.courier.com/docs/platform/workspaces/team-security.md): Invite teammates, enable Google or Okta SSO, and set workspace discoverability. Control whether approved-domain users can join or need approval.
- [Okta Integration](https://www.courier.com/docs/platform/workspaces/okta-integration.md): Set up Okta SSO and SCIM provisioning with Courier to enable secure logins, role management, and automated user syncing via SAML 2.0 and Okta's admin interface.
- [Inbound Webhooks](https://www.courier.com/docs/platform/workspaces/inbound-webhooks.md): Receive events from external systems at a Courier-generated URL. Register a webhook, post JSON to it, and use the events that arrive to start journeys.
- [Outbound Webhooks](https://www.courier.com/docs/platform/workspaces/outbound-webhooks.md): Receive Courier message, template, and audience events at a POST endpoint. Verify payloads using HMAC-SHA256 from the courier-signature header.
- [EU Datacenter and Data Residency](https://www.courier.com/docs/platform/workspaces/eu-datacenter.md): Courier's EU datacenter in AWS eu-west-1 (Ireland) keeps notification data inside the EU for GDPR and data residency compliance, using the same workspace and API keys.

#### Analytics & Logs

- [Analytics Overview](https://www.courier.com/docs/platform/analytics/analytics-overview.md): Track notification delivery, monitor status across channels, and debug issues with message logs, template analytics, and audit trails.
- [Message Logs](https://www.courier.com/docs/platform/analytics/message-logs.md): Inspect the full delivery lifecycle of every Courier message. View statuses from ENQUEUED to DELIVERED and CLICKED, filtered by provider or error.
- [Template Analytics](https://www.courier.com/docs/platform/analytics/analytics.md): Track send volume, delivery rates, opens, clicks, and errors per template. Filter by channel and date range across 7-, 30-, or 90-day windows.
- [Audit Trail](https://www.courier.com/docs/platform/analytics/audit-trail.md): Track workspace user activity including API key changes, user actions, publishing events, and integration updates.
- [Custom Domain Tracking](https://www.courier.com/docs/platform/analytics/custom-domain-tracking.md): Replace the default ct0.app link-tracking domain with a branded subdomain for Enterprise workspaces, covering DNS setup and verification.

### Developer Tools

- [Build with AI](https://www.courier.com/docs/tools/ai-onboarding.md): Connect an AI coding agent to Courier via the MCP server, CLI, Courier Skills, or llms.txt, with setup for Claude Code, Cursor, Codex, and VS Code.
- [Agent Quickstart](https://www.courier.com/docs/tools/agent-quickstart.md): Everything an AI coding agent needs to send email and in-app inbox notifications with Courier from a brand-new workspace.
- [Courier CLI](https://www.courier.com/docs/tools/cli.md): Send messages, manage users, inspect delivery logs, and operate all Courier API endpoints from the command line.
- [Model Context Protocol (MCP)](https://www.courier.com/docs/tools/mcp.md): Give AI agents full access to the Courier API. Send messages, manage profiles, debug deliveries, configure lists, and more.
- [Courier Skills](https://www.courier.com/docs/tools/courier-skills.md): Open-source skills that teach any AI coding agent, including Claude Code, Cursor, and Codex, how to build notifications correctly with Courier.
- [Using Postman with Courier](https://www.courier.com/docs/tools/courier-postman.md): Fork Courier's official Postman collection, generated from the live OpenAPI spec, add your test API key as a bearer token, and send your first request.

### Help

- [Courier Help Center](https://www.courier.com/docs/help/index.md): Find Courier's support contact, platform status page, changelog, and security and compliance portal in one place when you need help.
- [Glossary](https://www.courier.com/docs/help/glossary.md): Look up Courier terms from API keys and audiences to webhooks and workspaces, each defined in plain language and linked to its reference page.
