Skip to main content
Welcome to the Userpilot Event Data Schema documentation! This guide provides a comprehensive overview of the structure, attributes, and relationships of events exported from Userpilot. It is designed to help data analysts, engineers, and business users understand and utilize Userpilot event data for integration, analytics, and reporting purposes. Below, you’ll find detailed explanations of each event field, example payloads, and best practices for working with Userpilot data in your own systems.

Event Structure

Internal Event ID

The internal_event_id is a unique identifier for each event, calculated using the xxHash64 algorithm on a composite key consisting of the following fields:
  • app_token
  • event_type
  • event_name
  • user_id
  • company_id
  • inserted_at
This identifier provides a deterministic way to uniquely identify events based on their core attributes, which is useful for deduplication and event tracking across systems.

Event Name & Type

The event_name field tracks the name of the event and varies depending on the event_type:
  • For identify_user, identify_company, session_start, and page_view events: This field will be empty.
  • For track events: The value will represent the name of the event being passed programmatically or through the button-tracking feature.
  • For track_feature events: The value will contain the id of the tracked feature tag.
  • For interaction events:
    • The format is {entity_type}:{entity_id}:{entity_interaction_status}
    • Example: checklist:2:SEEN, experience:448:DISMISSED, resource_center:1:ENGAGED, experiment:9:SEEN.
    When a flow is part of an experiment, both experiment:* and experience:* events are generated to track experiment participation and flow interaction respectively.

Source

The source field indicates where the event was captured. The default value is web-client, but it can vary depending on the source of the event:
  • web-client: Captured through the web SDK.
  • backend-http: Captured via HTTP endpoints.
  • backend-hubspot: Captured through the HubSpot integration.
  • backend-salesforce: Captured through the Salesforce integration.
  • backend-segment: Captured through SegmentIO integration.

Attributes Schema

The metadata field varies depending on the event type:
  • For identify_user, identify_company, and track events: This field will contain custom attributes passed during the event tracking.
  • For page_view, session_start and track_feature events: This field will be an empty object.
  • For interaction events: Attributes vary based on the engagement entity type and provide specific interaction details (see below).

Interaction Attributes

Below are common interaction events and the relevant attributes associated with each.

Surveys (survey_module events)

Example:

Checklists (checklist and checklist_task events)

Example:

Resource Center and Articles (resource_center, resource_center_article events)

Example:

NPS Events

Example:

Flow and Flow Steps (experience, experience_step events)

Example:
Flows in Experiments: When a flow is part of a test experiment, the system generates BOTH experiment:* and experience:* events:
  • experiment:* events track experiment participation and variant assignment
  • experience:* events track flow interaction

Experiments (experiment events)

When flows are used testing experiments, Userpilot tracks experiment participation through dedicated experiment events. These events capture which variant (test group) a user was assigned to. Variant Values: The variant attribute indicates which test group the user was assigned to. Possible values are “A”, “B”, or “C” depending on the experiment type (Controlled A/B Test, Head-to-Head A/B Test, or Controlled Multivariate Test). For more details on experiment types and how variants are assigned, see the Experiments documentation. Example:

Key Data Entities & Relationships

  • Users: Identified by user_id, with metadata (traits like email, signup_at, plan_type).
  • Companies: (B2B) Identified by company_id, with properties (e.g., company_name, industry).
  • Events: Actions or occurrences, each as a JSON line.
  • Sessions: Grouped events within a continuous user activity period, identified by session.

Relationships

  • A User can perform many Events.
  • Multiple Events can occur within a single Session.
  • A User may belong to one Company.

If you encounter any problems or have questions not covered in this documentation, please reach out to the Userpilot support team through your usual support channels (e.g., in-app chat, email support@userpilot.com). Provide as much detail as possible about your issue for a faster resolution.