track() accepts known Bily event names and your own non-empty string names.
Give every outcome one stable name
Use snake_case for application events:workspace_createdintegration_connectedcontacts_importedcampaign_launchedproduct_error_encountered
Track the result, not the attempt
workspace.ts
campaign.ts
Correlate one logical outcome
The SDK createsevent_id and ts when you omit them. Provide a stable event ID when more than one system can report the same business outcome.
event_id for one logical outcome. Never reuse it for a later outcome.
Track while Bily loads
Calltrack() immediately after init() if needed. The SDK keeps calls while Bily loads and delivers them in order when ready.