Skip to main content
Events in Permutive consist of a name and properties object. Properties provide the context and data that powers cohort building and insights.

Property Types

Event Structure

Best Practices

Event Structure

Every event has a name and properties:

Automatic Properties

The SDK automatically adds these properties to every event:

Property Types

Permutive supports several property types:

Standard Events

The SDK defines standard event types with expected properties:

Pageview

Tracked automatically by the web addon:

Custom Event

For non-standard tracking:

Property Naming Conventions

Follow these conventions for consistent data:
Property names are case-sensitive. category and Category are different properties. Be consistent across your implementation.

Reserved Property Names

Avoid these reserved property names:
  • time - Automatically set by SDK
  • session_id - Automatically set
  • view_id - Automatically set
  • client - Reserved for client context
  • geo_info - Reserved for geographic data

Nested Properties

You can nest properties up to 3 levels deep:
Deeply nested properties work in cohort building, but keep structures simple when possible for easier querying.

Arrays

Arrays are useful for multi-value properties:

Array Limitations

  • Maximum 100 items per array
  • Array items should be of consistent type
  • Nested arrays are not recommended

Page Properties vs Event Properties

Set via the web addon, applied to all events on the page:

Best Practices

Use the same property names and types across all events:
Never include personally identifiable information:
Keep events focused with relevant properties only:

Property Validation

The SDK validates properties before sending:
  • Invalid property types are converted or dropped
  • Very long strings may be truncated
  • Invalid JSON structures are rejected
Enable debug mode to see validation messages:

Troubleshooting

Problem: Event tracked but properties missing in dashboard.Solutions:
  • Check property names match dashboard schema
  • Verify property types are correct
  • Enable debug mode to see what’s sent
  • Allow time for data processing
Problem: Numbers stored as strings or vice versa.Solutions:
  • Explicitly cast types before tracking
  • Use parseInt() or parseFloat() for numbers
  • Avoid string representations of numbers
Problem: Can’t build cohorts on deeply nested properties.Solution: Flatten structure or limit nesting to 2 levels:

Event Tracking

Track custom events

Pageview Tracking

Configure page properties

Cohorts

Build cohorts from properties

Connectivity Events

Event schema documentation