Funnel Events

Capture and transmit funnel interaction events with normalized answer payloads to power analytics and link user inputs to subscriptions and transactions.

We have developed a bespoke tracking system designed to capture user interactions seamlessly across all components where inputs are provided. This system collects and processes the values entered or selected by users in various input types — such as multiple choice questions, text inputs, number sliders, and more.

How We Capture Data

For each interactive component (e.g., multiple choice, text input, sliders), we extract the relevant values directly from the DOM elements associated with that component. These values are normalized into a consistent format defined by our internal AnswerPayload interface, which includes information such as:

  • The type of conversion (e.g., single choice, multiple choice, text answer, number answer)

  • The question ID and text

  • The user’s answer data (IDs, text, or raw values)

We also handle complex cases like multiple selections by merging answers appropriately to avoid duplication.

Event Payloads

All captured answers are packaged into event payloads that are sent to our backend for analytics and processing. These payloads follow a strict schema that ensures data integrity and type safety. The key events include:

  • FunnelStart — When a user starts interacting with a funnel

  • FunnelViewEnter and FunnelViewComplete — When a user enters or completes a view, including all answers submitted on that page

  • FunnelComplete — When a user completes the funnel

  • FunnelAbandon — When a user abandons the funnel

Each event payload includes a detailed answers array containing the conversions captured on that step, adhering to the formats like:

  • Single choice answer

  • Multiple choice answers (with merged selections)

  • Text answers

  • Number answers

Example Payload

Here is a simplified example of a FunnelViewComplete event payload including answers:

{
  "eventType": "FunnelViewComplete",
  "data": {
    "organizationId": "org_123",
    "trackingSessionId": "session_456",
    "funnelId": 789,
    "viewId": "view_001",
    "viewSlug": "user-info",
    "url": "https://example.com/funnel/view-1",
    "answers": {
      "q1": {
        "value": "Red",
        "viewSlug": "color-preference",
        "questionText": "What is your favorite color?"
      },
      "q2": {
        "value": "John Doe",
        "viewSlug": "name-input",
        "questionText": "Please enter your name"
      },
      "q3": {
        "value": ["Hiking", "Reading"],
        "viewSlug": "hobby-selection",
        "questionText": "Select all hobbies you enjoy"
      }
    }
  }
}

Last updated