The Business Situation

The representative business in this case study is a fictional 90-person B2B software provider operating with a hybrid workforce. Employees work from a primary office, a smaller shared office, or approved remote locations.

Note: This case study is provided as a representative example of the types of AI integration and digital transformation solutions Intelligex designs and delivers. Actual engagements are tailored to each client’s goals, constraints, existing systems, timeline, and available resources, so the approach, tools, and outcomes may vary.

The People Operations team consists of a People Operations lead and one coordinator. Employee onboarding also involves an IT administrator, a payroll specialist, an office coordinator, and the applicable hiring manager. Department leaders occasionally approve privileged application access or nonstandard equipment.

The company processes an average of six onboarding requests each month, including permanent employees, fixed-term employees, and contractors. Each request creates approximately 12 to 18 tasks, producing roughly 90 onboarding tasks per month.

The company already uses Microsoft 365 for email, files, identity, meetings, and internal communication. Its existing onboarding process relies on email, a shared spreadsheet, Word checklists, calendar reminders, and manually created Teams messages. Payroll information is entered separately in the company’s existing payroll system.

People Operations starts the process after a hire has been approved. A coordinator emails IT, payroll, facilities, and the hiring manager with the employee’s name, role, start date, work arrangement, and expected equipment. Each department maintains its own notes and responds by email when work is complete.

This approach becomes unreliable when start dates change, managers overlook messages, or responsibilities differ by role and work location. People Operations spends time asking for status updates instead of resolving actual onboarding issues. Managers cannot easily see whether an employee is ready, while leadership has no consistent reporting on overdue tasks or onboarding capacity.

The company needs a controlled workflow that retains human approval while automating coordination, reminders, task creation, readiness reporting, and audit evidence.

The Existing Process

The original onboarding process follows this sequence:

  1. People Operations receives confirmation that a candidate has accepted an offer.
  2. The coordinator copies information from the approved hiring record into a shared spreadsheet.
  3. The coordinator selects an old Word checklist that appears similar to the new employee’s role.
  4. An email is sent to the manager, IT administrator, payroll specialist, and office coordinator.
  5. Each recipient creates personal reminders or adds notes to a separate departmental tracker.
  6. The manager replies with application and equipment requirements, sometimes across several email threads.
  7. IT creates accounts, prepares equipment, and emails People Operations when complete.
  8. Payroll enters the employee in the payroll platform and returns a reference number.
  9. Facilities prepares a badge or workspace when required.
  10. People Operations follows up with anyone who has not responded before the start date.
  11. The spreadsheet is manually updated to show whether the employee is ready.
  12. After the employee starts, the coordinator archives the checklist and email messages.

Administrative Problems

  • Employee information is copied into several emails and trackers.
  • Checklist selection depends on the coordinator’s memory.
  • Due dates are manually calculated.
  • Task completion is reported through free-form email.
  • Supporting documents are stored in different folders.
  • Equipment identifiers are not consistently linked to the employee request.

Business Effects

  • Records can disagree about a start date or work location.
  • Role-specific access tasks may be omitted.
  • Managers receive reminders inconsistently.
  • People Operations cannot distinguish delayed work from missing updates.
  • Readiness reporting requires manual reconciliation.
  • Process knowledge depends heavily on one coordinator.

Missing information creates additional delays. For example, a request marked as remote may not specify whether equipment must be shipped. A manager may request privileged access in an email after the original checklist has already been distributed. The change is then easy to miss.

The spreadsheet provides a limited audit history. It may show that an item is complete, but not who completed it, which evidence was reviewed, when approval occurred, or whether the task was completed after an escalation.

The practical effect is not limited to administrative inconvenience. Late account creation can reduce an employee’s productivity on the first day. Unclear equipment ownership can lead to duplicate purchases. Incomplete payroll setup can require urgent correction. Managers also lose confidence in readiness reports when the underlying information is assembled manually.

What the New System Needed to Do

The project team defined the requirements before choosing the implementation tools.

Business and technical requirements
Requirement Required behavior Control
Controlled intake Collect one consistent set of onboarding information from authorized internal users. Required fields, controlled choices, and flow validation
Duplicate prevention Prevent a repeated submission or trigger from creating a second request. Unique candidate reference and start-date key
Unique identification Assign a readable request number to every onboarding event. SharePoint item ID combined with year
Approval routing Obtain manager confirmation and conditional IT approval. Sequential Power Automate approvals
Template-driven tasks Create tasks based on role family, work mode, employment type, and location. Controlled task-template list
Ownership Assign every task to an individual or defined operational role. Configuration list and manager mapping
Documents Track required evidence without placing sensitive payroll documents in a general list. Restricted SharePoint libraries and evidence links
Equipment Track the required bundle, asset identifier, readiness, delivery method, and handoff. Related equipment list
Reminders Notify owners about upcoming and overdue tasks. Scheduled Power Automate flow
Escalations Escalate unresolved tasks and approvals according to defined rules. Department and backup-owner configuration
Readiness Calculate whether approvals, blocking tasks, evidence, and equipment are complete. Automated rollup every 15 minutes
Reporting Show active requests, overdue work, exceptions, failures, and processing time. Microsoft Lists views and Teams summaries
Audit evidence Retain approval identifiers, responders, timestamps, completion details, and errors. List version history and automation log
Manual override Allow authorized staff to correct records or resolve exceptions without bypassing evidence requirements. Restricted override fields and mandatory notes
Human control Keep access approval, payroll entry, policy exceptions, and final closure under human control. Named approvers and task owners

The company also required the system to avoid storing bank information, tax identifiers, compensation details, medical information, or identity documents in the general onboarding lists. Those records remain in systems and libraries with more restrictive access.

Implementation Approaches Considered

Implementation options considered
Approach Connected tools Effort Customization Main limitation
Improved shared checklist Spreadsheet, email, shared folders Low Low Remains dependent on manual updates and follow-up
Google Workspace workflow Google Forms, Sheets, Drive, Apps Script Moderate High with scripting Would add a second productivity environment
Microsoft 365 workflow Forms, Lists, Power Automate, Teams, SharePoint Moderate High for this volume Requires disciplined list and flow governance
Airtable workflow Airtable forms, tables, automations, Microsoft 365 connectors Moderate High Adds another data platform and permission model
Dedicated HR onboarding software HR platform, payroll, identity, document systems Higher Depends on platform Greater implementation and recurring commitment

Improved Shared Checklist

A better spreadsheet could add standard tabs, owners, due dates, and conditional formatting. This would improve consistency but would not reliably route approvals, create role-specific tasks, send controlled reminders, or preserve a complete audit trail. It would also remain vulnerable to accidental edits and duplicated files.

Google Workspace

Google Forms, Sheets, Drive, and Apps Script could support this process. Apps Script would provide flexible task generation, reminders, and document handling. However, the company already manages identity, files, and communication in Microsoft 365. Introducing a second productivity environment would create additional access reviews, support requirements, and records-retention decisions.

Microsoft 365

Microsoft Forms could provide internal intake, Microsoft Lists could hold structured records, Power Automate could manage approvals and task creation, and Microsoft Teams could deliver operational notifications. SharePoint, which supports Microsoft Lists and Teams files, could store restricted evidence. This option retained the company’s existing identity and collaboration environment.

Airtable

Airtable would provide a flexible relational interface and useful views. It would be appropriate if the company wanted a separate operations database or required richer form and table experiences than its productivity suite provided. In this scenario, it would add another repository for employee-related data and require new integration, licensing, and governance decisions.

Dedicated HR Software

A dedicated human resources or onboarding platform would offer stronger employee-lifecycle functionality, vendor support, and potentially deeper payroll or identity integrations. It was not selected for this representative implementation because the immediate requirement was coordination rather than replacement of the existing hiring, payroll, or identity systems. The company would reconsider this option as volume and regulatory requirements increase.

The Selected Solution

The selected implementation uses Microsoft Forms, Microsoft Lists, Power Automate, Microsoft Teams, and restricted SharePoint document libraries. It connects the tools already used by the company and does not require a custom application or external database.

Selected tools and responsibilities
Tool Responsibility Important boundary
Microsoft Forms Internal onboarding-request intake Does not collect bank, tax, identity, or medical information
Microsoft Lists System of record for requests, tasks, equipment, templates, configuration, and errors Access is limited to operational staff
Power Automate Validation, approvals, task creation, reminders, readiness rollups, and notifications Does not make final access or policy decisions
Microsoft Teams Task notifications, approval reminders, escalations, and operational summaries Messages contain limited employee information
SharePoint Restricted onboarding evidence and IT handoff documents Sensitive payroll documents stay in the payroll system
Existing payroll platform Official payroll setup and payroll employee identifier Entry remains a payroll-controlled human task
Microsoft Lists views Operational reporting and exception queues Broader analytics can be added later
Optional Copilot Studio agent Grounded onboarding questions in Teams Added only after the rule-based workflow is stable

