Features

One SDK. The rest is how a send is aimed.

Xulo sends a mobile push and draws a native card. They share one audience. A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.

Start for free

01

The notification

A push carries a title, a body, an image, and a link. The image is attached on the device. If the image fails, the text still arrives.

The link can be a screen inside the app or an https address. The app opens the screen when it knows the address. Otherwise an https link opens in the system browser.

Mobile push →
9:41 Now
X

Xulo

Your order is on the way

It arrives today, before 20:00.

×

Arriving today

Open the card to follow the delivery.

Track order

02

The card inside the app

The card is drawn natively in the app. It can show when the app comes to the foreground, or when the app calls a name you set. It is not a web page, and it is not sent through Apple’s push service.

An open is the app coming to the foreground. The card can show once on the next open, on every open, on the first open only, on the open you number, or after a specific push. A name is one line of code at the moment you choose. The call is not stored. If the app never calls it, that card does not show.

Image, title, body, one button, link, colors, and a close button. It can sit in the center, full screen, or as a banner on the top or the bottom edge. The center dims the app. A banner does not. One card shows at a time. If several match, the newest published card wins. An impression is not on the bill.

In-app →

03

The same audience

Push and the card use the same people. A segment, a tag, an external id, the install id, or a test device.

Xulo keeps an install id that survives a token refresh. A reinstall gets a new one. Language, country, and app version can narrow the list. A tag is a text key the app writes. It chooses who receives the send. It is not a mail-merge of a person’s name.

04

What they have spent

The app, or a shop’s server, records a purchase: an amount, a currency, and an order id. The same order id replaces the previous amount. A refund is that order written again with what remains. The person page keeps the lifetime total for each currency, and the orders.

A segment picks a window: the last 24 hours, the last 7 days, the last 30 days, or all time. Inside it, people who spent, people who did not, or people who spent at least an amount in one currency. Currencies are not converted. Phones and a website order add up when they share an external id. It is included. It is not a separate charge.

05

Who comes back

The panel keeps the day a device first opened, and the later days it opened. For devices first seen on one day, it shows the share that opened the app again on day 1, on day 7, and on day 30.

That is the last-open record, kept by day. It is not how long a session lasted. It is not a custom event. It is not a list of people. It does not add a fee.

A

Your order is on the way

It arrives today, before 20:00.

B

Arriving before 20:00

Open the app to follow it.

06

Two variants

A send can be two variants of a push, or two variants of the card. Title, body, image, and link can differ. The audience is split evenly.

A person still approves. Xulo does not pick a winner. Card variants keep their own impressions, dismisses, and button clicks.

07

A clock time on each device

A scheduled push can arrive at the same clock time in each device’s timezone. The SDK reads that timezone from the device settings when the app opens. Not from GPS, and not from the network address.

A device that has never opened has no timezone yet. None is invented.

London09:00
New York09:00
Tokyo09:00

The same hour on the clock. Not the same moment.

Cursor
OpenAI
Anthropic
Windsurf

08

One address for the agent

The address is https://mcp.xulo.io/mcp. The tool opens a sign-in screen, you allow it, and it comes back. Continue, Cursor, OpenAI, Windsurf, Anthropic, Google Antigravity, Cline, and Grok use that same address.

The agent can create the app, store the Apple key, write a push or an in-app card, and import an audience from OneSignal, Pushwoosh, or a CSV. Writing the draft does not send it. A person says yes. Then it sends.

09

One price, per app

The first 1,000 monthly active users on an app are free. After that, $6 per 1,000. Apps do not pool. A monthly active user is a device that opened the app in the last 30 days. Push permission is not required. In-app impressions are not a charge. An A/B split, a local-time send, a purchase record, and the return rate do not add a fee.

See the price →

A new app

$0

Then, on that app

1,000

Free monthly active users. The next thousand is $6. A second app does not spend this one.

On this product

Questions

What does Xulo offer?

Mobile push and a native in-app card, in one SDK. They share an audience. The first 1,000 monthly active users on an app are free. After that, $6 per 1,000. Apps do not pool.

Do mobile push and in-app need two SDKs?

No. Both are in one SDK for a native iOS app. The app adds it once. There is no second package for the card.

Do mobile push and in-app use the same audience?

Yes. A segment, a tag, an external id, the install id, or a test device can receive either. The card is not sent through Apple’s push service.

Can a segment use what someone has spent?

Yes. A purchase is an amount, a currency, and an order id. The person page keeps the lifetime total for each currency. A segment picks the last 24 hours, the last 7 days, the last 30 days, or all time. Inside that window it can be people who spent, people who did not, or people who spent at least an amount in one currency. Currencies are not converted.

Can a shop send its orders?

Yes. The iOS SDK records a purchase on the open install. A shop does not run the SDK. Its server sends the same record with an external id when the order is paid. Phones and the shop add up when they share that id. The same order id replaces the previous amount, so a refund is that order written again with what remains.

What does the return rate show?

For devices first seen on one day, the share that opened the app again on day 1, on day 7, and on day 30. The panel keeps the first open day and the later open days. That is the last-open record, kept by day.

Is the return rate a list of people?

No. It is not a list of people, not how long a session lasted, and not a custom event. It does not add a fee.

Can a push be followed by the card?

Yes. After a specific push, the card can show on the next open of the devices that received that push. An open is the app coming to the foreground. The card can also show once on the next open, on every open, on the first open, on the open you number, or when the app calls a name you set. That call is not stored.

Who sends?

The panel or an agent at https://mcp.xulo.io/mcp can draft the message, the audience, and the card. A person says yes. Writing the draft does not send it. The send can be two variants, or a clock time in each device’s timezone.

Does a new app pay?

A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.

Share
Summarize with

One price, on each app.

A new app starts free. No users, nothing to bill.