Summary: Enterprise workspaces can push a nightly contract snapshot to Snowflake or BigQuery. Contrax creates the table if it is missing, then inserts. Save OAuth credentials in Workspace → Settings.

Snowflake / BigQuery warehouse export

Contrax inserts the same fields used in the in-app portfolio snapshot: dates, notice, workflow, opt-out proof flag, and at-risk. Configure provider + tokens in the dashboard, then enable nightly export (03:00 Europe/Paris via Inngest). Saving credentials runs a CREATE TABLE probe immediately. Contrax cannot grant Snowflake or BigQuery IAM in your account; if the probe fails, run the GRANT statements shown in Workspace settings (the token identity needs CREATE TABLE + INSERT).

Required grants

Snowflake (replace ROLE / identifiers):

GRANT USAGE ON WAREHOUSE <WAREHOUSE> TO ROLE <ROLE>;
GRANT USAGE ON DATABASE <DATABASE> TO ROLE <ROLE>;
GRANT USAGE ON SCHEMA <DATABASE>.<SCHEMA> TO ROLE <ROLE>;
GRANT CREATE TABLE ON SCHEMA <DATABASE>.<SCHEMA> TO ROLE <ROLE>;
GRANT INSERT, SELECT ON ALL TABLES IN SCHEMA <DATABASE>.<SCHEMA> TO ROLE <ROLE>;
GRANT INSERT, SELECT ON FUTURE TABLES IN SCHEMA <DATABASE>.<SCHEMA> TO ROLE <ROLE>;

BigQuery: grant the token identity roles/bigquery.dataEditor on the dataset and roles/bigquery.jobUser on the project.

Snowflake DDL

CREATE TABLE IF NOT EXISTS CONTRAX_CONTRACTS (
  ORGANIZATION_ID VARCHAR,
  CONTRACT_ID VARCHAR,
  CONTRACT_NUMBER VARCHAR,
  CONTRACT_VALUE FLOAT,
  EXPIRATION_DATE VARCHAR,
  NOTICE_PERIOD NUMBER,
  REMAIN_DAYS_NOTICE NUMBER,
  REMAIN_DAYS_EXPIRATION NUMBER,
  STATUS VARCHAR,
  RENEWAL_WORKFLOW_STATUS VARCHAR,
  RENEWAL_INTENT VARCHAR,
  VENDOR_NON_RENEWAL_DEADLINE VARCHAR,
  NOTICE_ON_FILE BOOLEAN,
  AT_RISK BOOLEAN,
  WITHOUT_PLAN BOOLEAN,
  EXPORTED_AT VARCHAR
);

BigQuery DDL

CREATE TABLE IF NOT EXISTS contrax_contracts (
  organizationId STRING,
  contractId STRING,
  contractNumber STRING,
  contractValue FLOAT64,
  expirationDate STRING,
  noticePeriod INT64,
  remainDaysNotice INT64,
  remainDaysExpiration INT64,
  status STRING,
  renewalWorkflowStatus STRING,
  renewalIntent STRING,
  vendorNonRenewalDeadline STRING,
  noticeOnFile BOOL,
  atRisk BOOL,
  withoutPlan BOOL,
  exportedAt STRING
);

Related: SSO · Enterprise pricing · Security pack.

Frequently asked questions

What does Contrax export to Snowflake or BigQuery?

A contract snapshot: identifiers, value, expiration, notice remaining, workflow, opt-out proof flag, and at-risk. Contrax creates the table if missing, then inserts. Saving credentials probes CREATE TABLE and shows the GRANT SQL if the token lacks permission.