The existing payroll system was retained. The workflow creates and monitors a payroll task, but it does not automatically submit personal or financial information to payroll. The payroll specialist records the external employee identifier after completing the controlled payroll process.

Manual checklist creation, routine status emails, due-date calculation, and general reminders were removed. Manager approval, privileged-access approval, payroll entry, equipment assignment, evidence verification, exception resolution, and final request closure remained human-controlled.

System Architecture and Data Flow

The architecture uses Microsoft Lists as the operational database. Power Automate responds to Forms submissions and list changes, while scheduled flows calculate readiness and send reminders. Teams presents notifications but does not become the system of record.

  1. Request submission: A People Operations user submits Microsoft Forms. The form supplies employee, role, manager, start-date, location, equipment, and access information. The response ID is returned by Forms.
  2. Validation: Power Automate retrieves the response, normalizes the candidate reference and date, verifies required business rules, and builds a duplicate key.
  3. Duplicate check: The flow queries the Onboarding Requests list for the duplicate key. If it exists, the event is logged and no second request is created.
  4. Request creation: A new list item is created. The SharePoint item ID is returned and transformed into a readable request ID such as ONB-2026-000184.
  5. Document preparation: The flow creates restricted folders for permitted evidence and stores the folder links on the request. A folder-creation failure places the request in an exception state.
  6. Manager approval: A separate approval flow starts when the request status becomes Submitted. The manager can approve, request more information, or reject.
  7. Conditional IT approval: Privileged access or nonstandard equipment causes a second approval to be sent to the IT approver. Standard requests skip this step.
  8. Task generation: When approvals are complete, Power Automate reads active templates and selects those matching role family, work mode, employment type, and location.
  9. Task and equipment creation: The flow creates unique task records and any required equipment placeholders. Returned list IDs and task keys are stored for later reconciliation.
  10. Notifications: Teams messages tell task owners what they own, when it is due, and where the controlled record can be found.
  11. Readiness calculation: A scheduled flow reads open requests, related blocking tasks, evidence states, and equipment records. It updates completion counts, readiness percentage, and readiness status.
  12. Completion: When all readiness conditions are satisfied, Teams notifies People Operations and the manager. People Operations completes the final review and closes the request after the employee starts.
  • Intake: Microsoft Forms used by authorized internal People Operations staff
  • System of record: Microsoft Lists stored on a restricted SharePoint site
  • Automation layer: Power Automate cloud flows
  • Document storage: Restricted SharePoint document libraries
  • Notifications: Microsoft Teams, with email used only as a fallback where necessary
  • Reporting: Microsoft Lists views and scheduled Teams summaries
  • AI layer: Optional Copilot Studio onboarding assistant grounded in approved SharePoint content

Data Structure

The design uses related lists rather than one wide spreadsheet. The request is the parent record. Tasks and equipment records reference the request by both a lookup field and a denormalized request ID. The text request ID simplifies filtering, notifications, exports, and recovery.

Core lists and their relationships
List Purpose Relationship
Onboarding Requests One parent record for each new-hire onboarding event Parent of tasks and equipment
Onboarding Tasks Department tasks, document requirements, due dates, ownership, and evidence Many tasks to one request
Equipment Assignments Required bundle, asset information, delivery state, and handoff One or more equipment records to one request
Onboarding Task Templates Controlled rules used to generate tasks TemplateCode copied to each generated task
Onboarding Configuration Operational owner emails, approvers, escalation recipients, and channel references Read by flows using a unique configuration key
Onboarding Automation Log Errors, duplicate events, retry state, and manual-recovery evidence Linked to RequestID when available

Onboarding Requests Fields

Important fields in the Onboarding Requests list
Field Type Required Source or allowed values Purpose
ID System number Yes Created by SharePoint Internal primary identifier
RequestID Single-line text, unique Yes after creation ONB-year-six-digit ID Readable business identifier
DuplicateKey Single-line text, unique Yes Normalized candidate reference and start date Prevents duplicate requests
FormsResponseID Single-line text Yes Microsoft Forms Source traceability
CandidateReference Single-line text Yes Approved hiring record reference Avoids using sensitive identifiers
EmployeeDisplayName Single-line text Yes Form Operational display name
ExpectedWorkEmail Single-line text No Form or later IT update Expected company email address
JobTitle Single-line text Yes Form Task context
RoleFamily Choice Yes Engineering, Product, Sales, Customer Success, Finance, People, Operations, Other Template matching
Department Choice Yes Approved department list Reporting and ownership
EmploymentType Choice Yes Permanent, Fixed Term, Contractor Template matching
WorkMode Choice Yes Office, Hybrid, Remote Task and equipment matching
WorkLocation Choice Yes Primary Office, Secondary Office, Approved Remote Jurisdiction Facilities and compliance routing
StartDate Date only Yes Form Calculates task due dates
Manager Person Yes Internal directory Approval and task ownership
PeopleOpsOwner Person Yes Configuration list Primary process owner
CostCenter Single-line text Yes Approved finance code Payroll and equipment reference
EquipmentBundle Choice Yes Standard Laptop, Developer Laptop, No Device, Nonstandard Equipment routing
PrivilegedAccessRequired Yes or no Yes Form Conditional IT approval
WorkflowStatus Choice Yes Controlled workflow statuses Main process stage
ApprovalStatus Choice Yes Not Started, In Progress, Approved, Needs Information, Rejected Approval state
ManagerApprovalID Single-line text No Approvals connector Approval evidence
ITApprovalID Single-line text No Approvals connector Conditional approval evidence
GenerationStatus Choice Yes Not Started, In Progress, Complete, Partial Failure Task-generation control
TotalBlockingTasks Number Yes Power Automate Readiness calculation
CompletedBlockingTasks Number Yes Power Automate Readiness calculation
ReadinessPercent Number Yes Power Automate, 0 through 100 Operational reporting
ReadinessStatus Choice Yes Not Ready, At Risk, Ready, Exception Start-date readiness
ExternalPayrollID Single-line text No Payroll specialist Confirms payroll completion without storing financial data
HRFolderLink Hyperlink No Power Automate Restricted HR evidence location
ITFolderLink Hyperlink No Power Automate Restricted IT evidence location
AutomationStatus Choice Yes Healthy, Running, Retry Required, Failed Operational monitoring
LastAutomationRun Date and time No Power Automate Monitoring and reconciliation
RetryCount Number Yes Power Automate Limits repeated recovery attempts
ErrorMessage Multiple-line text No Power Automate Latest actionable failure summary
Notes Multiple-line text No Authorized users Human context and override evidence
Created and Modified System timestamps Yes SharePoint Creation and last-updated audit evidence

Task, Template, Equipment, and Log Fields

Important child and configuration fields
List and field Type Validation Purpose
Task: TaskKey Single-line text, unique RequestID plus TemplateCode Prevents duplicate task creation
Task: Request Lookup Valid request item Parent relationship
Task: RequestID Single-line text, indexed Copied from parent Filtering and reporting
Task: TemplateCode Single-line text Existing active template Template traceability
Task: TaskTitle Single-line text Not blank Required action
Task: DepartmentOwner Choice People Ops, IT, Payroll, Facilities, Manager Operational routing
Task: AssignedTo Person Active internal account Named owner
Task: Status Choice Not Started, In Progress, Needs Information, Blocked, Completed, Cancelled Task stage
Task: Priority Choice Normal, High, Critical Reminder and escalation behavior
Task: DueDate Date and time Calculated from start date and offset Deadline tracking
Task: Blocking Yes or no Template-controlled Determines readiness impact
Task: EvidenceRequired Yes or no Template-controlled Determines evidence handling
Task: EvidenceStatus Choice Not Required, Missing, Uploaded, Verified, Rejected Document readiness
Task: EvidenceLink Hyperlink Approved SharePoint location Links task to evidence
Task: CompletedBy and CompletedDate Person and timestamp Required when completed Audit history
Task: ReminderCount Number Zero or greater Reminder monitoring
Task: EscalationLevel Number 0, 1, or 2 Escalation tracking
Task: ExceptionType Choice None, Missing Data, Access, Equipment, Document, Automation, Other Manual-review categorization
Template: TemplateCode Single-line text, unique Stable code Template identity
Template: AppliesToRoleFamily Single-line text All or one approved value Role matching
Template: AppliesToWorkMode Single-line text All, Office, Hybrid, or Remote Work-mode matching
Template: AppliesToEmploymentType Single-line text All or one approved value Employment matching
Template: AppliesToLocation Single-line text All or one approved value Location matching
Template: OwnerRoleKey Single-line text Manager or valid configuration key Resolves task owner
Template: DueOffsetDays Number Integer, negative or positive Calendar-day offset from start date
Template: CreateEquipmentPlaceholder Yes or no Template-controlled Creates an equipment record
Equipment: EquipmentKey Single-line text, unique RequestID plus equipment type Prevents duplicates
Equipment: AssetTag Single-line text Required when assigned Links the device to asset inventory
Equipment: SerialReference Single-line text Restricted to IT Device verification
Equipment: DeliveryStatus Choice Not Ordered, Ordered, Configuring, Ready for Pickup, Shipped, Delivered, Handed Over Equipment readiness
Configuration: ConfigKey Single-line text, unique Stable approved key Finds owners and operational settings
Log: LogID System number System-generated Error-record identity
Log: FlowName and RunReference Text Required Links failure to a flow run
Log: Retryable and ResolutionStatus Yes or no and choice Open, Retrying, Resolved, Ignored with reason Dead-letter and recovery control

