This workflow sends a “Join in 10” Slack ping to each interviewer shortly before their interview starts. It checks the Interviews Google Calendar every minute, finds interviews starting in the next LEAD_MINUTES (default 10 ), and sends a Slack DM with the candidate name, role, local start time, meeting link , and any CV: / Notes: links present in the event description. If the Slack user can't be found by email, it posts to a fallback channel (default #recruiting-alerts ) with an @‑style email mention. A Data Store prevents duplicate pings for the same event + attendee .
Who's It For
- Interviewers who prefer a timely Slack nudge instead of calendar alerts.
- Recruiting coordinators who want consistent reminders without manual follow-ups.
- Teams that includes links directly in the calendar event description.
How It Works
-
Cron (every minute) polls near‑term events so pings arrive about 10 minutes before start.
-
Google Calendar (Interviews) fetches upcoming events.
-
Prepare pings filters interviews starting in ≤
LEAD_MINUTES , creates one item per internal attendee (company domain), and extracts meeting/CV/Notes links.
-
Data Store checks a ledger to avoid re‑notifying the same event+attendee.
-
Slack looks up the user by email and sends a DM with Block Kit buttons; otherwise posts to the fallback channel .
-
Data Store records that the ping was sent.
Attendees marked declined are skipped; accepted , attempts , and needsAction are included.
How To Set Up
- Ensure interviews are on the Interviews Google Calendar and that interviewers are added as attendees .
- In each event's description, optionally add lines like
CV: https://... and Notes: https://... .
- Import the workflow and add credentials:
- Google Calendar (OAuth)
-
Slack OAuth2 with
users:read.email , chat:write , and im:write
- Open Set: Config and confirm:
-
CALENDAR_NAME = Interviews
-
COMPANY_DOMAIN = weblineindia.com
-
TIMEZONE = Asia/Kolkata
-
LEAD_MINUTES = 10
-
FALLBACK_CHANNEL = #recruiting-alerts
- Activate the workflow. It will begin checking every minute.
Requirements
- Google Workspace calendar access for Interviews .
- Slack workspace + an app with the scopes:
users:read.email , chat:write , im:write .
- n8n (cloud or self-hosted) with access to both services.
How to Customize the Workflow
-
Lead time: Change
LEAD_MINUTES in Set: Config (eg, 5, 15).
-
Audience: Modify attendee filters to include/exclude
tentative or needsAction .
-
Message format: Tweak the Block Kit text/buttons (eg, hide CV/Notes buttons).
-
Fallback policy: Switch the fallback from channel post to “skip and log” if needed.
-
Time windows: Add logic to silence pings at night or only during business hours.
-
Calendar name: Update
CALENDAR_NAME in Set: Config if you use a different calendar.
Add-Ons to level up the Workflow with additional nodes
-
Conflict detector: Warn if an interviewer is double-booked in the next hour.
-
Escalation: If no DM can be sent (no Slack user), also notify a coordinator channel.
-
Logging: Append each ping to Google Sheets/Airtable for audit.
-
Weekday rules: Auto‑mute on specific days or holidays via a calendar/lookup table.
-
Follow‑up: Send a post‑interview Slack message with the feedback form link.
Common Troubleshooting
-
No pings: Ensure events actually start within the next
LEAD_MINUTES and that attendees include internal emails ( @weblineindia.com ).
-
Wrong recipients: Verify interviewer emails on the event match Slack emails; otherwise it will post to the fallback channel.
-
Duplicate pings: Confirm the Data Store is configured and the workflow isn't duplicated.
-
Missing meeting link: Add a proper meeting URL to the event description or rely on Google Meet/Zoom links detected in the event.
-
Time mismatch: Make sure
TIMEZONE is Asia/Kolkata (or your local TZ) and calendar times are correct.
Need Help?
If you'd like a hand adjusting filters, message formatting or permissions, feel free to reach out we'll be happy to help you get this running smoothly.