Naming Conventions

  1. Event Names: Use snake_case for event names (e.g., product_viewed, checkout_started)
  2. Field Names: Use snake_case for all field names (e.g., product_id, first_name)
  3. Consistency: Maintain consistent naming across all events
  4. Clarity: Use descriptive, self-documenting field names

Best Practices

  1. Include all required fields in every event
  2. Provide optional fields when available for richer personalization
  3. Use consistent currency codes (ISO 4217: INR, USD, EUR)
  4. Format timestamps in ISO 8601 format with timezone
  5. Validate data types before sending events
  6. Include customer identifiers (customer_id or email) for tracking
  7. Use proper nested objects for addresses and product arrays
  8. Maintain data privacy - only send necessary customer data

Template Personalization

Access attributes in email/WhatsApp templates using handlebars syntax:
{{attributes.product_name}}
{{customer.first_name}}
{{attributes.currency}}{{attributes.price}}
Array iteration:
{{#each attributes.products}}
  {{product_name}} × {{quantity}}
{{/each}}
Conditional logic:
{{#if attributes.discount_percentage > 0}}
  Save {{attributes.discount_percentage}}%!
{{/if}}