List version history is enabled. Attachments are disabled on operational lists so users do not place documents in inconsistent locations. Evidence links must point to approved SharePoint libraries.

Workflow Statuses and Ownership

Onboarding workflow statuses
Status Meaning and owner Entry and exit conditions Reminder and escalation
Submitted People Operations owns initial validation. Created from a valid form response; exits when approval flow starts. Alert if not picked up within one business hour.
Awaiting Manager Approval Hiring manager owns the decision. Approval created; exits on approve, needs information, or reject. Reminder after one business day; escalation after two.
Needs Information People Operations and manager share ownership. Approver requests correction; exits after fields are corrected and resubmitted. Daily reminder while start date is within ten days.
Awaiting IT Approval IT approver owns privileged access or nonstandard equipment review. Manager approved and conditional rule is true; exits on response. Reminder after one business day; escalation after two.
Approved Automation owns task generation. Required approvals completed; exits when generation begins. Immediate failure alert if generation does not start.
Tasks Generating Automation owns creation and synchronization. GenerationStatus becomes In Progress; exits when complete or partially failed. Alert if still running beyond the normal processing window.
In Progress Individual task owners perform assigned work. Tasks have been generated; exits when readiness conditions are met. Task-level reminders and escalations apply.
Ready for Start People Operations verifies readiness with the manager. Approvals, blocking tasks, evidence, and equipment satisfy the rules. No routine reminder; notify manager and People Operations once.
Started People Operations monitors post-start tasks. Employee has started; exits after required post-start tasks are complete. Post-start tasks use their own due dates.
Closed People Operations owns closure. Final human review confirms completion and records are ready for retention. No reminders.
Rejected People Operations owns follow-up. An approver rejects the request; resubmission requires a new approval cycle. Immediate notification to requester and People Operations lead.
Automation Exception Automation support owner investigates. A critical flow action fails or data cannot be reconciled. Immediate Teams alert and daily open-exception summary.

A completed task can be returned to In Progress if evidence is rejected or the start date changes in a way that invalidates the work. Cancellation requires a reason. A request cannot move to Ready for Start while a blocking task is open, required evidence is unverified, equipment is not ready, or a critical exception remains unresolved.

Step-by-Step Implementation

Step 1: Prepare the Accounts and Permissions

Confirm that the Microsoft 365 tenant provides access to Microsoft Forms, Microsoft Lists or SharePoint, Microsoft Teams, Power Automate cloud flows, the required standard connectors, and Microsoft Approvals. Licensing and connector entitlements should be checked against the tenant’s current subscriptions rather than assumed from a plan name.

  1. Create separate development and production SharePoint sites, or use separate development and production lists within controlled sites if the company does not operate multiple Power Platform environments.
  2. Create a private Teams team or restricted channel for onboarding operations. Membership should include People Operations, the IT administrator, the payroll specialist, and the designated support owner.
  3. Create the Microsoft Form as a group-owned form rather than leaving it under one employee’s personal ownership.
  4. Use a dedicated automation account where company policy permits. The account requires access only to the form, lists, approved libraries, Teams destinations, directory lookup, and approvals used by the workflow.
  5. Apply multifactor authentication and conditional-access controls to the automation account. Do not share its password among administrators.
  6. Add at least two flow owners. One should be the primary automation owner and one should be a backup administrator.
  7. Create connection references for Forms, SharePoint, Teams, Microsoft 365 Users, and Approvals when solution-aware flows are available.
  8. Create test users representing a People Operations submitter, hiring manager, IT approver, payroll owner, facilities owner, and unauthorized employee.
  9. Use test lists, test libraries, and a test Teams channel. Do not test with real employee data.

Managers do not require broad access to the operational lists. They receive approval cards and limited Teams notifications. People Operations, IT, and payroll receive access according to their function. Sensitive payroll information remains outside these lists.

No API key, webhook URL, or database password is required for the core implementation. Microsoft connectors authenticate through managed Microsoft 365 connections. Connection ownership and expiration still require monitoring.

Step 2: Build the Intake

Create an internal Microsoft Form named New Hire Onboarding Request. Restrict responses to authorized people in the organization. People Operations submits the form after the hire is approved.

Microsoft Forms intake fields
Question Type Required Validation or condition
Candidate reference Short text Yes Approved reference, 3 to 40 characters
Employee display name Short text Yes No payroll or identity numbers
Expected work email Short text No Validated by flow if supplied
Job title Short text Yes Maximum practical length defined by policy
Role family Choice Yes Uses the same approved values as the request list
Department Choice Yes Approved department values
Employment type Choice Yes Permanent, Fixed Term, or Contractor
Work mode Choice Yes Office, Hybrid, or Remote
Work location Choice Yes Approved location category
Start date Date Yes Business validation rejects an implausible or past date
Hiring manager email Short text Yes Must resolve to an active internal account
Cost center Choice or short text Yes Matched against approved finance codes
Equipment bundle Choice Yes Standard Laptop, Developer Laptop, No Device, Nonstandard
Privileged access required Choice Yes Yes or No
Access details Long text Conditionally required Shown when privileged access is Yes
Nonstandard equipment details Long text Conditionally required Shown when Equipment Bundle is Nonstandard
Facilities access required Choice Yes Yes or No
Operational notes Long text No Must not contain sensitive payroll, health, or identity information
Submission acknowledgement Choice Yes Confirms the data is approved for onboarding use

Do not use a general attachment question for payroll or identity documents. Remote equipment addresses should be collected through an approved restricted process rather than included in Teams messages or the general request list.

The form confirmation message should explain that a request will be created, the manager may receive an approval, and People Operations will be notified if validation fails. It should also tell submitters not to resubmit simply because a Teams message is delayed.

Forms required fields prevent basic omissions. Power Automate performs business validation for directory accounts, allowed choice values, valid dates, candidate references, and duplicate submissions. Invalid records are sent to a manual-review queue rather than partially processed.

Step 3: Create the System of Record

Create the six lists described in the data structure section. When creating important columns, initially use stable names without spaces, such as RequestID, DuplicateKey, and WorkflowStatus. Display labels can be changed later while internal field names remain stable.

  1. Enable version history on all operational and configuration lists.
  2. Disable attachments on the request, task, equipment, template, configuration, and automation-log lists.
  3. Enforce unique values on RequestID, DuplicateKey, TaskKey, EquipmentKey, TemplateCode, and ConfigKey.
  4. Index DuplicateKey, WorkflowStatus, StartDate, RequestID, AssignedTo, DueDate, and ResolutionStatus.
  5. Set defaults such as WorkflowStatus = Submitted, ApprovalStatus = Not Started, GenerationStatus = Not Started, AutomationStatus = Healthy, RetryCount = 0, ReminderCount = 0, and EscalationLevel = 0.
  6. Create lookup columns from tasks and equipment to the Onboarding Requests list.
  7. Retain a text copy of RequestID on child records to support filtering and recovery.
  8. Create restricted views rather than exposing every column to every operational role.

Create active task templates for the company’s standard process. A small initial library might include account creation, laptop preparation, payroll setup, badge preparation, welcome message, first-week schedule, security training, and role-specific application access.

Each template should match either All or one approved value for each selection dimension. If one task applies to several specific role families, create controlled template variants with separate TemplateCodes. This avoids ambiguous text matching.

Due offsets are stored as calendar days. For example, -7 means seven calendar days before the start date and 2 means two calendar days after it. If the company requires business-day scheduling, add a controlled holiday calendar and a separate date-calculation flow rather than embedding an incomplete weekend rule.

Create these initial views:

  • Requests: Active Onboarding
  • Requests: Starting in 14 Days
  • Requests: Not Ready Within 5 Days
  • Requests: Approval Delays
  • Requests: Automation Exceptions
  • Tasks: My Open Tasks
  • Tasks: Overdue Blocking Tasks
  • Tasks: Missing Evidence
  • Equipment: Not Ready
  • Automation Log: Open Retryable Errors

Step 4: Connect the Tools

Create the flows using connections owned by the approved automation account. Interface labels can vary by connector version, but the underlying triggers, conditions, actions, and mappings remain the same.

