Event Specs
Datafly Signal uses a consistent set of snake_case event IDs across all verticals. These IDs are:
- The value sent in the
eventfield by Datafly.js (e.g.datafly.track('product_added', {...})) - The key used in your pipeline’s Per-Event Parameters configuration
- The stable identifier used for vendor event name mapping
Using the standard event IDs from these specs means your pipelines stay compatible with pre-built blueprints and vendor mapping tables — you won’t need to manually configure the event name for each destination.
How event IDs work
Every event flowing through Signal has an event field:
{
"type": "track",
"event": "product_added",
"properties": {
"product_id": "SKU-001",
"name": "Running Shoes",
"price": 79.99,
"quantity": 1,
"currency": "GBP"
}
}The pipeline engine looks up the event value against your Per-Event Parameters configuration. If a matching
section exists, those field mappings are applied on top of the global parameters before delivery to the vendor.
Built-in events
These events are sent automatically by Datafly.js without any track() call:
| Event ID | Sent by | Description |
|---|---|---|
page | datafly.page() | Page view. Fired automatically on each page load. |
identify | datafly.identify(userId, traits) | Links anonymous visitor to a known user. |
group | datafly.group(groupId, traits) | Associates user with a company or account. |
Vertical specs
Choose the spec that matches your business model. You can mix events from multiple verticals — a subscription news site might use both Publishing and SaaS events.
Property conventions
All event properties use snake_case:
// Correct
datafly.track('order_completed', {
order_id: 'ORD-1234',
revenue: 129.99,
currency: 'GBP',
products: [{ product_id: 'SKU-001', name: 'Trainers', price: 79.99, quantity: 1 }],
});
// Avoid
datafly.track('order_completed', {
orderId: 'ORD-1234', // camelCase — avoid
Revenue: 129.99, // PascalCase — avoid
});Standard monetary properties:
| Property | Type | Description |
|---|---|---|
revenue | number | Total revenue including tax and shipping |
value | number | Conversion value (use when revenue doesn’t apply) |
currency | string | ISO 4217 currency code (GBP, USD, EUR) |
price | number | Unit price |
Never include raw PII (email addresses, phone numbers, full names) in track() properties.
Use datafly.identify() to attach user traits — Signal hashes PII server-side before
delivering to vendors.