Skip to Content
Data StructureData Model

Data Model

How events, users, groups and ad data relate in Vendo, which keys join them and when Vendo makes each join.

Last reviewed September 15, 2026

Vendo maps every table that enters your workspace to one of four data types: events, users, groups and ad data. A table that you have not mapped yet is a custom table.

This page tells you how the four types relate. Each type has its own page with its fields:

Data typeWhat one row isExample
EventsAn action at a point in timeA page view, a purchase, an email open
UsersA person and the traits of that personA Shopify customer, a HubSpot contact
GroupsA thing that is not a person, with its own IDA company, a product, a deal
Ad DataPlatform-reported ad performance for one daySpend and clicks of one campaign on May 20

Identity resolution, calculated properties, metrics, audiences, attribution and destinations all use these four types.

How the Data Types Relate

  • A person has one profile. Vendo merges the user records of one person from all your sources into one profile. The key of the profile is vuid.
  • A person does many events. Each event identifies its actor with an identifier, for example a user ID, an email address or a device ID. Vendo finds the profile that has that identifier.
  • An event can be about groups. For example, a purchase event is about a product, and a product is a group. One event can join groups of more than one type at the same time.
  • A person can belong to many groups. For example, a HubSpot contact can be linked to more than one company.
  • Ad data does not identify people. Ad platforms report totals for each day, campaign and ad. Vendo relates ad data to events through the date and the UTM values, and attribution relates ad clicks to conversions through click IDs.

Join Keys

FromToKeyHow manyWhen Vendo joins
User recordsProfileShared identifiers, for example email, phone, device ID or customer IDMany records to one profileEach identity run
EventsProfileThe identifier on the event, through the identity graphMany events to one profileWhen a query runs
EventsGroupsAn event property, or the key of the group type (for example product_id, sku_id, company_id)Many events to one group of each typeWhen a query runs
UsersGroupsA membership field on the user, for example company_idsMany users to many groupsWhen a query runs
Ad dataEventsThe reporting date and the UTM valuesMany to many, by day and campaignWhen a report runs
SessionsConversionsClick IDs (gclid, fbclid and others) and utm_sourceMany touchpoints to one conversionEach attribution run (daily)
Audiences, calculated user propertiesProfilevuidMany to oneWhen the audience or property runs

Events Join People When a Query Runs

Vendo does not write the profile key into your event rows. When a query runs, Vendo joins each event to the identity graph with the identifier on the event, and then to the profile.

Because of this, earlier events of an anonymous visitor join the correct profile after the visitor identifies. For example, page views with only a cookie ID join the profile after the visitor signs up with an email address on the same device.

Two identifiers link only when they are on the same record. Vendo does not use names to link records.

Groups Work Like Lookup Tables

A group table adds properties to other rows through a key. For example, a purchase event has a sku_id property. The vendo_product group has a row for each SKU, with its price and category. When you break down purchases by product category, Vendo joins each purchase to its product row.

Lookup tables are groups in Vendo. Map a reference table as a group, and select its group type.

Example: One Customer Across Sources

A customer clicks a Meta ad, looks at your store, signs up, buys a product and becomes a HubSpot contact.

StepRecord in VendoData typeHow it relates
1Meta Ads reports spend and 120 clicks for the campaign on May 20Ad dataRelates to the sessions of May 20 with the same UTM values
2A page view with a cookie ID, utm_source=facebook and an fbclidEventAttribution uses the fbclid to give credit to Meta Ads
3A sign-up event with the cookie ID and the email addressEventLinks the cookie ID and the email address in the identity graph
4A Shopify customer record with the email addressUserMerges into the same profile
5A Shopify order with the customer ID and sku_id=SKU-001EventJoins the profile, and joins the vendo_product group row for SKU-001
6A HubSpot contact with the email address and two companiesUserMerges into the same profile, and links the profile to two vendo_company groups

After identity runs, one profile holds steps 2 to 6. The page view from step 2 joins that profile, although it had no email address.

Where the Data Is in BigQuery

Each workspace writes to its own BigQuery dataset. Raw source tables keep the platform, the source and the stream in the table name.

TableWhat it contains
identity_graphOne row for each identifier, with the vuid of its profile
identity_profilesOne row for each profile, with its primary email, phone and identifiers
customer_propertiesCustomer properties from each connection
customer_360Profiles joined to their customer properties
dim_customerThe history of each customer. A new row starts when a customer changes
attribution_summaryAttribution credit for each conversion and touchpoint
conversion_eventsConversions that destinations can send to ad platforms

Some tables that identity runs create have a suffix after the name. Use the Data Catalog to find the exact table names in your workspace.

How the Layers Fit Together

Layer 1: Data types event · user · group · ad_data (custom tables are not mapped yet) Layer 2: Computed concepts Profiles · Calculated properties · Metrics · Audiences · Attribution · Data Studio models Layer 3: Destination outputs Audience syncs · Conversions (in the format of each ad platform or tool)

Layer 1 is mapped source data. Layer 2 makes new fields and objects from Layer 1. Layer 3 puts Layer 2 results into the format that each destination expects, for example a Meta conversion or a Klaviyo list.

Audiences and conversions are not Layer 1 data types. They exist only on the destination side.

Legacy Names You May Still See

Vendo changed an older model of eight types into the four data types. You can see the older names in some sources, destinations and pages:

Legacy termCurrent data type
eventsEvent
user_properties, contactsUser
group_properties, lookup_tableGroup
ad_dataAd data (no change)
email_messages, revenueEvent (details in properties, or Layer 2 metrics)
customCustom table (not mapped yet)
audiences, conversionsLayer 3 destination outputs, not source data types
Need help?

When you contact support, give your workspace, the source or destination name, the job ID and the first error message.

support@vendodata.com
Last updated on