How long did it ACTUALLY take to build a production-ready M365 onboarding workflow?

Feb 27, 2026

Author: Hexi Xiao

Building the skeleton of the workflow from a template took 45 minutes. Getting it production-ready across multiple tenants took 15 hours. Here's exactly where that time went.

We ran a one-month pilot with an MSP north of $10M in revenue. They already had a standardized process for onboarding users across their client base — each client's process differed slightly, but the core steps were documented. They use AutoTask as their PSA and M365 for identity management.

All time logs were derived from analysis of raw AI conversation history with the builder, shared with their consent. We broke the implementation into three checkpoints. Here's what happened at each one.

Checkpoint 1: Permission Setup — 2 Hours of Admin Time

Permission setup was the fastest phase. Two one-hour onboarding calls got both the administrator and the workflow builders fully configured. The admin was already familiar with permission schemes and knew what they wanted to accomplish — mapping that to API permissions was straightforward. Time breakdown:

Session Task

Time

Set up M365 enterprise app registration

1 hr

Set up AutoTask API keys with permission

1 hr

Total

2 hr

What worked: Knowing the permission scope you need ahead of time. Once you know what permissions the workflow requires, setup is smooth.

Checkpoint 2: Build & Internal Testing — 8.7 Hours of Builder Time

This is where the real work lived. Here's the full breakdown:

Session Task

Time

Build skeleton from template & docs

45 min

Understand the workflow and how it works

35 min

Rebuild workflow from scratch and iterate

2 hr 7 min

Set up webhook to trigger workflow from PSA

1 hr 7 min

Troubleshoot AutoTask integration failures

1 hr 12 min

Troubleshoot Microsoft integration failures

1 hr 38 min

Minor reorganization

20 min

Total

7.7 hr

The pattern here is clear: the first 80 minutes got a working skeleton. The next 6+ hours were spent making it work reliably with real integrations. AutoTask and Microsoft each had their own quirks that only surfaced during testing.

At the end of this checkpoint, the internal user onboarding process worked end to end. New employees at the MSP itself could be onboarded using this workflow.

What worked: Having a documented process, even an imperfect one. It doesn't need to be pristine — client processes can vary — but it needs to be written down clearly enough for AI to understand the flow and make changes.

What didn't work: Nearly 3 hours went to troubleshooting permission and integration failures — over a third of the total build time. Errors only surfaced when a workflow failed at runtime, making debugging slow. This is something we're actively improving.

One thing this checkpoint didn't include: the ~1 hour spent setting up the submission form inside the PSA. That's a process change — adding a new form to the ticket submission flow is a noticeable UX change that requires coordination with end users. If your company doesn't already have a structured intake form for onboarding requests, expect some change management here.

Checkpoint 3: Multi-Tenant Rollout — 4.4 Hours of Builder Time

This phase took the working internal workflow and extended it to client tenants. It took 30 minutes of admin time to set up tenant consent — the actual consent grant takes about a minute, but learning the process required one half-hour walkthrough.

The builder time broke down as follows:

Session Task

Time

Configure workflow for specific AutoTask queue to reduce noise

48 min

Add feature to replicate data back to AutoTask

2 hr 11 min

Remove hardcoded tenant, move to multi-tenant mapping

1 hr 27 min

Total

4.4 hr

Two things surprised us in this phase:

First, we didn't need one workflow per customer. Small edge cases — like "if the company is X, use this naming convention" — could be programmed directly into prompts instead of creating separate workflow branches. This dramatically reduced complexity.

Second, the workflow was more reliable than we expected. By breaking user onboarding into smaller discrete tasks, we reduced the scope of each AI step and increased the success rate. Hallucination was far less of an issue than we had originally anticipated.

What worked: Strong checkpointing. When a workflow works, save that version. As you iterate and add features, you always want the ability to roll back to the last known-good state. We expect many more iterations as the workflow takes on more responsibility.

The “Payback” Math

We asked the builder who ran this pilot how the numbers looked.

Q: How long does a manual user provisioning take today? 

"I would say 5 to 10 minutes, or just an average of 8 minutes if you want a flat number."

Q: How long does it take to review the AI's work? 

"Less than 2 minutes, and that would eventually not be required once we "trust" the AI.

Q: How do you review the AI's work exactly? 

I check the output in the AutoTask ticket, then test the password to make sure it generated a real one. I also log into the admin center and verify that it reset MFA."

There are two ways to look at this:

Service delivery speed: The end user gets their account in 1 minute instead of 8. That's an 8x improvement in time-to-delivery for every onboarding request.

Technician time saved: The builder spends 2 minutes verifying each onboarding, down from 8 minutes of hands-on work. Across roughly 200 onboardings a month, that's 20 hours saved monthly — meaning the 15 hours spent building the workflow pays for itself before the end of the first month.

What To Expect Next

This workflow handles M365 user provisioning end to end. The next additions on the roadmap are integrating license procurement and expanding to more client tenants. Each new client rollout should be significantly faster than the first — the multi-tenant architecture is already in place, and the workflow handles per-client variations through prompts rather than separate branches.

If you're an MSP thinking about automating user onboarding, the honest takeaway is this: the template gets you started fast, but plan for ~15 hours of real customization work to get it production-ready.