Who is out this week: Monday Slack digest from Workday

By General Input

Every Monday morning your team channel gets a clean rundown of who is off each day this week, plus any company holidays.

Integrations

  • Workday
  • Slack Bot
  • Slack

Type

Deterministic Code

Categories

  • HR & People
  • Operations

Every Monday at 8am, post a "who is out this week" digest to our team Slack channel, built from Workday absence data. Use my workspace timezone both for the 8am schedule and for working out which Monday-to-Sunday window counts as the current week.

Start by getting the roster of workers from Workday with Absence - List Workers. If I give you a specific supervisory organization to scope the digest to, use Common - List Supervisory Organizations Workers instead so the digest only covers that one team. Page through the full collection with limit and offset, since these collections return 20 records per page by default and cap at 100.

For each worker on the roster, call Absence - List Workers Time Off Details and keep only the time off entries falling inside the next seven days. Filter strictly to entries whose status is Approved. This one matters: pending, submitted, or sent-back requests must never reach the channel, because time off nobody has approved yet is not public information, and that leak is the main thing teams complain about with digests like this. Workday exposes the valid statuses through Absence - List Time Off Status Values, where Approved is the instance with id 0391102bd1b542538d996936c8fa2fa7. Drop every worker with no approved time off in the window so the message stays short.

Also call Holiday - List Holiday Events and pick up any company holidays landing in the same seven day window, so they show up in the digest alongside individual absences rather than in a separate message.

Format the digest grouped by day, Monday through Friday, with a heading for each day that has something on it. Under each day, list each person's name, their absence type (vacation, sick, parental leave, and so on), and whether they are out for a full day or a partial day. Put company holidays on their own line under the day they fall on. Skip days with nothing on them rather than printing an empty heading. Someone off for several days should appear under each day they are away. Write the message in Slack mrkdwn, so single asterisks for bold rather than double.

Post the finished digest with Slack's Send a Message to the channel I nominate. Use the Slack Bot integration so the digest posts under a stable bot identity instead of one person's account and keeps working if that person leaves; use the user-token Slack integration only if I specifically want it to look like I posted it. If nobody has approved time off in the window and there are no holidays, post a single line saying the team is fully in this week instead of an empty digest.

Keep concurrency low while looping over workers, since Workday throughput is governed by tenant-level API limits, and back off and retry if it returns a 429 or 503.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonChat quality review board for LiveChat support leadsLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agents