Connection and field mapping summary
Source Destination Trigger and authentication Mapping and returned value
Microsoft Forms Power Automate New response trigger using Microsoft 365 connection Response ID is passed to Get response details
Power Automate Onboarding Requests Validated response through SharePoint connection Form fields map to request columns; list item ID is returned
Onboarding Requests Microsoft Approvals Request status becomes Submitted Request summary maps to approval; Approval ID is returned
Onboarding Task Templates Onboarding Tasks Approved request with generation not started Matching template fields create tasks; task item IDs are returned
Onboarding Requests SharePoint libraries Request creation RequestID becomes folder name; folder links return to request
Onboarding Tasks Microsoft Teams New task, reminder, or escalation Owner, title, due date, RequestID, and controlled link map to message
Requests, tasks, and equipment Readiness rollup Scheduled recurrence Counts and states update the parent request
Existing payroll platform Onboarding Requests Human completion of payroll task Payroll specialist enters non-sensitive external employee ID

Use the Microsoft 365 Users connector to validate the manager email and retrieve the manager’s directory profile. If the email does not resolve, stop the request before approval and mark it Needs Information.

For SharePoint Get items actions, use indexed filters whenever possible. Enable pagination where a query can return more than one connector page, and set the threshold above the expected active-record count while remaining within tenant policy. Queries for one request should filter by the indexed RequestID rather than retrieving the whole list.

Store returned identifiers immediately. The request stores the Forms response ID and approval IDs. Child records store TaskKey or EquipmentKey. The flow does not depend on a Teams message identifier for business state.

Step 5: Build the Core Automation

Flow ONB-01: Intake and Request Creation

  • Trigger: Microsoft Forms reports a new response.
  • Conditions: Required values exist, manager resolves in the directory, choices are approved, and the duplicate key does not exist.
  • Actions: Get response details, initialize normalized variables, validate, query duplicates, create request, generate RequestID, update request, create document folders, and post receipt.
  • Fields updated: RequestID, DuplicateKey, FormsResponseID, WorkflowStatus, folder links, AutomationStatus, and LastAutomationRun.
  • Notification: People Operations receives a Teams receipt containing RequestID and validation status.
  • Exception: Invalid data or a critical connector failure creates an automation-log entry and marks the request for manual review.

The exact action order is:

  1. Trigger on a new Forms response.
  2. Get response details using the returned response ID.
  3. Initialize text, date, Boolean, and integer variables.
  4. Trim text and normalize the candidate reference to lowercase for duplicate checking.
  5. Validate the manager through Microsoft 365 Users.
  6. Validate the start date and controlled choices.
  7. Create the DuplicateKey.
  8. Query Onboarding Requests for the key, returning at most one item.
  9. If a record exists, log a Duplicate Event, notify the submitter, and terminate successfully without creating a record.
  10. If no record exists, create the request with AutomationStatus = Running.
  11. Use the returned list item ID to generate RequestID.
  12. Update the request with RequestID and system defaults.
  13. Run two nondependent branches: create restricted folders and post an operational receipt.
  14. Update folder links, AutomationStatus = Healthy, and LastAutomationRun.

Critical record creation is completed before parallel branches begin. A failed Teams post does not delete or roll back a valid request. It creates a notification error in the automation log.

Flow ONB-02: Approval Orchestration

  • Trigger: A request is created or modified with WorkflowStatus = Submitted and ApprovalStatus equal to Not Started or Resubmit.
  • Conditions: RequestID exists, manager is valid, and no active approval is already recorded.
  • Actions: Mark approval in progress, create manager approval, wait for response, evaluate response, optionally create IT approval, and update status.
  • Fields updated: WorkflowStatus, ApprovalStatus, ManagerApprovalID, ITApprovalID, responder details, timestamps, comments, and AutomationStatus.
  • Notification: The approver receives the approval through Microsoft Approvals and supported Microsoft 365 clients. Teams reminders are sent separately.
  • Exception: Approval creation failure is not automatically repeated until the system checks whether an Approval ID already exists.

Before creating an approval, update ApprovalStatus to In Progress. This prevents another list modification from starting a second approval flow. Use a custom-response approval with three responses: Approve, Needs Information, and Reject.

If the manager approves, evaluate these conditions:

  • PrivilegedAccessRequired is Yes.
  • EquipmentBundle is Nonstandard.

If either is true, route a second sequential approval to the IT approver read from the configuration list. Parallel approval is not used because the manager must first confirm the requested access and equipment. If neither condition is true, mark the request Approved.

If an approver selects Needs Information, set WorkflowStatus and ApprovalStatus to Needs Information. People Operations corrects the controlled request record, records a note, and sets ApprovalStatus to Resubmit and WorkflowStatus to Submitted. The flow then starts a new approval and retains the earlier approval ID as history.

Flow ONB-03: Task and Equipment Generation

  • Trigger: A request changes to Approved while GenerationStatus is Not Started.
  • Conditions: ApprovalStatus is Approved, RequestID exists, and no critical request error is open.
  • Actions: Set generation in progress, read active templates, filter applicable templates, resolve owners, check TaskKey, create missing tasks, create equipment placeholders, and finish generation.
  • Fields updated: GenerationStatus, WorkflowStatus, TotalBlockingTasks, AutomationStatus, RetryCount, and LastAutomationRun.
  • Notification: Task owners receive Teams notifications; People Operations receives a generation summary.
  • Exception: Failed template rows are logged individually. Successful rows remain valid and the request becomes Partial Failure.

Turn off parallel execution in the template loop when variables such as failure counts are updated. For every matching template:

  1. Build TaskKey from RequestID and TemplateCode.
  2. Query tasks for that key.
  3. If the task already exists, log it as an idempotent skip.
  4. Resolve AssignedTo. Manager-owned tasks use the request manager; other tasks use OwnerRoleKey to query the configuration list.
  5. Calculate DueDate by adding DueOffsetDays to StartDate.
  6. Create the task with default status and evidence state.
  7. If CreateEquipmentPlaceholder is true, build EquipmentKey and create the equipment row only if it does not already exist.
  8. Post a Teams notification to the responsible owner or controlled department channel.

After the loop, set GenerationStatus to Complete when the failure count is zero. If one or more rows fail, set GenerationStatus to Partial Failure, WorkflowStatus to Automation Exception, and AutomationStatus to Retry Required.

Manual recovery consists of correcting the cause, setting GenerationStatus to Not Started, and selecting an authorized Retry Requested field. Existing TaskKeys and EquipmentKeys prevent duplicates.

Flow ONB-04: Readiness Rollup

  • Trigger: Scheduled recurrence every 15 minutes.
  • Conditions: Request is active and not Closed, Rejected, or awaiting initial approval.
  • Actions: Retrieve related tasks and equipment, calculate counts, test readiness rules, update parent, and post transition notifications.
  • Fields updated: TotalBlockingTasks, CompletedBlockingTasks, ReadinessPercent, ReadinessStatus, WorkflowStatus, and LastAutomationRun.
  • Notification: A message is posted only when readiness changes to Ready or Exception.
  • Exception: A failed rollup keeps the previous readiness value, marks AutomationStatus as Retry Required, and logs the failure.

A request is Ready only when all these conditions are true:

  • ApprovalStatus is Approved.
  • Every blocking task is Completed.
  • Every task requiring evidence has EvidenceStatus = Verified.
  • Required equipment is Ready for Pickup, Shipped according to approved policy, Delivered, or Handed Over.
  • No critical open automation error exists.

The scheduled design avoids maintaining several nearly identical child-item triggers. A 15-minute delay is acceptable for operational reporting. Companies requiring immediate event-driven rollups can create separate task and equipment triggers or use a controlled child-flow pattern.

Step 6: Add Approvals, Reminders, and Escalations

The approval process is sequential. Manager confirmation occurs first. Conditional IT approval occurs second. Payroll setup, facilities work, and standard IT provisioning are tasks rather than approvals.

Approval rules
Approval Condition Approver Responses Evidence
Manager confirmation Every valid request Hiring manager Approve, Needs Information, Reject Approval ID, responder, date, comments
IT review Privileged access or nonstandard equipment Configured IT approver Approve, Needs Information, Reject Approval ID, responder, date, comments
Manual override Approval service unavailable or documented exception People Operations lead plus relevant functional owner Approved exception or rejected exception Reason, approvers, date, supporting record

Create a scheduled reminder flow that runs on business days in the company’s operating time zone.

  1. Retrieve requests awaiting approval.
  2. If the approval age is at least one business day and no reminder was sent that day, notify the approver in Teams.
  3. If the approval age reaches two business days, notify the approver, People Operations owner, and configured backup.
  4. If the start date is within five calendar days, mark the request At Risk.
  5. Retrieve open tasks with a due date on or before the reminder horizon.
  6. Send upcoming reminders according to task priority.
  7. For overdue tasks, increment ReminderCount and set EscalationLevel.
  8. At escalation level one, notify the task owner and department lead.
  9. At escalation level two, notify People Operations and the hiring manager.

Unavailable approvers can reassign an approval where the tenant’s approval client permits reassignment. If reassignment is not available or appropriate, People Operations records the unavailable approver, uses the documented manual-override path, and preserves evidence from both required decision-makers.

