Contents
Guided setup
Integrations
Events API
Self hosting
Group events with contexts
Contexts help you connect related events. This is great for jobs, workflows, and multi-step tasks.
How it works:
- First event: set
contextIdandcontextStart: true. - Follow-up events: use the same
contextId.
await ops.events.log({
name: "daily billing sync started",
avatar: "🧾",
contextId: "billing_sync_2026_02_28",
contextStart: true,
});
await ops.events.log({
name: "processed invoices",
contextId: "billing_sync_2026_02_28",
content: "198 invoices processed",
});
await ops.events.log({
name: "daily billing sync finished",
contextId: "billing_sync_2026_02_28",
type: "rows",
content: [
{ label: "Succeeded", content: 194 },
{ label: "Failed", content: 4 },
],
});
Tip: make contextId easy to predict, like job_1234 or signup_user_55.