Syncing Custom Objects

Sync up to 10 Custom Object types into Vitally from your PostgreSQL, BigQuery, or Snowflake warehouse tables

Step 1 - Name

Enter the name of your Custom Object type.

Step 2 - Query

After you've connected to your warehouse, the next step to syncing Custom Objects is to configure the query that Vitally will run against your warehouse on each sync.

Your query is required to have the columns below:

  • object_Id - the unique ID for the Custom Object instance.

  • timestamp - identify the time the custom object was generated.

  • accountExternalId and/or organizationExternalId - the unique ID for the Vitally Account and/or Organization that owns the Custom Object instance.

  • name - the name of the Custom Object instance. Otherwise, the default name for the instances will be Object #object_Id

The following columns are optional:

  • creator_email- the email of the Vitally User who's the creator of the Custom Object instance.

  • owner_email - the email of the Vitally User who's the owner of the Custom Object instance.

  • Any columns you wish to sync into Vitally as Custom Object traits (if you do this, you'll need to map the traits in the steps below)

Once you've entered your query, be sure to click the Preview Query button, which will execute your query against your warehouse and return the first row fetched from your targeted table.

Incremental Sync

Incremental sync is a process of syncing warehouse data that has only been added or modified since the last sync cycle, instead of processing the entire dataset each time. This approach is more efficient as it minimizes the amount of data queried and processed during each sync, making the update process quicker and resource-efficient.

Incremental syncs are required for syncing Custom Objects

For Vitally to incrementally query your data each time, you'll need to add a clause to your query with the variable $LAST_SYNC_TIMESTAMP. We'll fill in that variable with the timestamp of the last sync each time we query the warehouse.

Incremental syncs should compare the $LAST_SYNC_TIMESTAMP with a timestamp that reflects when the data was synced to the data warehouse. This is particularly important when data is synced to the data warehouse in batches.

SELECT
  "name", "createdAtTimestamp", "object_Id", "accountExternalId", "organizationExternalId"
FROM "customObjects"
WHERE "updatedAt" > $LAST_SYNC_TIMESTAMP;

Step 3 - Configure

Once you input and preview your query, you'll be presented with the option to map your query columns as Custom Object traits.

By default, these traits will have string data types, but you can customize the data type in your Trait settings.

FAQs

Q: Which Data Warehouses support syncing Custom Objects? A: Currently, Custom Objects can be synced from PostgreSQL, BigQuery, and Snowflake. We are working on extending this capability to all Data Warehouse integrations in the future!

Q: How many Custom Object types can I sync? A: You can sync up to 10 Custom Object types from any combination of database tables. Each Custom Object type will need its own query.

Q: Will my Custom Objects sync bi-directionally? A: We do not support bi-directional syncing at this time. Custom Objects sync one-way only, from your warehouse to Vitally.

Step 3 - Continue Configuration

If you have other features to sync continue configuring those.

pageConfiguring Sync

OR Step 3 - Enable Sync

pageEnabling Sync

Last updated