For data teams
Your mobile events, in your database, from day one.
grovs writes every link, app, message and purchase event to data stores you run. Query it directly, stream it to your warehouse, or pull it on a schedule.
Tuesday 21 October
9:41
Event stream healthy
4.82M events delivered today.
Export ready
Q3 events, 12.4M rows.
Replay complete
Warehouse back in sync.
Destination
Warehouse (S3)
Streaming
Versioned events
Replay available
Delivered today
100%
1.2s average lag
What your team can build with grovs.
Five jobs a data team owns. Pick one to see the events, the queries and the result.
SELECT source, count(*) FROM installs GROUP BY source
SQL on raw events
Query the events in your own database. No export queue.
A stable event format
Versioned JSON with an id, type, time, user and properties.
Your side from the start
Events are written to stores you run before anything else.
Every event, not a sample
Clicks, installs, sessions, messages and purchases, all kept.
Your own cohorts
Build retention from the same events the dashboard uses.
No per-event bill
Flat pricing, so keeping every event doesn't cost more.
What changes.
How data & analytics teams work today, and what they do with grovs instead.
Direct access
Export requests, vendor rate limits and a day's wait.
SQL on the raw events, in a database you run.
Every event
Sampled or pre-aggregated data.
Every click, install, message and purchase, in a versioned format.
No lost loads
Gaps whenever an endpoint was down.
Delivery pauses, resumes and can be replayed.
Revenue you can defend
App-reported purchases, refunds and test orders included.
Purchases validated with Apple and Google.
Easier reviews
Another processor in every vendor review.
Self-hosted in your cloud, with deletion on request.
Questions you can answer.
Real questions, answered with SQL on the raw events in your own database.
Which channels bring users who stay?
SELECT source, count(*) AS users, avg(active_d30) AS d30 FROM installs GROUP BY source ORDER BY d30 DESC
How much revenue did the spring sale bring?
SELECT channel, sum(amount) FROM purchases WHERE campaign = 'spring' AND validated GROUP BY channel
Did the day-one nudge work?
SELECT variant, avg(trained_7d) AS rate FROM message_exposure WHERE journey = 'day-one' GROUP BY variant
Where do links land?
SELECT resolved_to, count(*) FROM link_opens WHERE ts > now() - 30d GROUP BY resolved_to
Planning your data setup?
Other use cases or flows to measure? Ask an engineer.
Examples, step by step.
One example per job: the event, where it goes, and the query that answers the question.
Northbank · Own the raw events
From a tap to a row in your database.
- LinkQRnow
Northbank
Activate your new card
Scan with your phone camera.
Scan with your camerago.northbank.com/activate
1A customer taps a link
A card-activation letter's QR code opens the app.
- Your dataevents · link.opened
{ "v": 3, "type": "link.opened", "user": "u_8fk2", "link": "card-letter", "platform": "ios" }2The event, as written
A versioned event lands in your database as it happens.
- Your dataquery.sql
SELECT platform, count(*) FROM link_opens WHERE link = 'card-letter' GROUP BY platform
platformcountios7,912android6,8043Your query, your answer
Activations by platform, straight from the raw table.
What you'll measure.
Delivery status for each destination, at a glance. Illustrative numbers.
Event delivery · today
| Destination | Events | Delivered | Lag | Status |
|---|---|---|---|---|
| Warehouse (S3) | 4.82M | 100% | 1.2s | Streaming |
| Ingest endpoint | 4.82M | 100% | 0.8s | Streaming |
| Nightly pull job | 4.79M | 100% | — | Last run 02:00 |
Features you'll use.
All included on every grovs plan, cloud or self-hosted.
- DataYour data storesEvents written to databases you run and query.Learn more
- DataEvent streamEvery event sent to the destinations you choose.Learn more
- DataREST APICreate links and read data from your own systems.Learn more
- DataReplaySend past events again when a destination was down.Learn more
- DataRetention controlsDecide how long each kind of data is kept.Learn more
- RevenueValidated revenueRevenue confirmed by the stores, not just reported by the app.Learn more
Questions, answered.
Something else? Talk to an engineer.
Where does the data physically live?
In data stores you run, inside your cloud or data center. On grovs Cloud it lives in a dedicated project for your account.
How do we get it into Snowflake or BigQuery?
Stream events to S3 or an HTTPS endpoint and load from there with the tools you already use.
What does an event look like?
A versioned JSON envelope with an id, type, timestamp, user and properties, so consumers can parse and deduplicate safely.
What happens if our endpoint goes down?
Delivery pauses and resumes from where it stopped. You can also replay from an earlier point.
Can we delete a user's data?
Yes. Deleting a user removes their events and profile, which supports GDPR and similar requests.
Your first link, live this afternoon.
Install the SDK, connect your domain and send a link that opens the right screen. Start free on grovs Cloud, or run the same stack in your own.
Compare plans$0up to 10K monthly users
- Sign up and add the SDK
- Your first link live the same day
- Flat yearly price as you grow
Flat licencea year, in your cloud, no metering
- AWS, Azure, GCP or your data center
- Deployment help from our engineers
- Your SSO, your database, your rules