Skip to main content
This page assumes the setup in and . A message reaches the inbox when you include inbox in its routing channels. The inbox is a channel like email or push, so the same call delivers to it.
A just-delivered message in the Courier Inbox, unread and timestamped Now, with the header unread count reading 1

A message delivered to the Courier Inbox after a send.

Route a message to the inbox

This send references a published template with an In-App channel, so create one before you run it.
The inbox shows the template’s In-App channel, so build that channel when you . For the send call itself, see . The SDK receives everything in data with the message. Fields your template references (like {{ name }}) are interpolated. The rest passes through untouched, which is useful for deep linking to a screen when the user taps a message. Inbox messages also drive toasts. Render the toast component and a popup appears for each new message on the feed. See .

Tag a message for a tab

Inbox tabs filter on tags, and a message gets its tags from metadata.tags on the send. A tab defined with filter: { tags: ["order"] } shows the messages you tag here.
A message carries at most 9 tags, and each tag is a string of up to 30 characters. Exceeding either limit fails the send with a validation error on metadata.tags. Tags reach the client on every inbox message, so a custom UI can read them too. covers defining the tabs that filter on them.

Scope the inbox to a tenant

To show only one ’s messages, pass tenantId at sign-in. You set it on the client, and it applies to every read and the realtime connection. There is no per-component tenant property.
Send to that tenant’s inbox by setting context.tenant_id on the recipient. The message is visible only when the user signs in with the same tenant. (A bare tenant_id in to, with no user_id, fans out to every member of the tenant instead.)

FAQ

Confirm all three:
  • The Courier Inbox provider is added to your workspace.
  • The message routing includes channels: ["inbox"].
  • The recipient user_id matches the userId you .
Toasts read the same feed and use the same signIn. Render CourierToast (or <courier-toast>) anywhere in your app after sign-in. See .
Sign in with a tenantId to scope the inbox to that tenant. Sign in again with a different tenantId to switch. The scope is client-level, not per-component. See Scope the inbox to a tenant.