Create an Event Stitching project
Use this guide to create an Event Stitching project from event source models.
Event Stitching builds an event profile graph from event records and the identifiers carried by those events. The main output is dinmo_stitched_profile_id, which lets you attach processed events to a behavioral profile.
If you are not sure whether your event models are ready, start with Prepare event data for Event Stitching.

Prerequisites
Before starting, make sure you have:
access to a DinMo workspace with Identity Resolution enabled
a connected source with event models
one or more event source models in the same source
stable primary keys on each event model
a standard timestamp field on each event model
a partition or window column that lets DinMo process bounded event windows
useful event identifiers such as user ID, account ID, email, anonymous ID, device ID, cookie ID, session ID, click ID, or IP address
write permissions on the output dataset or schema used for identity outputs
Event Stitching processes source models and writes output tables in the connected source.
Wizard flow
1. Scope
Select the source, event models, identifiers, and normalization.
2. Mapping
Pick the event partition column for each model and map source fields to identifiers.
3. Identifier policy
Set priority, anchor behavior, limits, stitching lifetime, and blocked values.
4. Finalize
Name the project, add a description, choose the schedule, and create the project.
After creation, the project detail page exposes five tabs: Overview, Runs, Policy, Setup, and Quality.
Step 1: Scope
Choose the source that contains the event models you want to stitch.

In this step, select:
Source
Connected source where the Event Stitching project will run.
Models
Up to five event models to process together.
Identifiers
Logical event identifiers available across the selected models.
Normalization
Cleanup rules such as trim, case-insensitive matching, or numeric-only matching.
Good event models include:
page views
sessions
purchases
app events
product usage events
support interactions
messaging or campaign events
Avoid profile-like tables such as CRM contacts, ecommerce customers, subscribers, and account records. Event Stitching expects event-grain models.
Step 2: Mapping
For each selected event model, use the model tab to pick the event partition column and map physical fields to logical identifiers.

Event partition column
Date or timestamp field used to select bounded event windows. The source table should be partitioned on this column, not on ingestion time.
Model field
Physical column present in the event model.
Identifier
Logical Event Stitching identifier that the field should feed.
DinMo processes all selected models through the same logical Event Stitching project. Each model can use different physical column names, as long as they map to the same logical identifiers.
The event partition column should match the way events are naturally processed in your warehouse. For daily processing, use a timestamp or date that lets DinMo select complete day windows without scanning unrelated history.
Identifier mapping examples
Map each physical event field to a logical Event Stitching identifier.
Common mappings:
user_id, customer_id, account_id
User ID, Customer ID, Account ID
email, email_hash, phone
Email, Email Hash, Phone
anonymous_id, cookie_id, device_id
Anonymous ID, Cookie ID, Device ID
session_id
Session ID
gclid, fbclid, gbraid, wbraid
Click ID
ip_address
IP Address
Each source model can use different physical column names. The logical identifier is what DinMo evaluates across all event sources.
Map only fields that are useful for stitching or audit. Do not map campaign fields, URLs, product names, or arbitrary attributes as identifiers unless they are intentionally used as identity evidence.
Step 3: Identifier policy
The identifier policy controls how events can connect.

Drag identifier cards to set priority, from strongest to weakest. Open Configure on a card to set:
anchor behavior
max unique values per profile
max profiles per value
stitching lifetime
blocked values
Start with strong identifiers at the top:
user ID, customer ID, account ID
email or phone, when standardized and governed
anonymous ID, device ID, or cookie ID
session ID and click IDs
IP address only when it is useful for audit or very short-lived stitching
For the detailed policy settings, see Identifier policy and guardrails.
Step 4: Finalize
Finalize the project by setting the name, description, and schedule.

Daily is a safe default for most projects. Use a more frequent cadence only when downstream activation depends on fresher stitched events.
The first successful run seeds the partition manifest. Later runs use the manifest to find the next available partition automatically.
Outputs
The main outputs are:
identity_event_profile_attribution
Join processed events to dinmo_stitched_profile_id.
identity_event_profiles
Inspect current and merged event profiles.
identity_event_profile_identifier_values
Understand which identifiers explain a profile.
identity_event_profile_run_metrics
Monitor run quality without scanning event history.
See Event Stitching output tables for the full reference.
After the first run
After the first run, open the project detail page.
Use the tabs this way:
Overview
Review processed events, stitch rate, profile counts, trends, model breakdown, and identifier breakdown.
Runs
Inspect run status, run type, processed events, stitched events, stitch rate, and excluded events.
Policy
Review or edit identifier priority, anchors, limits, stitching lifetime, and blocked values.
Setup
Review selected source, models, and field mappings.
Quality
Investigate health checks, identifier quality, exclusion reasons, and audit entries.
Use Review and monitor Event Stitching before relying on stitched events downstream.
Last updated

