Start inputs
Month-end close
Passed by the calling system
Finance package
On the first of each month, open the close in the ERP and issue every checklist task with a deadline, evidence rule and an audit log.
About this package
Month-end close checklist runs your close from a table instead of a spreadsheet passed around by email. At 06:00 on the first of each month it works out the period to close (the previous month, unless you pass one), opens the close period in your ERP and reads every active row of the Close checklist table.
Each checklist row starts its own Close task run: the task is logged as open in the Close log, then assigned with a due date from its business-day deadline, a reminder and escalation to the assignee's manager. The person ticks Done and pastes the evidence link; where the checklist says evidence is required, the task comes back until a link is given. Blocked and not-applicable tasks are recorded with their notes. Every result is written to the Close log and back onto the checklist row.
The main run logs the close start, emails the finance team the list of tasks and completes, while the close tasks carry on in parallel. Edit the checklist rows, deadlines and owner roles to match your close calendar.
Monthly on day 1 at 06:00 (Pacific/Auckland). You can also start it any time from the Run dialog, the API or the CLI.
Runs on a schedule (daily, weekly, monthly) in your time zone.
The flow
First of the month
The schedule fires at 06:00 and the period to close is set to the previous month unless one is passed in.
Open the close
Open close period starts the close in the ERP and returns the close id and deadline.
Issue each task
Every active Close checklist row starts its own Close task run, so tasks progress in parallel.
Complete with evidence
The controller marks each task done, blocked or not applicable; evidence is required where the checklist says so.
Keep the audit trail
Each result is written to the Close log and the checklist row records the last period and status.
Kick-off summary
The main run logs the close start and emails the finance team the tasks and the deadline.
Forms
The inputs a caller passes when it starts a run, and the forms people complete when the process needs a decision.
Start inputs
Passed by the calling system
User Task · Close task
{{period}} close · {{task_code}}: {{task_name}}
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":{"period":"2026-09","entity":"NZ01"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input period=2026-09 --input entity=NZ01 --waitWhat's included
| Type | Name | Details |
|---|---|---|
| Email template | Month-end close started | Sent to the finance team when the close starts, listing the tasks issued. |
| Data table | Close checklist | The month-end close tasks: one row per task with its area, owner role, business-day deadline, system and whether evidence is required. Untick active to skip a task. The workflow writes the last period and status back. |
| Data table | Close log | One row per close task per period: status, evidence and sign-off notes. This is the audit trail of each close. |
| Integration | ERP | |
| API reference | Open close period | POST /close-periods — Start the month-end close for an entity and period in the ERP (soft-closes sub-ledgers, opens the adjustment window) and return the close id and dates. |
| Workflow | Close task | 15 steps — One month-end close task: logs it as open, assigns it to the controller with a deadline, requires evidence where the checklist says so, then records the result in the Close log and on the checklist row. |
| Workflow | Month-end close | 12 steps — On the first of each month: opens the close period in the ERP, issues every active checklist task as its own Close task run, logs the start and emails the finance team. |
Close checklist · 12 sample rows
CodeTaskAreaOwner roleDue (business day)SystemEvidence requiredActiveLast periodLast statusLast completed
Close log · schema only
KeyPeriodEntityCodeTaskAreaStatusDueEvidenceNotesCompleted atERP close id
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 “ERP”Required
Workflow “Close task” 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/month-end-close-checklist-1.0.0.utpkg
usertasks packages inspect month-end-close-checklist-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install month-end-close-checklist-1.0.0.utpkg --dry-run
usertasks packages install month-end-close-checklist-1.0.0.utpkg # prompts for each requirement
usertasks packages install month-end-close-checklist-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete month-end-close-checklist -f values.yamlVerify the download
shasum -a 256 month-end-close-checklist-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
Finance
Employees submit a claim from a form; category limits and an approval policy route it, and approved claims are queued for reimbursement.
Needs:REST APIAssigneesEmail
Finance
Match each incoming invoice to its purchase order and goods receipts, pay matches within tolerance and route exceptions to accounts payable.
Needs:REST APIAssigneesInbound webhook
Finance
Requesters submit a requisition; the purchasing policy sets approvals and quotes, and approved requests become a purchase order sent to the supplier.
Needs:REST APIAssigneesEmail