> ## Documentation Index
> Fetch the complete documentation index at: https://www.courier.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Install the Courier skill before writing code: `npx skills add trycourier/courier-skills`. It carries the verified SDK shapes and the rules you cannot get wrong.
> Authenticate every request with `Authorization: Bearer <API_KEY>`. A workspace has several environments and each has its own keys, which are plain `pk_` strings with no environment prefix. Start with Test.
> Send with `client.send.message`, the default import of the v7 Node SDK. Reference a template by its `nt_` id or its alias.
> A send accepts a bare Elemental element list, but storing content on a template requires the top-level elements wrapped in a channel element.
> Templates and journeys can be built in the Courier app or created through the API. Either way they live in the workspace and are referenced by ID when you send.
> The hosted MCP server is https://mcp.courier.com. For a briefing on what Courier is and when to use it, read https://www.courier.com/llms.txt.
> Prefer the Guides tab for how-do-I questions and the Docs tab for how-does-it-behave questions. The API reference lives under /api-reference.

# Migrate to Courier

> Map your concepts to Courier's, move recipients and content, then cut over sends.

export const Guide = ({href, children, name, bare}) => {
  const label = children || name || href;
  if (bare) {
    return <a href={href}>{label}</a>;
  }
  return <a className="cx-endpoint" data-kind="guide" href={href}>
      <span className="cx-endpoint-label">{label}</span>
      <span className="cx-endpoint-method">GUIDE</span>
    </a>;
};

export const Doc = ({href, children, name, bare}) => {
  const label = children || name || href;
  if (bare) {
    return <a href={href}>{label}</a>;
  }
  return <a className="cx-endpoint" data-kind="doc" href={href}>
      <span className="cx-endpoint-label">{label}</span>
      <span className="cx-endpoint-method">DOC</span>
    </a>;
};

Every migration follows the same shape: map your concepts to Courier's, move recipients and content, then cut over sends.

## How a migration maps

Most notification platforms share the same building blocks.

| Your current platform                    | Courier                                                                                                                             |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Delivery channels / provider connections | <Doc href="/docs/integrations/overview">Integrations</Doc> (bring your own provider, with <Doc href="/docs/send/routing">failover</Doc>)      |
| Workflows that bundle content and logic  | <Doc href="/docs/design/templates/overview">Templates</Doc> for content, <Doc href="/docs/journeys/overview">journeys</Doc> for orchestration |
| Recipients / subscribers                 | <Doc href="/docs/recipients/overview">Users & profiles</Doc>                                                                             |
| Segments                                 | <Doc href="/docs/recipients/lists-and-audiences/overview">Lists & audiences</Doc>                                                        |
| Notification preferences                 | <Doc href="/docs/recipients/preferences/overview">Preferences</Doc>                                                                      |
| Multi-tenant accounts                    | <Doc href="/docs/tenants/overview">Tenants</Doc>                                                                                         |
| In-app feeds                             | <Doc href="/docs/in-app/overview">Inbox</Doc>                                                                                            |

One difference to plan around: Courier separates **content** (templates) from **orchestration** (journeys). A PM can change copy while an engineer changes timing.

## The general plan

1. Connect your providers as <Doc href="/docs/integrations/overview">integrations</Doc>.
2. Move recipients into <Guide href="/docs/guides/import-your-users">profiles</Guide> and rebuild segments as <Doc href="/docs/recipients/lists-and-audiences/overview">lists or audiences</Doc>.
3. Recreate content as <Doc href="/docs/design/templates/api">templates</Doc> and orchestration as <Doc href="/docs/journeys/build">journeys</Doc>.
4. Move preferences and, if you use them, tenants.
5. Cut over sends and verify in <Doc href="/docs/monitor/overview">logs</Doc>.

## Migrate from your platform

<CardGroup cols={2}>
  <Card title="From an in-house system" icon="code" href="/docs/guides/migrate/from-in-house">
    Replace homegrown notification code, one type at a time.
  </Card>

  <Card title="From Knock" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-knock">
    Map workflows, recipients, and preferences from Knock.
  </Card>

  <Card title="From SuprSend" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-suprsend">
    Move subscribers, templates, and channels from SuprSend.
  </Card>

  <Card title="From Novu" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-novu">
    Map subscribers, workflows, and layouts from Novu.
  </Card>

  <Card title="From OneSignal" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-onesignal">
    Move users, segments, and push from OneSignal.
  </Card>

  <Card title="From Braze" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-braze">
    Map user profiles, segments, and campaigns from Braze.
  </Card>

  <Card title="From Salesforce Marketing Cloud" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-salesforce-marketing-cloud">
    Move data extensions, journeys, and triggered sends.
  </Card>

  <Card title="From Intercom" icon="arrow-right-arrow-left" href="/docs/guides/migrate/from-intercom">
    Map contacts, series, and in-product messages from Intercom.
  </Card>
</CardGroup>

## Upgrade Courier React

Already on Courier and moving off React v7? The <Doc href="/docs/sdk-libraries/courier-react-v8-migration-guide">React v8+ migration guide</Doc> covers the Inbox, Toast, and Preferences components.
