Start form
Leave request
Filled in by whoever starts the process
HR & People package
Employees request leave from a form; the balance, leave-type rules and an approval policy decide auto-approval, manager or HR review, then the leave is booked.
About this package
Leave request handles annual, sick, parental, bereavement and unpaid leave from one form. The employee enters the leave type, dates, number of working days and an optional reason.
The workflow reads the current balance from your HR system, looks up the leave type in the Leave types table (paid, certificate, notice, automatic limit) and works out the balance after the request and whether enough notice was given. The Leave approval decision table then approves short requests automatically, or sends them to the manager, and brings HR in for parental leave, unpaid leave or requests beyond the balance.
The manager can approve, decline or ask for a change; changed requests go back to the employee and are re-checked against the policy. Approved leave is booked in the HR system, added to the team calendar and confirmed by email. Adapt the leave types, notice periods and approval rules to your policy.
Starts from a form: the employee fills in the leave request (Run dialog in the app, or your intranet posting it 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
Leave requested
The employee enters the leave type, start and end dates, working days and an optional reason.
Check balance and rules
The HR system returns the current balance; the Leave types row gives the notice period, automatic limit and whether the balance is reduced.
Apply the policy
The Leave approval decision table approves short requests automatically and decides when a manager and HR review.
Manager decides
The manager approves, declines or asks for a change. Changed requests return to the employee and are checked again.
HR when needed
For parental leave, unpaid leave or requests beyond the balance, HR confirms the pay arrangement.
Book and confirm
The leave is booked in the HR system, added to the team calendar and the employee is emailed.
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
Filled in by whoever starts the process
User Task
Approve leave for {{employee_name}}: {{leave_type}}, {{start_date}} to {{end_date}} ({{days}} days)
User Task
HR: confirm {{leave_type}} leave for {{employee_name}} ({{start_date}} to {{end_date}})
User Task
Change your leave request ({{start_date}} to {{end_date}})
From your code
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
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-1001","leave_type":"annual","start_date":"2026-12-14","end_date":"2026-12-18","days":5,"reason":"Family trip before the holidays"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input employee_id=E-1001 --input leave_type=annual --input start_date=2026-12-14 --input end_date=2026-12-18 … --waitInbound webhook
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-1001","leave_type":"annual","start_date":"2026-12-14","end_date":"2026-12-18","days":5,"reason":"Family trip before the holidays"}'What's included
| Type | Name | Details |
|---|---|---|
| Email template | Leave approved | Sent to the employee when the leave is approved and booked. |
| Email template | Leave declined | Sent to the employee when the manager or HR declines the request. |
| Data table | Leave types | Leave types and their rules: paid or not, whether a certificate is needed, the notice expected and how many days are approved automatically. |
| Integration | HR system | |
| API reference | Add team calendar entry | POST /team-calendar/entries — Optional: add an "away" entry to the team calendar for the approved dates. |
| API reference | Create leave booking | POST /leave-bookings — Book the approved leave in the HR system so it reduces the balance and shows in payroll. |
| API reference | Get leave balance | GET /leave-balances/{{employee_id}} — The employee's current balance for one leave type, with their name, email and manager. |
| Decision table | Leave approval | 7 rules — Whether a leave request is approved automatically, who approves it and whether HR is involved. First matching rule wins. |
| Workflow | Leave request | 25 steps — An employee requests leave; the balance, leave-type rules and approval policy decide whether it is approved automatically or goes to the manager (and HR), then the booking is made in the HR system. |
Leave types · 5 sample rows
Leave typePaidCertificate requiredNotice (days)Auto-approve up to (days)Deducts balancePolicy notes
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Integration “HR system”Required
Workflow “Leave request” assigneesRequired
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/leave-request-1.0.0.utpkg
usertasks packages inspect leave-request-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install leave-request-1.0.0.utpkg --dry-run
usertasks packages install leave-request-1.0.0.utpkg # prompts for each requirement
usertasks packages install leave-request-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete leave-request -f values.yamlVerify the download
shasum -a 256 leave-request-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
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
HR & People
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.
Needs:REST APIAssigneesEmail
HR & People
HR enters a new hire; the HR record, laptop, accounts, buddy and first-week plan are all arranged before day one, with a 30-day check-in.
Needs:REST APIAssigneesEmail
HR & People
Employees request kit from an equipment catalogue; a cost and role policy routes approval, IT fulfils the request and the asset is registered.
Needs:REST APIAssigneesEmail