Data warehouse: export to BigQuery, Snowflake and Redshift
Send CRM objects (leads, contacts, opportunitiesā¦) to your data warehouse. BigQuery is automatic; Snowflake and Redshift use file + COPY.
The Data Warehouse integration EXPORTS your CRM objects to YOUR company's warehouse ("bring your own account" model, or BYO). The warehouse is yours: there is no cost, margin or intermediation on our side. Everything starts inert: nothing is sent until you configure the credentials and activate. Reading is always restricted to your tenant's data.
Each object is exported as rows with stable columns: id, created_at, updated_at, owner_id and one column per field (the field's api_name). The same columns as the BI connector, so you map once.
Prerequisites
- BigQuery: a project in Google Cloud, a target dataset and a service account with the "BigQuery Data Editor" role on that dataset, plus a JSON key for that account.
- Snowflake/Redshift: a staging location you control (signed URL of an S3/GCS/Azure bucket) to receive the file, and access to the warehouse to run the COPY command.
- In Sellio, administrator access to save the credentials and activate the export in Settings ā Integrations.
Where to configure
- Open Settings ā Integrations.
- Choose your warehouse card: Google BigQuery, Snowflake or Amazon Redshift.
- Fill in the credentials, choose the objects to export and activate.
- Use "Export now" to send on demand.
BigQuery (automatic send)
In BigQuery the send is automatic, via streaming (tabledata.insertAll). You bring a service account and we write directly to your tables.
- In Google Cloud, create a service account and grant it the "BigQuery Data Editor" role on the target dataset.
- Generate a JSON key for that service account.
- In the dataset, create one table per object with the stable columns (id STRING, created_at TIMESTAMP, updated_at TIMESTAMP, owner_id STRING and one column per field).
- On the BigQuery card, enter the Project ID, the Dataset, an optional table prefix and paste the key JSON. Activate and click "Export now".
Snowflake and Redshift (file + COPY)
For Snowflake and Redshift, we generate one file per object (NDJSON by default, or CSV) and SEND it to a staging URL you control, for example a signed URL of your S3/GCS/Azure bucket. The final load into the warehouse is done by the COPY command, which you run (or schedule) in your warehouse.
- On the Snowflake/Redshift card, enter the staging URL (the file destination), the format (NDJSON or CSV) and, if the destination requires it, an authentication header + secret.
- Choose the objects and activate. Click "Export now": we PUT the file to your staging.
- In your warehouse, run COPY to load the file from staging into the table.
How to test
- Activate the connector, choose an object and click "Export now".
- BigQuery: open the <prefix><api_name> table in the dataset and confirm the rows arrived (resending the same batch does not duplicate, because the insertId is the record's id).
- Snowflake/Redshift: confirm the file was written to your staging (via PUT); then run COPY and check the rows in the table.
Troubleshooting
- BigQuery 403/permission denied: the service account does not have "BigQuery Data Editor" on the dataset, or the JSON key is incomplete. Re-grant the role and re-paste the JSON.
- BigQuery "table not found": first create the per-object table with the stable columns (id STRING, created_at/updated_at TIMESTAMP, owner_id STRING and one column per field). The name is <prefix><api_name>.
- Snowflake/Redshift: the PUT to staging fails: the signed URL expired or does not allow writing, or the destination's authentication header is wrong. Generate a new URL and check the secret.
- COPY does not load: review the FILE_FORMAT (NDJSON vs CSV) and the column mapping (e.g., MATCH_BY_COLUMN_NAME in Snowflake; FORMAT AS JSON in Redshift).
- Nothing is exported: confirm the connector is ACTIVATED and that there are objects selected.