Event SpecsOverview

Event Specs

Datafly Signal uses a consistent set of snake_case event IDs across all verticals. These IDs are:

  • The value sent in the event field 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 IDSent byDescription
pagedatafly.page()Page view. Fired automatically on each page load.
identifydatafly.identify(userId, traits)Links anonymous visitor to a known user.
groupdatafly.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:

PropertyTypeDescription
revenuenumberTotal revenue including tax and shipping
valuenumberConversion value (use when revenue doesn’t apply)
currencystringISO 4217 currency code (GBP, USD, EUR)
pricenumberUnit 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.