BigQuery
Overview
Birdie can ingest structured datasets directly from BigQuery using read-only SQL queries. Most customers run Birdie ingestion daily, using a partition column (DATE / TIMESTAMP / DATETIME) to import only new rows and avoid full table scans.
Create the Service Account used by Birdie
Birdie connects to BigQuery using a Google Cloud Service Account. This service account is a technical identity used only for read-only access to your data. Steps in Google Cloud Console:
Go to IAM & Admin - Service Accounts
Click “Create service account”
Service account name (suggested): birdie
Description (optional)
Click “Create and continue” (roles will be added in the next section)
Finish creating the service account
Note: After creation, wait up to 1 minute before using the service account. IAM propagation can be slightly delayed.
Grant Read-Only BigQuery Permissions
Permission to run query jobs (Project level) Role: BigQuery Job User (roles/bigquery.jobUser)
This permission allows Birdie to execute SQL queries. It does NOT grant data access by itself.
How to grant:
IAM & Admin - IAM
Select your Project
Add the service account
Assign role: BigQuery Job User
Permission to read data (Dataset level – recommended) Role: BigQuery Data Viewer (roles/bigquery.dataViewer)
This permission allows Birdie to read tables or views.
How to grant:
Go to BigQuery
Select the Dataset that Birdie should ingest
Click “Share dataset”
Add the service account
Assign role: BigQuery Data Viewer
Note: Grant Data Viewer at the dataset (or table) level instead of the entire project.
Prepare Your BigQuery Table
Birdie works best when the source table is partitioned by a column used for incremental ingestion (for example: posted_at).
Supported partition column types:
DATE
TIMESTAMP
DATETIME
Steps in BigQuery Console:
Open BigQuery
Select your Dataset
Click “Create table”
Source: Empty table
Define the schema:
Make sure the schema includes your partition column as DATE, TIMESTAMP, or DATETIME.
Partition and cluster settings:
Partition by field
Select the partition column
Recommended: enable “Require partition filter". This reduces cost and prevents accidental full table scans.
Create the table
Create a Service Account Key (JSON)
Birdie authenticates using a JSON service account key. Steps:
Go to IAM & Admin - Service Accounts
Click the service account (birdie)
Open the “Keys” tab
Click “Add key” - “Create new key”
Select JSON
Click “Create” The JSON file will be downloaded automatically.
Important:
This JSON file is what Birdie uses to authenticate
Validate Access
You can validate access using Cloud Shell or your local machine.
Activate the service account using the JSON key
Run a simple query
Validate reading your table using a partition filter
If this works, Birdie can query your data successfully.
Share Connection Details with Birdie
To configure the integration, securely provide Birdie with:
Project ID
Dataset name
Table name (or view name)
Partition column used for incremental ingestion (DATE / TIMESTAMP / DATETIME)
Kind of data:
Review
NPS
CSAT
Support Ticket
Social Media Post
Issue
Account
Service account JSON key (credentials file)
Share it securely with the Birdie team
Data Types Supported
Birdie can ingest structured datasets exposed as BigQuery tables or views, including:
Conversations and messages (Support Tickets, Issues, Social Media Posts)
Feedback datasets (review, nps, csat)
Operational or reference tables (accounts, users, metadata)
Expose one table or view per dataset type.
Last updated