Skip to main content
Lifetime license included with every purchase
n8n workflowsHR automationn8n onboardingworkforce automation

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.

Nn8n Marketplace Team·May 25, 2026·9 min read

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
Browse HR automation templates

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.

Cron vs Webhook triggers for HR workflows

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.

The compliance log step isn't optional

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

NodePurpose
WebhookReceive form submissions, shift call-outs, HRIS events
Google SheetsRead staff records, log onboarding rows, store compliance data
GmailWelcome emails, compliance summaries, milestone escalations
SlackWellness risk alerts, shift fill summaries, error notifications
Code v2Normalize employee data, calculate dates, filter staff eligibility
@n8n/n8n-nodes-langchain.openAi v2.1Wellness risk scoring, exit interview summarization
NotionCreate knowledge base pages, update onboarding timelines
TrelloAssign onboarding task cards with milestone due dates
HTTP RequestConnect to BambooHR, ADP, or Workday REST APIs
Schedule TriggerWeekly reports, daily new-hire checks, recurring compliance jobs

Getting Started With n8n HR Automation

  1. Pick the one HR task that resets most often — it's probably new hire onboarding or weekly wellness check-ins.
  2. Map the trigger: a Google Sheets row, a form submission webhook, or a cron schedule.
  3. List every tool the task currently touches and confirm n8n has a node or HTTP endpoint for each.
  4. Install the Onboarding and Knowledge Retention template as a working base.
  5. Replace credential placeholders with real values from n8n's credentials panel. YOUR_GMAIL_CREDENTIAL and YOUR_NOTION_CREDENTIAL are clearly marked in the workflow JSON.
  6. Run a test with a fake employee row and walk through the execution log node by node.
  7. 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
FAQ

Common questions

Can n8n integrate with ADP, Workday, or BambooHR?
Most HRIS platforms expose a REST API, and n8n's HTTP Request node connects to any API that accepts standard HTTP calls. BambooHR, Workday, and ADP each have documented endpoints for employee records, time tracking, and payroll data. Authenticate with an API key or OAuth token, and n8n can read, write, and react to changes across all three.
How does n8n handle employee data privacy in HR automation?
n8n can be self-hosted on your own infrastructure, so employee data never leaves your servers. For workflows that call external APIs like Slack or OpenAI, only the minimum required fields need to pass through. Credential values are stored as environment variables, not hardcoded in workflow JSON.
What's the fastest HR workflow to automate first with n8n?
New-hire onboarding delivers the clearest early ROI. Sending a welcome email, creating a Notion knowledge base page, and assigning Trello onboarding tasks takes about 45 minutes to configure in n8n and removes 2–3 hours of manual admin per hire. The trigger is a new row in Google Sheets — no HRIS API required to start.
Stop reading. Start running.

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.