Involuntary exits are the workflow nobody wants to talk about, which is exactly why most companies handle them badly — over email threads, spreadsheets, and hallway conversations. I recently spent a few weeks designing an end-to-end system for bench-driven involuntary separations for US full-time employees, and it taught me more about process design than any "happy path" workflow ever has. Here's the shape of it, with everything company-specific stripped away.
The trigger: let the system start it, never finish it
The flow begins when someone on the bench approaches the end of their allocation window with no new project confirmed. Instead of relying on a resource manager to remember to start the process, the system auto-initiates the workflow a few business days before the bench end date and notifies the resource management group (RMG).
That word initiates is doing careful work. The system opens the case; a human must verify it. RMG reviews the employee's situation, attaches a justification document, adds comments, and only then does the workflow actually move. If there's even a remote chance of a position, they can hold the case (by moving the allocation end date, which re-arms the trigger) or cancel it outright. Automation for reliability, humans for judgment.
And because people don't always act on time, the verification step carries a 24-hour SLA with daily reminders, escalating first to HR for visibility and eventually to a senior leader if it sits untouched for days. The lesson: an SLA without an escalation path is just a suggestion.
Approvals: parallel where possible, sequential where it matters
Once verified, two things happen at the same time. The employee's reporting manager gets a pure FYI — not an approval, just the chance to flag "wait, I have an opportunity for this person, expected to start on this date." Making this a comment instead of a gate was deliberate: the manager closest to the work often knows about openings first, but they shouldn't be able to stall the process by simply not responding.
In parallel, the vertical head — the actual decision-maker — gets an approval request framed as a staffing question rather than paperwork: "I have a position" (which rejects the exit and keeps the person) or "go with the exit, I don't have a position." Any one approver from a defined list is enough. If nobody acts within one business day, the case auto-approves and everyone gets notified that it did. Silence can slow a person's exit; it can never leave them in limbo forever.
Then comes the one branch in the flow: tenure. For long-tenured employees (past a defined threshold), an additional business-unit-head approval kicks in — mandatory, with no auto-approval, escalating to a configured senior contact if it sits for 24 hours. The more someone has invested in the company, the more senior the human who must personally sign off. I think that's the right instinct encoded as a rule.
The last mile: the employee hears it from a person, not a system
This was the most important decision in the whole design. The final step is deliberately not integrated with the HRIS. When all approvals are done, HR gets notified and must do three things in strict order: talk to the employee face to face, close the case in the workflow tool, and only then manually raise the exit in the HR system.
Why manual? Because the moment an exit is created in most HR platforms, automated emails fire — to the employee, to stakeholders, to IT. Nobody should learn they're being separated from a system notification. The workflow physically cannot reach the HRIS until a human confirms the conversation has happened. We gave up integration elegance to guarantee dignity, and I'd make that trade every time.
Cancellation is a feature, not an edge case
At every single stage — including after the exit has been initiated — the process can be cancelled with a mandatory reason, and whoever is currently holding the case gets notified. Opportunities appear late. Clients extend. Someone finds a role at the last minute. A separation process that can't gracefully reverse itself will either be bypassed or will hurt someone. Until the very last step, the door back stays open.
Everything is configuration, everything is audited
Two engineering choices rounded it out. First, nothing is hardcoded: triggers, stage sequences, SLAs, and escalation contacts all live in configuration tables, so a different country, a different employee type, or a different trigger (performance-based, contract end) becomes a set of rows rather than a rewrite. Second, an append-only audit log — insert-only at the database permission level — records every transition, every decision with its comments, every auto-approval, every escalation, and every email sent. When the question is "who approved this person's exit, and was it a real decision or an SLA timeout," the answer must be one query away, forever.
The takeaway
The system's job in an involuntary exit isn't to make the process faster. It's to make sure nothing is forgotten, nobody is skipped, silence never traps a case, and the human moments stay human. Automate the memory, escalate the accountability, and keep a person between the decision and the email — that's the whole design in one sentence.
Top comments (0)