02 Get your data in /Integrations
Data warehouses
Send conversation messages stored in your data warehouse to Dimension Labs with the universal API.
Connecting a warehouse works the same way as any other universal API integration. You run a scheduled job on your side that queries the conversation rows that are new since its last run and posts each message to Dimension Labs.
How it works
Section titled “How it works”- Get access. Give the job its own read-only service user, role or service principal.
- Query new rows. Select the rows whose
updated_atis at or after a stored cursor, with the warehouse’s official Node.js driver or SQL API. A row that is updated later is sent again; that’s fine, because duplicates are removed automatically. - Map the columns. Each guide assumes a table with one row per message, and maps its columns to the tracker fields. Use your internal customer id for
userId, never an email address or phone number. - Send it. Post each message with
sendToDimensionLabsfrom dimensionlabs.mjs. - Run it. Load history once with
node run.mjsand a start date, then run the job every 15 minutes, as in Scheduled sync. History goes to/trackhistoricaland needs a backfill; new rows go to/trackand are enriched automatically every day.
To bring Dimensions back into your warehouse, each guide ends with a section that pulls them with the Export API (with an Export API key from Settings) and loads the files into a table.
Guides
Section titled “Guides”| Warehouse | Driver or API used | Guide |
|---|---|---|
| Snowflake | snowflake-sdk, key pair authentication | Snowflake |
| Google BigQuery | @google-cloud/bigquery, service account | Google BigQuery |
| Databricks | @databricks/sql, OAuth service principal | Databricks |
| Amazon Redshift | Redshift Data API, IAM | Amazon Redshift |
If you would rather not run a job, export the table to a CSV, TSV or JSONL file and upload it. Run it through the file checker first.