HR & People package

Employee offboarding

A manager submits a leaver; access is revoked on the right day, equipment recovered, final pay scheduled, the exit interview held and the termination recorded.

Starts from a formIntermediate~15 min setupv1.0.0

About this package

What it does

Employee offboarding coordinates everything that has to happen when someone leaves. A manager or HR fills in the start form: employee number, last working day, reason, whether they are eligible for rehire and any notes.

The workflow reads the employee from your HR system (job, manager, privileged access, devices, leave balance) and evaluates the Offboarding controls decision table. Dismissals and leavers with privileged access lose access immediately; others on their last day. The table also decides whether an exit interview is offered and whether garden leave applies.

IT then revokes access and recovers equipment (the manager is emailed if anything is outstanding), payroll confirms the leave payout and final pay date, and HR runs the exit interview when required. The termination is recorded in the HR system, and the leaver and manager receive confirmation emails. Adapt the control rules to your security policy and the API paths to your HR system.

Starts from a form

Starts from a form: the manager or HR fills in the leaver details (Run dialog in the app, or your HR portal posting them to the start API).

Someone fills in a form to start it: the workflow inputs are the start form (Run dialog in the app, or your own portal posting to the API), and people complete User Task forms along the way.

The flow

Step by step

  1. 1

    Leaver submitted

    The start form collects the employee number, last working day, reason, rehire eligibility and notes.

  2. 2

    Read the employee

    Get employee returns the job, manager, privileged access flag, issued devices and leave balance.

  3. 3

    Apply the controls

    The Offboarding controls decision table sets the access revocation timing, exit interview and garden leave.

  4. 4

    IT revokes and recovers

    IT disables accounts and recovers devices; the manager is emailed if anything is outstanding.

  5. 5

    Payroll and exit interview

    Payroll confirms the leave payout and final pay date; HR runs the exit interview when the controls require one.

  6. 6

    Record and confirm

    The termination is recorded in the HR system and the leaver and manager get confirmation emails.

Employee offboarding — A manager or HR submits a leaver; the offboarding controls decide access timing, exit interview and garden leave, then IT, payroll and HR complete their steps and the termination is recorded. The same canvas you get in the designer after installing.

Forms

The start form and the task forms

The workflow inputs are the start form: the Run dialog renders them, and your own portal can post the same fields. User Tasks show their fields and outcome buttons to the assignee.

Start form

Employee offboarding

Filled in by whoever starts the process

Employee number * employee_id · textEmployee number in the HR system (E-1042…)
Last working day * last_working_day · dateYYYY-MM-DDLast working day
Reason * reason · select
resignationredundancyend of contractdismissal
Reason for leaving
Eligible for rehire rehire_eligible · booleanWould you rehire this person?
Notes notes · textAnything IT, payroll or HR should know (handover, notice period, agreements)
IT owner (user id) it_owner_id · textOptional: user id of the IT person who revokes access (overrides the install-time default)
Payroll (user id) payroll_owner_id · textOptional: user id of the payroll officer
HR partner (user id) hr_owner_id · textOptional: user id of the HR partner who runs the exit interview

User Task

Revoke access and recover equipment

Offboard {{employee_name}}: revoke access ({{revocation_timing}}) and recover equipment

All devices returned * devices_returned · boolean
All accounts disabled * accounts_disabled · boolean
Notes it_notes · text
DoneEquipment outstanding

User Task

Final pay

Final pay for {{employee_name}} (last day {{last_working_day}})

Leave payout (days) * leave_payout_days · numberPrefilled: {{leave_balance_days}}
Final pay date * final_pay_date · dateYYYY-MM-DD
Deductions (e.g. unreturned equipment) deductions · text
Final pay scheduled

User Task

Exit interview

Exit interview with {{employee_name}}

Main reason for leaving primary_reason · choice
Career progressionPay and benefitsManager or teamWorkloadRelocationPersonal+1
Would recommend us as an employer would_recommend · boolean
Feedback summary feedback · text
CompletedDeclined by employee

