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

# Getting started with OneSignal

> Set up your OneSignal account, configure push, in-app messages, email, and SMS/RCS, organize Users with tags and segments, and send your first message or Journey.

This guide walks through getting up and running with OneSignal. If you haven't already, [create your account](https://onesignal.com) to get started.

1. [**Set up your account and messaging channels**](#set-up-your-account-and-messaging-channels) — create your app and configure at least one channel.
2. [**Add and organize your Users**](#add-and-organize-your-users) — model Users, Subscriptions, tags, and segments.
3. [**Send messages**](#send-messages) — compose campaigns, personalize content, and build automated Journeys.
4. [**Measure impact with analytics**](#measure-impact-with-analytics) — track delivery, engagement, and conversions.

Prefer video? Watch the walkthrough below.

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/H1aYb8Bks2o?si=aWQREY-bY89ydyPY" title="OneSignal quickstart video walkthrough" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

## Which channel should I start with?

Pick the channel that matches your immediate goal — you can add more to the same OneSignal App at any time.

| Your goal                                          | Start with                                                                     | Why                                                                   |
| :------------------------------------------------- | :----------------------------------------------------------------------------- | :-------------------------------------------------------------------- |
| Send transactional or marketing email today        | [Email](./email-setup)                                                         | No SDK required. Configure DNS and start sending the same day.        |
| Reach a mobile app's existing user base            | [Mobile push](./mobile-sdk-setup) + [in-app messages](./in-app-messages-setup) | Mobile SDKs cover both channels with one integration.                 |
| Engage website visitors                            | [Web push](./web-sdk-setup)                                                    | No app build needed; works in modern browsers.                        |
| Send time-sensitive alerts (OTPs, shipping)        | [SMS](./sms-messaging)                                                         | Fastest channel for high-priority transactional messages.             |
| Send rich, branded text messages                   | [RCS](./rcs-messaging)                                                         | Branded sender, read receipts, and rich media for Android recipients. |
| Stream live event data (sports, deliveries, rides) | [Live Activities](./live-activities)                                           | Ongoing iOS Lock Screen and Dynamic Island updates.                   |

## Set up your account and messaging channels

Your OneSignal App is where user and messaging data is stored. You can have multiple Apps in a single Organization for different projects, environments, or billing needs.

### Account and workspace setup

<Columns cols={2}>
  <Card title="Apps, Organizations, and accounts" icon="building" href="./apps-organizations">
    Your OneSignal App, Organization structure, and account settings.
  </Card>

  <Card title="Add team members" icon="user-plus" href="./manage-team-members">
    Invite collaborators and assign roles within your Organization.
  </Card>

  <Card title="Keys and IDs" icon="key" href="./keys-and-ids">
    Find your OneSignal App ID, Organization ID, and API keys.
  </Card>

  <Card title="Usage and billing" icon="credit-card" href="./billing-faq">
    Billing, invoices, and usage details.
  </Card>
</Columns>

### Messaging channels

OneSignal supports push notifications, in-app messages, email, SMS/MMS/RCS, and more! Choose your first channel and follow its setup guide — you can add more channels to the same app at any time.

<Note>
  Email and SMS can be configured without writing code. Push notifications and in-app messages require SDK integration — [invite a developer](./manage-team-members) to your team if needed.
</Note>

<Frame caption="Select a messaging channel in your OneSignal dashboard to begin setup.">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/set-up-messaging-channels.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=bf38c40f30d3cc8e6c8ddc12224642ee" alt="OneSignal dashboard showing messaging channel setup options including push, email, SMS, and in-app" width="1690" height="868" data-path="images/dashboard/set-up-messaging-channels.png" />
</Frame>

<Columns cols={3}>
  <Card title="Email" icon="envelope" href="./email-setup">
    Transactional and marketing email configuration.
  </Card>

  <Card title="Mobile push" icon="mobile" href="./mobile-sdk-setup">
    iOS, Android, Huawei, and Amazon push setup.
  </Card>

  <Card title="Web push" icon="globe" href="./web-sdk-setup">
    Browser-based push notification setup.
  </Card>

  <Card title="In-app messages" icon="window-maximize" href="./in-app-messages-setup">
    Rich, interactive messages displayed within your app.
  </Card>

  <Card title="SMS" icon="comment-sms" href="./sms-messaging">
    Text messaging for time-sensitive alerts.
  </Card>

  <Card title="RCS" icon="message" href="./rcs-messaging">
    Rich messaging with branded content and read receipts on Android.
  </Card>

  <Card title="Live Activities" icon="tower-broadcast" href="./live-activities">
    Ongoing iOS Lock Screen and Dynamic Island updates for live events.
  </Card>
</Columns>

## Add and organize your users

As users interact with your mobile app or website, OneSignal assigns each a **OneSignal ID** (the OneSignal User ID) and **Subscription IDs** for each device, email address, or phone number. A single User can have multiple Subscriptions across channels.

Users stay anonymous until you identify them with an [External ID](./users#external-id). This is a stable identifier from your system — typically your internal user ID — that lets OneSignal merge a User across devices, app reinstalls, and channels. Setting an External ID may change the User's OneSignal ID if that user already exists in the OneSignal app.

<Frame caption="OneSignal dashboard: Audience > Users">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/users-page.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=8992ef97cf3c9f336078f9dbf8a6374e" alt="OneSignal dashboard Users page showing a list of users with subscription details" width="2316" height="858" data-path="images/dashboard/users-page.png" />
</Frame>

<Columns cols={2}>
  <Card title="Users" icon="users" href="./users">
    Identified by External ID. One User can have multiple Subscriptions across channels.
  </Card>

  <Card title="Subscriptions" icon="address-book" href="./subscriptions">
    Email addresses, phone numbers, and devices that receive your messages.
  </Card>
</Columns>

### User properties

Store user data as **tags** (key-value pairs) and **custom events** (user actions). Both power message personalization and segmentation.

<Columns cols={2}>
  <Card title="Tags" icon="tags" href="./add-user-data-tags">
    Add custom properties to users for personalization and segmentation.
  </Card>

  <Card title="Custom events" icon="bolt" href="./custom-events">
    Trigger Journeys or wait-until actions based on User behavior.
  </Card>
</Columns>

### Segments and integrations

Segments are dynamic groups of users defined by tags, behavior data, or message interactions. They update automatically as data changes — for example, "Last session greater than a week" or "Added item to cart." Connect external platforms to enrich your data in real time.

<Frame caption="Creating a segment with a User Tag filter.">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e1801ce-4667771-Segment_Picker_3_1.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=e27107ac0e1975e8cb63b3cbb02822ee" alt="OneSignal segment builder showing a User Tag filter configuration" width="883" height="471" data-path="images/docs/e1801ce-4667771-Segment_Picker_3_1.png" />
</Frame>

<Columns cols={2}>
  <Card title="Segments" icon="chart-pie" href="./segmentation">
    Create dynamic audience groups using tags and behavior data.
  </Card>

  <Card title="Integrations" icon="plug" href="./integrations">
    Import User data from external platforms to power segments and Journeys.
  </Card>
</Columns>

## Send messages

Design and send single-message campaigns or automated multi-step Journeys from the OneSignal dashboard. Each channel has its own composer with preview, targeting, and scheduling options.

<Frame caption="Push notification composer in the OneSignal dashboard.">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/docs/007d277-f8b3231-message_1.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=d8d2e386bfa2ff742bfc6d3e6583f4d2" alt="OneSignal push notification editor showing message content fields and preview" width="790" height="627" data-path="images/docs/007d277-f8b3231-message_1.png" />
</Frame>

<Columns cols={3}>
  <Card title="Push notifications" icon="bell" href="./push">
    Send to web, iOS, Android, Huawei, and Amazon devices.
  </Card>

  <Card title="Email" icon="envelope" href="./email-messaging">
    Compose and send transactional or marketing emails.
  </Card>

  <Card title="In-app messages" icon="window-maximize" href="./in-app-messages-setup#triggers">
    Trigger rich, interactive messages based on User behavior within your app.
  </Card>

  <Card title="SMS, MMS, RCS" icon="comment-sms" href="./sms-composing-messages">
    Send text messages for time-sensitive alerts and updates.
  </Card>

  <Card title="Live Activities" icon="tower-broadcast" href="./live-activities">
    Ongoing iOS Lock Screen and Dynamic Island updates for live events.
  </Card>

  <Card title="Journeys" icon="route" href="./journeys-overview">
    Build automated, multi-step campaigns triggered by user behavior.
  </Card>
</Columns>

### Personalize your messages

Use tags, custom events, and dynamic data to tailor message content for each recipient. OneSignal uses **Liquid syntax** to inject tag values, custom event properties, and Data Feed content into message bodies and email subject lines (e.g., `Hi {{ first_name | default: 'there' }}`). Create reusable templates to maintain consistency across campaigns.

<Columns cols={2}>
  <Card title="Message personalization" icon="wand-magic-sparkles" href="./message-personalization">
    Personalize content with Liquid syntax, tags, Data Feeds, and custom data.
  </Card>

  <Card title="Templates" icon="clone" href="./templates">
    Create reusable message templates for push, email, and SMS.
  </Card>
</Columns>

### Journeys

Journeys are automated, multi-step campaigns that respond to User behavior — such as onboarding sequences, abandoned cart reminders, and re-engagement flows.

<Frame caption="Example abandoned cart Journey in the OneSignal dashboard.">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/be3ec1a-e61fae7-settings_Journeys_1.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=6f266cd498ccc2884a0fde9d35d2fd49" alt="OneSignal Journey builder showing an abandoned cart automation flow" width="1105" height="745" data-path="images/docs/be3ec1a-e61fae7-settings_Journeys_1.png" />
</Frame>

<Columns cols={2}>
  <Card title="Journeys" icon="route" href="./journeys-overview">
    Build automated, multi-step campaigns triggered by User behavior.
  </Card>

  <Card title="Journey examples" icon="book-open" href="./journeys-examples">
    Common patterns like onboarding, abandoned carts, and re-engagement.
  </Card>
</Columns>

### Send via API

Send messages programmatically for transactional use cases like order confirmations, OTPs, and billing alerts.

<Columns cols={2}>
  <Card title="Developer guides" icon="code" href="./developers">
    SDK and REST API documentation for engineering teams.
  </Card>

  <Card title="Transactional messages" icon="paper-plane" href="./transactional-messages">
    Send time-sensitive messages like OTPs, receipts, and shipping updates via API.
  </Card>
</Columns>

## Measure impact with analytics

Track message performance — including delivery, opens, clicks, and conversions — to understand what drives engagement and refine your strategy.

<Columns cols={2}>
  <Card title="Analytics overview" icon="chart-line" href="./analytics-overview">
    Review all analytics options available in OneSignal.
  </Card>

  <Card title="Event streams" icon="signal-stream" href="./event-streams">
    Stream message events like clicks, opens, and receives to your data warehouse in real time.
  </Card>

  <Card title="Export data" icon="file-export" href="./exporting-data">
    Export User and message data in CSV or API format.
  </Card>

  <Card title="Integrations" icon="plug" href="./integrations">
    Connect analytics platforms like Amplitude, Mixpanel, Segment, and more to OneSignal.
  </Card>

  <Card title="Conversion metrics" icon="arrow-trend-up" href="./conversion-metrics">
    Measure business impact like revenue and sign-ups with cross-channel last-touch attribution.
  </Card>

  <Card title="Goals" icon="bullseye" href="./goals">
    Set a target metric on a Journey and track progress on the Journey report.
  </Card>
</Columns>

## Next steps

Once you've sent your first message, deepen your setup with these guides.

<Columns cols={2}>
  <Card title="Journeys overview" icon="route" href="./journeys-overview">
    Move from one-off campaigns to automated, multi-step lifecycle messaging.
  </Card>

  <Card title="Message personalization" icon="wand-magic-sparkles" href="./message-personalization">
    Use Liquid, tags, custom events, and Data Feeds to personalize at scale.
  </Card>

  <Card title="Segmentation" icon="chart-pie" href="./segmentation">
    Build dynamic audiences from tags, behavior, and message interactions.
  </Card>

  <Card title="Mobile-first strategy" icon="mobile" href="./mobile-first">
    Lifecycle data model, Journeys, and patterns built for mobile apps.
  </Card>
</Columns>

## FAQ

### Do I need a developer to get started?

Not necessarily. Email and SMS channels can be configured without code. Push notifications and in-app messages require SDK integration, which may need a developer or AI assistant. You can [invite team members](./manage-team-members) with different roles at any time.

### Can I add more messaging channels later?

Yes. Add any combination of channels to the same OneSignal App. Each channel has its own setup guide — return to the [messaging channels](#messaging-channels) section to add a new one.

### What is the difference between a User and a Subscription?

A **User** represents one person, identified by an [External ID](./users#external-id). A **Subscription** is a specific channel endpoint — such as a device, email address, or phone number. One User can have multiple Subscriptions across different channels and devices.

### How long does initial setup take?

Email setup typically takes under 30 minutes if you have access to your domain DNS settings. SMS requires carrier registration, which can take a few days. Push notification setup depends on your app's platform and build process — plan for a few hours of developer time.

### Where do I find my API key and App ID?

In the OneSignal dashboard, go to **Settings → Keys & IDs**. Each app has its own App ID and REST API Key — never expose the REST API Key in client-side code. See [Keys and IDs](./keys-and-ids) for the full breakdown of which key to use where.

### How do I test my setup before sending to real users?

Configure [Test Users](./test-users) — devices, email addresses, or phone numbers flagged as internal — then use the **Send to Test Users** option in any composer. Test sends bypass segments and exclusions so you can preview rendering, deep links, and personalization on your own devices first.

### Can I migrate from another messaging platform?

Yes. The fastest path is to (1) install the OneSignal SDK alongside your existing provider, (2) call the External ID and Tag setters with the user IDs and attributes from your current system so identities map cleanly, and (3) once Subscriptions are flowing in, sunset the old provider. For email and SMS lists, you can also import historical Subscriptions via CSV — see [Users](./users) and [Subscriptions](./subscriptions) for the import patterns.

<Info>
  Need help?

  Chat with our Support team or email `support@onesignal.com`

  Please include:

  * Details of the issue you're experiencing and steps to reproduce if available
  * Your OneSignal App ID
  * The External ID or Subscription ID if applicable
  * The URL to the message you tested in the OneSignal Dashboard if applicable
  * Any relevant [logs or error messages](/docs/en/capturing-a-debug-log)

  We're happy to help!
</Info>
