Your servers call ours. There is nothing to install.
Every connection starts on your side, as an ordinary outgoing HTTPS request. We hold no login to your database, put no software on your servers, and take no copy of your data. You send us what a customer did, and read missions, streaks, points and the shop back out.
A customer buys something. Here is every step until the reward reaches them.
A customer pays for an order. Your server sends us one message. We add the amount to their running total, check it against your missions and streaks, and work out what they earned. We then call a web address you gave us and tell you what they won. Your app decides what happens next: a badge, a push, or the free delivery.
Your code uses the API. Your staff use the dashboard.
Two separate entrances with two different kinds of login. Your servers authenticate with an API key. Your colleagues sign in with an email and password. Neither one can be used in place of the other.
Public API
your live traffic
This is what your code talks to. You send two kinds of message: something a customer did, such as a purchase, and something that changed about them, such as moving up a tier. You read back their missions, streak, points balance and the shop as JSON. A key works in one environment only.
The dashboard
people, signing in as themselves
This is the site your own staff sign in to with an email and password. They name the data you track, build missions, streaks and shop items, and read the reports. You create the roles yourself, so someone in marketing can build campaigns while someone in finance can only read the numbers.
A test campaign can never pay a real customer.
Every account comes with two separate environments: Sandbox for testing, Live for real customers. They hold different customers, different campaigns and different points, and nothing moves between them. Which one you reach is decided by the key you send, not by a setting someone can tick by mistake.
- Separate customers, missions, streaks, points and keys on each side. A test campaign cannot pay a real person.
- The key decides which side you reach, so nobody reaches real customers by mistyping a setting.
- A Sandbox key is refused by Live, so a leaked test key reaches no real customer.
- Create a campaign in both environments, rehearse it in Sandbox, then switch it on in Live.
Send this page to your engineers.
On a call we will walk them through the exact request, how the test and live environments are kept apart, and what happens when a request fails halfway through.