Customer 360
Data → Customers — Unified customer profiles built from every connected data source.
Customer 360 resolves identities across platforms, merges properties, computes behavioral features, and produces a single, browsable profile for each customer. It is organized into five tabs: Identity, Properties, Features, Rules, and Profiles.
Overview
When data flows into Vendo from multiple sources (ad platforms, analytics tools, CRMs, payment providers), the same person often appears with different identifiers in each system. Customer 360 stitches those records together so you get one profile per real person, enriched with computed features you can use for segmentation, modeling, and activation.
The resolution pipeline runs automatically on a configurable schedule. You can also trigger it manually at any time.
Identity Resolution
How It Works
Identity resolution matches records across sources using shared identifiers — email addresses, phone numbers, platform-specific IDs, and names. The algorithm:
- Collects identifiers from every connected source based on your identity mappings.
- Clusters records that share at least one identifier, following the priority and trust rules you configure.
- Merges properties into a single unified profile using the conflict-resolution strategy you choose.
- Assigns a stable Vendo profile ID to each cluster so downstream features and segments reference a consistent entity.
Identity Tab
The Identity tab shows your identity mappings — which sources provide which identity fields.
| Column | Description |
|---|---|
| Source | The connected data source (e.g., Stripe, Google Analytics, HubSpot). |
| Whether this source provides an email identifier. | |
| Phone | Whether this source provides a phone identifier. |
| Platform ID | Whether this source provides a platform-specific user ID. |
| Name | Whether this source provides a name field. |
Each mapping tells the resolution engine where to look for matching identifiers.
Configuring Identity Mappings
Select a source and map its columns to Vendo’s standard identity fields. A source can contribute one or more identity types. Sources that provide email tend to produce the highest-quality matches.
Manual Trigger
Click Run Identity Resolution to execute the pipeline immediately rather than waiting for the next scheduled run. This is useful after connecting a new source or correcting a mapping.
State Toggle
Toggle a source mapping between Active and Paused. Paused mappings are excluded from the next resolution run without deleting the configuration.
Properties
The Properties tab controls how customer properties are merged when multiple sources provide the same field.
Conflict Resolution
When two sources disagree on a property value (e.g., different email addresses), Vendo uses the configured resolution strategy:
- Most Recent — Use the value with the latest timestamp.
- Source Priority — Use the value from the highest-ranked source (configured in the Rules tab).
- Most Frequent — Use the value that appears most often across sources.
You can set a default strategy and override it per property.
Property Sources
For each property, the tab shows which sources contribute values and how many profiles have that property populated. This helps you identify coverage gaps and decide which sources to trust.
Calculated Properties
Calculated properties are user-level behavioral metrics computed from your source data through Data Studio transformations. They power segments, predictive models, and activation workflows.
In the app, calculated properties are managed as part of Data Studio — both rule-based (query-time) and precomputed (scheduled) properties appear in the Data Catalog under User Properties.
Built-in Property Templates
Vendo ships 21 built-in feature templates organized into three categories. Enable any template to start computing that feature for every resolved profile.
Commerce Features (10)
| Feature | Type | Description |
|---|---|---|
purchases_7d | INT64 | Number of purchases in the last 7 days |
purchases_14d | INT64 | Number of purchases in the last 14 days |
purchases_30d | INT64 | Number of purchases in the last 30 days |
revenue_7d | FLOAT64 | Total revenue in the last 7 days |
revenue_30d | FLOAT64 | Total revenue in the last 30 days |
aov_lifetime | FLOAT64 | Average order value over all time |
aov_30d | FLOAT64 | Average order value in the last 30 days |
days_since_last_purchase | INT64 | Days since the customer’s most recent purchase |
total_orders_lifetime | INT64 | Total number of orders over all time |
total_revenue_lifetime | FLOAT64 | Total revenue over all time |
Engagement Features (7)
| Feature | Type | Description |
|---|---|---|
sessions_7d | INT64 | Number of sessions in the last 7 days |
sessions_14d | INT64 | Number of sessions in the last 14 days |
sessions_30d | INT64 | Number of sessions in the last 30 days |
page_views_7d | INT64 | Number of page views in the last 7 days |
page_views_30d | INT64 | Number of page views in the last 30 days |
events_7d | INT64 | Number of tracked events in the last 7 days |
events_30d | INT64 | Number of tracked events in the last 30 days |
Lifecycle Features (4)
| Feature | Type | Description |
|---|---|---|
days_since_first_seen | INT64 | Days since the customer was first observed in any source |
days_since_last_seen | INT64 | Days since the customer’s most recent activity |
has_purchased | BOOL | Whether the customer has ever made a purchase |
is_repeat_buyer | BOOL | Whether the customer has made more than one purchase |
Custom Features
In addition to built-in templates, you can define custom features using SQL expressions. Custom features run against your BigQuery dataset and can reference any table or column available in your project.
Supported feature types: FLOAT64, INT64, STRING, BOOL, TIMESTAMP.
Source Mapping
Each feature category draws data from specific source types:
- Commerce features require at least one source that provides transaction/order data (e.g., Stripe, Shopify, WooCommerce).
- Engagement features require at least one source that provides session and event data (e.g., Google Analytics, Mixpanel, web tracking).
- Lifecycle features combine signals from both commerce and engagement sources.
The Features tab shows which sources are mapped to each category. If a required source type is missing, the affected features display a warning.
Compute Schedule
Configure how often features are recomputed:
- Frequency — Interval in minutes between compute runs (e.g., every 60 minutes, every 360 minutes).
- Anchor hour (optional) — A specific hour of the day (0—23) to align the first run. Subsequent runs repeat at the configured frequency from that anchor.
Pipeline Integration
Calculated property computation is a transformation node in the pipeline DAG. When connected to upstream source nodes, property computation triggers automatically after each source sync completes. When computation finishes, it signals downstream nodes (e.g., BQML models), enabling fully automated chains like:
Source Import --> Property Compute --> BQML Model RetrainYou can still trigger computation manually or on a schedule as a fallback.
Feature Activation
Each feature can be individually activated or deactivated. Deactivated features stop computing but retain their last values. Reactivating a feature resumes computation on the next scheduled run.
Backfill Status
When a feature is first activated or its definition changes, Vendo runs a backfill to compute historical values. The Features tab shows backfill progress and completion status for each feature.
Identity Rules
The Rules tab controls the parameters of the identity resolution algorithm.
Source Trust Ranking
Rank your sources by trustworthiness. When two sources provide conflicting identity signals, the higher-ranked source wins. Drag sources to reorder them.
For example, if your CRM is your most reliable source of email addresses, rank it above ad platforms.
Identifier Priority
Set the priority order for identifier types used during matching:
- Email — Typically the strongest cross-platform identifier.
- Phone — Strong but less universally available.
- Name — Useful as a tiebreaker but can produce false matches on its own.
- Platform ID — Platform-specific; only matches within the same source.
Drag identifier types to reorder them based on your data quality.
Max Identifiers per Profile
Set a cap on how many distinct identifiers a single unified profile can accumulate. This prevents runaway merges where a shared device or email alias incorrectly links unrelated people. The default limit is suitable for most accounts, but you can raise or lower it based on your data.
Browsing Profiles
The Profiles tab lets you explore the resolved, unified customer profiles.
Profile List
Browse all resolved profiles with summary stats:
- Total unified profiles
- Total identifiers resolved
- Average identifiers per profile
- Resolution coverage (percentage of source records matched to a profile)
Use search and filters to find specific profiles by email, name, or profile ID.
Individual Profile View
Click any profile to see its full detail:
- Merged identity — All identifiers linked to this profile and which source each came from.
- Merged properties — The resolved property values with source attribution.
- Computed features — Current values of all active features for this profile.
- Event timeline — A chronological view of events from all sources, stitched into a single stream.
The event timeline is especially useful for understanding a customer’s full journey across platforms — from first ad click through purchase and beyond.