Skip to main content

Google BigQuery integrations

Copy every Simplesat response into a BigQuery table and report on your feedback with your own tools.

Simplesat can copy your responses into a table in a BigQuery dataset you choose, and keep that table current as new responses come in and existing ones change. It covers every survey in your workspace, so you can query feedback alongside the rest of your data.

You switch it on from the Google BigQuery page, where it's listed as Sync feedback data to BigQuery under Account-wide integrations.

Before you start

Every Simplesat plan includes the integration. To connect it and switch it on, you need the Manage integrations permission. Owner and Admin have it by default.

On the Google side, you need:

  • A Google Cloud project with billing turned on. The integration doesn't work with BigQuery's free sandbox.

  • A dataset in that project. You create the dataset, and the integration adds its table to it.

  • A Google account that can create tables and add data in the dataset, and run queries in the project. For example, give it BigQuery Data Editor on the dataset and BigQuery Job User on the project.

You'll sign in with that account when you connect. This sign-in is just for BigQuery. It's separate from signing in to Simplesat with Google.

To see what a connected tool can read and write, see Integration security, permissions and data flow.

Connect Google BigQuery

  1. In Simplesat, go to Integrations and open Google BigQuery.

  2. Click Sign in with Google. In the window that opens, enter your project ID and dataset ID, then click Authenticate.

  3. Sign in with your Google account and approve the access request.

  4. When the page shows Authenticated with Google BigQuery, click Activate integration on Sync feedback data to BigQuery.

Google's Simplesat wants to access your Google Account screen, asking to view and manage your data in Google BigQuery, with Cancel and Allow

What lands in BigQuery and when

The table

Your responses land in one table, simplesat responses, in the dataset you entered, with one row per response.

The table appears with the first response that comes in after you activate the integration. About 10 minutes later, every existing response in your workspace starts copying in. The more history you have, the longer that takes.

When rows are added and updated

Each new response shows up as a new row at least five minutes after it arrives in Simplesat. When a response changes, for example when the customer answers another question later or a rating is edited, its row updates about 90 minutes after the change.

Only active responses are sent, never withheld, hidden or spam ones. A tag you add in Simplesat shows up the next time that response changes, since tagging on its own doesn't update the row.

What each row holds

Each row has these columns:

Column

What it holds

id

The response ID

survey

The survey's ID and name

tags

The response's tags

created, modified

When the response was created and last changed

ip_address

The respondent's IP address

ticket

The ticket's Simplesat ID, its ID in your helpdesk (external_id), its subject and its ticket fields (custom_attributes, as JSON)

team_members

Each team member's ID, role, whether they're the primary team member, their ID in your helpdesk, name and email

customer

The customer's ID, ID in your helpdesk, name, email, company, tags and attributes (custom_attributes, as JSON)

answers

For each answer: the question (ID, text, metric), the choice and choice label, the choices for multiple-choice questions, the comment, the sentiment, and the follow-up question and answer

source

Where the response came from

If a value is empty in Simplesat, it's left out of the row.

BigQuery Query results on the Simplesat table, with the answers.question.text, answers.question.metric and answers.choice columns

Heads up: Only the rows copied in when the table is created hold every answer. A row added for a new response holds just the answer to the survey's first question in answers, and just the primary team member in team_members. When a response changes, its row is rewritten in that same shorter form. So a row copied in when the table is created keeps every answer only until its response changes.

Change the Google account or dataset

To reconnect, or to switch to another Google account, project or dataset:

  1. On the Google BigQuery page, click Revoke access.

  2. Click Sign in with Google, enter the project ID and dataset ID, click Authenticate, and sign in with the Google account you want to use.

  3. Sync feedback data to BigQuery switches back on by itself if it was on. Check that it shows Deactivate integration, and click Activate integration if it's still off.

In a new dataset, the table is created when the next response arrives, and every existing response is copied in. The table in your old dataset stays exactly as it was.

To get a complete copy of every response, including any missed while the integration was off or failing, connect the integration to a new, empty dataset. Before you do, give your Google account the same access on the new dataset as it has on the old one. Afterward, point any reports and queries that read the old table at the new one.

The same steps fix a Google authorization that has expired or been revoked. That problem is easy to miss: every sync fails, but the page still shows Authenticated with Google BigQuery.

Heads up: Responses that arrive while the integration is off or failing aren't added to your existing table later. For a complete copy, connect the integration to a new, empty dataset.

Troubleshooting

Nothing has reached BigQuery since a certain date

Start with the Google authorization. If it expired or was revoked, every sync fails while the page still shows Authenticated with Google BigQuery. Click Revoke access, then click Sign in with Google, enter your project ID and dataset ID, and click Authenticate. Sign in with a Google account that has access to the project. Sync feedback data to BigQuery switches back on by itself if it was on. If it's still off, click Activate integration.

If rows still don't arrive, check that billing is on for the project, and that the button on Sync feedback data to BigQuery reads Deactivate integration, which means the integration is on. If none of that explains it, contact us.

Responses that arrived while syncs were failing aren't added to your existing table later. For a complete copy, connect the integration to a new, empty dataset, as described in Change the Google account or dataset.

My BigQuery rows are missing some of the answers

Only the rows copied in when the table is created hold every answer, and only until their response changes. Any row added for a new response, or rewritten after a response changes, holds just the answer to the survey's first question and just the primary team member.

Tags I add in Simplesat don't show up in BigQuery

Tagging a response doesn't update its row. The tag goes over the next time the response itself changes, for example when the customer answers another question or a rating is edited.

The table hasn't appeared in my dataset

The table appears with the first response that comes in after you activate the integration, at least five minutes after that response arrives. If a response has come in since then and there's still no table, check that:

  • the button on Sync feedback data to BigQuery reads Deactivate integration

  • the dataset ID you entered is right

  • billing is on for the project, because the integration doesn't work with the free sandbox

FAQ

Can I use a BigQuery service account instead of signing in with Google?

The Google BigQuery page connects by signing in with a Google account.

My company doesn't allow Google sign-in for BigQuery. How else can I get the data?

Export responses as a CSV from Feedback, or read them through the Simplesat API and load them into BigQuery yourself.

Can I resync all my responses to BigQuery?

Yes, by connecting the integration to a new, empty dataset with the steps in Change the Google account or dataset. The next response that comes in creates the simplesat responses table there, and about 10 minutes later every response in your workspace starts copying in, including any that arrived while the integration was off or failing. Before you connect, give your Google account the same access on the new dataset as on the old one. Your old table stays exactly as it was, so point any reports and queries that read it at the new one.

Does the integration create the dataset?

No, you create it in BigQuery first. The simplesat responses table goes inside it.

Can I change the name of the table?

No. It's always simplesat responses.

Did this answer your question?