> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ravenna.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Employee offboarding

> Offboard an employee in Ravenna with a three-stage flow: HR intake, a manager data handover form, and a scheduled revocation workflow that leaves an audit trail.

Offboarding is onboarding with the arrows reversed and a real deadline. Done well, access ends the day employment does, the person's work carries on with whoever inherits it, and you have the record to show both.

## Mental model

Offboarding is a three-stage flow, not a single workflow. Stage two exists because the data handover destination is only known to the manager, so it cannot be collected at intake.

1. HR intake creates the parent ticket in People Ops with the person and the last working day.
2. A manager form collects the mailbox delegate, the files and calendar recipient, and special access notes.
3. Child tickets in each team's workspace fire that team's own workflow, scheduled off the last working day.

Entitlements are the revocation record. An entitlement is the row saying a person holds an access level on an application, with status, expiry, and history. Access that was never recorded as an entitlement cannot be revoked by Ravenna, which is why coverage of the application catalog is what determines completeness.

***

## Revocation order

The order is load-bearing, because earlier steps depend on access that later steps remove.

1. `If / Else` on effective time. Immediate skips every wait.
2. `Apply Task Template` for the human work.
3. `Wait Until` the last working day, with a negative offset for anything needing lead time.
4. `Transfer User Data` (Google Workspace) for Drive and Calendar. Inputs: destination user, Drive scope (all, private, shared, none), release calendar resources. Asynchronous, returns a transfer ID.
5. `Remove Users from Groups` in the identity provider, which unassigns every application mapped to those groups.
6. Revoke remaining entitlements.
7. `Suspend User`, not delete. Retain for a legal hold window, then delete.
8. `Send Message` on the parent, then verify entitlement statuses.

Steps 4 and 5 cannot be swapped. Removing group memberships first can strip the access the data transfer needs.

***

## Revocation behavior by provisioning method

| Method      | On revoke                                                              | Human follow-up                           |
| ----------- | ---------------------------------------------------------------------- | ----------------------------------------- |
| Group       | Provider removes the group membership, unassigning mapped applications | None                                      |
| Application | Provider removes the direct application assignment                     | None                                      |
| Workflow    | Runs the configured deprovisioning workflow                            | Depends on the workflow                   |
| Manual      | Marked deprovisioned in Ravenna only                                   | Required. The target system is untouched. |

Entitlement statuses to check after a run: `Inactive` (success), `Failed Revocation` (needs a human), `Skipped Revocation` (another active grant still requires the access), `Failed Provisioning` (onboarding-side).

***

## Compliance evidence

The evidence is the entitlement history plus the ticket audit trail, including approvals. To land it in Drata, Vanta, or similar, add a `Foundry` action or an `HTTP Request` step at the end of the workflow writing the employee, the date, the applications revoked, the transfer destinations, and the suspension timestamp.

The Vanta integration does not carry offboarding evidence. It is an outbound sync of Ravenna user accounts, authentication methods, and MFA status, running every 24 hours.

***

## Constraints and gotchas

* Mailbox delegation has no native action in any provider integration. It needs Foundry, an `HTTP Request` step, or a task with a named owner.
* `Suspend User` is reversible with `Restore User`. Deletion is not, and it destroys the audit trail and any recovery path.
* A manual-method entitlement marked deprovisioned is a Ravenna record, not a change in the target system.
* The immediate branch must sit ahead of the manager form. An involuntary departure cannot wait on a form response.
* Reassign application ownership, approval template membership, and open ticket assignment before suspending, or approvals route to an account that cannot act.
* Access policy durations are counted from provisioning time, not request time.
* Ravenna has no deactivated-user status and no native HRIS termination webhook. Intake is a webhook, an agent rule on an alert channel, or a form.


## Related topics

- [Employee onboarding](/guides/playbooks/hr/employee-onboarding.md)
- [Employee lifecycle architecture](/guides/playbooks/hr/employee-lifecycle.md)
- [Workflows](/integrations/okta/workflows.md)