A late response from a superseded approval must not overwrite a current decision. Before processing any response, the flow compares the returned Approval ID with the active approval ID stored on the request.

Step 7: Add Documents and File Management

Create two restricted SharePoint libraries:

  • HR Onboarding Evidence: Accessible only to authorized People Operations users.
  • IT Onboarding Evidence: Accessible to authorized IT staff and designated People Operations administrators.

Do not place tax forms, bank instructions, identity documents, medical records, or compensation documents in the general onboarding library. Those records belong in the payroll or HR system approved for that data.

Use this folder structure:

HR Onboarding Evidence/
  Active/
    2026/
      ONB-2026-000184/
  Closed/
    2026/

IT Onboarding Evidence/
  Active/
    2026/
      ONB-2026-000184/
  Closed/
    2026/

This configuration is used in the SharePoint folder-creation actions. Replace the year and RequestID with dynamic values. The expected output is a folder path and link stored on the request. Test it with a sample RequestID and verify that the automation account can create the folder while an unauthorized test user cannot open it. A forbidden response indicates a permission problem; an existing-folder response should be treated as an idempotent success after the path is verified.

Use a naming convention such as:

RequestID_DocumentType_YYYYMMDD_v01.ext

Example:
ONB-2026-000184_ManagerAccessConfirmation_20260810_v01.pdf

This naming configuration is applied by document owners before upload or by a controlled file action when the document is generated. The input is RequestID, approved document type, date, and version. The output is a searchable file name. Test with non-sensitive sample files and confirm that unsupported characters are removed. SharePoint version history should remain the authoritative revision history even when the visible file name contains a version label.

Task records track whether evidence is required, missing, uploaded, verified, or rejected. The EvidenceLink points to the controlled file. Replacing evidence should create a new file version or a clearly named replacement, not overwrite an unrelated document.

A missing file leaves the related task incomplete. A failed upload creates an automation-log entry if automation performed the upload. If a human upload fails, the user keeps the task In Progress and reports the issue to the operational owner. File-size and file-type rules must follow the tenant’s current SharePoint policy.

When the request closes, an authorized archival flow moves the request folder from Active to Closed if retention policy permits. Retention labels and deletion rules should be defined with the company’s legal, privacy, and records-management owners.

Step 8: Add Reporting and Operational Views

The initial reporting layer uses Microsoft Lists views because the operating volume does not require a separate analytics platform. Views read live list data, while readiness fields refresh every 15 minutes.

Operational views and alert thresholds
View Filter Owner Alert threshold
New Requests Created today and active People Operations Submitted for more than one business hour
Awaiting Approval Manager or IT approval pending People Operations Pending for two business days
Starting Soon, Not Ready Start date within five days and not Ready People Operations lead Any record
My Open Tasks AssignedTo equals current user and status open Each task owner Due within two days
Overdue Blocking Tasks Blocking is Yes, status open, due date passed Department leads Any task two days overdue
Incomplete Evidence Evidence required and not Verified People Operations or IT Start date within five days
Equipment Not Ready Required equipment not in an accepted readiness state IT Start date within five days
Manual Review Needs Information, Blocked, or exception type not None People Operations Any critical item
Rejected Requests WorkflowStatus is Rejected People Operations lead Review within one business day
Automation Failures Open automation-log records Automation owner Immediate for critical failures
Recently Completed Closed within the previous 30 days People Operations No automatic alert

Create calculated operational metrics through Power Automate, not cross-list calculated columns. Useful measures include total active requests, readiness rate, overdue blocking tasks, average elapsed time from submission to approval, average elapsed time from approval to Ready, and volume by role family or work mode.

A daily Teams summary should show counts and controlled links, not sensitive notes. A weekly summary can report volume, readiness, overdue tasks, exceptions, and automation failures. People Operations owns the business definitions; the automation owner maintains the calculations.

Step 9: Add Security and Governance Controls

  • Grant the automation account only the list, library, Teams, and approval access required by the flows.
  • Restrict operational-list membership to People Operations and necessary functional staff.
  • Do not rely on hidden list columns as a security control. Users with list access may be able to access underlying field values.
  • Exclude compensation, bank, tax, health, identity, and disciplinary data from the operational lists.
  • Use separate libraries rather than many unique folder permissions where possible.
  • Restrict anonymous and external sharing for onboarding libraries.
  • Use managed connections and approved secret storage. No credentials should appear in flow names, notes, Teams messages, or list fields.
  • Enable list and library version history and retain Power Automate run history according to policy.
  • Review guest users, former employees, owners, service accounts, and group membership regularly.
  • Back up configuration and template lists through an approved export or platform backup process.
  • Apply retention policies based on the company’s employment, legal, privacy, and records requirements.
  • Record every manual override with reason, approvers, date, and supporting evidence.
  • Require human approval for privileged access, nonstandard equipment, policy exceptions, and final closure.
  • Prevent the optional AI assistant from accessing operational request, payroll, or employee-relations data.

Managers receive only the information needed to approve their own request. Broad dashboards remain restricted. Teams messages use RequestID, employee display name, task title, owner, due date, and controlled links. They do not include personal addresses or payroll information.

Step 10: Deploy and Test

  1. Build all lists, templates, flows, libraries, and Teams destinations in the test environment.
  2. Create at least one sample request for every work mode, employment type, equipment bundle, and approval branch.
  3. Use test accounts to perform manager, IT, payroll, facilities, and People Operations actions.
  4. Run technical tests for duplicate events, connector failure, folder conflicts, invalid users, approval rejection, and retry recovery.
  5. Complete user acceptance testing with the People Operations coordinator, IT administrator, payroll specialist, office coordinator, and two managers.
  6. Compare generated tasks against the approved onboarding policy. Resolve missing or unnecessary templates before launch.
  7. Pilot the system with two non-sensitive sample cases and then a small number of real onboarding requests after approval.
  8. Keep the former checklist available as a documented rollback process during the pilot. Do not operate both systems as independent sources of truth.
  9. Export the production flow solution or package, template configuration, and field dictionary before activation.
  10. Activate flows in this order: intake, approval, generation, readiness, reminders, and reporting summaries.
  11. Monitor every run during the first production week and review all open automation-log records daily.
  12. Publish a short operating guide showing how to submit, approve, complete tasks, add evidence, resolve errors, and request support.

If rollback is required, turn off approval and generation triggers first, prevent new form submissions, export open requests, and continue from the controlled fallback checklist. Existing list records should remain read-only for investigation rather than being deleted.

Code and Configuration

No custom JavaScript, Python, SQL, webhook handler, or external API is required for the core implementation. Microsoft Forms, SharePoint, Power Automate, Approvals, and Teams provide the required triggers and actions through native connectors.

The following expressions and configuration values are still required. Power Automate action names can be changed, but expressions referencing an action must use that action’s internal name.

Environment Configuration

ONBOARDING_FORM_ID=YOUR_FORM_ID
REQUESTS_SITE_URL=YOUR_SHAREPOINT_SITE_URL
REQUESTS_LIST_NAME=Onboarding Requests
TASKS_LIST_NAME=Onboarding Tasks
EQUIPMENT_LIST_NAME=Equipment Assignments
TEMPLATES_LIST_NAME=Onboarding Task Templates
CONFIG_LIST_NAME=Onboarding Configuration
LOG_LIST_NAME=Onboarding Automation Log
HR_LIBRARY_NAME=HR Onboarding Evidence
IT_LIBRARY_NAME=IT Onboarding Evidence
OPERATIONS_TEAM_ID=YOUR_TEAM_ID
OPERATIONS_CHANNEL_ID=YOUR_CHANNEL_ID
AUTOMATION_OWNER_EMAIL=YOUR_EMAIL_ADDRESS

Store these values as environment variables when solution-aware flows are available. Otherwise, document them in a restricted deployment record and select the corresponding resources in each connector action. The values contain identifiers, not passwords. Test each connection with a read action before enabling triggers. An invalid site, list, team, or channel identifier usually produces a not-found or forbidden connector error.

Duplicate Key

concat(
  toLower(trim(variables('CandidateReference'))),
  '|',
  formatDateTime(variables('StartDate'), 'yyyy-MM-dd')
)

Place this expression in a Compose action named Compose_DuplicateKey after the CandidateReference and StartDate variables are validated. Its input is the normalized candidate reference and start date. Its output should resemble cnd-1048|2026-08-17. Map the result to DuplicateKey and use it in the indexed Get items filter. Test with differences in capitalization and spaces. An invalid date causes formatDateTime to fail, so date validation must occur first.

Use this filter-query pattern in the Get items action:

DuplicateKey eq '@{outputs('Compose_DuplicateKey')}'

Place this value in the SharePoint Get items Filter Query field and set the returned-item limit to one. The expected output is an empty array for a new request or one item for a duplicate. Because the key is built from controlled characters and a date, it avoids the quote-escaping problem associated with free-form names. If the query returns an invalid-field error, verify the column’s internal name.

Readable Request ID

