Exploring DinMo's Core Concepts
DinMo transforms all your customer touchpoints into high-value audiences and helps you leverage them in all your activation platforms without code or Engineering in less than 5 minutes.
Your data warehouse is your single source of truth, storing all your valuable data. DinMo helps you put your data in motion and get value everywhere.
Connect your data warehouse, segment your customers to create high-value audiences, load conversions, and activate this data on all your marketing platforms.
DinMo is the piece you need to improve your marketing performance with first-party data.
To put your data in motion, you will have to configure where the data originally comes from, how you want to segment it, and where you want to send it.
A new standard for the CDP leveraging the modern data stack
Continue reading to obtain a comprehensive understanding of the fundamental principles we use at DinMo.
A source refers to the data warehouse where all the data you want to get value from is stored. Snowflake, or Google BigQuery are among the most common DataWarehouses. Note that your data always stays in your source, DinMo never imports or stores something from it.
To add a source into your DinMo workspace, you simply need to connect your data warehouse to the platform, ensuring that DinMo has the necessary permissions to read the data and execute jobs.
DinMo uses the source to store some info into specific schemas/datasets:
- DINMOSEGMENTS: views of the query of the segments and entities created within DinMo
- _DINMOSTATS: tables that contain statistics about your segments
DINMO_DELTA_STORAGE: snapshots of a historical run of segments queries that enable DinMo to calculate the changes that occur on a segment and update, therefore, the activation target.
The Knowledge Store is DinMo's version of a data model. It serves as the representation of your business data, defining the data you want your business teams to have access to. Providing a rich no-code experience for business users. It is created and maintained by a data expert user familiar with the DataWarehouse.
Entities are the fundamental building blocks behind DinMo's data model, representing specific types of objects. Each entity is analogous to a table in a database and serves as a container for all relevant information about the objects it represents. By organizing data into entities, DinMo provides a structured and scalable way to manage complex datasets. For example, a company could have separate entities for their customers, orders, products, and web events, allowing them to easily retrieve and analyze data based on specific criteria.
Entities can be either of type Dimensions, or of type Facts. The type will affect how data from the entity is sent to destination platforms.
- Dimensions: entities that describe the characteristics of a specific object or group of objects, such as customers, products, or stores.
- Facts: entities that contain temporal information about business events and transactions, such as user events or sales.
Entities are related by relations like one-to-many or belonging to. For instance, the Customer entity is related to the Order entity, meaning that there is a customer behind each order being made. Mapping relationships between the different entities enable advanced customer segmentation. For instance, selecting all customers who ordered a given type of product is a question of a few clicks.
Each entity falls under a specific class (customers, products, financial, events, etc.).
Each entity has its own set of fields, called properties on DinMo. A property can be either an Identifier, or an Attribute:
- Entity Identifiers: These individual identification keys allow you to recognize your customers across all your owned platforms or walled gardens like Ads Platforms. (example: user_id, email, phone, first name, last name, etc.).
- Entity Attributes: These are characteristics or properties of an entity that can be used by business users to filter entities and create segments (for example: first order, country, number of orders, etc.).
- Custom Attributes: DinMo's users can enrich the data stored in their DataWarehouse by creating new attributes. A custom attribute is created as a SQL query that generates a two-column table: a key that can help recognize customers in the parent entity and the value of an attribute in the second column.
Categorical Properties are defined by the user during the creation of an entity. They are properties which have a limited number of distinct values, for instance, the Product Type, or the Country. By defining a property as categorical, it will be displayed in a much more intuitive manner when creating filters using this property:
The Marketing Consent State Property had been defined as categorical
A primary key uniquely identifies each record in the entity. It acts as a unique identifier to keep track of records and reconcile the data in your segments with the ones in your destination. Using a primary key allows your destination to recognize your customers uniquely. The primary key is generally the email address or a user ID.
A segment is a subset of an entity. A segment can either be created with an SQL query, or using the no-code visual builder. In both case, a segment has to be related to a parent entity.
For instance, it is possible to create a segment of “users living in Europe” or a segment of “users who spent more than 100€”, from the Customers entity.
All segments are associated to a parent entity. Segments hence share the same properties, mapping, configuration, and primary key of their parent entities.
Activation is the process of syncing a segment’s data to a predefined activation target.
You can configure multiple activations from the same Knowledge Store to different destinations, ensuring all parts of your business are working off the same source of truth.
An activation process triggers a sync. A sync is a technical term that refers to the operations that will be made on the activation target to reflect the changes observed in the segment query’s data between two executions.
When syncing a segment to an activation target, four operations can be made to ensure the data within keeps up to date:
- Insert a new record and its attributes
- Delete an existing record
- Clear all existing records
- Update a record's attributes
Mapping involves defining how fields from a segment should be matched with the standard user information used by marketing destinations. This includes identifying which column corresponds to specific details, such as email, phone number, or last name. Additional custom columns can also be mapped at the synchronization level for destinations that support it.
DinMo supports three types of sync modes, depending on the type of data being sent or the intent:
- Full sync: This will insert all segment records into the activation target. It is the default sync mode when syncing a segment for the first time. It can also be triggered when the user asks for a full refresh of the segment.
- Incremental Sync: This mode is specifically designed for events. Incremental syncs transmit only the most recent event data, optimizing bandwidth usage.
- Delta Sync: This mode is exclusive to dimensional segments. It updates the activation target in the destination by inserting and deleting records based on calculations of the differences between the segments. Furthermore, it updates attributes of the segment members in the activation target when they undergo changes.
A destination refers to any external tool or service to which you can send source data. This is where the data is usually accessed and utilized by the end users.
Examples of destinations include advertising platforms (such as Facebook Ads or Google Ads), customer relationship management software (such as Hubspot or Salesforce), or customer support tools (such as Zendesk). Other types of platforms, such as Facebook Catalog, are also supported on DinMo.
These are typically where end-users consume data, including CRM systems, ad platforms, marketing automation tools, and support tools. DinMo seamlessly integrates with these destination platforms, providing a unified data solution. To add a destination platform, you establish a connection to the platform authorizing DinMo to create objects or/and update them with your source data.
Destination services refer to what you are syncing/updating in a destination platform.
DinMo can update three types of objects within a destination platform:
- Events: such as conversion events for Facebook Ads or conversion actions for Google Ads. This is the default destination type of event segments. DinMo syncs events to destination platforms in batch to optimize the data transfer process and ensure efficient handling of large volumes of event data. By grouping events together and sending them as batches, DinMo minimizes the number of individual requests made to the destination platforms, reducing network overhead and improving overall performance. The sync frequency is set when configuring the activation and can be up to real-time.
- Lists: in some platforms, they can also be called segments or audiences, such as Customer List in Facebook Ads, static segments in Selligent Cloud, or cohorts in Braze. They are used to indicate membership of the platform contacts or users (ex., HubSpot contacts table) to a specific based on specific rules. This is the activation target of User Segment in DinMo.
- Attribute objects: such as contacts tables within a CRM or catalog items in advertising platforms. They are dimensional entities that describe an identifiable contact. They contain attributes that change slowly, like (lifetime value, address, etc.).
Activation Targets simplify the activation configuration process by allowing you to set it up just once, eliminating the need for repetitive configuration.
Before you can start sending data to destination platforms through DinMo, you need to choose an appropriate activation target, or create it if it does not exist yet. An activation target is a tailored configuration within DinMo that represents the core parameters of the destination platform where you intend to send your data. It is made of two parts:
- Core parameters defining where your data should be sent. This information cannot be changed after the creation of the activation target. Core parameters typically include:
- The Destination Platform (for example, Google Ads, or Meta Ads)
- The Destination Service (for example, Google Enhanced Conversions)
- The Destination Configuration (for example, the ad account, or the pixel ID)
- Default activation settings defining how your data should be sent. This information can be changed when creating an activation, but is proposed by default in order to simplify the activation process. Default activation settings typically include:
- The parent entity of all the segments typically sent to the activation target
- The identifiers to match your entity segments with the target’s data (example: user id, email, phone, first name, last name, etc.)
- The attributes within the target to be updated with segment attributes (if relevant)
- The time frequency at which DinMo will update the target
Note that you can create as many activation targets as you want for a single destination platform. In this case, one activation target may correspond to a specific ad account, or to a specific type of sync: one activation target for syncing customer segments, one activation target for syncing web conversions, one activation target for syncing offline conversions, etc.