# Courier Documentation > Courier is infrastructure for product-to-user communication. Send notifications > across email, SMS, push, chat, and in-app channels through one API call. This is a complete index of Courier's technical documentation. Every link points to a plain-markdown version of the page, so you can fetch any entry directly instead of parsing HTML. This file is documentation only. It intentionally contains no pricing, customer, comparison, or blog content. ## Start Here - [Full documentation text](https://www.courier.com/docs/llms-full.txt): Every documentation page concatenated into a single file. Use this for bulk indexing or retrieval instead of fetching the pages below one at a time. - [Docs-scoped index](https://www.courier.com/docs/llms.txt): The same set of pages as this file, auto-generated by the docs platform as a single flat list. - [API base URL](https://api.courier.com): Authenticate with `Authorization: Bearer `. Test and production keys are separate. ## Documentation - [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. ### Send Notifications / 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. - [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. ### Templates / 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. - [Manage templates via the API](https://www.courier.com/docs/platform/content/design-studio/manage-templates-api.md): Create, update, publish, and read multichannel notification templates over Courier's /notifications API. - [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 - [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. ### Templates / Design Studio / 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. ### Templates / 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. ### Templates / 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. - [Fonts](https://www.courier.com/docs/platform/content/elemental/fonts.md): Apply fonts to Elemental email templates using Google Fonts or web-safe fonts, with automatic font loading and graceful fallback across email 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. ### Templates / Elemental Markup / Elements - [Elements Reference](https://www.courier.com/docs/platform/content/elemental/elements.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. ### 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. ### Templates / Classic Designer / 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. ### Templates / Classic Designer / 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. ### Templates / 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. - [Templates API](https://www.courier.com/docs/platform/content/templates-api.md): Workspace Notification Templates REST API for listing, creating, updating, and publishing notification templates. - [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. - [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. - [Starting a Journey](https://www.courier.com/docs/platform/journeys/invocation.md): Trigger a journey by invoking the API with a typed data schema, or automatically from a Segment Track, Identify, or Group event, with optional conditions. - [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. ### Journeys / Nodes - [Send Node](https://www.courier.com/docs/platform/journeys/nodes/send.md): Configure which channels your journey uses, set recipients, add per-node conditions, and schedule send windows. - [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. ### Automations / 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. ### Automations / 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. ### Automations / 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. - [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](https://www.courier.com/docs/platform/workspaces/eu-datacenter.md): Use Courier's European datacenter for data residency compliance, GDPR requirements, and optimized performance for EU customers. ### 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): Install Courier Skills so AI coding agents follow notification best practices across all 7 channels and Courier's transactional and growth types. - [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.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. ## Tutorials - [Tutorials](https://www.courier.com/docs/tutorials/tutorials-overview.md): Step-by-step tutorials for sending, designing, and managing notifications with Courier: journeys, automations, inbox, preferences, and migration guides. ### Send Messages - [How To Send Your First Message](https://www.courier.com/docs/tutorials/sending/how-to-send-your-first-message.md): Welcome to Courier! In this guide we'll walk you through the basics for sending your first notification. - [How to Configure Multi-Channel Routing](https://www.courier.com/docs/tutorials/sending/how-to-configure-multi-channel-routing.md): Use Courier's routing object to deliver to one channel or all at once. Set fallback order in the designer or override conditions in the Send API. - [Send Multi-Channel Notifications from an AI Agent](https://www.courier.com/docs/tutorials/sending/how-to-send-multi-channel-notifications-from-an-ai-agent.md): Expose Courier's Send API as an AI agent tool. Add urgency-based routing and channel failover in TypeScript, then connect via the Courier MCP server. - [How To Send Bulk Notifications](https://www.courier.com/docs/tutorials/sending/how-to-send-bulk-notifications.md): Learn how to use Courier's Bulk API to send notifications to large user groups with batched ingestion and a single execution call. - [How To Create And Send To A List Or List Pattern](https://www.courier.com/docs/tutorials/sending/how-to-send-to-a-list-or-list-pattern-using-wildcarding.md): Learn how to structure Courier list IDs for wildcarding and send notifications to groups using lists or list patterns. - [How To Send Digests](https://www.courier.com/docs/tutorials/sending/how-to-send-digests.md): Learn how to build scheduled digests using Courier's preferences, automation workflows, and subscription topics to batch and send grouped event data. - [How To Send Notifications With Segment](https://www.courier.com/docs/tutorials/sending/how-to-send-notifications-with-segment.md): Integrate Segment with Courier to trigger automated notifications from tracked user events in your app. ### Design Messages - [Design and Send Your First Notification](https://www.courier.com/docs/tutorials/content/how-to-design-your-first-notification.md): Configure a provider, design a template with content blocks and variables in Design Studio, preview it with test data, publish, and send a test. - [How to Brand Your Notifications](https://www.courier.com/docs/tutorials/content/how-to-create-and-use-brands.md): Create and customize Courier Brands to apply consistent logos, colors, headers, footers, and social links across your email notifications. - [How to Use Test Events](https://www.courier.com/docs/tutorials/content/how-to-preview-notification.md): Use Test Events in the Template Designer to preview and validate variables, branding, and message content across channels before sending. - [Translate Templates with AI](https://www.courier.com/docs/tutorials/content/translate-templates-with-ai.md): Add a locale to a notification template in Design Studio and let AI translate every field. Review translations side by side and refresh outdated ones. - [Build Notifications with Elemental](https://www.courier.com/docs/tutorials/content/how-to-use-elemental.md): Build Courier notifications as JSON using Elemental. Covers sugar syntax, elements, per-channel branches, conditional rendering, and array loops. - [How to create and manage templates via the API](https://www.courier.com/docs/tutorials/content/how-to-use-templates-api.md): Create, route, publish, and send a notification template with Courier's REST API, in curl, Node.js, and Python. - [How to Manage Templates from the CLI and MCP](https://www.courier.com/docs/tutorials/content/how-to-manage-templates-cli-mcp.md): Create, publish, update, and archive workspace notification templates using the Courier CLI and MCP server, without leaving your terminal or IDE. - [Use the Courier Create API](https://www.courier.com/docs/tutorials/content/how-to-use-courier-create-api.md): Use the Courier Create API to draft, update, publish, and read back tenant-scoped templates. Covers PUT→publish→GET with cURL, Node.js, and Python. ### User Journeys - [How to Create Your First Journey](https://www.courier.com/docs/tutorials/journeys/how-to-create-your-first-journey.md): Build a journey from scratch: choose a trigger, define a schema, add a send node, design a message, publish, and invoke. - [How to Build a Multi-Step Onboarding Journey](https://www.courier.com/docs/tutorials/journeys/how-to-build-a-multi-step-onboarding-journey.md): Build an onboarding sequence with delays, a fetch node, branching, and multiple send nodes to guide new users through setup. ### Inbox & Preferences - [How to Implement Courier Inbox](https://www.courier.com/docs/tutorials/inbox/how-to-implement-inbox.md): Add an in-app notification center to React with CourierInbox. Covers SDK install, JWT generation with required scopes, and a test inbox message. - [How to Send a JWT from Your Backend](https://www.courier.com/docs/tutorials/inbox/how-to-send-jwt.md): Configure your backend to generate user-scoped JWTs for Courier Inbox and Toast, enabling secure client-side access to messages, preferences, and events. - [How to Organize Inbox with Tabs](https://www.courier.com/docs/tutorials/inbox/how-to-organize-inbox-with-tabs.md): Tag messages at send time and configure tabs in the Courier Inbox SDK so users can filter notifications by category. - [Set Up a Hosted Preference Center](https://www.courier.com/docs/tutorials/preferences/how-to-set-up-hosted-preference-center.md): Create subscription topics, link them to templates, and deploy a Courier-hosted preference page. Covers default topic states and unsubscribe headers. - [How To Embed Preferences in React](https://www.courier.com/docs/tutorials/preferences/how-to-embed-preferences-in-react.md): Add an in-app notification preference center to your React app with Courier React v8+, using the CourierPreferences component or the headless useCourier().preferences hooks. - [How To Configure Preferences via API](https://www.courier.com/docs/tutorials/preferences/how-to-configure-user-preferences.md): Read and update user notification preferences with the Courier API. Set opt-in/out status per topic and configure custom channel routing for Enterprise. ### Deploying and Debugging - [How to Debug Email Delivery Issues](https://www.courier.com/docs/tutorials/monitoring/how-to-debug-delivery-issues.md): Diagnose email delivery failures with Courier Message Logs. Understand Sent vs Delivered vs Undeliverable statuses and resolve bounces and suppressions. - [Safe Notification Deployment](https://www.courier.com/docs/tutorials/ops/safe-notification-deployment.md): Move notification templates from Test to Production safely using draft keys, the approval workflow, asset migration, and post-deploy verification. - [Send Webhook Notifications](https://www.courier.com/docs/tutorials/ops/how-to-send-webhook-notifications.md): Deliver Courier notification payloads to any HTTP endpoint. Configure a static or dynamic URL, add auth, and override method, headers, or body. - [How to Manage User Profiles](https://www.courier.com/docs/tutorials/sending/how-to-manage-user-profiles.md): Create, update, and use user profiles to store contact details, custom attributes, and channel tokens for personalized notification delivery. ### Migrate to Courier - [Migrate from Knock](https://www.courier.com/docs/tutorials/migrate/from-knock.md): Move your notification infrastructure from Knock to Courier. Covers concept mapping, key differences, and a step-by-step migration plan. - [Migrate from SuprSend](https://www.courier.com/docs/tutorials/migrate/from-suprsend.md): Move your notification infrastructure from SuprSend to Courier. Covers concept mapping, key differences, and a step-by-step migration plan. - [Migrate from Novu](https://www.courier.com/docs/tutorials/migrate/from-novu.md): Move your notification infrastructure from Novu to Courier. Covers concept mapping, key differences, and a step-by-step migration plan. - [Migrate from OneSignal](https://www.courier.com/docs/tutorials/migrate/from-onesignal.md): Move your notification infrastructure from OneSignal to Courier. Covers concept mapping, key differences, and a step-by-step migration plan. - [Migrate from Braze](https://www.courier.com/docs/tutorials/migrate/from-braze.md): Move your transactional notification infrastructure from Braze to Courier. Covers concept mapping, key differences, and a step-by-step migration plan. ## Integrations - [Integrations Overview](https://www.courier.com/docs/external-integrations/integrations-overview.md): Connect Courier to your email, in-app, SMS, push, and chat providers to enable multichannel delivery. ### Email - [Email Providers Overview](https://www.courier.com/docs/external-integrations/email/intro-to-email.md): Connect Courier to 13 email providers: SendGrid, SES, Mailgun, and more. Override subject, From, CC/BCC, HTML body, attachments, and open tracking. - [Amply Email Integration](https://www.courier.com/docs/external-integrations/email/amply.md): Route email through Amply via Courier. Configure your access token, and use provider overrides to change the sender name or add attachments per send. - [AWS SES Email Integration](https://www.courier.com/docs/external-integrations/email/aws-ses.md): Connect AWS SES to Courier via Access Keys or IAM Role. Verify sender emails, configure SES region and sandbox limits, and override content per message. - [Gmail Email Integration](https://www.courier.com/docs/external-integrations/email/gmail.md): Send email through Gmail in Courier via OAuth. Suited for testing only due to API rate limits. Covers fixing 400 invalid_grant errors by re-authorizing. - [MailerSend Email Integration](https://www.courier.com/docs/external-integrations/email/mailersend.md): Integrate MailerSend with Courier: verify your domain, generate an API token, set a From Address, and override sender or add attachments per send. - [Mailgun](https://www.courier.com/docs/external-integrations/email/mailgun.md): Send emails with Mailgun via Courier. Covers profile setup, overrides, attachments, EU host config, delivery webhooks, and error handling. - [Mailjet Email Integration](https://www.courier.com/docs/external-integrations/email/mailjet.md): Send email via Mailjet using Courier. Configure public and private API keys, then use provider overrides to attach files or customize the Send API request. - [Mandrill Email Integration](https://www.courier.com/docs/external-integrations/email/mandrill.md): Send email via Mandrill (Mailchimp Transactional) using Courier. Import templates, apply overrides for attachments, and fix BCC, CC, and merge-var issues. - [OneSignal Email](https://www.courier.com/docs/external-integrations/email/onesignal-email.md): Integrate OneSignal Email with Courier by configuring your App ID and REST API Key, and sending email messages using the recipient's email address. - [Postmark Email Integration](https://www.courier.com/docs/external-integrations/email/postmark.md): Send transactional email via Postmark using Courier. Use overrides to set MessageStream, attach files, or call Postmark's Templates API with a TemplateId. - [Resend](https://www.courier.com/docs/external-integrations/email/resend.md): Send email notifications via Courier using Resend by setting up an API key, configuring sender details, and using overrides for advanced customization. - [SendGrid Email Integration](https://www.courier.com/docs/external-integrations/email/sendgrid.md): Send email via SendGrid through Courier. Configure an API key with Mail Send permissions, set a From Address, and use overrides for any v3 mail send field. - [SMTP Email Integration](https://www.courier.com/docs/external-integrations/email/smtp.md): Send email via SMTP with Courier's NodeMailer integration. Configure host, port, and credentials once; override transport settings or add attachments. - [SparkPost Email Integration](https://www.courier.com/docs/external-integrations/email/sparkpost.md): Send email via SparkPost Transmissions API using Courier. Put the recipient email in their profile and override the request to attach files or add fields. ### SMS - [SMS Providers Overview](https://www.courier.com/docs/external-integrations/sms/intro-to-sms.md): Overview of Courier's SMS integrations: Twilio, Vonage, Sinch, Telnyx, Plivo, and more. Set phone_number in E.164 format and use overrides per provider. - [Africa's Talking SMS Integration](https://www.courier.com/docs/external-integrations/sms/africas-talking.md): Integrate Africa's Talking SMS with Courier using your API key and username. Specify a short code or alphanumeric sender ID via provider overrides. - [Azure Communication Services SMS Integration](https://www.courier.com/docs/external-integrations/sms/azure-sms.md): Send SMS via Azure Communication Services with Courier. Configure endpoint and access key, supply phone_number, and override sender or credentials. - [MessageBird](https://www.courier.com/docs/external-integrations/sms/messagebird.md): Learn how to send SMS notifications through MessageBird by integrating with Courier and including the recipient's phone_number in the message profile. - [MessageMedia SMS Integration](https://www.courier.com/docs/external-integrations/sms/messagemedia.md): Send SMS via MessageMedia through Courier. Add your API key and secret, pass phone_number in the recipient profile, and configure delivery webhooks. - [Plivo](https://www.courier.com/docs/external-integrations/sms/plivo.md): Send SMS notifications via Plivo using Courier by configuring recipient phone numbers in E.164 format, with delivery status tracking. - [Sinch SMS Integration](https://www.courier.com/docs/external-integrations/sms/sinch.md): Send SMS via Sinch through Courier. Enter Service Plan ID, API token, and from number; supply phone_number and override credentials, URL, or message body. - [SMSCentral](https://www.courier.com/docs/external-integrations/sms/smscentral.md): Send SMS messages through SMSCentral using Courier by including the recipient's phone number in the profile, with support for body and config overrides. - [Telnyx SMS Integration](https://www.courier.com/docs/external-integrations/sms/telnyx.md): Connect Telnyx to Courier for SMS. Provide phone_number in the recipient profile and use provider overrides to change message text, sender, or API key. - [TextUs SMS Integration](https://www.courier.com/docs/external-integrations/sms/textus.md): Send business SMS through TextUs via Courier. Add your auth token and from number, supply a recipient phone_number, and override credentials per send. - [Twilio SMS Integration](https://www.courier.com/docs/external-integrations/sms/twilio.md): Connect Twilio to Courier for SMS. Enter Account SID, Auth Token, and Messaging Service SID, supply a phone_number, and override body or credentials. - [Vonage SMS Integration](https://www.courier.com/docs/external-integrations/sms/vonage.md): Send SMS via Vonage (formerly Nexmo) through Courier. Enter your API key, secret, and from number; pass phone_number in the profile with country code. ### Push - [Push Notifications Overview](https://www.courier.com/docs/external-integrations/push/intro-to-push.md): Overview of Courier push integrations: provider list, channel overrides, data mapping, trackingUrl delivery tracking, and device-specific token filtering. - [Airship Push Notification Integration](https://www.courier.com/docs/external-integrations/push/airship.md): Send push notifications via Airship through Courier. Provide audience and device_types in the profile, use body and header overrides, and track delivery. - [Apple Push Notifications Service (APNS)](https://www.courier.com/docs/external-integrations/push/apple-push-notification.md): Integrate APNS with Courier for iOS push notifications. Use the Mobile SDK for token management or supply device tokens via apn.token in the profile. - [Beamer](https://www.courier.com/docs/external-integrations/push/beamer.md): Learn how to use Courier to send Beamer push notifications with customizable override options like user targeting, push toggle, and publish status. - [Expo Push Notification Integration](https://www.courier.com/docs/external-integrations/push/expo.md): Send push to Expo/React Native apps via Courier. Supports single and multi-device tokens, provider overrides, delivery tracking, and APNs credential fixes. - [Firebase Cloud Messaging (FCM) Integration](https://www.courier.com/docs/external-integrations/push/firebase-fcm.md): Integrate FCM with Courier for Android, iOS, React Native, and Flutter push. Use Courier Mobile SDKs for automatic token syncing or manage tokens manually. - [MagicBell In-App Push Integration](https://www.courier.com/docs/external-integrations/push/magicbell.md): Send in-app push via MagicBell from Courier using recipient email or external ID. Override category and URL per send via providers.magicbell.override. - [NowPush Push Notification Integration](https://www.courier.com/docs/external-integrations/push/nowpush.md): Send messages via NowPush using Courier. No profile fields required, set device_type, message_type, url, and apiKey in the template or via overrides. - [OneSignal Push Notification Integration](https://www.courier.com/docs/external-integrations/push/onesignal-push.md): Send push via OneSignal from Courier. Set your App ID and REST API Key, pass a Player ID or External User ID in the profile, and override the payload. - [Pushbullet](https://www.courier.com/docs/external-integrations/push/pushbullet.md): Send push notifications via Pushbullet with customizable payloads using Courier's override system, no recipient profile data required. - [Pusher Beams](https://www.courier.com/docs/external-integrations/push/pusher-beams.md): Learn how to send push notifications using Pusher Beams via Courier, including examples for targeting users or interests with APNs or FCM delivery modes. - [Pusher](https://www.courier.com/docs/external-integrations/push/pusher.md): Send real-time push notifications via Pusher by targeting a recipient's Pusher channel and customizing payloads through Courier templates or jsonnet editor. ### Direct Message - [Chat & Direct Message Providers](https://www.courier.com/docs/external-integrations/direct-message/intro-to-direct-message.md): Overview of Courier's chat and direct message integrations, including provider directory, profile targeting, and provider-level overrides. - [Chat API Direct Message Integration](https://www.courier.com/docs/external-integrations/direct-message/chat.md): Integrate Chat API with Courier to send direct messages by phone or chat ID. Supports per-send credential overrides via providers.chat-api.override. - [Discord](https://www.courier.com/docs/external-integrations/direct-message/discord.md): Send notifications to Discord users and channels via a Discord bot, with support for embeds, attachments, and provider overrides. - [Facebook Messenger Integration](https://www.courier.com/docs/external-integrations/direct-message/facebook-messenger.md): Send Courier notifications via Facebook Messenger. Provide facebookPSID in the recipient profile and use overrides to customize the body or config. - [Microsoft Teams Integration](https://www.courier.com/docs/external-integrations/direct-message/microsoft-teams.md): Send notifications to Microsoft Teams via Courier. Create an Azure App Registration and Teams bot, then send Adaptive Card messages to channels or users. - [Slack Messaging Integration](https://www.courier.com/docs/external-integrations/direct-message/slack.md): Send Slack messages with Courier by creating a Slack app, adding bot token scopes, and targeting users by email or channel ID. - [Stream Chat Integration](https://www.courier.com/docs/external-integrations/direct-message/stream-chat.md): Send messages to Stream Chat channels via Courier. Supply channelType and channelId or messageId in the streamChat profile; override credentials per send. - [Viber Messaging Integration](https://www.courier.com/docs/external-integrations/direct-message/viber.md): Send Viber direct messages via Courier. Register a webhooks server, collect UserIDs, set viber.receiver in the profile, and override auth or message type. - [WhatsApp Messaging Integration](https://www.courier.com/docs/external-integrations/direct-message/whatsapp.md): Send WhatsApp messages through Courier via Twilio. Requires a pre-approved template, phone_number in the recipient profile, and a Twilio account. ### Customer Data Platforms - [Customer Data Platforms (CDP)](https://www.courier.com/docs/external-integrations/cdp/intro-to-cdp.md): Integrate Customer Data Platforms with Courier to sync user data and trigger notifications from CDP events. - [Segment](https://www.courier.com/docs/external-integrations/cdp/segment.md): Connect Segment to Courier to send identify, track, and group events into Courier automations, and send Courier message events back to Segment for analytics. - [RudderStack CDP Integration](https://www.courier.com/docs/external-integrations/cdp/rudderstack.md): Connect Courier and RudderStack bidirectionally: route identify, track, and group events into automations and stream Courier notification events back. ### Observability - [Observability](https://www.courier.com/docs/external-integrations/observability/intro-to-observability.md): Learn how to integrate Courier with observability providers and improve your metrics and logs tracking capabilities. - [Datadog Observability Integration](https://www.courier.com/docs/external-integrations/observability/datadog.md): Forward Courier message, channel, and automation metrics to Datadog. Covers API key setup, the downloadable dashboard JSON, and all courier.* metrics. - [New Relic Observability Integration](https://www.courier.com/docs/external-integrations/observability/new-relic.md): Send Courier delivery metrics and logs to New Relic. Add your license key, customize ingestion endpoints, and import the Courier dashboard JSON. - [OpenTelemetry](https://www.courier.com/docs/external-integrations/observability/open-telemetry.md): Export Courier logs and metrics to any OpenTelemetry-compatible platform using Basic or Bearer Token auth and a custom OTLP endpoint, no collector needed. ### Other - [AWS SNS](https://www.courier.com/docs/external-integrations/other/aws-sns.md): Learn how to send push, SMS, and email notifications using Courier with AWS SNS, including setup, profile requirements, and support for override credentials. - [Custom Webhook Push Provider](https://www.courier.com/docs/external-integrations/other/custom-provider.md): Route push notifications to your own webhook endpoint. Configure a URL and auth method in Courier, design blocks in Studio, and receive a push payload. - [Drift](https://www.courier.com/docs/external-integrations/other/drift.md): Use Courier to trigger Drift conversations by providing a recipient email and optionally overriding Drift's API request body and access token configuration. - [Intercom](https://www.courier.com/docs/external-integrations/other/intercom.md): Send in-app messages via Intercom by including the user's Intercom ID in their profile, with support for message and sender overrides. - [Opsgenie Alert Integration](https://www.courier.com/docs/external-integrations/other/ops-genie.md): Send Courier alerts to Opsgenie by adding the channel to a template. Pass dynamic data in the payload and override the API key, message, or region URL. - [PagerDuty Alert Integration](https://www.courier.com/docs/external-integrations/other/pagerduty.md): Trigger PagerDuty incidents from Courier via Events API v2. Configure routing key, severity, and source; override per-user routing keys and payload fields. - [Splunk On Call Alerting Integration](https://www.courier.com/docs/external-integrations/other/splunk-on-call.md): Route incident alerts to Splunk On Call (formerly VictorOps) via Courier. Set a target type and slug in the recipient profile and an alert summary. - [Webhook Integration](https://www.courier.com/docs/external-integrations/other/webhook-integration.md): Deliver HTTP requests via Courier's Webhook provider to a static or dynamic URL. Set method, headers, basic or bearer auth, and control profile data sent. ## API Reference - [Courier API Reference](https://www.courier.com/docs/reference/api-overview.md): Courier's REST API for sending notifications and managing profiles, preferences, templates, and brands across email, SMS, push, chat, and in-app. ### Send - [Send a message](https://www.courier.com/docs/api-reference/send/send-a-message.md): Send a message to one or more recipients. ### User Profiles - [Get a profile](https://www.courier.com/docs/api-reference/user-profiles/get-a-profile.md): Returns the specified user profile. - [Create a profile](https://www.courier.com/docs/api-reference/user-profiles/create-a-profile.md): Merge the supplied values with an existing profile or create a new profile if one doesn't already exist. - [Replace a profile](https://www.courier.com/docs/api-reference/user-profiles/replace-a-profile.md): When using `PUT`, be sure to include all the key-value pairs required by the recipient's profile. - [Update a profile](https://www.courier.com/docs/api-reference/user-profiles/update-a-profile.md): PATCH /profiles/{user_id} - [Delete a profile](https://www.courier.com/docs/api-reference/user-profiles/delete-a-profile.md): Deletes the specified user profile. - [Get list subscriptions](https://www.courier.com/docs/api-reference/user-profiles/get-list-subscriptions.md): Returns the subscribed lists for a specified user. - [Subscribe to one or more lists](https://www.courier.com/docs/api-reference/user-profiles/subscribe-to-one-or-more-lists.md): Subscribes the given user to one or more lists. - [Delete list subscriptions](https://www.courier.com/docs/api-reference/user-profiles/delete-list-subscriptions.md): Removes all list subscriptions for given user. ### Lists - [Get all lists](https://www.courier.com/docs/api-reference/lists/get-all-lists.md): Returns all of the lists, with the ability to filter based on a pattern. - [Get a list](https://www.courier.com/docs/api-reference/lists/get-a-list.md): Returns a list based on the list ID provided. - [Update a list](https://www.courier.com/docs/api-reference/lists/update-a-list.md): Create or replace an existing list with the supplied values. - [Delete a list](https://www.courier.com/docs/api-reference/lists/delete-a-list.md): Delete a list by list ID. - [Restore a list](https://www.courier.com/docs/api-reference/lists/restore-a-list.md): Restore a previously deleted list. - [Get the subscriptions for a list](https://www.courier.com/docs/api-reference/lists/get-the-subscriptions-for-a-list.md): Get the list's subscriptions. - [Add subscribers to a list](https://www.courier.com/docs/api-reference/lists/add-subscribers-to-a-list.md): Subscribes additional users to the list, without modifying existing subscriptions. - [Subscribe users to a list](https://www.courier.com/docs/api-reference/lists/subscribe-users-to-a-list.md): Subscribes the users to the list, overwriting existing subscriptions. - [Subscribe a single user profile to a list](https://www.courier.com/docs/api-reference/lists/subscribe-a-single-user-profile-to-a-list.md): Subscribe a user to an existing list (note: if the List does not exist, it will be automatically created). - [Unsubscribe a user profile from a list](https://www.courier.com/docs/api-reference/lists/unsubscribe-a-user-profile-from-a-list.md): Delete a subscription to a list by list ID and user ID. ### Audiences - [Get an audience](https://www.courier.com/docs/api-reference/audiences/get-an-audience.md): Returns the specified audience by id. - [Update an audience](https://www.courier.com/docs/api-reference/audiences/update-an-audience.md): Creates or updates audience. - [Delete an audience](https://www.courier.com/docs/api-reference/audiences/delete-an-audience.md): Deletes the specified audience. - [List audience members](https://www.courier.com/docs/api-reference/audiences/list-audience-members.md): Get list of members of an audience. - [List all audiences](https://www.courier.com/docs/api-reference/audiences/list-all-audiences.md): Get the audiences associated with the authorization token. ### Sent Messages - [List messages](https://www.courier.com/docs/api-reference/sent-messages/list-messages.md): Fetch the statuses of messages you've previously sent. - [Get message](https://www.courier.com/docs/api-reference/sent-messages/get-message.md): Fetch the status of a message you've previously sent. - [Cancel message](https://www.courier.com/docs/api-reference/sent-messages/cancel-message.md): Cancel a message that is currently in the process of being delivered. - [Resend message](https://www.courier.com/docs/api-reference/sent-messages/resend-message.md): Resend a previously sent message. - [Get message history](https://www.courier.com/docs/api-reference/sent-messages/get-message-history.md): Fetch the array of events of a message you've previously sent. - [Get message content](https://www.courier.com/docs/api-reference/sent-messages/get-message-content.md): GET /messages/{message_id}/output - [Archive message](https://www.courier.com/docs/api-reference/sent-messages/archive-message.md): PUT /requests/{request_id}/archive ### Notification Templates - [List Notification Templates](https://www.courier.com/docs/api-reference/notification-templates/list-notification-templates.md): List notification templates in your workspace. - [Create Notification Template](https://www.courier.com/docs/api-reference/notification-templates/create-notification-template.md): Create a notification template. - [Get Notification Template](https://www.courier.com/docs/api-reference/notification-templates/get-notification-template.md): Retrieve a notification template by ID. - [Replace Notification Template](https://www.courier.com/docs/api-reference/notification-templates/replace-notification-template.md): Replace a notification template. - [Archive Notification Template](https://www.courier.com/docs/api-reference/notification-templates/archive-notification-template.md): Archive a notification template. - [List Notification Template Versions](https://www.courier.com/docs/api-reference/notification-templates/list-notification-template-versions.md): List versions of a notification template. - [Publish Notification Template](https://www.courier.com/docs/api-reference/notification-templates/publish-notification-template.md): Publish a notification template. - [Duplicate Notification Template](https://www.courier.com/docs/api-reference/notification-templates/duplicate-notification-template.md): Duplicate a notification template. - [Get Notification Content](https://www.courier.com/docs/api-reference/notification-templates/get-notification-content.md): Retrieve the content of a notification template. - [Put Notification Content](https://www.courier.com/docs/api-reference/notification-templates/put-notification-content.md): Replace the elemental content of a notification template. - [Put Notification Element](https://www.courier.com/docs/api-reference/notification-templates/put-notification-element.md): Update a single element within a notification template. - [Put Notification Locale](https://www.courier.com/docs/api-reference/notification-templates/put-notification-locale.md): Set locale-specific content overrides for a notification template. - [Get Submission Checks](https://www.courier.com/docs/api-reference/notification-templates/get-submission-checks.md): Retrieve the submission checks for a notification template. - [Replace Submission Checks](https://www.courier.com/docs/api-reference/notification-templates/replace-submission-checks.md): Replace the submission checks for a notification template. - [Cancel Submission](https://www.courier.com/docs/api-reference/notification-templates/cancel-submission.md): Cancel a submission for a notification template. ### Authentication - [Create a JWT](https://www.courier.com/docs/api-reference/authentication/create-a-jwt.md): Returns a new access token. ### Tenants - [Get a Tenant](https://www.courier.com/docs/api-reference/tenants/get-a-tenant.md): GET /tenants/{tenant_id} - [Create or Replace a Tenant](https://www.courier.com/docs/api-reference/tenants/create-or-replace-a-tenant.md): PUT /tenants/{tenant_id} - [Delete a Tenant](https://www.courier.com/docs/api-reference/tenants/delete-a-tenant.md): DELETE /tenants/{tenant_id} - [Get a List of Tenants](https://www.courier.com/docs/api-reference/tenants/get-a-list-of-tenants.md): GET /tenants - [Get Users in Tenant](https://www.courier.com/docs/api-reference/tenants/get-users-in-tenant.md): GET /tenants/{tenant_id}/users - [Create or Replace Default Preferences For Topic](https://www.courier.com/docs/api-reference/tenants/create-or-replace-default-preferences-for-topic.md): PUT /tenants/{tenant_id}/default_preferences/items/{topic_id} - [Remove Default Preferences For Topic](https://www.courier.com/docs/api-reference/tenants/remove-default-preferences-for-topic.md): DELETE /tenants/{tenant_id}/default_preferences/items/{topic_id} ### User Tenants - [Get tenants associated with a given user](https://www.courier.com/docs/api-reference/user-tenants/get-tenants-associated-with-a-given-user.md): Returns a paginated list of user tenant associations. - [Add a User to Multiple Tenants](https://www.courier.com/docs/api-reference/user-tenants/add-a-user-to-multiple-tenants.md): This endpoint is used to add a user to multiple tenants in one call. - [Remove User From All Associated Tenants](https://www.courier.com/docs/api-reference/user-tenants/remove-user-from-all-associated-tenants.md): Removes a user from any tenants they may have been associated with. - [Add a User to a Single Tenant](https://www.courier.com/docs/api-reference/user-tenants/add-a-user-to-a-single-tenant.md): This endpoint is used to add a single tenant. - [Remove User from a Tenant](https://www.courier.com/docs/api-reference/user-tenants/remove-user-from-a-tenant.md): Removes a user from the supplied tenant. ### User Preferences - [Get user's preferences](https://www.courier.com/docs/api-reference/user-preferences/get-users-preferences.md): Fetch all user preferences. - [Update user preferences in bulk](https://www.courier.com/docs/api-reference/user-preferences/update-user-preferences-in-bulk.md): Additively create or update a user's preferences for one or more subscription topics in a single request. - [Replace user preferences in bulk](https://www.courier.com/docs/api-reference/user-preferences/replace-user-preferences-in-bulk.md): Replace a user's complete set of preference overrides in a single request. - [Get user subscription topic](https://www.courier.com/docs/api-reference/user-preferences/get-user-subscription-topic.md): Fetch user preferences for a specific subscription topic. - [Update or Create user preferences for a specific subscription topic](https://www.courier.com/docs/api-reference/user-preferences/update-or-create-user-preferences-for-a-specific-subscription-topic.md): Update or Create user preferences for a specific subscription topic. - [Delete user subscription topic](https://www.courier.com/docs/api-reference/user-preferences/delete-user-subscription-topic.md): Remove a user's preferences for a specific subscription topic, resetting the topic to its effective default. ### Digests - [Release a digest early](https://www.courier.com/docs/api-reference/digests/release-a-digest-early.md): Send a digest now instead of waiting for its scheduled time, so your users get what they have collected so far right away. - [List digest instances](https://www.courier.com/docs/api-reference/digests/list-digest-instances.md): List the digest instances for a schedule. ### Device Tokens - [Get all tokens](https://www.courier.com/docs/api-reference/device-tokens/get-all-tokens.md): Gets all tokens available for a :user_id - [Add multiple tokens to user](https://www.courier.com/docs/api-reference/device-tokens/add-multiple-tokens-to-user.md): Adds multiple tokens to a user and overwrites matching existing tokens. - [Get single token](https://www.courier.com/docs/api-reference/device-tokens/get-single-token.md): Get single token available for a `:token` - [Add single token to user](https://www.courier.com/docs/api-reference/device-tokens/add-single-token-to-user.md): Adds a single token to a user and overwrites a matching existing token. - [Update a token](https://www.courier.com/docs/api-reference/device-tokens/update-a-token.md): Apply a JSON Patch (RFC 6902) to the specified token. - [Delete User Token](https://www.courier.com/docs/api-reference/device-tokens/delete-user-token.md): DELETE /users/{user_id}/tokens/{token} ### Automations - [List Automations](https://www.courier.com/docs/api-reference/automations/list-automations.md): Get the list of automations. - [Invoke an Automation](https://www.courier.com/docs/api-reference/automations/invoke-an-automation.md): Invoke an automation run from an automation template. - [Invoke an Ad Hoc Automation](https://www.courier.com/docs/api-reference/automations/invoke-an-ad-hoc-automation.md): Invoke an ad hoc automation run. ### Journeys - [List Journeys](https://www.courier.com/docs/api-reference/journeys/list-journeys.md): Get the list of journeys. - [Create a journey](https://www.courier.com/docs/api-reference/journeys/create-a-journey.md): Create a journey. - [Cancel journey runs](https://www.courier.com/docs/api-reference/journeys/cancel-journey-runs.md): Cancel journey runs. - [Invoke a journey](https://www.courier.com/docs/api-reference/journeys/invoke-a-journey.md): Invoke a journey by id or alias to start a new run. - [Fetch a journey by id](https://www.courier.com/docs/api-reference/journeys/fetch-a-journey-by-id.md): Fetch a journey by id. - [Replace a journey](https://www.courier.com/docs/api-reference/journeys/replace-a-journey.md): Replace the journey draft. - [Archive a journey](https://www.courier.com/docs/api-reference/journeys/archive-a-journey.md): Archive a journey. - [List versions of a journey](https://www.courier.com/docs/api-reference/journeys/list-versions-of-a-journey.md): List published versions of a journey, ordered most recent first. - [Publish a journey](https://www.courier.com/docs/api-reference/journeys/publish-a-journey.md): Publish the current draft as a new version. - [List notification templates scoped to a journey](https://www.courier.com/docs/api-reference/journeys/list-notification-templates-scoped-to-a-journey.md): List notification templates scoped to this journey. - [Create a notification template scoped to a journey](https://www.courier.com/docs/api-reference/journeys/create-a-notification-template-scoped-to-a-journey.md): Create a notification template scoped to this journey. - [Fetch a journey-scoped notification template by id](https://www.courier.com/docs/api-reference/journeys/fetch-a-journey-scoped-notification-template-by-id.md): Fetch a journey-scoped notification template by id. - [Replace a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/replace-a-journey-scoped-notification-template.md): Replace the journey-scoped notification template draft. - [Archive a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/archive-a-journey-scoped-notification-template.md): Archive the journey-scoped notification template. - [Publish a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/publish-a-journey-scoped-notification-template.md): Publish the current draft of the journey-scoped notification template as a new version. - [List versions of a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/list-versions-of-a-journey-scoped-notification-template.md): List published versions of the journey-scoped notification template, ordered most recent first. - [Fetch the content of a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/fetch-the-content-of-a-journey-scoped-notification-template.md): Retrieve the elemental content of a journey-scoped notification template. - [Replace the content of a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/replace-the-content-of-a-journey-scoped-notification-template.md): Replace the elemental content of a journey-scoped notification template. - [Replace a single locale of a journey-scoped notification template](https://www.courier.com/docs/api-reference/journeys/replace-a-single-locale-of-a-journey-scoped-notification-template.md): Set locale-specific content overrides for a journey-scoped notification template. ### Brands - [List brands](https://www.courier.com/docs/api-reference/brands/list-brands.md): Get the list of brands. - [Create a new brand](https://www.courier.com/docs/api-reference/brands/create-a-new-brand.md): Create a new brand. - [Get a brand](https://www.courier.com/docs/api-reference/brands/get-a-brand.md): Fetch a specific brand by brand ID. - [Replace a brand](https://www.courier.com/docs/api-reference/brands/replace-a-brand.md): Replace an existing brand with the supplied values. - [Delete a brand](https://www.courier.com/docs/api-reference/brands/delete-a-brand.md): Delete a brand by brand ID. ### Inbound - [Courier Track Event](https://www.courier.com/docs/api-reference/inbound/courier-track-event.md): POST /inbound/courier ### Translations - [Get a translation](https://www.courier.com/docs/api-reference/translations/get-a-translation.md): Get translations by locale - [Update translations by locale](https://www.courier.com/docs/api-reference/translations/update-translations-by-locale.md): Update a translation ### Courier Create - [Get a Template in Tenant](https://www.courier.com/docs/api-reference/courier-create/get-a-template-in-tenant.md): GET /tenants/{tenant_id}/templates/{template_id} - [Create or Update a Tenant Template](https://www.courier.com/docs/api-reference/courier-create/create-or-update-a-tenant-template.md): Creates or updates a notification template for a tenant. - [Delete a Tenant Template](https://www.courier.com/docs/api-reference/courier-create/delete-a-tenant-template.md): Deletes the tenant's notification template with the given `template_id`. - [Publish a Tenant Template](https://www.courier.com/docs/api-reference/courier-create/publish-a-tenant-template.md): Publishes a specific version of a notification template for a tenant. - [Get a Specific Template Version](https://www.courier.com/docs/api-reference/courier-create/get-a-specific-template-version.md): Fetches a specific version of a tenant template. - [List Templates in Tenant](https://www.courier.com/docs/api-reference/courier-create/list-templates-in-tenant.md): GET /tenants/{tenant_id}/templates ### Audit Events - [Get all audit events](https://www.courier.com/docs/api-reference/audit-events/get-all-audit-events.md): Fetch the list of audit events - [Get an audit event](https://www.courier.com/docs/api-reference/audit-events/get-an-audit-event.md): Fetch a specific audit event by ID. ### Routing Strategies - [List Routing Strategies](https://www.courier.com/docs/api-reference/routing-strategies/list-routing-strategies.md): List routing strategies in your workspace. - [Create Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/create-routing-strategy.md): Create a routing strategy. - [Get Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/get-routing-strategy.md): Retrieve a routing strategy by ID. - [Replace Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/replace-routing-strategy.md): Replace a routing strategy. - [Archive Routing Strategy](https://www.courier.com/docs/api-reference/routing-strategies/archive-routing-strategy.md): Archive a routing strategy. - [List Associated Notifications](https://www.courier.com/docs/api-reference/routing-strategies/list-associated-notifications.md): List notification templates associated with a routing strategy. ### Workspace Preferences - [Publish Preferences Page](https://www.courier.com/docs/api-reference/workspace-preferences/publish-preferences-page.md): Publish the workspace's preferences page. - [List Workspace Preferences](https://www.courier.com/docs/api-reference/workspace-preferences/list-workspace-preferences.md): List the workspace's preferences. - [Create Workspace Preference](https://www.courier.com/docs/api-reference/workspace-preferences/create-workspace-preference.md): Create a workspace preference. - [Get Workspace Preference](https://www.courier.com/docs/api-reference/workspace-preferences/get-workspace-preference.md): Retrieve a workspace preference by id, including its topics. - [Replace Workspace Preference](https://www.courier.com/docs/api-reference/workspace-preferences/replace-workspace-preference.md): Replace a workspace preference. - [Archive Workspace Preference](https://www.courier.com/docs/api-reference/workspace-preferences/archive-workspace-preference.md): Archive a workspace preference. - [List Topics in Section](https://www.courier.com/docs/api-reference/workspace-preferences/list-topics-in-section.md): List the topics in a workspace preference. - [Create Topic in Section](https://www.courier.com/docs/api-reference/workspace-preferences/create-topic-in-section.md): Create a subscription preference topic inside a workspace preference. - [Get Topic in Section](https://www.courier.com/docs/api-reference/workspace-preferences/get-topic-in-section.md): Retrieve a topic within a workspace preference. - [Replace Topic in Section](https://www.courier.com/docs/api-reference/workspace-preferences/replace-topic-in-section.md): Replace a topic within a workspace preference. - [Archive Topic in Section](https://www.courier.com/docs/api-reference/workspace-preferences/archive-topic-in-section.md): Archive a topic and remove it from its workspace preference. ### Providers - [List providers](https://www.courier.com/docs/api-reference/providers/list-providers.md): List configured provider integrations for the current workspace. - [Create a provider](https://www.courier.com/docs/api-reference/providers/create-a-provider.md): Create a new provider configuration. - [List available provider types](https://www.courier.com/docs/api-reference/providers/list-available-provider-types.md): Returns the catalog of available provider types with their display names, descriptions, and configuration schema fields (snake_case, with `type` and `required`). - [Get a provider](https://www.courier.com/docs/api-reference/providers/get-a-provider.md): Fetch a single provider configuration by ID. - [Update a provider](https://www.courier.com/docs/api-reference/providers/update-a-provider.md): Replace an existing provider configuration. - [Delete a provider](https://www.courier.com/docs/api-reference/providers/delete-a-provider.md): Delete a provider configuration. ## SDKs - [Get Started with Courier SDKs](https://www.courier.com/docs/sdk-libraries/sdks-overview.md): Courier provides server-side SDKs for sending notifications and client-side SDKs for embedding in-app experiences like Inbox and Toast. ### Client-side SDKs - [Courier JS](https://www.courier.com/docs/sdk-libraries/courier-js-web.md): Use the Courier JS client to authenticate browser apps with a JWT, then read and update Inbox messages, unread counts, preferences, and brands. - [Courier React SDK](https://www.courier.com/docs/sdk-libraries/courier-react-web.md): Add an in-app inbox, toasts, and a preference center to React apps with @trycourier/courier-react. Includes JWT auth and a useCourier hook for custom UIs. - [Courier Vue SDK](https://www.courier.com/docs/sdk-libraries/courier-vue-web.md): Embed an in-app inbox, toasts, and preferences center in Vue 3 apps. Use the useCourier composable for programmatic control and real-time updates. - [Courier Angular SDK](https://www.courier.com/docs/sdk-libraries/courier-angular-web.md): Add an in-app inbox, toast alerts, and preferences to Angular 17+ apps with standalone components. Includes reactive state and WebSocket updates. - [Courier Web Components SDK](https://www.courier.com/docs/sdk-libraries/courier-ui-inbox-web.md): Embed a customizable in-app notification center, toasts, and notification preferences in your web app using Web Components. Works with any JavaScript framework. - [Courier iOS SDK](https://www.courier.com/docs/sdk-libraries/ios.md): Add in-app notifications, push notifications, and notification preferences to your iOS app with prebuilt UI components and Swift APIs. - [Courier Android SDK](https://www.courier.com/docs/sdk-libraries/android.md): Add in-app notifications, push notifications, and notification preferences to your Android app with prebuilt UI components and Kotlin APIs. - [Courier Flutter SDK](https://www.courier.com/docs/sdk-libraries/flutter.md): Add in-app notifications, push notifications, and notification preferences to your Flutter app with prebuilt widgets and Dart APIs. - [Courier React Native SDK](https://www.courier.com/docs/sdk-libraries/react-native.md): Add in-app notifications, push notifications, and notification preferences to your React Native app with prebuilt components and TypeScript APIs. ### Server-side SDKs - [Courier Node.js SDK](https://www.courier.com/docs/sdk-libraries/node.md): Install the Courier Node.js SDK to send notifications, manage profiles, issue JWTs, and run bulk jobs. Covers auth, retries, and typed error handling. - [Courier Python SDK](https://www.courier.com/docs/sdk-libraries/python.md): Send notifications from your Python backend using the Courier SDK. Supports sync and async clients, typed requests with Pydantic models, and automatic retries. - [Courier Ruby SDK](https://www.courier.com/docs/sdk-libraries/ruby.md): Send notifications from your Ruby backend using the Courier SDK. Wraps the full REST API with typed responses, Sorbet support, and automatic retries. - [Courier Go SDK](https://www.courier.com/docs/sdk-libraries/go.md): Send notifications from your Go backend using the Courier SDK. Wraps the full REST API with strongly typed params, automatic retries, and error handling. - [Courier Java SDK](https://www.courier.com/docs/sdk-libraries/java.md): Send notifications from your Java backend using the Courier SDK. Wraps the full REST API with builder-pattern requests, automatic retries, and error handling. - [Courier PHP SDK](https://www.courier.com/docs/sdk-libraries/php.md): Send notifications from your PHP backend using the Courier SDK. Wraps the full REST API with typed responses, automatic retries, and error handling. - [Courier C# SDK](https://www.courier.com/docs/sdk-libraries/csharp.md): Send notifications from your .NET backend using the Courier SDK. Wraps the full REST API with strongly typed models, async methods, and automatic retries.