concat(
  'ONB-',
  formatDateTime(utcNow(), 'yyyy'),
  '-',
  formatNumber(outputs('Create_request')?['body/ID'], '000000')
)

Place this expression after the SharePoint Create item action named Create_request. It requires the returned numeric item ID and produces a value such as ONB-2026-000184. Test by creating a sample request and confirming that the six-digit suffix matches the SharePoint ID. If the action has a different internal name, replace Create_request in the expression.

Task-Template Applicability

@and(
  equals(item()?['Active'], true),
  or(
    equals(item()?['AppliesToRoleFamily'], 'All'),
    equals(item()?['AppliesToRoleFamily'], variables('RoleFamily'))
  ),
  or(
    equals(item()?['AppliesToWorkMode'], 'All'),
    equals(item()?['AppliesToWorkMode'], variables('WorkMode'))
  ),
  or(
    equals(item()?['AppliesToEmploymentType'], 'All'),
    equals(item()?['AppliesToEmploymentType'], variables('EmploymentType'))
  ),
  or(
    equals(item()?['AppliesToLocation'], 'All'),
    equals(item()?['AppliesToLocation'], variables('WorkLocation'))
  )
)

Use this expression in advanced mode in a Filter array action. The input array is the value returned from Get items on the template list. The output is the subset matching the request. Test with one request from each work mode and compare the resulting template codes with the approved checklist. If a connector returns a Choice field as an object rather than text, use the dynamic Choice Value output or its Value property. Inspect test-run output rather than guessing the connector shape.

Task Key and Due Date

Task key:
concat(
  variables('RequestID'),
  '|',
  items('Apply_to_each_template')?['TemplateCode']
)

Due date:
formatDateTime(
  addDays(
    variables('StartDate'),
    int(items('Apply_to_each_template')?['DueOffsetDays'])
  ),
  'yyyy-MM-dd'
)

Place these expressions inside the template loop. Their inputs are RequestID, TemplateCode, StartDate, and DueOffsetDays. The outputs are a unique task key and a date-only due value. Test negative, zero, and positive offsets. A blank or nonnumeric offset causes int to fail, so the template-maintenance process must validate that field.

Task-Generation Trigger Condition

@and(
  equals(triggerOutputs()?['body/WorkflowStatus/Value'], 'Approved'),
  equals(triggerOutputs()?['body/GenerationStatus/Value'], 'Not Started')
)

Place this expression in the trigger settings for the request-created-or-modified flow. It prevents unnecessary runs. In some connector versions, a Choice value may be exposed directly without /Value. Confirm the actual trigger output in a test run and adjust only the property path. Test by editing an unrelated field on an In Progress request and verify that no generation run starts.

Readiness Percentage

if(
  equals(length(body('Filter_required_tasks')), 0),
  0,
  div(
    mul(length(body('Filter_completed_required_tasks')), 100),
    length(body('Filter_required_tasks'))
  )
)

Place this expression after two Filter array actions named Filter_required_tasks and Filter_completed_required_tasks. The first contains blocking tasks. The second contains blocking tasks that satisfy completion and evidence rules. The output is an integer percentage. Zero required tasks returns zero so an incomplete template configuration does not incorrectly report readiness. Test with zero, partial, and fully completed task sets.

Teams Task Message

Onboarding task assigned

Request: {RequestID}
Employee: {EmployeeDisplayName}
Task: {TaskTitle}
Due: {DueDate}
Priority: {Priority}

Open the controlled task record: {TaskLink}

Use this template in the Teams post-message action and map each placeholder from the request or task. The expected output is a concise operational message. Test the link using an authorized and unauthorized account. If the Teams action fails, log the error and continue processing the task because notification delivery is not the source of truth.

Scope and Retry Configuration

Each flow uses three scopes:

  • Try: Contains the business actions.
  • Catch: Runs after Try has failed or timed out. It writes the automation log, updates the request when possible, and notifies the support owner.
  • Finally: Runs after Try or Catch and records the final timestamp and flow result when the destination is available.

Configure SharePoint reads, updates, and Teams notifications with an exponential retry policy where supported. Use a conservative retry count appropriate to tenant policy. Do not blindly retry approval creation because an approval may have been created even when the response was not returned. Before manual approval retry, check the stored Approval ID and approval center.

For task creation, retry only after querying TaskKey. For folder creation, verify whether the folder already exists. These checks make repeated flow execution idempotent.

Deploy flows in the off state, replace all placeholders, establish production connections, run controlled sample tests, inspect run history and action inputs and outputs, and then activate flows in dependency order.

Failure Handling and Operational Reliability

Failure handling and recovery
Failure Automated response Manual recovery Owner
Missing required data Stop before approval and mark Needs Information. Correct the request and resubmit approval. People Operations
Duplicate form event Find DuplicateKey, log the event, and create nothing. Confirm the existing RequestID is valid. Automation owner
Duplicate task event Find TaskKey and skip creation. Reconcile only if task fields are incomplete. Automation owner
Invalid choice value Reject validation and record the supplied value. Correct form choices or template configuration. People Operations
Invalid manager email Do not create approval; set Needs Information. Select an active directory user. People Operations
Authentication expiry Connector actions fail and Catch logs the connection name. Reauthenticate or replace the connection, then retry. Power Platform administrator
Partial task generation Keep successful tasks, log failed templates, and set Partial Failure. Fix configuration and restart generation. Unique keys prevent duplicates. Automation owner
Approval unavailable Send reminders and escalate to People Operations. Reassign or use documented manual override. People Operations lead
Approval timeout Catch records timeout without assuming rejection. Check approval status before creating a replacement. Automation owner
Folder creation failure Mark Automation Exception and do not claim evidence readiness. Correct permissions or path and rerun folder action. SharePoint owner
File upload failure Leave evidence Missing and log connector error when automated. Upload through the restricted library and update EvidenceLink. Document owner
Failed Teams notification Log as noncritical and continue the underlying transaction. Open the task view or resend the message. Automation owner
Rate limit or throttling Apply backoff and retry to safe read or update actions. Reduce concurrency, narrow queries, and retry failed records. Automation owner
Flow timeout Catch records the last completed stage. Reconcile identifiers before restarting. Automation owner
Unresolved critical error Create an open automation-log record and set readiness Exception. Resolve, document the action, and rerun rollup. Support owner

The Onboarding Automation Log acts as a dead-letter queue. Each entry includes the flow name, run reference, RequestID, action name, error category, sanitized error message, whether retry is safe, retry count, assigned owner, and resolution status.

Staff identify failures through the Automation Exceptions request view, the open log view, immediate Teams alerts, and a daily unresolved-error summary. Recovery never starts by deleting records. Staff first identify which external IDs, approval IDs, tasks, folders, or messages already exist.

A weekly reconciliation flow compares active approved requests with generated tasks. It identifies requests with zero tasks, tasks without a valid parent, duplicate business references, readiness values older than the expected rollup interval, and open errors marked resolved incorrectly.

A Complete Example

People Operations submits an onboarding request for Jordan Lee, a fictional new employee of the representative company.

Original onboarding input
Field Value
Candidate reference CND-1048
Employee Jordan Lee
Job title Customer Success Manager
Role family Customer Success
Employment type Permanent
Work mode Hybrid
Location Primary Office
Start date August 17, 2026
Equipment Standard Laptop
Privileged access No
Facilities access Yes
  1. Microsoft Forms returns response ID 482.
  2. Power Automate retrieves the response, resolves the manager account, and creates DuplicateKey cnd-1048|2026-08-17.
  3. The duplicate query returns no records.
  4. SharePoint creates request item ID 184.
  5. Power Automate generates RequestID ONB-2026-000184 and updates the request.
  6. The flow creates restricted HR and IT folders using the RequestID.
  7. The manager receives an approval containing the role, work mode, start date, equipment bundle, and requested access.
  8. The manager selects Approve and adds a note confirming the first-week schedule.
  9. The IT approval condition evaluates to false because the equipment is standard and privileged access is not requested.
  10. The request changes to Approved and task generation begins.
  11. The template filter selects 14 tasks, including payroll setup, account creation, laptop configuration, badge preparation, welcome message, manager schedule, security training, and customer-success application access.
  12. Each task receives a key such as ONB-2026-000184|IT-ACCOUNT-001.
  13. An equipment placeholder is created with key ONB-2026-000184|LAPTOP.
  14. Teams posts controlled task notifications to the assigned owners.
  15. IT assigns internal equipment record EQ-000417, prepares the laptop, and changes delivery status to Ready for Pickup.
  16. Payroll enters the employee in the existing payroll system and records external payroll reference PAY-7842 on the restricted request field.
  17. The facilities badge task becomes Blocked because the approved access photograph is missing. The scheduled reminder escalates the task to People Operations after its due date.
  18. People Operations obtains the missing item through the approved process. Facilities completes the badge task and records its evidence link.
  19. The readiness rollup finds 11 blocking tasks, 11 completed blocking tasks, verified required evidence, ready equipment, and no critical errors.
  20. ReadinessPercent becomes 100, ReadinessStatus becomes Ready, and WorkflowStatus becomes Ready for Start.
  21. Teams notifies People Operations and the hiring manager. After Jordan starts and post-start tasks are complete, People Operations performs the final review and closes the request.

