Connecting OneSignal to your internal systems like a data warehouse, CRM, or data management platform (DMP) unlocks powerful capabilities for real-time, personalized, and scalable messaging. Whether you’re using Salesforce, a custom user system, or another platform, integration enables you to:
  • Send personalized, time-sensitive messages using live data
  • Sync user attributes and message data between systems
  • Use your internal system as the source of truth while leveraging OneSignal’s messaging infrastructure
This guide walks through common use cases, integration methods, and setup best practices.

Database integration


Benefits of database integration

Personalized messaging at scale Use data from your internal systems to personalize messages in real-time:
  • Add Tags to store user attributes in OneSignal for segmentation or content personalization.
  • Pass custom_data in the Create message API to personalize without storing data permanently.
Trigger time-sensitive messages Send messages instantly when key events occur in your system, such as:
  • Orders placed
  • Subscription renewals or expirations
  • Milestone achievements
  • Trigger using:
Unified user identity with External ID and aliases OneSignal supports external_id as a stable cross-platform user ID and up to 10 custom aliases per user (e.g., crm_id, facebook_id).

Data flow

User identity structure

Use external_id as your primary user identifier across systems. You can attach other aliases or identifiers for flexibility. If no global user ID exists, OneSignal/Subscription IDs can be used but require extra handling, as they are anonymous until linked. See Users and Subscriptions for more information.

Send user data to OneSignal

Use our REST API to create and update users in real time. We also support CSV import for bulk onboarding or updates.

Export data from OneSignal

To retrieve data from OneSignal:

Send custom events to OneSignal

Send Custom Events to trigger Journeys by syncing data from your warehouse directly to OneSignal.
Beta feature. Email integrations@onesignal.com for access.
Supported Integrations OneSignal integrates with many sources to sync custom events. See Custom Events for a list of supported integrations. Getting started
  1. Navigate to Data > Integrations in your OneSignal dashboard.
  2. Look for the Beta: Sync data from your favorite data warehouse banner.
  3. Click Sync Data to access the configuration for data ingestion.

Sync data from your data warehouse

1. Connect your data source

If you don’t see a data warehouse listed, or if you have questions about how to set up an integration - please let us know by emailing integrations@onesignal.com. We’re currently taking requests to expand our integration offerings.

2. Create your sync

  • Click Add Sync
  • Select Any Warehouse Table
  • Choose your connected data source
  • Select your schema and table
    • For Google Sheets: Use the table dropdown to select specific sheets within your document.

3. Configure your destination

  • Select OneSignal as connection
  • Choose Custom Event as object type
  • Keep Create Only as sync behavior
  • Map your identifier column to OneSignal External IDs

4. Choose Your Data Fields

  • Select which columns to sync to OneSignal:
    • Supported types: Text, numbers, booleans, dates, times
    • Usage: These fields become available for journey segmentation
    • Recommendation: Sync only the fields you’ll use for targeting

5. Test and Deploy

  • Test your sync to verify data flows correctly
  • Add a descriptive label (can’t be changed later)
  • Set your trigger: Manual, scheduled, or sequential. We recommend selecting sequential for ingesting custom events.
What Happens Next?Your custom events will appear in OneSignal’s events index, ready to use in journeys based on user behavior and data from your warehouse. Each sync option has specific details needed to connect to your account - please reach out to us at integrations@onesignal.com with any questions about individual settings.

Where should data live: OneSignal or your database?

Decide based on the data’s purpose:

What to store in OneSignal


Triggering messages from your database

You can trigger messages using two approachesβ€”choose one or both based on your use case.
Use the Create message API for immediate, transactional messaging.Target users via:
  • external_id
  • Aliases (e.g., crm_id)
  • Email or phone number
Best for:
  • Transactional messages (e.g., receipts, alerts)
  • Time-sensitive or personalized notifications
  • Targeting individuals or groups (up to 20,000 users per call)
You can also schedule messages using the send_after parameter.