Daily Gusto time off approval digest to Slack
Every weekday at 8am, post a digest of pending time off requests to Slack, grouped by manager with coverage gap alerts, so approvals happen before standup.
Every weekday at 8am, sweep Gusto for pending time off requests and post a digest to the #people Slack channel so managers see what needs their approval before their morning meetings.
Step 1. Use Gusto's List Time Off Requests operation, filtered to status=pending, to pull every request still awaiting a decision. If there are none, post a short 'no pending time off requests today' note and stop.
Step 2. Use Gusto's List Employees operation to enrich each requester with their job title, department, and manager. Use Gusto's List Departments operation to resolve department names when the employee response only carries department UUIDs. Cache the employee list once and reuse it — do not refetch per request.
Step 3. Also load approved time off requests that overlap the pending dates so you can spot coverage gaps. For each pending request, check whether any teammate on the same department or under the same manager is already approved off on any of the same days.
Step 4. Group the digest by manager. Within each manager's block, list each pending request with: requester name and job title, department, request dates (start–end), policy type (vacation, sick, etc.), total duration in days or hours, and any coverage overlap noted inline (e.g. 'heads up: Alex Rivera on the same team is already approved off Jul 15–17').
Step 5. Use Slack Bot's Send a Message operation to post to the #people channel. Tag each manager at the top of their block using Slack mentions so they get pinged. Format the message with Slack mrkdwn — use *bold* for names, and put dates and policy type on the same line for scannability. Keep the message tight; if the queue is huge, prefer one message with clear sections over multiple messages.
Nuance: managers in Gusto are identified by employee UUID. Resolve the manager's name from the same List Employees payload. If a requester has no assigned manager, put them under an 'Unassigned' block at the bottom of the digest. Never expose compensation or SSN fields in the message.
Additional information
What does this prompt do?
- Sweeps Gusto every weekday morning for time off requests still waiting on approval.
- Groups each request under the requester's manager and tags that manager in Slack so nothing falls through the cracks.
- Enriches every request with job title, department, and dates so approvers have the context they need in one glance.
- Flags coverage gaps by showing which teammates are already approved off on the same days.
What do I need to use this?
- A Gusto account with access to time off requests, employees, and departments.
- A Slack workspace with a channel (like #people) where the digest should be posted.
- The channel that managers actually read before their morning meetings.
How can I customize it?
- Change the send time or day pattern (e.g. run every day, or only Tuesday to Thursday).
- Point it at a different Slack channel, or fan out one thread per manager instead.
- Filter by department or policy type if only certain teams should get spotlighted.
Frequently asked questions
What happens if there are no pending time off requests?
Will managers get tagged even if they are out of office?
How does it know which teammates are already out?
Does this replace Gusto's built-in PTO calendar?
Can I run it more than once a day?
Related templates
Stop chasing time off approvals in DMs.
Put the pending queue in front of the right manager, at the right time, with the coverage context they need to say yes or no in seconds.