The badge exception did not require a duplicate checklist or a separate reconciliation email. It remained visible as a blocked task, generated a defined escalation, and retained its resolution history.

Implementation Cost

The following amounts are representative planning assumptions in US dollars. They are not Microsoft pricing, an Intelligex quote, or verified client results. Each organization should replace them with its licensing, labour, security, and implementation costs.

Representative one-time implementation costs
Activity Hours Assumed loaded rate Estimated value
Requirements and process design 8 $48 per hour $384
Forms, Lists, libraries, and permissions 18 $48 per hour $864
Power Automate configuration 24 $48 per hour $1,152
Technical and user acceptance testing 10 $48 per hour $480
Training 4 $48 per hour $192
Documentation and deployment 6 $48 per hour $288
Total internal implementation 70 $48 per hour $3,360
Representative recurring and optional costs
Cost Assumption Estimated amount Treatment
Existing Microsoft 365 subscriptions Already used by the company Existing baseline Not counted as incremental cost
Core platform allowance Planning allowance pending tenant licensing review $35 per month Included in savings calculation
Monthly maintenance labour 2 hours at $48 per hour $96 per month Included as labour in the new process
Optional AI usage allowance Planning placeholder, not vendor pricing $20 per month Excluded from core calculation
Optional professional implementation 50 to 75 hours at an assumed $175 per hour $8,750 to $13,125 Alternative to part of the internal build, not automatically additive

A professional implementation would still require internal participation for requirements, security review, testing, and process ownership. A company should not assume that existing software eliminates implementation or maintenance labour.

Estimated Time and Cost Savings

The calculation measures onboarding coordination and administration. It does not treat necessary work such as laptop configuration, payroll entry, manager planning, or security review as removable labour.

Representative savings assumptions
Assumption Value
Monthly onboarding volume 6 requests
Current coordination time 240 minutes per request
New coordination time 75 minutes per request
Exception rate 20 percent
Exception handling time 25 minutes per exception
Monthly maintenance 2 hours
Loaded labour cost $48 per hour
Recurring software allowance $35 per month
One-time internal implementation cost $3,360

Current monthly labour hours: Monthly volume × current minutes per record ÷ 60

Actual calculation: 6 × 240 ÷ 60 = 24 hours

New monthly labour hours: Monthly volume × new minutes per record ÷ 60, plus exception handling and maintenance

Actual calculation: 6 × 75 ÷ 60 + 6 × 20% × 25 ÷ 60 + 2 = 7.5 + 0.5 + 2 = 10 hours

Monthly hours recovered: Current monthly labour hours minus new monthly labour hours

Actual calculation: 24 – 10 = 14 hours

Estimated monthly labour value: Monthly hours recovered × loaded hourly labour cost

Actual calculation: 14 × $48 = $672

Net estimated monthly value: Monthly labour value minus recurring tool costs

Actual calculation: $672 – $35 = $637

Estimated payback period: One-time implementation cost ÷ net estimated monthly value

Actual calculation: $3,360 ÷ $637 = approximately 5.3 months

Recovered time does not automatically reduce payroll. It may provide additional capacity, quicker turnaround, reduced overtime, fewer administrative tasks, the ability to handle a higher hiring volume, or lower dependence on one coordinator.

Non-financial benefits include clearer ownership, fewer status emails, more consistent checklists, earlier identification of missing information, stronger audit evidence, more reliable readiness reporting, and a more organized experience for managers and new employees.

Readers should replace the monthly volume, handling time, exception rate, loaded labour cost, software allowance, maintenance hours, and implementation cost with their own figures.

Adding AI to the Automation

AI is optional and should be added only after the deterministic workflow operates reliably. The core system does not need AI to validate required fields, match exact template values, calculate due dates, route approvals, count tasks, enforce permissions, or determine whether blocking work is complete.

Potential AI uses include summarizing onboarding guidance, classifying employee questions, suggesting relevant approved articles, identifying themes in unanswered questions, and helping People Operations draft responses.

AI should not decide whether access is approved, whether payroll is correct, whether a policy exception is permitted, or whether an employee meets a legal or benefits requirement. Those decisions require deterministic rules and authorized people.

The recommended enhancement is a Microsoft Copilot Studio onboarding assistant published in Teams and grounded in an approved SharePoint onboarding knowledge site. A Power Automate flow logs unanswered or escalated questions to a restricted Microsoft List.

The knowledge site contains approved information about the first week, equipment support, security setup, workplace access, payroll contact routes, benefit-information sources, hybrid-work procedures, and manager expectations. Each page has a named owner, approval date, and review date.

  • Trigger: An employee asks the onboarding assistant a question in Teams.
  • AI input: The question and limited non-sensitive context such as work mode, role family, and onboarding phase.
  • System instruction: Answer only from approved onboarding knowledge and escalate unsupported or sensitive questions.
  • User prompt: The employee’s question plus approved context.
  • Expected output: A concise answer with source titles or a controlled escalation.
  • Validation: Require an allowed answer status, at least one source for answered questions, and no prohibited data.
  • Record update: Log timestamp, category, answer status, source titles, and escalation owner.
  • Human review: People Operations reviews escalated questions and a sample of routine answers.
  • Low-confidence handling: Do not provide a definitive answer when sources are absent, contradictory, or marked low confidence.
  • Prohibited data: Payroll amounts, bank data, tax identifiers, medical data, passwords, access secrets, disciplinary information, and legal conclusions.
  • Failure behavior: Display the approved contact route and log the service failure.

Use this instruction in the agent’s main instruction area or in a structured prompt action supported by the selected Copilot Studio configuration:

You are the employee onboarding information assistant for this company.

Use only the approved onboarding knowledge supplied to you. Do not use general knowledge to fill gaps.

Answer routine questions about approved onboarding procedures, first-week activities, equipment support, security setup, workplace access, payroll contact routes, and published company resources.

Do not make decisions about access approval, compensation, payroll calculations, benefits eligibility, legal rights, medical matters, policy exceptions, performance, discipline, or employment status.

Do not request or repeat passwords, bank details, tax identifiers, government identity numbers, medical information, or other sensitive personal data.

If the approved sources do not directly support an answer, set answer_status to needs_human. If the question contains prohibited data or asks for a prohibited decision, set answer_status to prohibited.

Cite the title of every approved source used. Treat confidence as a routing hint, not a probability.

Employee context:
Work mode: {WORK_MODE}
Role family: {ROLE_FAMILY}
Onboarding phase: {ONBOARDING_PHASE}

Employee question:
{USER_QUESTION}

Return only an object matching the configured JSON schema.

Replace the four placeholders with conversation variables. The prompt receives no request-list record, payroll data, equipment serial number, or approval history. Test it with approved, unsupported, ambiguous, and prohibited questions. If the model returns prose outside the structured object, route the response to human review rather than attempting to display it as a verified answer.

Configure the structured output with this schema:

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "answer_status",
    "answer",
    "source_titles",
    "confidence",
    "escalation_category",
    "follow_up_question"
  ],
  "properties": {
    "answer_status": {
      "type": "string",
      "enum": ["answered", "needs_human", "prohibited"]
    },
    "answer": {
      "type": "string"
    },
    "source_titles": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "confidence": {
      "type": "string",
      "enum": ["high", "medium", "low"]
    },
    "escalation_category": {
      "type": "string",
      "enum": ["None", "PeopleOps", "IT", "Payroll", "Manager", "Security"]
    },
    "follow_up_question": {
      "type": "string"
    }
  }
}

Place this schema in the structured-response configuration supported by the prompt action. The expected output is one valid object with no extra properties. Validate that answer_status is allowed, source titles are present when the status is answered, and low-confidence output is not presented as authoritative. A schema or parsing error creates a restricted assistant-log entry and displays the human-support route.

The logging flow writes only approved metadata by default. Full question text should be stored only if privacy review authorizes it. Cost monitoring should track monthly AI usage, question volume, escalation rate, service failures, and knowledge-maintenance effort.

Benefits of the AI Enhancement

The core automation already creates tasks, assigns ownership, manages approvals, tracks readiness, and sends reminders. AI does not create those benefits.

The AI-specific benefits are narrower:

  • Less People Operations time spent repeatedly answering routine questions
  • Faster discovery of approved onboarding instructions
  • More consistent routing of questions to People Operations, IT, payroll, security, or managers
  • Earlier identification of outdated or missing knowledge articles
  • Summaries of common question themes without manually reading every conversation
  • A controlled fallback when the approved knowledge does not support an answer

The assistant does not eliminate human review. Its primary purpose is to improve access to approved information and route unsupported questions appropriately.

What Remains Rule-Based or Human-Controlled

