Data model

Primary Flywheel object types

Flywheel creates profiles for three main categories of “objects”, represented in the left navigation. These objects are:


Contacts are unique IDs (or email addresses) who trigger events on your website, in marketing assets like emails, or in your product. No matter where the events take place, Flywheel will consolidate all the activity for each unique ID into a single profile. This is different from most analytics tools that focus only one source – marketing or in-product events. 

Contacts can trigger multiple types of events. These event types are:

All four of these events are tracked at the Contact level and are displayed as a chart on each Contact’s profile, as well as in a chronological timeline. 

Flywheel is careful to store all your events, even when the person triggering them is anonymous. The reason for this is so that Flywheel can backfill pre-signup data. If someone signed up for your product yesterday, but had visited your homepage 6 times last week, Flywheel will mark their previous behavior on their timeline after learning their email.


Contacts generally belong to an Account. An Account is a company or organization with a unique domain URL. For example, is associated with an Account called Soarwheel, which has its employees under it as Contacts.

Accounts have data fields unique to them, such as Industry, Employee count, Domain, and Pacing. These are used by Flywheel to tell you which of your tactics are effective with different company sizes, industries, and more.

However, Accounts themselves don’t trigger events – the Contacts who belong to them do. Thus, Flywheel will sum all of the events from all of the Contacts belonging to an Account and will display them as a graph and timeline. You’ll be able to see which contacts triggered which events in the timeline.


At this point, Flywheel is creating a unified profile for each Contact, backfilling their data when they sign up, and associating them with an Account. However, Flywheel goes even further by tracking Assets.

Assets are things like emails, blog posts, landing pages, docs pages, and help articles. Anything that your customers will interact with in a self-serve manner is an Asset. 

Flywheel tracks Assets to more accurately map the customer journey. The situations below are all impossible to understand unless you track Assets:

  • A user doesn’t use your product for 64 days, but suddenly begins using your most recent feature. Flywheel shows you that they opened your feature email, read the blog post, then logged in to try it out.

  • A user reaches out to your support team saying they’re having trouble with a certain feature. The customer service team looks at their Flywheel profile, then sees that the user not only spent a long time trying to use the feature, but also kept referencing various docs pages at the same time. The CSM can now have a better conversation without directing them first to the documentation.

  • A high-value customer has stopped using your product and you believe they’ll churn. Flywheel will tell you not only which of their Contacts are most active, but also which Asset categories they are most receptive to. Now, you can send tailored information to them and track if it was successful in reactivating them.

Creating objects in Flywheel

Flywheel will automatically create Contacts, Accounts, and Assets for you after integrations are enabled. Currently, no objects can be created manually in Flywheel. To make a new object appear in Flywheel, simply create one in any of your connected integrations.


Events from Flywheel.js can create:

  • Accounts

  • Contacts

  • Assets

Events from Segment can create:

  • Accounts

  • Contacts

  • Assets

Records in Hubspot can create

  • Accounts

  • Contacts

  • Assets

Records in Intercom can create:

  • Accounts

  • Contacts

  • Assets (specifically, Articles)

Records in Salesforce can create:

  • Accounts

  • Contacts

Records in Stripe can create:

  • Accounts

  • Contacts


Segment or Flywheel.js - Identify call

If the event below was the first Identify event ever sent from your Segment integration, Flywheel would immediately:

  • Create a new Contact page for ‘’

  • Create a new Account called ‘Soarwheel’

  • Associate ‘’ under the Account ‘Soarwheel’

  • Backfill any previous events associated with the (previously anonymous) UserID

analytics.identify('630d6ab5-35a8-45de-87ff-37ab60720h56', {
  email: '',
name: 'Charles Williamson',
userId: '630d6ab5-35a8-45de-87ff-37ab60720h56',
username: 'Google_258145689014182047362'

Event types

Identify, Track, and Page view events are standard types of events suggested by companies such as Segment. For example, Flywheel works best when companies implement the Segment B2B SaaS spec as a basic set of Track events.

Asset events, however, are a concept unique to Flywheel. You can think of Asset events as non-Page view events that occur on Assets. Examples of Assets include the email you sent out about your newest feature, your homepage, and this docs page. Any surface area outside of your product that your users interact with is an Asset.

When a Contact interacts with an Asset (e.g. clicks on an email link, views your homepage, visits a help article), Flywheel will track that engagement. The engagement will be shown in three places – 1.) The Asset timeline and graph, 2.) the Contact timeline and graph, 3. the Account timeline and graph.