Daily who's out digest in Slack from BambooHR
Post a morning summary of who's on PTO and who's back to your Slack channel, grouped by team, every weekday at 8am.
Every weekday at 8am company time, post a "who's out today and who's back" digest into a Slack channel, using BambooHR as the source of truth. The trigger is a cron schedule (Monday through Friday, 8:00 in our company time zone). The channel defaults to #team-ooo but should be configurable.
Step 1 — Find today's time off in BambooHR. Call the "List Time Off Requests" operation, filtered by status = approved, with start and end dates set so it returns any approved request that overlaps today's date. From that result, build two lists: (a) people who are out today, and (b) people whose last day of leave was yesterday (i.e., they are returning today).
Step 2 — Enrich each person with team context. Call the BambooHR "Get Employee Directory" operation and join on employee ID to attach each person's department, job title, and manager. Use department as the primary grouping key. If department is missing, fall back to the manager's name.
Step 3 — Use judgement to assemble the digest. This is why the workflow is an agent rather than a fixed script: decide which absences matter together. Group the "out today" list by team. If two or more people on the same team are out on the same day, add a short coverage-gap callout line for that team (e.g., "Heads up: 3 people on Engineering are out today"). Keep the tone conversational, not corporate.
Step 4 — Send the digest via the Slack "Send a Message" operation into the configured channel. The message should contain: a one-line conversational summary at the top ("Good morning — 4 people are out and 2 are back today."), a section per team listing who is out with their job title, any coverage-gap callout lines, and a short "Welcome back" section listing people returning today.
Skip rule: if nobody is out today AND nobody is returning today, do not post anything. The channel should stay quiet on calm days.
Configurable inputs the user should be able to set: the Slack channel (default #team-ooo), the company time zone, the days of the week the digest runs (default Mon–Fri), and the coverage-gap threshold (default 2 people from the same team).
Additional information
What does this prompt do?
- Pulls today's approved time off from BambooHR every weekday morning so the team knows who's away before standup.
- Groups people out by team and calls out the days when multiple teammates from the same team overlap, so managers can plan coverage.
- Surfaces anyone returning to work today, so welcomes and hand-offs don't slip.
- Posts one short, conversational message to a Slack channel of your choice, and stays quiet on days when nobody is out and nobody is back.
What do I need to use this?
- A BambooHR account with permission to view time off and the employee directory.
- A Slack workspace and a channel for the digest (defaults to #team-ooo).
- Your company time zone, so 8am fires for the right working day.
How can I customize it?
- Change the time, the Slack channel, or the tone of the message (formal vs. casual).
- Group by department, location, or office instead of team.
- Adjust the coverage callout so it only fires when two or more people from the same team are out on the same day.
Frequently asked questions
Will this post a message on days when nobody is out?
Can I change which Slack channel it posts to?
Does it include pending or denied time off requests?
How does it know which team someone is on?
Can I run it at a different time or only on certain days?
Stop chasing down who's on PTO every morning.
Connect BambooHR and Slack once, and Geni posts the digest every weekday morning before standup.