Weekly headcount snapshot from Rippling to Google Sheets and Slack

By General Input

Every Monday at 6am, log active headcount from Rippling into a Google Sheets tracker and post the week over week change to your finance channel in Slack.

Integrations

  • Rippling
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • HR & People
  • Finance

Build a deterministic code workflow that runs every Monday at 6am and captures a weekly headcount snapshot from Rippling into a Google Sheets tracker, then posts a short update to Slack. Every step is a discrete, deterministic node: list, group, append, read prior row, post message.

Trigger: cron, every Monday at 6:00 AM in the workspace's local timezone.

Step 1: Call Rippling's List Workers operation. Filter to employment_status = ACTIVE and set expand to include department, work_location, and employment_type so every worker row comes back with those related objects inlined. Page through with limit=100 and cursor until nextCursor is null.

Step 2: In code, bucket the workers into rows keyed by (snapshot_date, department name, work_location name, employment_type). snapshot_date is today's ISO date. Produce one row per unique combination with a count column of how many active workers fall into that bucket. Also compute the total active headcount across all buckets.

Step 3: Call Google Sheets Append Values on a pre-existing tracker spreadsheet. The spreadsheet ID and sheet/tab name should be configurable inputs. Append one row per bucket in the order: snapshot_date, department, work_location, employment_type, count. Use USER_ENTERED value input option so dates render correctly.

Step 4: Before posting to Slack, call Google Sheets Get Values on the same tracker to read the prior snapshot's rows (the most recent snapshot_date that is not today's). Sum the count column for those rows to get last week's total. Compute delta = this week's total minus last week's total.

Step 5: Call Slack Send a Message to the #finance-ops channel (channel name should be a configurable input). Post a short message like: "Weekly headcount snapshot: 247 active employees this week (change from last week: +3). View the tracker: <sheet URL>." Format the delta with a plus sign for positive, minus for negative, or "unchanged" for zero. Include a link to the Google Sheets tracker.

Configurable inputs at authoring time: Google Sheets spreadsheet ID, sheet/tab name, Slack channel, and cron timezone. Everything else (Rippling filter, expand set, row schema) is fixed by the workflow itself.

Failure behavior: if Rippling returns an empty worker list, do not append anything and post a Slack alert saying the snapshot failed. If the Google Sheets prior-snapshot read returns no history rows (first run), skip the delta and post just this week's total with a note that this is the first snapshot.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats