// event types
Event Types
Events are the heart of customer.log. Get the shape right and everything downstream — the feed, Slack messages, and AI summaries — gets better.
Channels
A channel is a user-defined grouping: "signups", "payments", "errors", or anything you invent. Every event belongs to exactly one channel, and channels are how you filter the feed.
Channels are auto-created the first time you log to them — no schema to register upfront. Predefined types (signups, payments, projects, navigation, events, errors) come with sensible defaults out of the box.
Anatomy of an event
Designing for AI summaries
The daily digest and weekly report are generated from your events, so write them for both humans and models:
- Write titles as plain sentences: "Payment failed", not "chrg_fail_204".
- Use message for context that can't fit in metadata.
- Put repeatable facts in metadata — amounts, plans, sources, IDs.
- Keep tags consistent ("oauth", "growth") so patterns become visible.
Custom channels and MCP
Custom channels work everywhere: SDKs, cURL, and the hosted MCP server. An MCP agent can call log_event with any channel you define, then use list_channels or get_recent_events to work with it.
Webhooks
Configure a project webhook from the project integration settings or the API. Every incoming event is delivered as a JSON customerlog.event payload. When a secret is configured, verify the X-CustomerLog-Signature header as sha256=HMAC_SHA256(secret, timestamp + "." + rawBody).