How to Automate HR Workflows with n8n (Onboarding, Compliance, and Wellness Monitoring)
Automate HR workflows with n8n: build onboarding sequences, shift compliance checks, and wellness monitoring without code. Browse n8n HR automation templates.
HR Admin Runs on Repetition. n8n Handles Repetition.
Every new hire triggers the same chain of tasks. Welcome email, Notion page, Trello cards, payroll enrollment reminder, badge request. Someone copy-pastes the employee's name into five different tools, every single time. Multiply that by a team that hires quarterly, and you're looking at a full day of manual work per four-person cohort.
n8n HR automation handles that chain automatically. A new row in Google Sheets becomes the trigger. The workflow runs: it sends the email, creates the Notion page, assigns the Trello cards, and logs everything to the HR master sheet. No one has to remember it.
That's just onboarding. Wellness monitoring, shift compliance, and scheduled compliance reports all follow the same trigger-normalize-act pattern, and n8n connects to every tool HR already uses without per-task pricing.
What You Can Automate With n8n and HR Data
Most HR tasks that repeat on a predictable cadence are strong automation candidates:
- Send personalized welcome emails and create Notion knowledge base pages when a new hire appears in Google Sheets
- Run weekly wellness check-ins, score responses with an AI node, and alert HR on Slack when someone flags as high-risk
- Fill open shifts by filtering certified, available staff and sending Twilio SMS outreach automatically
- Email scheduled compliance reports to HR directors every Monday at 8 AM without anyone touching a spreadsheet
- Track onboarding task completion in Trello and escalate overdue milestones via Gmail
- Sync employee status changes from BambooHR or Workday to downstream tools like Slack and Notion
- Summarize exit interview responses with an OpenAI node before they reach the HR inbox
The HR Automation Pipeline
Every effective n8n HR workflow follows a four-stage structure:
Trigger (Webhook / Schedule / Google Sheets row)
→ Normalize (Code node: clean names, calculate milestone dates, filter eligibility)
→ Create (Gmail, Notion, Trello, Slack: produce the artifact or notification)
→ Log (Google Sheets: write the audit trail row)
The trigger is almost always an event: a Google Form submission, a new Google Sheets row, or a cron schedule. The Code node (v2, jsCode parameter) handles any transformation that doesn't have a native node — normalizing phone numbers, calculating 30/60/90-day milestone dates from a start date string, or filtering a staff list to certified and available employees.
Use a Webhook trigger when an external system (an HRIS, Google Forms, or a third-party ATS) fires the event. Use a Schedule Trigger (n8n-nodes-base.scheduleTrigger v1.2) for anything that runs on a fixed cadence: weekly wellness digests, monthly compliance summaries, daily new-hire checks. Mixing both trigger types in a single workflow creates timing conflicts. Keep them in separate workflows.
Step-by-Step: New Hire Onboarding Workflow
1. Collect the Trigger
A Google Sheets Trigger node watches a designated sheet for new rows. When it fires, the employee data flows downstream as $json: name, email, role, start date, manager. Don't expect it to arrive clean. Start dates come in as locale-formatted strings. Department names have trailing spaces. Phone numbers include dashes that Twilio rejects.
The Code node in step 2 handles all of it.
2. Normalize
const startDate = new Date($json.start_date);
const day30 = new Date(startDate);
day30.setDate(startDate.getDate() + 30);
return [{
json: {
...$json,
start_date_iso: startDate.toISOString().split('T')[0],
day_30_check_in: day30.toISOString().split('T')[0],
email: $json.email.trim().toLowerCase(),
department: $json.department.trim(),
}
}];
This Code node (v2) runs before any external API call. Downstream nodes can trust the data shape. Skip this step and Notion's Date property rejects non-ISO strings with a 400 Bad Request, halting the workflow without an obvious error message.
3. Create the Knowledge Base Entry
The Notion node creates a page in the team wiki with the employee's name, role, manager, and the calculated onboarding timeline. Set the Parent ID to the HR onboarding database ID in Notion. If you get a 400 back, the database property types are mismatched — not a credential issue.
4. Assign Onboarding Tasks
A Trello node creates checklist cards for each milestone: IT setup request, HR policy sign-off, 30-day check-in, 90-day review. The due field maps to the milestone dates calculated in step 2. Four cards, all with deadlines, no manual entry.
5. Log and Confirm
A Google Sheets Append node writes a row to the HR onboarding log: employee name, Notion page ID, Trello card IDs, and a timestamp. Then a Gmail node sends the welcome email. If any step upstream fails, n8n's error workflow fires and posts a Slack alert to the HR channel rather than failing silently.
The Onboarding and Knowledge Retention template wires all five steps together — Gmail, Notion, Trello, and Google Sheets — ready to swap in real credentials.
Three n8n HR Automation Patterns That Deliver Fast
Pattern 1: Wellness Monitoring With AI Triage
Weekly wellness check-in data arrives via a Google Form webhook. A Code node normalizes each response: stress level (1–5 scale), mood score, hours of sleep, and an absence flag.
The @n8n/n8n-nodes-langchain.openAi v2.1 node runs a risk assessment prompt. It receives the normalized wellness object and returns a structured JSON with a risk score (0–100) and a reason field. The output lives at $json.output[0].content[0].text — parse it with JSON.parse() in a downstream Code node before the IF branch.
Don't use the older n8n-nodes-base.openAi node for this. It returns output at a completely different path, and tutorials from 2023 still reference the deprecated format. Copying from those guides breaks the parse step without any obvious error in the execution log. Use the LangChain node.
An IF node routes: risk score above 70 posts to the #hr-alerts Slack channel with the employee name and reason field. Below 70, log only. The Employee Wellness Monitor template implements this pattern with pre-wired Slack alerting and a Google Sheets audit log.
Pattern 2: Shift Fill and Compliance Engine
A shift call-out arrives via webhook with the shift details and required certification code. An HTTP Request node fetches the full staff list from Google Sheets. A Code node filters to employees who are certified for the shift type, available (not already scheduled that day), and below their weekly overtime hour cap.
Twilio's SMS node sends an outreach message to every eligible staff member. An email node notifies the affected client that coverage is being arranged. A Google Sheets Append node writes the compliance record: shift ID, outreach count, overtime flag, timestamp.
One practical issue: the Webhook node's default execution timeout is 120 seconds. If you've got 400+ staff rows in Google Sheets and the fetch is slow, you'll hit the timeout before the SMS loop finishes. Bump executionTimeout in the workflow settings, or move the staff list to a Postgres table with an indexed query. A 10-minute configuration change that prevents a 2 AM production failure.
The Shift Fill and Compliance Engine template handles the full flow: webhook intake, eligibility filtering, Twilio SMS, client email, and compliance log append.
In regulated industries (healthcare, elder care, staffing agencies), you need a timestamped record of every outreach attempt: who was contacted, when, whether they responded, and whether coverage was achieved. The Google Sheets Append at the end of the shift fill workflow is that audit trail. Skip it and you won't have the data when a compliance review asks for it. Every time.
Pattern 3: Scheduled Compliance Reporting
A n8n-nodes-base.scheduleTrigger v1.2 node fires every Monday at 8:00 AM UTC. A Google Sheets node reads the previous week's compliance log (rows where the date column falls within the last 7 days). A Code node aggregates: total shifts, fill rate percentage, average outreach count per shift, and any overtime flags from the week.
A Gmail node sends the formatted summary to the HR director. No one has to pull the spreadsheet. No data misses the aggregation window because no human has to remember to run it. That's the right way to run compliance reporting.
n8n Nodes You'll Use Most
| Node | Purpose |
|---|---|
| Webhook | Receive form submissions, shift call-outs, HRIS events |
| Google Sheets | Read staff records, log onboarding rows, store compliance data |
| Gmail | Welcome emails, compliance summaries, milestone escalations |
| Slack | Wellness risk alerts, shift fill summaries, error notifications |
| Code v2 | Normalize employee data, calculate dates, filter staff eligibility |
@n8n/n8n-nodes-langchain.openAi v2.1 | Wellness risk scoring, exit interview summarization |
| Notion | Create knowledge base pages, update onboarding timelines |
| Trello | Assign onboarding task cards with milestone due dates |
| HTTP Request | Connect to BambooHR, ADP, or Workday REST APIs |
| Schedule Trigger | Weekly reports, daily new-hire checks, recurring compliance jobs |
Getting Started With n8n HR Automation
- Pick the one HR task that resets most often — it's probably new hire onboarding or weekly wellness check-ins.
- Map the trigger: a Google Sheets row, a form submission webhook, or a cron schedule.
- List every tool the task currently touches and confirm n8n has a node or HTTP endpoint for each.
- Install the Onboarding and Knowledge Retention template as a working base.
- Replace credential placeholders with real values from n8n's credentials panel.
YOUR_GMAIL_CREDENTIALandYOUR_NOTION_CREDENTIALare clearly marked in the workflow JSON. - Run a test with a fake employee row and walk through the execution log node by node.
- Set up an error workflow that posts to a Slack channel when executions fail — you don't want to find out three days later that onboarding emails haven't been sending.
For more on the earlier stages of the HR funnel, How to Automate Your Hiring Pipeline with n8n covers application intake through offer letter delivery. How to Automate Slack Alerts and Team Notifications with n8n goes deeper on the alerting patterns that appear in nearly every HR workflow.
Start with the Wellness Monitor template →Common questions
Can n8n integrate with ADP, Workday, or BambooHR?
How does n8n handle employee data privacy in HR automation?
What's the fastest HR workflow to automate first with n8n?
Get the workflow templates this guide is built on
Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.
More automation guides

How to Build OpenAI Workflows with n8n (Classify, Summarize, and Generate at Scale)
n8n OpenAI workflows connect a self-hosted automation engine to capable text models, and the integration is more direct than most tutorials suggest. The pattern goes like this: something triggers the…

How to Automate HubSpot with n8n (Contacts, Deals, and Email Sequences)
HubSpot Automation That Goes Beyond the Built-In Workflow Builder HubSpot's native workflow builder handles simple branching inside HubSpot well. The moment you need to sync a closed deal to your acco…

How to Automate Shopify with n8n (Orders, Customers, and Inventory)
Shopify Automation That Actually Runs Every Shopify store hits the same wall. You're manually exporting order CSVs to your fulfillment partner. Someone has to tag VIP customers by hand after their thi…