Minoa’s Data Export feature lets you automatically sync business cases from your workspace to your own data warehouse or Google Sheets. Once configured, exports run on a schedule you choose — hourly, daily, weekly, or monthly — keeping your destination up to date with the latest Minoa data. This enables you to join Minoa data with your existing datasets, build custom dashboards, and run advanced analytics in your own BI tools.Documentation Index
Fetch the complete documentation index at: https://docs.minoa.io/llms.txt
Use this file to discover all available pages before exploring further.
Supported Destinations
Google BigQuery
Snowflake
Google Sheets
Exported data
Each export contains business cases in your workspace, flattened to one row per opportunity that has a business case.| Object | Description | Columns |
|---|---|---|
| Business Cases | All qualifying business cases for your tenant | 27 columns including identifiers, name, status, stage, account, owner, currency, benefit and investment totals, ROI and payback, contract fields, use case count, CRM linkage, flags, usage score, scenario mode, value realized to date, and timestamps |
Export Methods
| Method | Behavior | Best For |
|---|---|---|
| Incremental | Only exports records created or updated since the last successful run | Large datasets where you want to minimize transfer volume |
| Full | Truncates the table and re-exports all records on every run | Smaller datasets or when you need a complete refresh |
| Upsert | Inserts new records and updates existing rows in-place using the record ID. Not available for Google Sheets. | Maintaining a single up-to-date copy of each record |
Setting Up BigQuery
1. Create a Service Account
Open the GCP Console
Create a service account
minoa-data-export and click Create and Continue.Grant permissions
- BigQuery Data Editor (
roles/bigquery.dataEditor) — allows creating tables and writing data - BigQuery Job User (
roles/bigquery.jobUser) — allows running queries
2. Create the Target Dataset
If you don’t already have a dataset for Minoa data, create one:Minimum Permissions Summary
| Permission | Role | Why |
|---|---|---|
bigquery.tables.create | BigQuery Data Editor | Create the export table on first run |
bigquery.tables.updateData | BigQuery Data Editor | Insert, update, and truncate rows |
bigquery.tables.get | BigQuery Data Editor | Read table metadata |
bigquery.jobs.create | BigQuery Job User | Execute queries |
Setting Up Google Sheets
Google Sheets uses the same GCP service account authentication as BigQuery. You’ll create a service account, enable the Google Sheets API, and share your spreadsheet with the service account.1. Create a Service Account and JSON Key
Open the GCP Console
Create a service account
minoa-sheets-export and click Create and Continue.Skip role assignment
2. Enable the Google Sheets API
3. Share the Spreadsheet with the Service Account
Find your service account email
client_email field contains the service account email address — it looks like minoa-sheets-export@your-project.iam.gserviceaccount.com.Share the spreadsheet
Minimum Permissions Summary
| Permission | How It’s Granted | Why |
|---|---|---|
| Google Sheets API access | Enabled on the GCP project | Allows the service account to call the Sheets API |
| Spreadsheet Editor | Spreadsheet shared with the service account email | Read and write data in the spreadsheet |
Limitations
Setting Up Snowflake
1. Generate an RSA Key Pair
Snowflake’s SQL REST API uses key-pair authentication. You’ll generate an RSA key pair, register the public key with your Snowflake user, and provide the private key to Minoa.Generate a private key
minoa_rsa_key.p8.2. Create a Snowflake User and Assign the Key
Assign the public key
Minimum Permissions Summary
| Permission | Granted On | Why |
|---|---|---|
USAGE | Warehouse | Execute queries |
USAGE | Database | Access the database |
USAGE | Schema | Access the schema |
CREATE TABLE | Schema | Create the export table on first run |
SELECT | Tables | Read data for MERGE operations |
INSERT | Tables | Write new rows |
UPDATE | Tables | Update existing rows (upsert) |
DELETE | Tables | Required for MERGE operations |
TRUNCATE | Tables | Clear table for full exports |
Security
Minoa is designed to meet enterprise security requirements for data export:- Network egress — Minoa can provide a fixed egress IP address for data export traffic upon request, making it easy to add Minoa to your firewall allowlist or network policy. Contact your Minoa account team for details.
- Tightly scoped permissions — Each destination setup above uses the minimum permissions necessary. Minoa never requires admin-level access to your data warehouse.
- Dedicated credentials — We recommend creating a purpose-built service account (GCP) or user (Snowflake) exclusively for Minoa exports, separate from any human user accounts. This simplifies auditing and lets you revoke access independently.
Configuring an Export in Minoa
Name your export
BigQuery - Business Cases or Snowflake - Business Cases.Provide credentials
- BigQuery / Google Sheets: Upload the service account JSON key file you downloaded earlier.
- Snowflake: Enter your Snowflake username and paste the contents of the private key file (
minoa_rsa_key.p8).
Configure the destination
- BigQuery: Enter your GCP Project ID, Dataset ID, and a Table ID (e.g.,
business_cases). - Snowflake: Enter your Account identifier (e.g.,
orgname-accountname), Database, Schema, Table, and Warehouse. - Google Sheets: Enter the Spreadsheet ID (from the spreadsheet URL) and the sheet (tab) name.
Set interval and export method
Monitoring Exports
Runs Tab
The Runs tab shows a history of all export executions:- Status — Green (completed), yellow (completed with errors), red (failed), or blue (running)
- Rows Exported — Number of records written to the warehouse
- Duration — How long the export took
- Errors — Count of any errors encountered
Logs Tab
The Logs tab provides detailed log entries across all runs. You can filter by:- Level — INFO, WARN, or ERROR
- Search — Search log messages or filter by run ID
Troubleshooting
Export fails with 'permission denied'
Export fails with 'permission denied'
USAGE on the warehouse, database, and schema. For Google Sheets, confirm the spreadsheet is shared with the service account email as an Editor.Table is not being created automatically
Table is not being created automatically
CREATE TABLE permission on the target dataset (BigQuery) or schema (Snowflake). If the table already exists with a different schema, the export may fail — drop or rename the existing table and let Minoa recreate it.Snowflake authentication errors
Snowflake authentication errors
- Confirm the private key is in PKCS#8 PEM format (starts with
-----BEGIN PRIVATE KEY-----). - Verify the matching public key is registered on the Snowflake user: run
DESC USER minoa_export_userand check theRSA_PUBLIC_KEYproperty. - Ensure the account identifier matches exactly (e.g.,
orgname-accountname). You can find this in your Snowflake URL:https://<account>.snowflakecomputing.com.
Exports show 'completed with errors'
Exports show 'completed with errors'
Data appears stale or not updating
Data appears stale or not updating
- Check that the export status is Enabled in the Configuration tab.
- Verify the interval matches your expectations (e.g., daily exports run once per day).
- For Incremental exports, only records modified since the last successful run are included. If no records changed, the export will complete with 0 rows — this is expected.
Google Sheets export fails with 'sheet not found'
Google Sheets export fails with 'sheet not found'
Google Sheets API is not enabled
Google Sheets API is not enabled
Google Sheets is approaching its cell limit
Google Sheets is approaching its cell limit
Export fails with a connection timeout or network error
Export fails with a connection timeout or network error