Integration · Messaging and marketing

Sync subscription status to OneSignal tags

RevenueDot updates a OneSignal user's tags with every subscription event, so segments and messages follow the customer's status. Tags include subscription_status, active_subscription, product_id, entitlement_ids, expiration_at and last_event_type. OneSignal gets no events. RevenueDot uses the Update user API with your App ID and App API key.

What teams do with it

  • Message only customers whose active_subscription tag is true.
  • Send a win-back push to segments where subscription_status is expired.
  • Warn customers in a billing grace period before they lose access.
  • Target by product_id or entitlement_ids for plan-specific messages.

What RevenueDot sends

  • PATCH https://api.onesignal.com/apps/{app_id}/users/by/{alias_label}/{alias_id} with Authorization: Key <App API key> and a properties.tags object, on every step including test.
  • Tags: app_user_id, period_type, purchased_at, expiration_at (epoch seconds), store, environment, last_event_type, product_id, entitlement_ids (comma separated), active_subscription, subscription_status and grace_period_expiration_at.
  • last_event_type is the step in capitals, such as TRIAL_STARTED or RENEWAL. A test event sets only app_user_id, environment and last_event_type.
  • subscription_status values: active, intro, trial, cancelled, cancelled_trial, grace_period, expired, paused and the promotional ones.
  • Identity: $onesignalUserId (the OneSignal ID of the v5 SDKs) as the onesignal_id alias, else the app user ID as external_id, which you set with OneSignal.login.

Setup

How to connect OneSignal to RevenueDot

  1. 01

    Copy your OneSignal keys

    In OneSignal, open Settings → Keys & IDs and copy the App ID and an App API key.

  2. 02

    Link the user in your app

    Call OneSignal.login with your app user ID, or set $onesignalUserId to the OneSignal ID. Anonymous app user IDs are skipped without it.

  3. 03

    Open the integration

    In RevenueDot, open Integrations → OneSignal.

  4. 04

    Enter the keys

    Enter the App ID and App API key. RevenueDot checks that the App ID is a UUID.

  5. 05

    Connect and test

    Click Connect OneSignal, then Send test event for a logged-in customer and check the tags in OneSignal.

The OneSignal integration page in the RevenueDot dashboard, with its settings form
Captured from the RevenueDot dashboard with demo data.

How OneSignal deliveries are retried, logged and replayed

  • Retries: timeouts, 408, 425, 429 and 5xx answers retry after 5, 10, 20, 40 and 80 minutes. Any other 4xx fails at once, because sending the same request again cannot work. Fix the setting, then replay.
  • Delivery log: each delivery shows the request with every secret replaced by [redacted], the partner's answer, the HTTP status, the time taken and the number of attempts.
  • Skipped, with the reason: when there is nothing to send, such as a missing device ID, the delivery is marked skipped and says why. Retry sends it after your app sets the attribute.
  • Replay: Replay failed resends failed and skipped deliveries in bulk.
  • Sealed credentials: keys and tokens are encrypted with AES-256-GCM on the server and never shown again. The dashboard shows only the last four characters.
  • Safe retries: tags are absolute values, so a retried update is harmless.
  • Rejections: OneSignal reports problems as an errors list, and a non-empty list is logged as a rejection.

FAQ

OneSignal and RevenueDot

How do I sync subscription status to OneSignal?

Enter your OneSignal App ID and App API key under Integrations → OneSignal in RevenueDot and click Connect OneSignal. Each purchase, renewal, cancellation and expiration then updates the user's tags, such as subscription_status and active_subscription.

Does OneSignal get events or tags from RevenueDot?

Tags. OneSignal gets no events: each step updates the user's tags through the Update user API, which is what segments and messages read.

Why was a OneSignal update skipped?

The customer is anonymous and has no $onesignalUserId. OneSignal knows an anonymous customer only by its OneSignal ID, or by the external ID you set with OneSignal.login.

Is there a RevenueCat OneSignal integration alternative?

Yes. RevenueDot uses the tag names of RevenueCat's OneSignal integration (checked October 2026), so existing segments keep working. RevenueDot is open source and free to self-host.

Sources: OneSignal · OneSignal: update user API · RevenueCat: OneSignal integration. OneSignal is a trademark of its owner, used to describe compatibility. RevenueDot is not affiliated with or endorsed by it.

Get started

Send OneSignal every subscription event.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue. Integrations are included on every plan.

Already have an account? Sign in · Prefer your own servers? Self-host free