Create and update Collection Documents

Sync your models profiles and attributes into a Firestore collection document to enable real-time personalization and rapid data retrieval in your apps and websites.

Overview

This destination service allows DinMo to insert new documents or update existing ones in your Firestore collections based on your DinMo profiles or segments.

To use this service, follow these three steps:

  1. Create a Firestore destination. Follow our step-by-step guide to establish this connection.

  2. Create your DinMo user segment or data model representing the data you want to sync to Firestore.

  3. Activate your segment or model with the Firestore destination to start synchronization.

Every time the activation runs:

  • DinMo performs an upsert operation:

    • Insertion: If a Firestore document matching the provided Document ID does not exist, DinMo will create it using the mapped attributes and document id value.

    • Update: If a document exists, DinMo updates only the mapped attribute values.

  • Attributes that exist will have their values updated.

  • Attributes not present in the document will be created upon the first synchronization and regularly updated afterward.

  • DinMo will not delete existing documents even if the profile no longer exists in the model or segment. It will simply stop updating these documents.

Destination Setup

Before beginning data synchronization, set up your Firestore destination:

  • Go to destinations > Add a destination.

  • Choose your Firestore Platform.

  • Click on Create and update Collection Documents option.

  • Give it a name and save the destination.

Activation Configuration

Once the Firestore destination is configured, create an activation to begin syncing your data:

  • Choose your attribute write mode:

    • Merge: will only update the provided fields in the fields mapping

    • Overwrite: will replace the entire document with the provided fields, meaning that existing fields could be deleted

  • Specify the Firestore collection name to store your synchronized data.

  • Optionally, add a "Last a updated at" timestamp or a "Time to live" to each document:

    • Last updated at: DinMo will add this field to each document of the collection. The value will be the timestamp of the last update for this document.

    • Time to live: DinMo will add the "Time to live" value to this field in each document. If you want to automatically delete expired documents, this needs to be the same value as the TTL policy set on your firestore database.

Sync mode

Sync modes determine how data is synchronized between your data source and your Firestore. They control whether to insert new records, update existing ones, or both, and how to handle the synchronization process.

For the Firestore destination, here are the available options:

Sync Mode
Description
Use Case
Behavior

UPSERT

Performs a full load on the first run, then processes only new or changed records on subsequent runs using DinMo’s delta detection logic.

  • Standard production setup

  • Large datasets with limited changes

  • Frequent syncs requiring good performance

  • First run processes all records

  • Subsequent runs process only inserted or updated records

  • Connector inserts new records and updates existing ones

  • No deletions are handled

MIRROR (full then delta)

Performs a full load on the first run, then keeps the destination fully aligned with the source, including deletions, using delta detection.

  • Maintaining an exact replica of the source

  • Datasets with frequent updates and deletions

  • Use cases requiring strict data consistency

  • First run processes all records

  • Subsequent runs insert new records, update changed records, and delete records missing from the source

  • More processing than Upsert (delta) but ensures full synchronization

  • Upsert mode never deletes records from the destination, even if they are removed from the source.

  • Mirror mode ensures full alignment between source and destination, including deletions.

    ⚠️ This irreversibly deletes the document from your Firestore collection. Be careful if this document is supposed to be updated via other activations.

Field Mapping

During activation setup, you need to define the mapping between your data warehouse attributes and Firestore document fields.

  • Document ID Mapping: Choose the unique DinMo profile field used as the Firestore Document ID.

  • Collection Name: Enter the name of your Firestore collection.

  • Custom Attributes: Add custom attributes by mapping model fields and typing in custom names that will be used as document field names.

Scheduling

Define how frequently your data is updated in Firestore. With each scheduled update:

  • DinMo will perform an upsert operation, inserting new documents or updating existing ones.

  • Existing documents not found in the current DinMo data segment or model will remain in Firestore but will not be updated further.

Last updated