Docs
Track events
Events are the atoms of Vertex: a name, a user, a timestamp and a bag of properties. Everything else — funnels, retention, alerts — is derived from them.
The track call
Call vertex.track with an event name and an optional properties object. Names are case-sensitive; properties can be strings, numbers or booleans and become filterable dimensions in every report.
vertex.track('signup', {
plan: 'growth',
referrer: 'lorem-newsletter',
trialDays: 14,
});Identify users
Anonymous visitors get a device id automatically. Once someone logs in, call vertex.identify with your own stable user id — Vertex stitches the anonymous history onto the identified profile so funnels survive the login boundary.
vertex.identify('user_1024', {
plan: 'starter',
company: 'Dolorsoft',
signupAt: '2026-06-01',
});Naming conventions
Pick one convention on day one and enforce it in code review; renaming events later splits your history. We recommend lowercase object-verb names.
Good: 'invoice-paid', 'funnel-created', 'report-shared'. Avoid: 'Clicked The Big Green Button', 'event27', 'tmp-test-final-2'.
Server-side events
Anything that happens outside a browser — webhooks, cron jobs, payments — should be sent from your backend with a secret key. Server events merge with browser events on the same userId.
curl -X POST https://api.lorem.example/v1/events \
-H "Authorization: Bearer $VERTEX_API_KEY" \
-d '{"event": "invoice-paid", "userId": "user_1024", "properties": {"amountCents": 2900}}'