Skip to content
Launching Oct 10 — OpenPush is free forever to 1M MAU per app, every feature included. Get early access →
ProductJourneysLive ActivitiesPricingCompareDocsChangelogMigrate from OneSignalSign in
Home / Intelligent Delivery & OpenPush AI
Intelligent Delivery · OpenPush AI · free

Each person's own hour.

The biggest lift most apps ever see from push is not better copy — it is sending when that person actually looks at their phone. Intelligent Delivery learns each device's hour from its own sessions and taps and sends then, spread across the day, with quiet hours and caps still enforced. Elsewhere this sits behind an upgrade. Here it is a radio button in the composer, free.

Three modes · now · each person's learned hour · a chosen local time per timezone · the same delayed_option on the API as OneSignal
01 · How it decides

Three signals, one hour, no black box.

Every decision is explainable on the person's page in the console: which hour, and why.

01 · Learn

Sessions and taps, by hour

Each session the SDK reports and each first tap on a push adds weight to that device's hour of day. Taps count for more than opens; replays never inflate. Old evidence decays over a month, so a person who moves timezones is followed, not fossilised.

02 · Decide

Personal, blended with the app's pattern

Each device's hour is a blend of its own decayed history and the app-wide pattern in its local time — the more evidence a device has, the more personal the hour, and the profile shows the confidence. With no personal evidence it follows the app's pattern; a brand-new app with no history at all sends now, so a first install never waits a day for its welcome.

03 · Send

Spread, held, reported

Sends land inside the chosen hour, jittered so a campaign does not fire in one second, and never inside quiet hours or over a frequency cap. The report shows how far the spread has run and what basis each device got.

# the same field OneSignal's API uses POST /v1/apps/{app_id}/messages { "template_id": "tpl_daily_reward", "included_segments": ["Active Subscriptions"], "delayed_option": "last-active" } # each device's learned hour { "template_id": "tpl_flash_sale", "included_segments": ["Spenders"], "delayed_option": "timezone", "delivery_time_of_day": "9:00AM" } # nine in the morning, everywhere

A per-person send can take up to a day to finish; the audience is fixed when sending starts. Exact rules in the API reference.

02 · Example — the daily reward

Same push, three people, three hours.

Commuter · enough evidence

Sent at their 8am

Forty sessions in the morning window over the last month. Basis on their profile: personal.

Night player · enough evidence

Sent at their 11pm

Same push, same campaign, fifteen hours later — inside the app's quiet-hours setting? Then held until the window opens, and the report says so.

New install · no evidence

Sent at the app's hour

No personal history yet, so the app-wide pattern in their timezone decides. Basis: app-default. Next week they will have their own.

03 · OpenPush AI

Compose, translate, summarise — nothing sends by itself.

A model in the console, on a short leash. It drafts into the form for you to review; it never presses send.

Compose

Grounded in what already worked

A plain-English prompt becomes a title, a body and a campaign name — written against your own app's best-performing messages, verbatim, plus feature-level patterns pooled across apps. Never another app's copy.

Translate

Every language row, filled

Add languages to a template and fill them in one click; personalization tokens pass through untouched. Review, then send.

Summarise

Your audience, in plain English

On click, a few sentences on audience health, recent sends and one suggestion — for the teammate who does not read funnels.

Agents

Agents, with the caps still yours

OpenPush AI drafts segments and journeys for your approval, and your own coding agent can do the same over MCP — all inside the frequency caps, quiet hours and holdout floors the server enforces. A model proposes; the platform decides what can go out, and nothing sends until you confirm.

Model calls are server-side only; the provider is listed on the sub-processor page. No subscriber data is sent to the model.

Straight answers

Questions.

Is Intelligent Delivery free?

Yes, on every app, to a million MAU. It is a radio button in the composer and a field on the API.

Does it need a new SDK?

The learned-hour mode gets sharper with the session signal the current SDKs send; taps on pushes count on any version. The timezone mode needs nothing but a timezone on the device, which the SDK already reports.

What if I need a push out right now?

Choose "now". Transactional pushes — a code, a receipt, a security alert — should never wait for an hour, and the composer says so.

Does it work with Journeys?

Journeys send at the step they reach; per-person timing inside a journey step is on the roadmap. Quiet hours and caps apply inside journeys already.

Send when they look

Not when you press the button.

Free forever to 1M MAU · read the pledge