Weekly "who's out" briefing from Rippling to Slack
Every Monday at 8am, post a plain-English rundown of who is on time off this week, grouped by team, with staffing gap alerts.
Build me an agent workflow that posts a weekly "who's out this week" briefing to my leadership Slack channel every Monday at 8am in my local timezone. The trigger is a cron schedule.
Data collection, in order:
1. Call Rippling's List Leave Requests to pull every leave request whose start date falls in the window from today through today plus 7 days. Include both approved and pending requests. Exclude cancelled and declined requests.
2. Call Rippling's List Workers with field expansion for department and manager so every request can be joined against the worker's team and reporting line. Use employment_status ACTIVE. Match workers to leave requests by worker id.
Analysis the agent should do in-memory once both lists are loaded:
- Group all leave records by department. Within each department, list each absent person with their date range and leave type (PTO, sick, parental, etc.).
- For every day in the 7-day window, count how many people from the same department are off that day. If the count is greater than one for a given department on a given day, flag that day as a "potential understaffing" alert in the brief and name the department and the people involved.
- Separately list any leave requests whose status is still pending so managers can see what still needs a decision before the week starts. Include who requested it and which manager owes the decision.
- Compute total team-days-out for the week (sum of business days off across all approved requests) and include it as the closing line of the brief.
Output format: a single natural-language Slack message written in Slack mrkdwn. Use section headers with *bold* labels (not markdown ** double asterisks), one section per department, and a short intro line at the top like "Here's who's out this week." End with the total team-days-out figure. If no one is out that week, post a one-line message confirming that instead.
Delivery: post the finished brief to a single Slack channel using Slack Bot's Send a Message. The channel should be a workflow input so it can be changed without editing the workflow. Post as the bot; do not send as an individual user.
Inputs the workflow should expose: the target Slack channel, the timezone for the 8am schedule, and an optional list of department names to include or exclude. Everything else can be handled inside the agent.
Additional information
What does this prompt do?
- Pulls all approved and pending time off from Rippling with a start date in the coming seven days.
- Attaches team and manager context to each person so absences can be grouped by team.
- Writes a friendly narrative brief that flags days where more than one teammate is out and lists pending requests waiting on a manager.
- Posts the finished brief to your leadership Slack channel every Monday morning.
What do I need to use this?
- A Rippling admin account with permission to read employees and time off.
- A Slack workspace where our bot has been added to the channel that should receive the brief.
- The name of the Slack channel you want the Monday brief posted to.
How can I customize it?
- Change the timing. Move the brief to a different day or hour, or run it twice a week.
- Change the audience. Post to a different channel, or send a separate brief per department manager.
- Change what gets flagged. Raise or lower the threshold for a staffing gap alert, or hide pending requests if you only care about approved time off.
Frequently asked questions
Does this include pending time off requests?
How does the staffing gap alert work?
Can I run this for just one department?
Will the message look like a bot post or a human message?
What if no one is out that week?
Related templates
Skip the Monday morning PTO scavenger hunt.
Connect Rippling and Slack once, and Geni delivers a "who's out this week" brief to your leadership channel every Monday at 8am.