
Implementation Guide: Auto-trigger onboarding task checklists when a new hire is entered in the hris
Step-by-step implementation guide for deploying AI to auto-trigger onboarding task checklists when a new hire is entered in the hris for HR & Staffing clients.
Hardware Procurement
Standard Business Laptop (for new hire provisioning, optional)
$800–$1,200 per unit (MSP cost) / $1,000–$1,500 suggested resale — only if client uses Rippling device management or MSP handles IT provisioning
Optional: Pre-configured laptops for new hires shipped as part of the onboarding workflow. Only relevant if the project scope extends to IT equipment provisioning. Rippling can warehouse and ship these at ~$35/device logistics fee. Most HR-only deployments will NOT require hardware procurement.
Software Procurement
BambooHR Pro
~$17/employee/month with ~$250/month platform minimum. For 50 employees: ~$850/month. For 150 employees: ~$2,550/month.
Primary HRIS platform providing employee records management, native onboarding task checklists, customizable workflow automation, document collection, e-signatures, and self-service new-hire portal. This is the central system of record and the primary trigger point for onboarding automation.
Zapier Professional
$19.99/month (annual billing); Team plan at $69/month if multi-user editing needed
Integration/automation platform (iPaaS) that connects BambooHR to downstream systems not natively integrated — e.g., creating Asana/Monday.com tasks, posting Slack messages, triggering webhooks to custom endpoints, and syncing data to Google Sheets for reporting. Acts as the glue layer between HRIS and the broader tech stack.
Microsoft 365 Business Standard
$12.50/user/month via CSP (MSP margin ~15–20%). Includes Power Automate with standard connectors, Teams, SharePoint, Entra ID.
Provides Microsoft Teams for onboarding notifications and welcome messages, SharePoint for onboarding document library, Entra ID for automatic user account provisioning (SSO/SCIM), and Power Automate for Microsoft-ecosystem workflows (e.g., creating Teams channels, calendar events, SharePoint list items). Most clients already have this.
Power Automate Premium (if needed)
$15/user/month — Total: $30–$75/month
Required only if using premium Power Automate connectors (e.g., direct BambooHR connector, HTTP webhook triggers, or custom connectors). Standard connectors included in M365 cover Teams, SharePoint, Outlook, and Entra ID natively.
WorkBright
$79–$250/month depending on hiring volume. Typical SMB staffing client: ~$150/month.
Purpose-built I-9 compliance and E-Verify integration platform with 150+ automated compliance checks. Ensures Form I-9 (version 08/01/23+) is completed within 3 business days of start date. Supports DHS remote document verification for E-Verify employers. Critical for avoiding I-9 violation fines ($288–$2,861 per form).
DocuSign Standard
$25/month (1 user, Standard plan) or $0 if using BambooHR's native e-signature capability
Electronic signature platform for offer letters, NDAs, non-compete agreements, policy acknowledgments, and other onboarding documents that require legally binding signatures. BambooHR Pro includes basic e-signature, so DocuSign is only needed for advanced routing, templates, or existing DocuSign workflows.
Slack Business+ (if applicable)
$12.50/user/month. Only procure if client uses Slack instead of Teams.
Alternative to Microsoft Teams for onboarding notifications, welcome messages to new-hire channels, manager alerts, and buddy-system introductions. Zapier has native Slack integration for automated channel messages and DMs.
Prerequisites
- Active HRIS platform account (BambooHR Pro recommended) with admin-level access for the MSP implementation team
- Documented current onboarding process: complete list of all tasks, forms, notifications, and handoffs currently performed manually for each new hire, broken down by role/department
- Client organizational chart with department names, manager assignments, and job title taxonomy as used in the HRIS
- Microsoft 365 tenant with Global Admin or at minimum Exchange Admin + Teams Admin + SharePoint Admin + Entra ID Admin access for the MSP
- Business email domain with ability to create a service account (e.g., onboarding@clientdomain.com) for automated notifications
- List of all software applications new hires need access to, mapped by role/department (for IT provisioning automation)
- Completed compliance checklist: state-specific new-hire reporting requirements, I-9 timeline policies, E-Verify enrollment status, and any industry-specific certifications required before Day 1
- API access credentials or ability to generate API keys for BambooHR (Settings > API Keys in BambooHR admin)
- Zapier account (Professional tier minimum) with admin access, or approval to create one under client's billing
- Network connectivity: standard broadband internet (25 Mbps+) at all office locations; no VPN or firewall exceptions required for SaaS-to-SaaS integrations
- Designated client-side project champion: one HR manager/director who will serve as the subject matter expert, approve workflow designs, and own the system post-handoff
- List of current ATS (Applicant Tracking System) in use, if any — e.g., Greenhouse, Lever, Workable, JazzHR, Bullhorn — with admin credentials for integration
- Signed data processing agreement (DPA) between client and all SaaS vendors handling employee PII, per CCPA/CPRA requirements and SOC 2 alignment
Installation Steps
Step 1: Discovery Workshop & Process Mapping
Conduct a 2–3 hour discovery session with the client's HR team. Document every step of their current onboarding process from offer acceptance through 90-day review. Identify all manual tasks, forms, notifications, and compliance checkpoints. Map each task to a responsible party (HR, IT, manager, new hire). Categorize tasks by timing (pre-Day 1, Day 1, Week 1, Month 1). Identify role-specific variations (e.g., different checklists for field staff vs. office staff vs. executives). Document all systems currently in use.
Use a shared spreadsheet or Miro board for real-time collaboration. Template available: create a Google Sheet with columns for Task Name, Owner, Timing, System, Role-Specific (Y/N), Compliance (Y/N). This deliverable becomes the blueprint for all automation workflows. Expect 25–50 unique tasks per onboarding process.
Step 2: BambooHR Account Setup & Configuration
Provision the BambooHR Pro account (or access the client's existing account). Configure the organizational structure: add all departments, locations, divisions, and job titles. Import the current employee roster via CSV. Configure custom fields needed for onboarding automation triggers (e.g., 'Onboarding Status', 'Equipment Needed', 'Certification Required'). Set up access levels: Full Admin for HR Director, Standard Admin for HR generalists, Read-Only for managers.
BambooHR Pro is required (not Core) for customizable onboarding workflows and task management. If migrating from another HRIS, BambooHR offers free data migration assistance for annual contracts. Store the API key securely in the MSP's password vault (e.g., IT Glue, Hudu). API keys have full access — treat as a privileged credential.
Step 3: Design Onboarding Checklist Templates in BambooHR
Using the process map from Step 1, create onboarding task checklist templates in BambooHR for each employee category. Each template should include all tasks, assigned owners, due dates (relative to hire date), and descriptions. BambooHR's onboarding feature supports task assignment to the new hire, their manager, HR, and IT. Create separate templates for each role category identified in discovery.
BambooHR supports relative due dates (e.g., 'Hire Date - 5 days') which is critical for pre-boarding tasks. Each task can have a description with links to forms/resources. For staffing agencies with high-volume placements, create streamlined templates with fewer tasks for temporary/contract workers vs. permanent hires. Maximum recommended tasks per template: 30–40 to avoid overwhelming the new hire.
Step 4: Configure BambooHR Native Onboarding Workflow Triggers
Enable BambooHR's built-in onboarding automation so that when a new employee record is created (or when the 'Hire Date' field is populated), the system automatically assigns the correct onboarding checklist template, sends the new-hire paperwork packet, and notifies the relevant stakeholders. Configure the trigger conditions and template mapping based on department and job title.
BambooHR Workflow Configuration — Trigger Conditions, Template Mapping, and Auto-Actions
BambooHR's native workflow engine handles the core trigger-to-checklist logic without any external tools. The Zapier integration (next steps) extends this to systems outside BambooHR's native ecosystem. Test the trigger by creating a test employee record with a future hire date. Verify that all stakeholders receive their assigned tasks and notifications.
Step 5: Zapier Account Setup & BambooHR Connection
Create or access the Zapier Professional account. Connect BambooHR as a trigger app using the API key generated in Step 2. Verify the connection by pulling a test employee record. This enables Zapier to detect new employee records in real-time and trigger downstream automations in external systems.
- Repeat for each downstream app (Steps 6–10):
- Microsoft Teams (OAuth2 via M365 admin account)
- Slack (OAuth2 if applicable)
- Google Sheets or Airtable (for onboarding tracker)
- Asana/Monday.com/Trello (if client uses external task management)
Zapier Professional allows multi-step Zaps (required for branching logic). The BambooHR trigger 'New Employee' fires when any new employee record is created. Zapier polls BambooHR every 2 minutes on the Professional plan. For near-instant triggers, use BambooHR webhooks (requires BambooHR webhook configuration and Zapier's 'Catch Hook' trigger — covered in custom components section).
Step 6: Build Zapier Workflow: New Hire → Microsoft Teams Notification
Create a Zapier Zap that triggers when a new employee is added in BambooHR and posts a formatted notification to a designated Microsoft Teams channel (e.g., #hr-onboarding). The message includes the new hire's name, department, job title, hire date, and assigned manager, with a link to their BambooHR profile.
Zap Configuration
If the client uses Slack instead of Teams, replace the Teams action with Slack's 'Send Channel Message' action — the configuration is nearly identical. For high-volume staffing agencies (50+ hires/month), monitor Zapier task consumption: each Zap run with 3 actions = 3 tasks. 750 tasks/month on Professional = ~250 new hires/month capacity. Upgrade to Team plan ($69/mo) if needed.
Step 7: Build Zapier Workflow: New Hire → IT Provisioning via Power Automate Webhook
Create a Zapier-to-Power Automate bridge that triggers Microsoft Entra ID user provisioning when a new hire is created. Zapier sends a webhook to a Power Automate flow, which creates the user account in Entra ID, assigns M365 licenses, adds the user to appropriate security groups, and sends credentials to the hiring manager.
PART A: Power Automate Flow
{
"type": "object",
"properties": {
"firstName": {"type": "string"},
"lastName": {"type": "string"},
"email": {"type": "string"},
"department": {"type": "string"},
"jobTitle": {"type": "string"},
"managerId": {"type": "string"},
"startDate": {"type": "string"},
"location": {"type": "string"}
}
}PART B: Zapier Action (add to the Zap from Step 6)
- ACTION 4: Webhooks by Zapier
- Action Event: POST
- URL: [Paste Power Automate HTTP trigger URL]
- Payload Type: JSON
{
"firstName": "{{First Name}}",
"lastName": "{{Last Name}}",
"email": "{{Work Email}}",
"department": "{{Department}}",
"jobTitle": "{{Job Title}}",
"managerId": "{{Reports To - Work Email}}",
"startDate": "{{Hire Date}}",
"location": "{{Location}}"
}This step requires Power Automate Premium ($15/user/month) for the HTTP Request trigger — only needed for 1–2 HR admin accounts that own the flow. Alternative: Use Microsoft Graph API directly from Zapier's Webhook action (requires registering an Azure AD App with User.ReadWrite.All permissions). The Power Automate approach is preferred because it keeps identity management within the Microsoft ecosystem and is easier for the client's IT to maintain.
Temporary passwords should be sent only to the hiring manager, never to personal email addresses, per security best practices.
Step 8: Configure WorkBright for I-9/E-Verify Compliance Automation
Set up WorkBright to receive new hire data from BambooHR (via Zapier or native integration) and automatically initiate the I-9 verification process. Configure Section 1 auto-population from HRIS data, Section 2 reminders to HR, and E-Verify submission (if enrolled). Set up deadline alerts for the 3-business-day I-9 completion requirement.
# POST new employee payload for Zapier webhook action
URL: https://api.workbright.com/v1/employees
Headers: Authorization: Bearer [WORKBRIGHT_API_KEY]
Body (JSON):
{
"first_name": "{{First Name}}",
"last_name": "{{Last Name}}",
"email": "{{Work Email}}",
"start_date": "{{Hire Date}}",
"location": "{{Location}}"
}WorkBright is purpose-built for I-9 compliance and is strongly recommended over trying to build I-9 tracking in BambooHR alone. I-9 violation fines range from $288–$2,861 per form for civil penalties, and $716–$28,619 for knowingly hiring unauthorized workers. As of August 1, 2023, employers must use the new Form I-9 (version 08/01/23 or later). If the client is enrolled in E-Verify, DHS now allows remote document verification under an approved alternative procedure. WorkBright handles all of this natively. Verify WorkBright's API documentation for exact endpoint URLs and required fields — the above is representative.
Step 9: Configure Onboarding Document Signing Workflow
Set up automated document signing for onboarding paperwork. If using BambooHR Pro's native e-signature, configure document templates and auto-send rules. If using DocuSign, create envelope templates and connect via Zapier for auto-triggered sending when a new hire is created.
OPTION A: BambooHR Native E-Signature (recommended for simplicity)
OPTION B: DocuSign Integration (if client has existing DocuSign)
ACTION 6: DocuSign
Action Event: Create Signature Request
Template: 'New Hire Onboarding Packet'
Recipient Email: {{Work Email}} or {{Personal Email}}
Recipient Name: {{First Name}} {{Last Name}}
Pre-fill fields: Name, Job Title, Department, Hire Date# DocuSign completion triggers BambooHR status update
TRIGGER: DocuSign > Envelope Completed
ACTION: BambooHR > Update Employee
Update field: 'Onboarding Status' = 'Documents Signed'BambooHR Pro includes e-signature at no additional cost — use this unless the client specifically requires DocuSign for legal reasons or has existing DocuSign templates. For staffing agencies placing contractors, consider creating a separate, shorter document packet (just NDA and assignment letter) vs. the full employee packet. All signed documents are stored in BambooHR's employee file and are accessible for audits.
Step 10: Build Onboarding Tracker Dashboard
Create a centralized onboarding status dashboard that gives HR leadership real-time visibility into all active onboarding processes. Use Microsoft SharePoint Lists or Google Sheets (synced via Zapier) to track each new hire's onboarding progress, outstanding tasks, compliance deadlines, and completion percentage.
Option A: SharePoint List (Recommended for M365 Environments)
Option B: Google Sheets (For Google Workspace Environments)
- Replace SharePoint actions with Google Sheets 'Create Spreadsheet Row' action in Zapier
The SharePoint List approach integrates natively with Microsoft Teams — pin the list as a tab in the HR team's channel for instant visibility. For a more polished dashboard, connect the SharePoint list to Power BI (included in M365 E5 or as a $10/user/month add-on). The onboarding tracker is a high-value deliverable that demonstrates ROI to the client's leadership team.
Step 11: Configure State New-Hire Reporting Automation
All 50 U.S. states require employers to report new hires within 20 days (some states require fewer). Configure the HRIS or payroll system to auto-generate and submit new-hire reports. Most payroll providers (ADP, Paychex, Gusto, Paylocity) handle this natively — verify it is enabled and properly configured.
This step is often overlooked. Late new-hire reporting can result in penalties. Most modern payroll providers handle this automatically when a new employee is added — the key MSP action is to VERIFY it's enabled and TEST it with a recent hire. For staffing agencies placing workers in multiple states, this is especially critical as each placement state requires reporting.
Step 12: End-to-End Testing with Test Employee Records
Create 3–5 test employee records in BambooHR representing different onboarding scenarios (office staff, field staff, contractor, executive) and verify that every automation fires correctly across all integrated systems. Document results in a test matrix.
Test Scenarios
Verification Checklist per Test
Post-Testing Cleanup
- Delete all test employee records from BambooHR
- Delete Entra ID test accounts
- Remove test data from SharePoint
- Remove test records from WorkBright
- Delete any Slack/Teams messages generated by test runs
Testing is critical — do NOT skip this step. Run tests during a low-activity period to avoid confusing the HR team. Use obviously fake names (e.g., 'Test User Office1') and a future hire date. After validation, immediately clean up test data from all systems including Entra ID, SharePoint, WorkBright, and any Slack/Teams messages. Document all test results in a test matrix spreadsheet and include in the client handoff package.
Step 13: User Acceptance Testing (UAT) with HR Team
Conduct a live UAT session with the client's HR team. Have the HR team create a real (or realistic) new hire record and observe the complete automation flow end-to-end. Walk through each system showing the automated outputs. Collect feedback and make adjustments to task names, notification wording, timing, or assignment rules.
Schedule a 90-minute UAT session. Have the HR Director or designated champion create the test record themselves (not the MSP). This ensures they understand the trigger and builds confidence. Expect 2–3 rounds of minor adjustments (e.g., 'move this task from Week 1 to Day 1' or 'add a notification to the recruiter too'). Plan 3–5 business days after UAT for adjustments before go-live.
Step 14: Go-Live & Parallel Run
Switch the onboarding automation to production. For the first 2–4 weeks, run the automated process in parallel with the manual process: HR staff execute their old checklist alongside the automated one. Compare results to verify nothing is missed. After the parallel period, fully retire the manual process.
The parallel run period is essential for building client confidence and catching edge cases (e.g., rehires, internal transfers, part-time to full-time conversions). Keep the MSP project lead available for quick adjustments during this period. Most issues surface in the first 5 new hires processed through the automated system.
Custom AI Components
Onboarding Checklist Router
Type: workflow
A Zapier multi-step Zap that acts as the central routing engine for the onboarding automation. When a new employee is created in BambooHR, this workflow evaluates the employee's department, job title, employment type, and location to determine which onboarding template to apply, which notification channels to alert, and which downstream systems to trigger. It handles the conditional logic that maps employee attributes to the correct onboarding path.
Implementation
Trigger
- App: BambooHR
- Event: New Employee
- Connection: [Client BambooHR API key]
Step 2: Filter by Zapier
- Condition: Continue ONLY if Hire Date (exists) AND Status = 'Active'
- Purpose: Prevent triggering on incomplete/draft employee records
Step 3: Paths by Zapier (Branching Logic)
Path A: Office Staff
- Condition: Department = 'Finance' OR 'Human Resources' OR 'Marketing' OR 'Sales' OR 'Administration' AND Employment Type != 'Contractor'
- 3A.1: POST to Teams #hr-onboarding (office hire notification)
- 3A.2: POST to Teams #it-provisioning (laptop + full M365 suite)
- 3A.3: POST to Power Automate webhook (Entra ID user creation with standard groups)
- 3A.4: POST to WorkBright API (I-9 initiation)
- 3A.5: Create SharePoint list item (Onboarding Tracker: Template='Office Staff')
Path B: Field Staff
- Condition: Department = 'Field Operations' OR 'Warehouse' OR 'Logistics' AND Employment Type != 'Contractor'
- 3B.1: POST to Teams #hr-onboarding (field hire notification)
- 3B.2: POST to Teams #it-provisioning (mobile device + limited M365)
- 3B.3: POST to Power Automate webhook (Entra ID user with field-ops groups)
- 3B.4: POST to WorkBright API (I-9 initiation)
- 3B.5: Create SharePoint list item (Template='Field Staff')
- 3B.6: POST to Teams #safety-team (safety training enrollment request)
Path C: Executive
- Condition: Job Title CONTAINS 'Director' OR 'VP' OR 'Chief' OR 'President'
- 3C.1: POST to Teams #leadership (executive hire notification)
- 3C.2: POST to Teams #it-provisioning (premium laptop + full suite + admin tools)
- 3C.3: POST to Power Automate webhook (Entra ID user with executive groups)
- 3C.4: POST to WorkBright API (I-9 initiation)
- 3C.5: Create SharePoint list item (Template='Executive')
- 3C.6: Send email to CEO (executive welcome coordination)
Path D: Contractor
- Condition: Employment Type = 'Contractor' OR 'Temporary' OR 'Intern'
- 3D.1: POST to Teams #hr-onboarding (contractor notification)
- 3D.2: POST to Power Automate webhook (Entra ID guest/limited user)
- 3D.3: POST to WorkBright API (I-9 if W-2 contractor)
- 3D.4: Create SharePoint list item (Template='Contractor')
- NOTE: Skip full IT provisioning; contractors get limited access
Error Handling
- If no Path matches, default to PATH A (Office Staff) and send alert to HR admin
- Configure Zapier error notifications to email MSP support alias
- Log all Zap runs to a Google Sheet for audit trail
Estimated Task Usage
- Office/Field hire: ~6 tasks per Zap run
- Executive hire: ~7 tasks per Zap run
- Contractor: ~4 tasks per Zap run
- At 750 tasks/month (Professional): supports ~107–187 new hires/month
IT Provisioning Flow
Type: workflow
A Microsoft Power Automate cloud flow that receives new hire data via HTTP webhook from Zapier and provisions the employee's Microsoft 365 identity, including Entra ID user creation, license assignment, security group membership, and welcome email with temporary credentials. This flow runs within the client's M365 tenant and is owned by an HR admin service account.
Implementation
Power Automate Flow: IT Provisioning for New Hires — Flow metadata
Trigger
HTTP Method: POST
Request Body JSON Schema:
{
"type": "object",
"properties": {
"firstName": {"type": "string"},
"lastName": {"type": "string"},
"personalEmail": {"type": "string"},
"department": {"type": "string"},
"jobTitle": {"type": "string"},
"managerEmail": {"type": "string"},
"startDate": {"type": "string"},
"location": {"type": "string"},
"employmentType": {"type": "string"},
"equipmentType": {"type": "string"}
},
"required": ["firstName", "lastName", "department", "jobTitle", "startDate"]
}Step 1: Initialize Variables
- Variable: varUPN (String) — Value: toLower(concat(triggerBody()?['firstName'], '.', triggerBody()?['lastName'], '@clientdomain.com'))
- Variable: varDisplayName (String) — Value: concat(triggerBody()?['firstName'], ' ', triggerBody()?['lastName'])
- Variable: varTempPassword (String) — Value: concat('Welcome', formatDateTime(utcNow(), 'yyyyMMdd'), '!', substring(guid(), 0, 4))
Step 2: Check if User Already Exists
- Action: Azure AD > Get user (V2) — User ID: varUPN
- Configure Run After: Succeeded or Failed
- Condition: If action failed (user doesn't exist) → Continue to Step 3
- Condition: If action succeeded (user exists) → Send alert to IT and STOP
Step 3: Create User in Entra ID
- Action: Azure AD > Create user
- Account Enabled: true
- Display Name: varDisplayName
- Mail Nickname: toLower(concat(triggerBody()?['firstName'], '.', triggerBody()?['lastName']))
- UPN: varUPN
- Password: varTempPassword
- Force Change Password: true
- Department: triggerBody()?['department']
- Job Title: triggerBody()?['jobTitle']
- Office Location: triggerBody()?['location']
- Usage Location: 'US'
Step 4: Assign M365 License
- Action: HTTP (Premium)
- Method: POST
- URI: https://graph.microsoft.com/v1.0/users/@{varUPN}/assignLicense
- Headers: Content-Type: application/json
- Authentication: Azure AD OAuth (app registration with User.ReadWrite.All, Directory.ReadWrite.All)
{
"addLicenses": [
{
"skuId": "REPLACE_WITH_M365_BUSINESS_STANDARD_SKU_ID"
}
],
"removeLicenses": []
}Step 5: Add to Security Groups (Conditional)
Switch on: triggerBody()?['department']
- Case 'Finance': Action: Azure AD > Add user to group — Groups: 'SG-Finance-Users', 'SG-All-Employees'
- Case 'Sales': Action: Azure AD > Add user to group — Groups: 'SG-Sales-Users', 'SG-CRM-Access', 'SG-All-Employees'
- Case 'Field Operations': Action: Azure AD > Add user to group — Groups: 'SG-FieldOps-Users', 'SG-All-Employees'
- Default: Action: Azure AD > Add user to group — Group: 'SG-All-Employees'
Step 6: Set Manager
- Action: HTTP (Premium)
- Method: PUT
- URI: https://graph.microsoft.com/v1.0/users/@{varUPN}/manager/$ref
{"@odata.id": "https://graph.microsoft.com/v1.0/users/@{triggerBody()?['managerEmail']}"}Step 7: Send Credentials to Manager
- Action: Office 365 Outlook > Send an email (V2)
- To: triggerBody()?['managerEmail']
- Subject: 'IT Credentials for New Hire: @{varDisplayName}'
<h2>New Hire IT Credentials</h2>
<p><strong>Employee:</strong> @{varDisplayName}</p>
<p><strong>Start Date:</strong> @{triggerBody()?['startDate']}</p>
<p><strong>Username:</strong> @{varUPN}</p>
<p><strong>Temporary Password:</strong> @{varTempPassword}</p>
<p><em>The employee will be required to change this password at first sign-in.</em></p>
<p><strong>M365 Portal:</strong> <a href="https://portal.office.com">portal.office.com</a></p>
<p>Applications will be available based on department group membership.</p>
<hr/>
<p style="color:red;"><strong>CONFIDENTIAL:</strong> Please provide these credentials to the employee securely on their start date. Do not forward this email.</p>Step 8: Log to SharePoint
- Action: SharePoint > Update item
- Site: [Client SharePoint]
- List: 'Onboarding Tracker'
- Filter: Employee Name = varDisplayName
- Update: IT Provisioned = Yes
Error Handling
- Configure 'Run After' on each step for 'has failed'
- On failure: Send email to MSP support alias with error details
- Scope all steps in a Try-Catch pattern using Scope actions
To get the M365 SKU ID, run the PowerShell commands below against the client tenant before deploying this flow.
Connect-MgGraph -Scopes 'Organization.Read.All'
Get-MgSubscribedSku | Select-Object SkuPartNumber, SkuIdOnboarding Compliance Watchdog
Type: workflow
A scheduled Power Automate flow that runs daily at 8:00 AM and checks all active onboarding records for compliance deadline violations. It flags I-9 forms not completed within 3 business days, unsigned documents past their due date, and onboarding checklists with overdue tasks. Sends a summary email to the HR Director and updates the SharePoint Onboarding Tracker with overdue status flags.
Implementation
Power Automate Flow: Daily Compliance Watchdog
BambooHR Webhook Receiver for Real-Time Triggers
Type: integration
For clients needing near-instant onboarding triggers (instead of Zapier's 2-minute polling interval), this component configures a BambooHR webhook that fires immediately when a new employee is created, sending the event to Zapier's Webhooks trigger for real-time processing. This is recommended for staffing agencies processing 10+ hires per day.
Implementation:
PART 1: Set up Zapier Catch Hook
PART 2: Configure BambooHR Webhook
BambooHR webhooks are configured via API (not GUI). Use curl or Postman to register the webhook:
curl -X POST 'https://api.bamboohr.com/api/gateway.php/{companyDomain}/v1/webhooks' \
-H 'Authorization: Basic {base64(API_KEY:x)}' \
-H 'Content-Type: application/json' \
-d '{
"name": "New Employee → Zapier Onboarding Trigger",
"monitorFields": ["firstName", "lastName", "hireDate", "department", "jobTitle", "status"],
"postFields": {
"firstName": "firstName",
"lastName": "lastName",
"hireDate": "hireDate",
"department": "department",
"jobTitle": "jobTitle",
"workEmail": "workEmail",
"employmentStatus": "status",
"location": "location",
"employeeId": "id",
"reportsTo": "supervisor"
},
"url": "https://hooks.zapier.com/hooks/catch/XXXXXX/YYYYYY/",
"format": "json",
"frequency": {"type": "immediate"},
"limit": {"type": "all"}
}'PART 3: Verify in Zapier
PART 4: Security
BambooHR webhooks include a signature header for verification. In Zapier, add a Filter step after the Catch Hook:
- Check that the request includes expected fields (firstName, lastName, hireDate)
- Optional: Validate source IP against BambooHR's known IP ranges
Replace {companyDomain} with the client's BambooHR subdomain. Replace {base64(API_KEY:x)} with Base64-encoded 'APIKEY:x' string.
echo -n 'YOUR_API_KEY:x' | base64Onboarding Completion Updater
Type: integration
A Zapier Zap that monitors BambooHR for onboarding task completions and updates the SharePoint Onboarding Tracker in real-time. When tasks are marked complete in BambooHR, this integration recalculates the completion percentage and updates the dashboard. When all tasks are complete, it sets the status to 'Complete' and posts a celebration message.
Implementation
Zapier Zap: Onboarding Completion Sync
TRIGGER
- App: Webhooks by Zapier (Catch Hook) — OR — Schedule by Zapier (every 1 hour)
- Purpose: BambooHR doesn't have a native 'task completed' trigger in Zapier, so we poll the BambooHR API hourly to check task completion status.
STEP 1: Code by Zapier (JavaScript)
- Purpose: Call BambooHR API to get all employees with active onboarding
- Input: bamboohr_api_key, bamboohr_subdomain
const apiKey = inputData.bamboohr_api_key;
const subdomain = inputData.bamboohr_subdomain;
const auth = Buffer.from(apiKey + ':x').toString('base64');
// Get employees hired in the last 90 days
const response = await fetch(
`https://api.bamboohr.com/api/gateway.php/${subdomain}/v1/reports/custom?format=json`,
{
method: 'POST',
headers: {
'Authorization': `Basic ${auth}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'Active Onboarding',
filters: {
lastChanged: { includeNull: 'no', value: 'P90D' }
},
fields: ['id', 'firstName', 'lastName', 'hireDate', 'department', 'status']
})
}
);
const data = await response.json();
return { employees: JSON.stringify(data.employees) };STEP 2: Looping by Zapier
For each employee returned, create a loop iteration.
STEP 3: BambooHR — Get Onboarding Status (per employee)
# BambooHR API endpoint to check task completion per employee
GET /api/gateway.php/{subdomain}/v1/employees/{id}/onboardingSTEP 4: Code by Zapier — Calculate Completion Percentage
- Input: total_tasks, completed_tasks
const pct = Math.round((inputData.completed_tasks / inputData.total_tasks) * 100);
return { completion_pct: pct, is_complete: pct === 100 };STEP 5: SharePoint — Update Item
- List: 'Onboarding Tracker'
- Filter: Employee Name = current employee
- Update: Onboarding % Complete = completion_pct
- Update: Status = is_complete ? 'Complete' : 'In Progress'
STEP 6: Filter by Zapier
Continue ONLY IF is_complete = true.
STEP 7: Microsoft Teams — Post Message
- Channel: #hr-onboarding
- Message: '✅ @{Employee Name} has completed all onboarding tasks! 🎉'
This Zap uses Code by Zapier which requires the Professional plan. Task consumption is approximately 3–5 tasks per employee checked per hour. For 20 active onboardings: ~60–100 tasks per run × 24 runs/day = significant task usage. OPTIMIZATION: Only run during business hours (8 AM – 6 PM) = 10 runs/day = 600–1,000 tasks. Consider upgrading to the Zapier Team plan if running at scale.
Testing & Validation
- TEST 1 - Trigger Verification: Create a test employee in BambooHR with Department='Finance', Title='Staff Accountant', Type='Full-Time', Hire Date=tomorrow. Verify within 5 minutes that: (a) the Office Staff Onboarding checklist is auto-assigned in BambooHR, (b) a notification appears in the Teams #hr-onboarding channel with correct employee details, (c) a new row appears in the SharePoint Onboarding Tracker.
- TEST 2 - Conditional Routing: Create a test employee with Department='Field Operations', Title='Technician'. Verify the Field Staff checklist (with safety training tasks) is assigned instead of the Office Staff checklist. Create another test with Title='VP of Marketing' and verify the Executive checklist is assigned.
- TEST 3 - IT Provisioning: After creating a test employee, check Microsoft Entra ID (Azure AD) within 10 minutes for a new user account with the correct UPN (firstname.lastname@clientdomain.com), department, job title, and security group membership. Verify the manager received the credentials email with temporary password.
- TEST 4 - I-9 Compliance: Verify WorkBright received the new hire data and initiated the I-9 workflow. Check that Section 1 instructions were sent to the new hire's email. Manually advance the test to Day 4 past hire date and verify the Compliance Watchdog flags the I-9 as overdue.
- TEST 5 - Document Signing: Verify the new hire received the onboarding document packet (handbook acknowledgment, NDA, direct deposit form) via BambooHR e-signature or DocuSign within 15 minutes of record creation. Complete the signing and verify BambooHR updates the employee file.
- TEST 6 - Compliance Watchdog: Create a test employee with a hire date 5 days in the past, leave I-9 Status as 'Not Started'. Wait for the next 8 AM scheduled run (or manually trigger the Power Automate flow). Verify: (a) HR Director receives compliance alert email listing the overdue I-9, (b) Teams #hr-onboarding channel receives the critical alert, (c) SharePoint Tracker shows Status='Overdue'.
- TEST 7 - Duplicate Prevention: Create the same employee twice (same name, same department). Verify the system does not create duplicate Entra ID accounts (Power Automate should catch the duplicate and alert IT). Verify only one SharePoint Tracker entry is created.
- TEST 8 - Edge Case - Rehire: Create an employee who was previously terminated and is being rehired. Verify the system handles this gracefully — new onboarding checklist assigned, existing employee record updated rather than duplicated (this may require manual HR intervention depending on BambooHR configuration).
- TEST 9 - Zapier Error Handling: Temporarily break the Power Automate webhook URL (change one character). Create a new test employee. Verify Zapier sends a failure notification email to the configured admin address. Restore the correct URL and verify the next run succeeds.
- TEST 10 - End-to-End Timing: Time the entire automation from the moment 'Save' is clicked on a new BambooHR employee record to the last downstream action completing. Acceptable: under 5 minutes for Zapier polling, under 30 seconds for webhook-based triggers. Document the actual time for the client handoff report.
- TEST 11 - Access Control: Log in as a non-admin BambooHR user (manager role). Verify they can see their direct reports' onboarding tasks but cannot modify onboarding templates, API keys, or workflow configurations. Verify the SharePoint Onboarding Tracker respects permission levels.
- TEST 12 - Cleanup: After all tests pass, delete ALL test employee records from BambooHR, Entra ID, WorkBright, SharePoint Tracker, and any Teams messages. Verify no orphaned records remain in any system. Document the cleanup in the test log.
Client Handoff
The client handoff should include a 2-hour training session covering the following topics, delivered to the HR Director, HR generalists, and at least one IT contact:
Training Topics:
Documentation Package to Leave Behind:
- Onboarding Automation Runbook (PDF): step-by-step explanation of every workflow, trigger, and integration with screenshots
- Architecture Diagram: visual map showing data flow from ATS → BambooHR → Zapier → downstream systems
- Checklist Template Library: all onboarding templates with task-by-task descriptions, organized by role category
- Credential Inventory: list of all service accounts, API keys (stored in password vault, NOT in the document), and system URLs
- Compliance Calendar: annual schedule for I-9 audits, state reporting verification, and system review
- Troubleshooting Guide: common issues (Zap stopped, webhook failed, duplicate record) with resolution steps
- Escalation Contact Sheet: MSP support email, phone, SLA response times, and after-hours procedure
- Test Results Report: documented results from all 12 validation tests, signed off by HR Director
Success Criteria to Review Together:
Maintenance
Ongoing Maintenance Responsibilities (MSP Managed Service):
Weekly (15 minutes)
- Review Zapier task history dashboard for failed Zaps or errors — investigate and resolve any failures within 4 business hours
- Verify Power Automate flows are running (no suspended flows) via the Power Automate admin center
- Spot-check the SharePoint Onboarding Tracker for data accuracy on 2–3 recent hires
Monthly (1–2 hours)
- Review Zapier task consumption vs. plan limits — recommend plan upgrade if consistently above 80% utilization
- Review BambooHR onboarding completion rates with HR Director — identify bottlenecks (e.g., consistently late I-9 completions, unsigned documents)
- Check for BambooHR, Zapier, and Power Automate platform updates or deprecation notices that could affect integrations
- Verify WorkBright subscription status and compliance feature updates (especially around I-9 form version changes)
- Test one end-to-end workflow with a dummy record to verify all integrations are still functioning
Quarterly (2–4 hours)
- Comprehensive review meeting with HR Director: discuss onboarding metrics, new role categories needed, process improvements
- Update onboarding checklist templates for any policy changes, new compliance requirements, or organizational changes
- Rotate API keys and service account passwords per security policy
- Review Entra ID security group memberships created by automation — ensure no privilege creep
- Audit SharePoint Onboarding Tracker permissions — remove departed HR staff access
- Review state new-hire reporting compliance — verify all states with employees are covered
Annually
- Full system audit: review all Zapier Zaps, Power Automate flows, BambooHR configurations, and integrations
- Compliance review: verify I-9 form version is current (DHS updates periodically), state reporting requirements haven't changed
- License/subscription true-up: adjust BambooHR per-employee count, Zapier plan tier, WorkBright volume tier based on current headcount
- Review vendor pricing changes (BambooHR, Zapier, WorkBright often update pricing annually)
- Present annual ROI report to client: time saved, compliance incidents avoided, onboarding cycle time improvement
SLA Considerations
- Onboarding automation failures: 4-hour response, 8-hour resolution (business hours) — onboarding delays directly impact employee experience and compliance
- Compliance-critical failures (I-9 workflow down, state reporting broken): 2-hour response, 4-hour resolution
- Template changes or new role additions: 2–5 business day turnaround
- Emergency: after-hours support for critical compliance failures only (e.g., I-9 system down during a mass onboarding event)
Escalation Path
No Model Retraining Required: This is a deterministic/rule-based automation, not a machine learning system. There are no models to retrain. The maintenance focus is on keeping integrations healthy, templates current, and compliance requirements up to date.
Alternatives
Rippling Unified Platform (All-in-One)
Replace the BambooHR + Zapier + Power Automate stack with Rippling, which natively combines HRIS, payroll, IT device management, identity provisioning, and onboarding automation in a single platform. Rippling's workflow engine can trigger onboarding checklists, provision M365 accounts via SCIM, ship laptops, assign software licenses, and enroll in benefits — all from one trigger without external iPaaS.
- Cost: Starts at $8/employee/month + $35/month base fee (comparable to BambooHR for small teams, more expensive at scale).
- Complexity: Lower — eliminates Zapier and Power Automate entirely, reducing integration points from 5+ to 1.
- Capability: Superior for IT-heavy onboarding (device management, app provisioning) but less customizable for unique workflow branching.
- Vendor lock-in: High — all eggs in one basket.
- Recommend when: Client is a tech-forward company, needs IT provisioning as a core onboarding requirement, or has 100+ employees where the single-platform ROI is clear.
Microsoft Power Automate Only (No Zapier)
Eliminate Zapier entirely and build all automation workflows in Microsoft Power Automate using the BambooHR premium connector or HTTP connectors. This keeps the entire automation layer within the Microsoft ecosystem, simplifying billing and management for M365-centric clients.
- Cost: Power Automate Premium at $15/user/month for HR admins (2–5 users = $30–$75/month) vs. Zapier Professional at $20/month. May be slightly more expensive but eliminates a separate vendor.
- Complexity: Higher — Power Automate's visual designer is more powerful but has a steeper learning curve than Zapier. Building complex branching logic requires comfort with expressions and JSON parsing.
- Capability: More powerful for Microsoft-ecosystem integrations (Teams, SharePoint, Entra ID) but weaker for non-Microsoft apps (BambooHR connector has fewer triggers than Zapier's).
- Recommend when: Client is deeply invested in Microsoft 365, MSP has strong Power Automate skills, or client's IT policy prohibits third-party iPaaS tools.
Gusto + Zapier (Budget Option)
Replace BambooHR with Gusto Simple ($49/month + $6/employee/month) for clients where payroll is the primary need and onboarding automation is secondary. Gusto includes basic onboarding checklists and integrates with Zapier for downstream notifications. Significantly cheaper for small teams (under 25 employees).
Tradeoffs
- Cost: For 25 employees — Gusto Simple: $199/month vs. BambooHR Pro: ~$425/month + $250 minimum. Saves ~$475/month.
- Complexity: Similar — Zapier integration works the same way.
- Capability: Significantly less customizable onboarding workflows. Gusto's onboarding is focused on payroll paperwork (W-4, I-9, direct deposit) rather than full task management. No custom fields, limited workflow branching, fewer integrations.
- Recommend when: Client has under 25 employees, primary pain point is payroll onboarding paperwork rather than complex multi-department task management, or budget is the top constraint.
Bullhorn Onboarding (Staffing Agency Specific)
For staffing agencies already using Bullhorn as their ATS/CRM, use Bullhorn's native onboarding module instead of BambooHR. Bullhorn Onboarding is purpose-built for high-volume staffing workflows where candidates become placements and need rapid, repeatable onboarding with compliance tracking.
Tradeoffs
- Cost: Bullhorn pricing is custom/enterprise (typically $99–$199/user/month for the full suite) — significantly more expensive than BambooHR.
- Complexity: Lower for staffing-specific workflows since Bullhorn natively handles the ATS→Onboarding transition without integration. Higher for non-staffing clients.
- Capability: Superior for staffing agencies — handles assignment-based onboarding (same person, different client site = new onboarding), mass onboarding events, and staffing-specific compliance. Limited for internal corporate HR use cases.
- Recommend when: Client is a staffing agency already using Bullhorn for recruiting, processes 50+ placements per month, or needs assignment-level onboarding tracking.
n8n Self-Hosted (MSP-Controlled Alternative to Zapier)
Replace Zapier with n8n, an open-source workflow automation platform that can be self-hosted on the MSP's infrastructure. This gives the MSP full control over the automation layer, eliminates per-task pricing, and allows white-labeling for the client.
- Cost: Free (self-hosted community edition) + hosting costs (~$20–$50/month for a small VPS or Azure VM with 2 vCPU, 4GB RAM). Eliminates Zapier's $20–$69/month.
- Complexity: Significantly higher — requires Linux server administration, Docker knowledge, SSL certificate management, backup configuration, and ongoing patching. The MSP must maintain the infrastructure.
- Capability: More powerful — no task limits, custom code nodes, webhook triggers with sub-second latency, and full data residency control. However, fewer pre-built connectors than Zapier (BambooHR connector may need custom HTTP configuration).
- Recommend when: MSP has DevOps capability, serves multiple HR clients (amortize hosting cost), needs unlimited automations, or client has data residency requirements that preclude SaaS iPaaS.
Want early access to the full toolkit?