Weekly headcount and attrition brief from SuccessFactors

By General Input

Every Monday at 8am, get a written read on who joined, who left, and which open roles are going stale, posted to Slack and logged to a spreadsheet.

Integrations

  • SAP SuccessFactors
  • Google Sheets
  • Slack

Type

Agentic Task

Categories

  • HR & People
  • Operations

Every Monday at 8am, build a headcount and attrition brief for our people team from SAP SuccessFactors, append a snapshot to a Google Sheets tracking spreadsheet, and post the written brief to Slack.

Start by pulling the current picture out of SuccessFactors. Use List Job Information (EmpJob) for current org and headcount data so every active employee is mapped to a department, manager and location. Use List Employment Records (EmpEmployment) to identify the people who joined, List Employment Terminations (EmpEmploymentTermination) for the people who left in the last seven days including the termination reason, and List Job Requisitions (JobRequisition) for the roles that are still unfilled along with the date each one was opened.

Keep the queries bounded. SuccessFactors uses server-side snapshot pagination where the default and maximum page size is 1000 records, so a full-population EmpJob query will page: follow the __next skiptoken until the result set is complete. Narrow every call with $select, $filter and effective-date ranges instead of taking full extracts, and prefer delta queries such as $filter=lastModifiedDateTime gt datetime'...' where the entity supports it. Datetime values come back as /Date(epochMillis)/ and have to be converted into readable dates before they reach the spreadsheet or the Slack message. Picklist-driven fields such as termination reason resolve to labels through List Picklist Options (PicklistOption), so never show a raw picklist code to a human reader.

Before writing anything, read the existing rows of the tracking spreadsheet with Get Values, so the week over week change is computed against last week's recorded snapshot rather than recalculated from history on every run. Then append one row per department using Append Values, carrying the run date, department, active headcount, joiners this week, leavers this week, open requisitions and the rolling attrition rate. Appending rather than overwriting is what lets the trend accumulate week after week. Calculate the rolling attrition rate over a trailing twelve week window, using leavers against average active headcount, so a single week of departures does not swing the number.

Then write a short narrative brief and post it to Slack with Send a Message. Cover headcount by department, the week over week change, who joined and who left, the rolling attrition rate, and which open requisitions are ageing past 60 days.

The value here is the written interpretation rather than the raw table, so do not list every department. Call out the two or three movements that actually matter this week and say why they matter: a department where attrition is accelerating, a team that has lost more people than it has hired several weeks running, or a requisition that has been open long enough to suggest the role will not be filled as currently scoped. Name people on the joiners and leavers lines, keep the message short enough to read in the channel without expanding it, and when nothing meaningful moved, say so plainly instead of padding the brief.

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