Troubleshooting FAQs
This guide answers common troubleshooting questions for Connect and provides solutions to the most frequent issues.
Your tool ingests data into our Data Warehouse — does it also delete it? If so, what is the data retention period?
Section titled Your tool ingests data into our Data Warehouse — does it also delete it? If so, what is the data retention period?Yes, our system does perform deletions in a few specific scenarios:
-
GDPR Deletion Requests: When we receive a GDPR deletion request, we automatically propagate that deletion to the customer’s data in their warehouse to ensure compliance.
-
Duplicate Row Cleanup: During the data loading process, we may remove duplicate rows in order to maintain data quality and consistency.
-
Property Unsync via App UI: If a customer disables or unsyncs a property in the App UI, we treat this as a bulk deletion and drop the corresponding column from the dataset. This functionality is not currently available for DXA Connect customers.
These mechanisms ensure that data remains accurate, compliant, and aligned with customer configurations.
For data retention, we never apply data retention on data in our customers warehouses.
How regularly is the data refreshed in the destination warehouse? (Frequency of Update)
Section titled How regularly is the data refreshed in the destination warehouse? (Frequency of Update)Sync every 24h by default. Intraday syncing will be available after GA (H2 2026).
What’s the volume of data that I can expect to see in the syncs?
Section titled What’s the volume of data that I can expect to see in the syncs?- Daily volume ≈ your daily volume fire-hose.
- Users = Count of Net New Users for last 24 hours
- Sessions = Count of Unique User Sessions for last 24 hours
- Pageviews = Count of Unique Pageviews for last 24 hours
- The
_sync_info.inserted_row_count column
gives an exact per-table delta after every run, so you can chart growth and cost. See Data Schema
How the data is transmitted from your systems to our Data Warehouse. Is it encoded? Encrypted? HTTPS?
Section titled How the data is transmitted from your systems to our Data Warehouse. Is it encoded? Encrypted? HTTPS?All traffic is encrypted (TLS 1.2+); objects are encrypted at rest by the cloud providers.
Warehouse | Transport path CS → Destination | Encryption in transit | Encryption at rest |
---|---|---|---|
Google BigQuery | HTTPS calls from CS app servers (official BigQuery client). Optional file-staging: S3 ➜ GCS ➜ BigQuery LOAD job. | TLS 1.2+ on every BigQuery and GCS endpoint. ↗ | All content encrypted with AES-256; CMEK/CSEK optional |
Snowflake | No file copy. CS is the provider and shares a database; your Snowflake account reads it over Snowflake’s front door. | All Snowflake interfaces enforce TLS 1.2+ ↗ | Persistent storage encrypted end-to-end (E2EE, AES-256) by default; CMK available |
Amazon Redshift | Heap JDBC/ODBC client connects to the cluster endpoint. Optional SSH tunnel supported. | SSL/TLS required on the leader node; ACM-issued certs; SSH tunnel adds an extra layer AWS docs ↗; See Redshift | Cluster data encrypted with KMS or HSM keys (AES-256) |
Amazon S3 | Heap writes Avro files over HTTPS to the bucket you specify; you then ETL into anything. | TLS/SSL on every PUT/GET request ↗ | All new objects are automatically AES-256-encrypted; SSE-KMS or SSE-S3 selectable |
Databricks | Heap posts to the Databricks REST/SQL API at port 443 with a Personal Access Token. | All egress traffic requires TLS 1.2+ ↗ | Workspace storage and S3 backing objects encrypted with AES-256; CMK option for S3 |
How does Heap send SQL queries to BigQuery?
Section titled How does Heap send SQL queries to BigQuery?CS retrieves the service-account key you supplied, instantiates the official BigQuery client library, and issues SQL INSERT/UPDATE statements over HTTPS. The TLS connection (TLS 1.2+) encrypts the queries in transit.
Why is an extra file-copy step required?
Section titled Why is an extra file-copy step required?BigQuery will only load data files that already reside in Google Cloud Storage (GCS). Heap therefore copies the export files from its Amazon S3 bucket into a GCS bucket before triggering the load job.
Can the GCS bucket live inside my own VPC?
Section titled Can the GCS bucket live inside my own VPC?Yes. Provide a GCS path that sits in your VPC and CS will stage the files there, keeping the entire transfer inside your GCP network. If you prefer not to manage a bucket, CS uses a GCS bucket in its VPC.
How is the load into BigQuery started?
Section titled How is the load into BigQuery started?Heap calls jobs.insert through the same BigQuery client to create a “LOAD” job that ingests the staged files into your dataset.
What happens after the files are in GCS—how does Heap get them into BigQuery and is that transfer secure?
Section titled What happens after the files are in GCS—how does Heap get them into BigQuery and is that transfer secure?Heap calls jobs.insert through the BigQuery client library with a load configuration that points to the staged files. BigQuery’s service tier then pulls the objects straight out of Cloud Storage across Google’s private backbone, using Application-Layer Transport Security (ALTS) for mutual authentication and encryption. The data never leaves Google’s internal network, and the objects remain encrypted at rest in GCS until the job finishes.
Is the file-transfer path secure?
Section titled Is the file-transfer path secure?All HTTPS traffic is encrypted with TLS, and Google encrypts objects at rest in GCS. The internal GCS → BigQuery load runs on Google’s private backbone, also encrypted and authenticated.
Can we authenticate BigQuery with our own service account rather than ContentSquare’s?
Section titled Can we authenticate BigQuery with our own service account rather than ContentSquare’s?Yes. We can switch the connector to your service account.
How to hand it off
Section titled How to hand it off-
Create a dedicated service account for CS and enable BigQuery + Cloud Storage APIs.
-
Grant it the minimum roles:
- BigQuery Data Editor on the target dataset
- Storage Object Admin on the GCS staging bucket
-
Send Heap:
- the service-account email
- JSON key file (private key)
GCS bucket name for staging
-
CS updates your integration to use that key; after the next sync the CS-owned service account is no longer used.
All subsequent file copies and load jobs run entirely under your credentials, giving you full audit visibility and revocation control.
How does Data Connect export differ from the GA4 → BigQuery?
Section titled How does Data Connect export differ from the GA4 → BigQuery?GA4 delivers one nested events_YYYYMMDD table/day; every hit sits in an event_params array and device fields. CS Connect outputs flat, session- or page-level rows with > 200 DXA & DEM metrics (scroll depth, rage-click flags, JS errors, Core Web Vitals, etc.) and optional cvar/dvar columns. That relational shape avoids the UNNEST work GA4 requires and lets you retrofit new UX metrics without a schema change.
Privacy — does the export contain Personal Data?
Section titled Privacy — does the export contain Personal Data?By default the tag masks or hashes fields that could hold Personal Data (e-mail, full IP, names, card numbers).
Can we pull files from an endpoint instead of letting CS write into our DWH?
Section titled Can we pull files from an endpoint instead of letting CS write into our DWH?Yes. Use the Raw Data API: create a job, then download the gzip-compressed JSON/CSV files over HTTPS and load them yourself.
Does Connect support Workload Identity Federation instead of a key file?
Section titled Does Connect support Workload Identity Federation instead of a key file?Not yet. Current integrations authenticate with a JSON key for a service account that you control. Google’s WIF endpoints are on our security backlog; earliest ETA is Q4 2025. (General WIF overview ↗ )
Does Data Connect support both exporting data to a data warehouse and importing data from a data warehouse into Contentsquare?
Section titled Does Data Connect support both exporting data to a data warehouse and importing data from a data warehouse into Contentsquare?Data Connect is a Data Out solution only. It enables customers to sync data from Contentsquare (CSQ) to their data warehouse, but it does not support importing data back into CSQ.
To enrich sessions within CSQ (Data In), customers can use existing capabilities such as integrations (e.g., A/B testing tools, VoC platforms, analytics tools) and variables (custom or dynamic). This enriched data can then be included in the export via Data Connect.
Does DXA Connect replicate data into Heap’s Snowflake before sending it to the customer’s Snowflake?
Section titled Does DXA Connect replicate data into Heap’s Snowflake before sending it to the customer’s Snowflake?Yes. Data is first replicated from our platform into Connect’s Snowflake account. From there, we use Snowflake’s secure data sharing ↗ to give customers access to the relevant tables and views within their own Snowflake account.
Where is Connect’s Snowflake instance hosted?
Section titled Where is Connect’s Snowflake instance hosted?The Connect Snowflake account is hosted in the same region as the customer’s selected Snowflake destination.
Example: If the customer’s destination is in AWS eu-west-1 (EU Ireland), the data is replicated into a Connect Snowflake account in AWS eu-west-1, then shared with the customer.
Is the Snowflake region the same for Heap Connect and DXA Connect?
Section titled Is the Snowflake region the same for Heap Connect and DXA Connect?Yes. Both products replicate data into a Snowflake region based on the customer’s selected destination. The data is then securely shared with the customer using the same underlying platform.
Did Heap Connect customers get read-only access to data in Heap’s Snowflake?
Section titled Did Heap Connect customers get read-only access to data in Heap’s Snowflake?Yes, we share the data into the customers account via Snowflake’s secure data sharing ↗.
Will DXA Connect customers have access to the Heap-hosted Snowflake?
Section titled Will DXA Connect customers have access to the Heap-hosted Snowflake?No, we no longer offer the Heap-hosted Snowflake service to new customers. Customers must have their own Snowflake account, which can be created by Sign Up for Snowflake ↗
Do we need to disclose the location of Heap’s Snowflake to customers?
Section titled Do we need to disclose the location of Heap’s Snowflake to customers?No. The location always aligns with the region selected by the customer for their Snowflake destination.
Are there any limitations on the Snowflake regions supported by Connect?
Section titled Are there any limitations on the Snowflake regions supported by Connect?Yes. Not all Snowflake regions are currently supported**.** A list of supported regions is available here:
On the Heap’s help docs ↗. If a customer needs a region not currently supported, a feature request can be submitted via Airfocus.
Are there architectural or data access differences between Heap Connect and DXA Connect?
Section titled Are there architectural or data access differences between Heap Connect and DXA Connect?No. Both use the same platform architecture and data access mechanisms. The only difference is that Heap-hosted Snowflake is no longer being sold, even though some legacy customers still use it.