From your code

Start a run over the API

Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.

REST

shell
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
  -H "Authorization: Bearer $USERTASKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id":"<workflow id>","variables":{"employee_id":"E-1042","last_working_day":"2026-11-27","reason":"resignation","rehire_eligible":true,"notes":"Four weeks notice. Handover of the on-call rota to the platform team."}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input employee_id=E-1042 --input last_working_day=2026-11-27 --input reason=resignation --input rehire_eligible=true … --wait

Inbound webhook

shell
usertasks webhooks create <workflow id>          # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
  -H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
  -d '{"employee_id":"E-1042","last_working_day":"2026-11-27","reason":"resignation","rehire_eligible":true,"notes":"Four weeks notice. Handover of the on-call rota to the platform team."}'

What's included

8 assets, ready to adapt

TypeNameDetails
Email templateEquipment outstandingSent to the manager when IT could not recover every device or disable every account.
Email templateLeaving informationSent to the leaver with their last day, final pay date and what to return.
Email templateOffboarding completeSent to the manager when the termination is recorded and final pay is scheduled.
IntegrationHR system
API referenceGet employeeGET /employees/{{employee_id}} — Employee record: name, email, job, manager, privileged access flag, issued devices and remaining annual leave.
API referenceRecord terminationPOST /employees/{{employee_id}}/terminations — Record the termination in the HR system with the last day, reason, rehire flag and final-pay details.
Decision tableOffboarding controls6 rules — Controls for a leaver by reason and privileged access: when access is revoked, whether an exit interview is offered and whether garden leave applies. First matching rule wins.
WorkflowEmployee offboarding17 steps — A manager or HR submits a leaver; the offboarding controls decide access timing, exit interview and garden leave, then IT, payroll and HR complete their steps and the termination is recorded.

Requirements

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • REST API — A REST API integration: set its base URL and credentials on install.
  • Assignees — People in your workspace to receive the User Tasks (picked on install).
  • Email — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. HR system integration: set the base URL and API token. The references expect GET /employees/{id} (with manager, privileged_access, devices and leave_balance) and POST /employees/{id}/terminations; adjust paths and the response model to your HR system.
  2. Assignees: pick the default IT owner, payroll officer and HR partner. Runs can pass it_owner_id, payroll_owner_id and hr_owner_id instead.
  3. Edit the Offboarding controls rules to match your security and HR policy (revocation timing, exit interviews, garden leave).
  4. Email: configure EMAIL_PROVIDER on the instance so the leaver and manager emails are delivered (the steps continue on error).

Asked for on install

  • Integration “HR system”Required

    • Tokenconfig.auth_config.token
    • Base urlconfig.base_urldefault https://hris.example.com/api· optional
  • Workflow “Employee offboarding” assigneesRequired

    • User for step “Revoke access and recover equipment”nodes.6.config.assignee_id
    • User for step “Final pay”nodes.8.config.assignee_id
    • User for step “Exit interview”nodes.12.config.assignee_id

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download employee-offboarding-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
curl -fLO https://usertasks.com/gallery/employee-offboarding-1.0.0.utpkg
usertasks packages inspect employee-offboarding-1.0.0.utpkg       # offline: checksum, hashes, signature
usertasks packages install employee-offboarding-1.0.0.utpkg --dry-run
usertasks packages install employee-offboarding-1.0.0.utpkg       # prompts for each requirement
usertasks packages install employee-offboarding-1.0.0.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete employee-offboarding -f values.yaml

Verify the download

File SHA-256
066d4dea4a130e84c8c122d3f2e8cd394750872ea94f4df776fee1a2501c59a8
Package checksum (what is signed)
sha256:fcf94b86800a4e043176a6a171b5083485ccfb59094d3893415b4c3b29bfa914
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 employee-offboarding-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-26First release.

Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work

More packages

Related

Browse the whole gallery