Decisions excluded from AI control
Decision Control Reason
Manager onboarding approval Named manager approval Confirms business need and requested resources
Privileged access IT or security approval High-impact security decision
Payroll entry Payroll specialist Financial and personal-data control
Benefits eligibility Approved policy and authorized HR staff Requires accurate policy interpretation
Nonstandard equipment Manager and IT approval Cost, compatibility, and security implications
Policy exceptions Authorized policy owner Requires accountability and documented judgment
Employment or legal conclusions Authorized HR or legal reviewer High-impact decision requiring professional review
Request readiness Deterministic rules plus People Operations review Exact task, evidence, equipment, and approval states are available
Final closure People Operations Confirms audit evidence and unresolved exceptions

Estimating the Additional Value of AI

The following estimate is a planning scenario, not a performance claim.

Representative AI value assumptions
Assumption Value
Onboarding questions per month 72, based on 12 questions for each of 6 hires
Original handling time 4 minutes per question
Core automation without AI 3 minutes per question because links are centralized
Questions answered routinely by AI 60 percent, or approximately 43
Questions escalated to a person Approximately 29
AI-answer sample rate 20 percent
Correction rate within sampled answers 10 percent
AI service-failure assumption 3 percent of questions
Monthly AI knowledge maintenance 30 minutes
AI usage allowance $20 per month

Original question-handling time: 72 × 4 ÷ 60 = 4.8 hours

Core automation without AI: 72 × 3 ÷ 60 = 3.6 hours

Automation with AI: 29 escalations × 3 minutes + 9 sampled answers × 2 minutes + 2 service failures × 3 minutes + 1 correction × 3 minutes + 30 minutes maintenance = 144 minutes, or 2.4 hours

Additional capacity from AI: 3.6 – 2.4 = 1.2 hours per month

Estimated labour value: 1.2 × $48 = $57.60 per month

Net additional value after AI allowance: $57.60 – $20 = $37.60 per month

This modest estimate reflects the company’s small monthly volume. AI may be justified for response consistency, employee accessibility, or knowledge analysis even when direct financial value is limited. The company should disable or redesign the assistant if unsupported answers, correction effort, or usage costs exceed the expected benefit.

Testing Checklist

Use synthetic sample data and test accounts before processing real employee information.

Technical and business acceptance tests
Test Input or condition Expected result Evidence
Normal submission Valid standard hybrid employee Request, approval, folders, tasks, and notifications are created RequestID and flow run
Missing required field Blank required value Form blocks submission or flow marks Needs Information Validation result
Invalid field Unapproved cost center or manager No approval starts Error log
Duplicate submission Same candidate reference and date No second request Duplicate event log
Duplicate event Replay the same flow input Unique keys prevent duplicate records Task and request counts
Failed authentication Disable a test connection Catch scope logs failure Run history
Expired credential Use an invalidated test connection Support owner receives alert Automation log
Failed connector request Use an inaccessible test list Safe retries occur and failure is logged Retry history
Unavailable approver Approver does not respond Reminder and escalation rules run Teams messages
Approval rejection Manager selects Reject Request becomes Rejected and no tasks generate Approval ID
Needs information Manager requests correction Request pauses and can be resubmitted Status history
Reassignment Approval assigned to approved delegate Current Approval ID controls outcome Approval history
Overdue task Open task past due Task appears in overdue view View and reminder count
Reminder Task reaches reminder horizon Owner receives one controlled reminder Last reminder timestamp
Escalation Task remains overdue Department lead and People Operations are notified Escalation level
Failed folder creation Remove test write permission Request becomes Automation Exception SharePoint error
Failed file upload Unsupported test upload Evidence remains unverified Task and error record
Failed notification Use invalid test channel Task remains valid and notification error is logged Automation log
Unauthorized user Open list and library as unauthorized tester Access is denied Permission test
Partial generation Use one invalid owner configuration Valid tasks remain and request shows Partial Failure Template-level errors
Correct retry Fix invalid configuration and retry Only missing tasks are created Unique task keys
Malformed AI output Return non-JSON test output Assistant escalates without displaying it as approved Assistant log
Inaccurate AI output Ask an ambiguous question Reviewer flags output and knowledge owner corrects content or prompt Review record
AI service failure Disable test AI connection Human contact route is displayed Failure log
Prohibited AI question Ask for payroll or legal decision Assistant refuses and routes to authorized owner Structured status
Successful completion Complete all blocking work Request becomes Ready for Start Readiness fields
Correct reporting Mix open, overdue, and completed records Each record appears in the correct view View comparison
Correct audit record Complete approval and tasks Responder, timestamps, evidence, and changes remain available Version and approval history

Ongoing Maintenance

The People Operations lead owns the business process. The automation owner maintains flows and connectors. A backup owner must be able to operate the system during absence or staff turnover.

Maintenance schedule
Frequency Maintenance activity Owner
Daily Review critical failed runs, open automation errors, and requests starting soon but not ready. Automation owner and People Operations
Weekly Reconcile approved requests, generated tasks, folder links, and unresolved exceptions. Automation owner
Monthly Review reminder volume, exception rate, connector health, platform usage, and AI cost if enabled. People Operations lead
Monthly Sample AI answers, escalations, corrections, and unsupported-question themes. Knowledge owner
Quarterly Review permissions, flow owners, service accounts, Teams membership, and library sharing. IT and People Operations
Quarterly Test one normal case, one rejection, one duplicate, one failure, and one recovery. Automation owner
Quarterly Review task templates, owners, offsets, locations, equipment bundles, and policy changes. Process owners
Annually Review retention, privacy, audit, backup, and regulatory requirements. Authorized governance owners
On personnel change Remove former users, transfer ownership, replace connections, and update configuration. IT administrator
On platform change Retest connector actions, expressions, approvals, Teams posting, and permission behavior. Automation owner

Documentation should include the field dictionary, list relationships, flow inventory, connection owners, configuration keys, approval rules, template rules, security model, recovery procedures, test cases, and change history.

When to Move to Dedicated Software

This Microsoft 365 implementation can remain appropriate while the workflow is understandable, maintainable, secure, and proportionate to transaction volume. Replacing it should not be automatic.

The company should evaluate dedicated onboarding, human resources, identity-governance, or service-management software when several of these signals appear:

  • Onboarding volume or concurrent starts create excessive flow runs and manual exceptions.
  • The business operates many legal entities, countries, or locations with distinct workflows.
  • Formal regulatory controls require stronger case-level permissions or certified audit functions.
  • Payroll, identity, recruiting, learning, and asset systems require supported bidirectional integrations.
  • Unique list or folder permissions become difficult to review.
  • Template combinations become too complex for controlled list rules.
  • Exception rates increase despite process improvements.
  • Operational staff spend excessive time maintaining flows and mappings.
  • Reporting requires historical models, advanced workforce analytics, or formal service-level measurement.
  • Employees and managers need a secure self-service portal.
  • Mobile, offline, multilingual, or external-user requirements become important.
  • The organization requires vendor support commitments or formal recovery guarantees.
  • Data volume or query behavior makes list performance difficult to manage.
  • Security risk increases because more sensitive employee information is requested.

A dedicated platform should be assessed against the working process and data model established here. The current implementation can also remain as an integration or exception-management layer if it continues to serve a controlled purpose.

Implementation Checklist

  • Confirm business requirements, scope, volume, owners, and readiness definition.
  • Confirm Microsoft 365 licensing and connector availability.
  • Select the production Form, SharePoint site, lists, libraries, Team, and channels.
  • Create primary and backup automation owners.
  • Define least-privilege access and prohibited data.
  • Create development and production resources.
  • Build the internal intake form and validation rules.
  • Create request, task, equipment, template, configuration, and log lists.
  • Enable version history, unique fields, and required indexes.
  • Define task templates by role, work mode, employment type, and location.
  • Configure owner and escalation mappings.
  • Map Forms fields to request fields.
  • Build duplicate prevention and readable RequestID creation.
  • Build manager and conditional IT approvals.
  • Build idempotent task and equipment generation.
  • Configure reminders, escalations, and unavailable-approver handling.
  • Create restricted document libraries and naming conventions.
  • Build readiness rollups and operational views.
  • Configure Teams receipts, task notices, reminders, and summaries.
  • Add Try, Catch, and Finally scopes with appropriate retry behavior.
  • Create the dead-letter automation log and manual-recovery process.
  • Review security, sharing, retention, backup, and privacy controls.
  • Test normal, duplicate, invalid, rejected, overdue, failed, and recovered cases.
  • Complete user acceptance testing with all participating departments.
  • Document deployment, rollback, support, and maintenance procedures.
  • Validate implementation-cost and savings assumptions with internal figures.
  • Add the AI onboarding assistant only after the core process is stable.
  • Restrict AI to approved knowledge and human escalation.
  • Assign a primary maintenance owner and backup owner.
  • Define the conditions that will trigger evaluation of dedicated software.

You need a similar solution?

Get a FREE
Proof of Concept
& Consultation

No Cost, No Commitment!