Overview
Custom events track user actions from external systems (e-commerce, CRM, analytics). They appear in the contact timeline and enable goal-based segmentation for building RFM (Recency, Frequency, Monetary) segments.Contact Timeline
Every custom event creates an entry in the contact timeline, giving you a complete history of user interactions:
event_name as the timeline entry type (e.g., “order.completed”, “subscription.started”). The properties field stores additional context visible in the timeline details.
Goal Types
Goals are the key to building powerful segments. Each event can optionally track a goal:Building RFM Segments
RFM (Recency, Frequency, Monetary) analysis identifies your best customers. Use the segment builder with “Custom Events Goals” conditions:
Monetary: Total Spend
Select goal type “purchase”, aggregate “sum”, and set a minimum value to find high-spending customers.Frequency: Purchase Count
Select goal type “purchase”, aggregate “count”, and set a minimum number to find repeat buyers.Recency: Recent Activity
Use the timeframe filter “in the last X days” to find customers with recent purchases.Example RFM Segments
- VIP Customers: Spent $1000+ AND 5+ orders AND purchased in last 60 days
- At-Risk High-Value: Spent $500+ AND no purchase in 90 days
- New High-Potential: First purchase over $200 in last 30 days
Aggregate Options
Timeframe Options
Tracking Events
Single Event
Batch Import
Import up to 50 events at once:Event Name Format
Event names must be lowercase using letters, numbers, dots, underscores, hyphens, or slashes:order.completedsubscription/startedform_submituser-signup
Handling Refunds
Use negativegoal_value for refunds to keep accurate LTV calculations:
Notes
- Contacts are auto-created if they don’t exist
- Events update only if
occurred_atis newer than existing - Soft-delete by setting
deleted_at(set tonullto restore) - See API Reference for complete endpoint documentation
