Employee onboarding is one of the highest-ROI automations for HR and operations teams. The manual version involves the same sequence of tasks every single time a new hire is added: IT needs to provision access, facilities needs to prepare a workspace, the employee needs compliance forms, and the hiring manager needs a day-one checklist. Each task goes to a different person. Each is tracked in a different place.

This tutorial builds the full onboarding automation in n8n: a webhook trigger that fires when a new employee is created in your HRIS, parallel task creation across IT, facilities, and HR, automated form delivery to the new hire, and built-in escalation if any task is not completed before the start date.

What You Are Building

An n8n workflow that triggers automatically when a new employee record is created and:

  1. Sends an IT provisioning request with role-based access requirements
  2. Sends a facilities request for badge, parking, and workspace setup
  3. Emails the new hire their compliance acknowledgment forms with a deadline
  4. Emails the new hire their benefits enrollment link and window dates
  5. Sends the hiring manager a day-one readiness checklist
  6. Monitors for task completion and escalates if anything is unresolved 48 hours before the start date

Prerequisites

HRIS with webhook support. The workflow triggers from your HRIS when a new employee record is created with a start date. HRIS platforms with native webhook support: BambooHR, Rippling, Gusto, Workday (via workflow triggers), and HiBob. If your HRIS does not support webhooks, you can trigger the workflow with a scheduled polling approach instead, covered in the extension section below.

n8n instance running version 1.0 or later.

Email credentials. Gmail or SMTP configured in n8n for sending to employees, managers, IT, and facilities.

A ticketing system for IT (optional but recommended). Jira, ServiceNow, Freshdesk, or any system with an API or email intake. If you do not have a ticketing system, the IT request can be sent as a structured email.

Defined access requirements by role. The IT provisioning request includes the systems the new hire needs access to. Map your job roles to their required systems before building. This can live in a Google Sheet referenced by the workflow.

Workflow Overview

HRIS Webhook (new employee created)

    → Set node (extract and normalize employee data)

    → Parallel execution:

        → Branch 1: IT ticket (ticketing system API or email)

        → Branch 2: Facilities request email

        → Branch 3: Compliance forms email to new hire

        → Branch 4: Benefits enrollment email to new hire

        → Branch 5: Day-one checklist email to hiring manager

    → Google Sheets (log all tasks with status and due dates)

    → Schedule-based check: escalate if tasks not closed 48 hours before start date

Step-by-Step Build

Step 1: Configure the HRIS Webhook

In your HRIS, find the webhook or automation settings and create a trigger for new employee creation. Set it to fire when a new employee record is created and has a confirmed start date.

The webhook payload will vary by HRIS, but typically includes: employee name, personal email, work email, job title, department, hiring manager name and email, and start date. Note the exact field names in the payload: you will reference these throughout the workflow.

In n8n, add a Webhook node as the trigger. Set the method to POST and copy the webhook URL into your HRIS trigger configuration. Send a test record from your HRIS to confirm the payload arrives correctly in n8n's input panel before building further.

Step 2: Add a Set Node to Normalize the Data

Add a Set node after the webhook to extract the fields you need and give them clean, consistent names. This prevents expression errors downstream when field names are long or inconsistently formatted.

Configure the Set node to create these fields from the HRIS payload:

  • employeeName: full name
  • employeeEmail: personal email (for pre-start communications)
  • workEmail: work email (if provisioned before start date)
  • jobTitle: for IT access mapping
  • department: for facilities routing
  • managerEmail: hiring manager's email
  • startDate: formatted as YYYY-MM-DD
  • itAccessList: looked up from a Google Sheet by job title (optional, see extension notes)

Step 3: Execute Parallel Branches

n8n does not have a native parallel split node, but you can achieve parallel execution by connecting the Set node output to multiple downstream nodes simultaneously. Each branch executes independently and does not wait for the others.

Connect the Set node to five separate nodes, one for each task.

Branch 1: IT Provisioning Request

If you have a ticketing system with an API: add an HTTP Request node configured to create a new ticket. Include the employee name, start date, job title, and the list of systems requiring access.

If you are using email for IT tickets: add a Gmail node with a structured template. Subject: New Hire IT Setup Required: [employeeName] starting [startDate]. Body should list the required systems by role and request completion 2 business days before the start date.

Branch 2: Facilities Request

Add a Gmail node for the facilities team. Include the employee name, department, start date, and what is needed (badge, parking pass, workstation). If facilities uses a ticketing system, use an HTTP Request node instead.

Branch 3: Compliance Forms Email to New Hire

Add a Gmail node addressed to the employee's personal email (since the work email may not exist yet). Attach or link to the compliance acknowledgment forms. Set a clear deadline in the body (typically 5 business days before the start date).

Branch 4: Benefits Enrollment Email to New Hire

Add a second Gmail node to the employee's personal email. Include the benefits enrollment portal link and the enrollment window (typically open for 30 days from the hire date).

Branch 5: Hiring Manager Day-One Checklist

Add a Gmail node to the hiring manager's email. Include a checklist of day-one items: confirm system access with IT, prepare desk or workspace, schedule the first-week meetings, and confirm the new hire has completed their compliance forms.

Step 4: Log All Tasks to Google Sheets

After all five branches are connected, add a Google Sheets node to log the onboarding record. Write one row per new hire with columns for each task, their assigned owner, the due date, and a default status of "Pending."

This sheet becomes the tracking layer for the escalation workflow in the next step.

Step 5: Build the Escalation Check

Create a separate workflow (or a sub-workflow called by the main workflow) that runs on a daily schedule. It reads the onboarding tracking sheet, compares start dates against the current date, and checks whether all tasks are still in "Pending" status 48 hours before the start date.

For any incomplete tasks at that threshold, the workflow sends an escalation email to the HR manager with the new hire's name, the task that is not completed, and the assigned owner.

The escalation clears automatically when someone updates the task status in the sheet to "Complete."

What to Watch Out For

HRIS webhook firing on updates, not just new records. Many HRIS webhooks fire on any employee record change, not only on creation. Add a condition in the n8n workflow (after the webhook trigger) to check whether the employee is actually new: look for a field like event_type == 'employee.created' in the payload. Without this, every manager change or address update will re-trigger the onboarding workflow.

Personal email not always available. Some organizations do not capture a personal email at hire time. Build in a fallback: if the personal email field is empty, route the employee communications to the hiring manager to forward manually. Log the gap in the tracking sheet so it does not silently fail.

IT access list by role. If you are pulling the access list from a Google Sheet based on job title, the Sheet lookup must match exactly. A title of "Senior Ops Manager" in the HRIS that does not match "Senior Operations Manager" in the Sheet will return an empty access list. Normalize titles in the Sheet to cover common variations.

Polling Alternative (No HRIS Webhook)

If your HRIS does not support webhooks, replace the Webhook trigger with a Schedule Trigger (run daily) and a Google Sheets or HTTP Request node that reads new employee records added since the previous check date. Filter by start date to find records created in the last 24 hours, then run each through the same branch logic.

This is slightly less real-time but fully functional for organizations where the HRIS is not webhook-capable.

The Flow Kaizen guide includes a readiness checklist for onboarding automation, covering the data fields your HRIS needs to expose, the access matrix by role, and what clean task ownership looks like before the build starts.