LOW / CODEBlueprints
hr

PTO Request Approval Flow

Employees submit PTO requests through Typeform, managers approve or deny via Slack interactive buttons, and approved dates automatically appear on Google Calendar with a Google Sheets audit log.

Intermediate~25 minn8nMake.com 727 downloads 2765 views

Setup Instructions

1. Create a Typeform with fields: Employee Name, Employee Email, Manager Email, Start Date, End Date, PTO Type (Vacation, Sick, Personal), and Notes. 2. Create a Google Sheet with columns: Request ID, Employee, Manager, Start Date, End Date, Type, Status, Submitted At, and Decided At. 3. In n8n/Make, add a Typeform trigger that fires on new submissions. 4. Add a Google Sheets node to log the request with Status set to "Pending" and a generated Request ID. 5. Add a Slack node that sends an interactive message to the manager (looked up by email) with Approve and Deny buttons, showing the employee name, dates, and PTO type. 6. Add a webhook or Slack interaction handler that captures the manager's button click response. 7. If approved: create a Google Calendar all-day event for the date range titled "[Employee Name] - PTO" and update the Sheets row status to "Approved". Send a Slack DM to the employee confirming. 8. If denied: update the Sheets row status to "Denied" and send a Slack DM to the employee with the denial and any manager notes.
Troubleshooting
**Slack interactive buttons not responding:** Ensure your Slack app has the Interactivity & Shortcuts feature enabled with a valid Request URL pointing to your automation webhook. The URL must be publicly accessible. **Calendar events created on wrong dates:** Typeform date fields return ISO strings. Parse them explicitly and verify timezone handling before creating the Google Calendar event. Use all-day event format to avoid off-by-one errors. **Manager not receiving the Slack message:** The manager lookup requires their Slack email to match. If your team uses different emails for Slack vs. the form, add a mapping table or lookup step to resolve the correct Slack user ID. **Duplicate requests logged:** Add a deduplication check using the combination of Employee Email + Start Date + End Date before inserting into Google Sheets.

Need a custom version?

We can build a tailored automation workflow for your specific needs.

New blueprints weekly

Get notified when we publish new automation workflows.