Event schemas
Every event TryMe records. 50 types, generated from the taxonomy itself.
The envelope
Every event carries the same envelope, whatever its type.
{
"eventId": "evt_...",
"type": "trial.claimed",
"version": 1,
"merchantId": "mch_...",
"source": "api",
"occurredAt": "2026-06-01T12:00:00Z",
"receivedAt": "2026-06-01T12:00:01Z",
"idempotencyKey": "...",
"payload": {}
}
occurredAt is when it happened; receivedAt is when we heard. They differ, sometimes by hours, and attribution windows use the first.
You can subscribe to these
A deliberately short list of events worth acting on, rather than everything the bus carries.
| Type |
|---|
trial.claimed |
fulfillment.shipped |
fulfillment.delivered |
attribution.created |
referral.converted |
credit.created |
credit.redeemed |
credit.expiring |
risk.blocked |
There is no trial.converted. A trial converting is an attribution.created, and a second name for one thing is how two systems start disagreeing about whether it happened.
Everything we record
| Type |
|---|
behavior.product_viewed |
behavior.cart_added |
behavior.checkout_started |
behavior.browse_abandoned |
offer.impression |
offer.clicked |
offer.dismissed |
campaign.published |
campaign.paused |
campaign.version_created |
trial.claim_started |
trial.claim_refused |
trial.claimed |
trial.reviewed |
trial.expired |
trial.cancelled |
trial.add_on_offered |
trial.add_on_selected |
trial.add_on_declined |
trial.add_on_converted |
commerce.order_created |
commerce.order_cancelled |
commerce.product_updated |
commerce.product_deleted |
commerce.customer_updated |
fulfillment.shipped |
fulfillment.delivered |
fulfillment.failed |
purchase.completed |
purchase.refunded |
message.sent |
message.delivered |
message.opened |
message.clicked |
message.bounced |
message.complained |
referral.sent |
referral.clicked |
referral.claimed |
referral.converted |
credit.created |
credit.redeemed |
credit.expiring |
credit.expired |
experiment.assigned |
experiment.exposed |
attribution.created |
attribution.reversed |
risk.flagged |
risk.blocked |