Operations & Compliance package

Workplace incident log

A safety-themed incident form, severity and SLA from a decision table, an incident register with 7-year retention and an investigation task with Close / Escalate.

OfficialNo integrations neededStarts from a formIntermediate~10 min setupv1.0.1

About this package

What it does

Workplace incident log gives everyone one simple place to report injuries, near misses, damage and environmental incidents. The Report a workplace incident form has a safety-orange theme and a grid layout; picking the site from the Incident sites table fills in the site manager.

Each report starts the Incident response workflow through its Form submitted trigger. The Incident severity decision table turns the incident type and worst injury into a severity, a response time in hours, whether a formal investigation is needed and whether the regulator may need to be told. The workflow sets an SLA, adds the incident to the Incidents register (with a 7-year review retention policy applied to the row) and emails the site manager.

When an investigation is needed, the health and safety lead gets an investigation task due within the SLA, with root cause, contributing factors and corrective actions, and Close or Escalate buttons. Escalations email the site manager and go to a senior review. Everything is built in.

Starts from a form

Starts from a form page: share the Report a workplace incident form (/f/<id>) or put it on a QR code at each site; each report starts the workflow.

Someone fills in a form to start it: the workflow start form (Run dialog in the app, or your own portal posting to the API) or a standalone form page (/f/<id>) whose Form submitted trigger starts the workflow. People complete User Task forms along the way.

The flow

Step by step

  1. 1

    Report

    Anyone fills in the themed form; choosing the site fills in the site manager.

  2. 2

    Rate

    The Incident severity decision table sets severity, response hours, investigation and notifiable flags.

  3. 3

    Log and notify

    An SLA starts, the incident goes into the register with a 7-year retention policy and the site manager is emailed.

  4. 4

    Investigate

    The safety lead records root cause and corrective actions, due within the SLA, with a reminder and escalation.

  5. 5

    Close or escalate

    Close completes the record; Escalate emails the site manager and starts a senior review.

Incident response — An incident report from the form: rated by the severity decision table, logged in the register under a 7-year retention policy, the site manager emailed, and investigated against an SLA when needed. The same canvas you get in the designer after installing.

Forms

The start form and the task forms

People start it from a form page (/f/<id>) with its own header, theme and buttons; submitting it starts the workflow. User Tasks show their fields and outcome buttons to the assignee.

Form page · /f/<id>

Report a workplace incident

Report an incident · 2-column grid · own header and theme · Its own page: share the link or open it on a tablet

Site * site · lookup
When did it happen? * occurred_at · datetimeYYYY-MM-DD HH:mm
Exact location * location_detail · text
Site manager site_manager · text
Site manager email site_manager_email · emailname@company.com
Type of incident * incident_type · choice
InjuryNear missProperty damageEnvironmentalVehicleSecurity+1
Worst injury * injury_level · choice
NoneFirst aidMedical treatmentLost timeSerious / hospital
People involved people_involved · text
Witnesses witnesses · text
Describe what happened * description · textarea
What was done straight away? * immediate_action · textarea
Your name * reporter_name · text
Your email * reporter_email · emailname@company.com
The area has been made safe area_safe · boolean
Submit report

User Task

Investigate the incident

Investigate {{incident_ref}}: {{form.incident_type}} at {{site_name}} [{{severity}}] · 2-column grid · own header and theme

Root cause * root_cause · textarea
Contributing factors contributing · multi_choice
ProcedureTrainingEquipmentEnvironmentSupervisionFatigue+1
Corrective actions * corrective_actions · textarea
Action owner action_owner · text
Actions due action_due · dateYYYY-MM-DD
Regulator notified (if required) regulator_notified · boolean
Why escalate? (for Escalate) escalation_reason · textarea
Close investigationEscalate

User Task

Senior review

Senior review of escalated incident {{incident_ref}} · own header and theme

Decision and further actions * decision · textarea
Close incident

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":{"site":"AKL-DC","occurred_at":"2026-10-27T14:30","location_detail":"Racking aisle 12","incident_type":"Injury","injury_level":"Medical treatment","people_involved":"Warehouse operator","witnesses":"Shift supervisor","description":"Operator strained their back lifting a carton from the bottom shelf; seen by the GP the same afternoon.","immediate_action":"Operator sent to the GP, carton moved to waist height.","reporter_name":"Hugo Silva","reporter_email":"hugo.silva@example.com","area_safe":true}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input site=AKL-DC --input occurred_at=2026-10-27T14:30 --input location_detail="Racking aisle 12" --input incident_type=Injury … --wait

What's included

8 assets, ready to adapt

TypeNameDetails
Email templateIncident escalatedSent to the site manager when an investigation is escalated.
Email templateIncident reported at your siteSent to the site manager for every incident.
Data tableIncident sitesYour workplaces. The incident form looks the site up here and fills in the site manager, who is emailed about every incident.
Data tableIncidentsThe incident register: every report with its severity, SLA, investigation outcome and corrective actions.
Decision tableIncident severity8 rules — Severity, response SLA and whether a formal investigation is needed, from the type of incident and the worst injury. First matching rule wins.
Retention policyIncident records: 7 yearsHealth and safety incident records are kept for seven years and then reviewed (not purged automatically): the register may be needed for claims or regulator enquiries.
formsReport a workplace incidentReport an injury, near miss, property damage or environmental incident. Anyone can use it; it takes about two minutes.
WorkflowIncident response22 steps — An incident report from the form: rated by the severity decision table, logged in the register under a 7-year retention policy, the site manager emailed, and investigated against an SLA when needed.

Incident sites · 5 sample rows

Site codeSiteAddressRegionSite managerSite manager emailActive

Incidents · 2 sample rows

ReferenceReportedOccurredSite codeSiteExact locationTypeInjurySeveritySLA (hours)Investigation requiredPossibly notifiable to the regulatorReported byReporter emailWhat happenedImmediate actionStatusRoot causeCorrective actionsClosed

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

  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. Nothing to configure: install it and share the Report a workplace incident form from Forms.
  2. Replace the sample rows in Incident sites with your workplaces and their site managers.
  3. Investigation tasks go to the person who installed the package (the health and safety lead). Change the assignee on the investigation and senior review steps to route them elsewhere.
  4. Review the Incident severity decision table against your own safety policy (SLA hours, when to investigate, notifiable events).
  5. Optional: set EMAIL_PROVIDER so site managers receive the emails.

Asked for on install

Nothing: it installs complete.

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 incident-log-1.0.1.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/incident-log-1.0.1.utpkg
usertasks packages inspect incident-log-1.0.1.utpkg       # offline: checksum, hashes, signature
usertasks packages install incident-log-1.0.1.utpkg --dry-run
usertasks packages install incident-log-1.0.1.utpkg       # prompts for each requirement
usertasks packages install incident-log-1.0.1.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete incident-log -f values.yaml

Verify the download

File SHA-256
ef83b8e53e6a1adb828a57cc7b24763b623df6315b7477c8a4415991ab70ec7c
Package checksum (what is signed)
sha256:82db2bd3043b491235cbf536162c749815c9999fd0c9a7b7b7592e2ffae7dd53
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 incident-log-1.0.1.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.1

  1. v1.0.12026-10-28Steps for the coordinator who set the package up are assigned to the workflow owner (workflow_owner_id), now that workflow_started_by names the person who started the run.
  2. v1.0.02026-10-28First 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