Manage PTO requests and emoji approvals with Slack, Gemini, and Google
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 18 nodes and runs on Slack events. Along the way it connects Slack, Google Sheets and Google Calendar.
How it runs
Trigger: On Slack events.
- Route by Event Type (If): checks a condition and branches into true / false
- Prepare Request Config (Edit Fields (Set)): sets 5 fields: hr_channel_id, team_calendar_id, gemini_model…
- If: checks a condition and branches into true / false
- Extract Dates with Gemini (HTTP Request): calls an HTTP API (POST)
- Fetch Thread Replies (Slack): replies (channel)
- Parse Date Output (Edit Fields (Set)): sets 2 fields: start_date, end_date
- Prepare Reaction Config (Edit Fields (Set)): sets 7 fields: hr_channel_id, hr_admin_user_id, team_calendar_id…
- Check Calendar Conflicts (Google Calendar): get many
- Check Reaction Criteria (If): checks a condition and branches into true / false
- If: checks a condition and branches into true / false
…plus 7 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
- Still check Slack Trigger requires a signing secret on the Slack API credential (When App Mentioned).
Nodes used (7)
- Slack Trigger
n8n-nodes-base.slackTrigger - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - If
n8n-nodes-base.if - Slack
n8n-nodes-base.slack - Google Sheets
n8n-nodes-base.googleSheets - Google Calendar
n8n-nodes-base.googleCalendar
From the author
Quick Overview This workflow captures Slack PTO requests and approval reactions, uses Google Gemini to extract date ranges and reasons, checks Google Calendar for conflicts, logs requests in Google Sheets, and on ✅ approval blocks the time in Google Calendar…