The shape of it
One intake event
A parent ticket in People Ops
A child ticket per team
A task template on each child
Group membership for the system work
1. Capture the hire
On the form path, build a New hire form. On the webhook or alert path, this is the field set your trigger prompt should produce.2. Create the task templates
One template per team’s child ticket, holding the work a system cannot do. Write it in the order it happens, since that is the order it keeps, and group it with section headers: Before day one, Day one, First week.The manual steps that come up on every real onboarding:3. Build the workflows
People Ops hands the work out. Each team runs their own half, which is what keeps this maintainable.- People Ops
- Each team, IT as the example
Trigger on your intake
Create the parent ticket
Create one child per team
Announce it
Let Copilot build it
Describe the end state and Copilot plans the workflow before creating anything.When the New hire form is submitted, create a child ticket in the IT workspace, one in Facilities, and one in Finance, each with its parent set to the triggering ticket and its form set to the New hire form. Then post the hire's name and start date to #people-ops.
When a ticket is created in the IT onboarding channel, apply the IT onboarding task template. If the department is Engineering, request the Engineering baseline access level. Wait until three days before the start date, then post a reminder to #it-ops to image the laptop.
4. Ask the manager for the exceptions
The department bundle covers the standard case, and there is always a second pass. Rather than growing the intake form with every possible tool, send the manager a short form once the base setup is running: “anything beyond the standard setup?”Their answers feed a second provisioning pass on the same child ticket. The intake stays short, the decision sits with the person who knows, and you get a record of why someone has Figma when their department bundle does not include it.5. Decide what needs approval
Most onboarding access should not need approval, because the hire itself was the approval. Gate only the expensive or sensitive tiers: production access, finance systems, admin roles.Attach an access policy to those access levels with an approval template routing to the manager or system owner. Access levels with no policy are auto-approved, which is the right default for a standard bundle.6. Handle the parts that fail
Provisioning reaches into other people’s systems, so give yourself a way to see when one does not answer. Three places to look:- A workflow on Entitlement Status Changed for Failed Provisioning, posting to your triage channel
- Workflow failure notifications by Slack or email
- The Entitlements tab under Settings > Applications on the morning of a start date, which shows status and time left per grant
7. Test it on a real hire, with a human watching
Run the whole thing for the next actual new starter, with someone shadowing every step. You will find one missing group and one wrong owner, and it is much cheaper to find them with a person watching.Where teams get this wrong
Per-person access lists
Per-person access lists
One workflow for every team
One workflow for every team
Everything at the start date
Everything at the start date
Approvals on standard access
Approvals on standard access
No failure path
No failure path