DATA OPS

Attribute BigQuery Spend to Teams via Airtable Owner Map

Joins daily BigQuery query spend against an Airtable directory mapping users to teams, writes a per-team daily cost rollup back to Airtable.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule
  • ActionSum yesterday's spend per user in BigQueryGoogle BigQueryBigQuery
  • ActionRead user-to-team mapping from AirtableAirtableAirtable
  • LogicJoin spend to teams, roll up, flag unmapped users
  • ActionWrite per-team dated cost rows to AirtableAirtableAirtable
  • OutputPost ranked team cost leaderboard to SlackSlack

What it does

Individual `user_email` values from BigQuery rarely map cleanly to org structure. This workflow joins raw spend against an Airtable table that maps each user (and service account) to a team and cost center, then rolls spend up to the team level. It stores a dated row per team in Airtable for trending and posts a ranked daily leaderboard to Slack.

When to use it

Use it when leadership wants warehouse cost reported by team or cost center rather than by individual, and when your user-to-team mapping lives in Airtable and changes often. The Airtable map stays the single source of truth — no hardcoded ownership in the pipeline.

How it works

  1. 1A daily schedule triggers the run.
  2. 2BigQuery sums yesterday's billed bytes and slot-ms grouped by `user_email`.
  3. 3Airtable returns the user-to-team mapping table.
  4. 4A logic step joins spend to teams, sums per team, and flags any user with no mapping as "Unattributed."
  5. 5Per-team dated cost rows are written back to Airtable.
  6. 6A ranked team leaderboard, including the unattributed bucket, is posted to a Slack channel.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect AirtableBases, tables, views, automations.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.