Operations & Compliance package

Risk register

Anyone raises a risk on a form; a 5×5 matrix rates it, the owner accepts, mitigates or escalates within an SLA, and a weekly job re-reviews due risks.

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

About this package

What it does

Risk register gives you a living register instead of a spreadsheet nobody opens. The Risks table holds each risk with its category, department, likelihood, impact, score, rating, owner, controls, response, mitigation plan, residual score and next review date. Six sample risks are included so the register is not empty on day one.

Anyone can raise a risk on the Raise a risk form page: a title, category, description, likelihood and impact (1-5 with plain-language labels), existing controls and the risk owner as a Person. The Risk submission workflow scores it (likelihood × impact), rates it with the Risk rating decision table (Low, Medium, High, Extreme), sets an SLA for the owner's review by rating and adds it to the register.

The owner reviews it in a task form with Accept, Mitigate and Escalate buttons: a mitigation plan, target date and residual rating are recorded, an escalation emails the risk committee, and the task escalates to the owner's manager if it sits for three days. A second workflow, Weekly risk review, runs every Monday: every open risk whose review date has passed goes back to its owner through a sub-workflow (still valid, rating changed, close risk). No integrations needed.

Starts from a form

Starts from a form page: share the Raise a risk form (/f/<id>); each submission starts the review. The Weekly risk review runs every Monday at 08:00.

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

    Raise a risk

    Anyone fills in the form: title, category, description, likelihood, impact, controls and the risk owner.

  2. 2

    Score and rate

    Likelihood × impact gives the score; the Risk rating decision table turns it into Low, Medium, High or Extreme with an SLA and review frequency.

  3. 3

    Register and SLA

    The risk is added to the Risks table and the run gets an SLA for the owner review based on the rating.

  4. 4

    Owner decides

    The owner presses Accept, Mitigate (with a plan, date and residual rating) or Escalate; unanswered reviews escalate to their manager.

  5. 5

    Escalation

    Escalated risks are flagged in the register and emailed to the risk committee.

  6. 6

    Weekly review

    Every Monday, open risks past their review date go back to their owners, and the committee gets the list.

Risk submission — A risk is raised on the form: it is scored, rated by the matrix, added to the register with an SLA, and its owner accepts, mitigates or escalates it. The same canvas you get in the designer after installing.

Sub-workflow: Risk periodic review

One open risk that came due goes back to its owner: still valid, rating changed (re-rated by the matrix) or closed.

Sub-workflow: Weekly risk review

Every Monday, each open risk whose next review date has passed goes back to its owner for a periodic review, and the risk committee gets the list.

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>

Raise a risk

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

Risk title * title · text
Category * category · choice
OperationalFinancialComplianceHealth & safetyInformation securityReputational+1
Department * department · text
What could happen, and what would cause it? * description · textarea
Likelihood * likelihood · choice
12345
Impact * impact · choice
12345
Existing controls controls · textarea
Risk owner * owner · user
Your email * raised_by_email · emailname@company.com
Submit risk

User Task

Owner review

Review risk {{risk_id}} ({{rating}}, score {{score}}): {{form.title}} · 3-column grid · own header and theme

Your assessment * response_note · textarea
Mitigation plan mitigation_plan · textarea
Mitigation due target_date · dateYYYY-MM-DD
Residual likelihood residual_likelihood · choice
12345
Residual impact residual_impact · choice
12345
AcceptMitigateEscalate

User Task · Risk periodic review

Periodic review

Periodic review: {{risk_id}} {{title}} ({{rating}}) · 2-column grid · own header and theme

Likelihood now * likelihood · choice
12345
Impact now * impact · choice
12345
Review note * review_note · textarea
Still validRating changedClose risk

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":{"title":"Warehouse racking not inspected since the move","category":"Health & safety","department":"Warehouse","description":"The pallet racking was re-assembled after the move in August and has not had its annual inspection; a collapse could injure staff.","likelihood":"3","impact":"5","controls":"Visual checks by the shift lead; load signs on each bay","owner":"$owner","raised_by_email":"alex.morgan@example.com"}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input title="Warehouse racking not inspected since the move" --input category="Health & safety" --input department=Warehouse --input description="The pallet racking was re-assembled after the move in August and has not had its annual inspection; a collapse could injure staff." … --wait

What's included

8 assets, ready to adapt

TypeNameDetails
Email templateRisk escalatedSent to the risk committee when a risk owner escalates a risk.
Email templateWeekly risk reviewSent to the risk committee by the weekly review with the risks that came due.
Data tableRisksThe risk register: every risk with its owner, inherent and residual score, rating, response and next review date.
Decision tableRisk rating4 rules — Rates a risk from its score (likelihood × impact, 1-25) using a 5×5 matrix, and sets the owner review SLA and how often the risk is reviewed. First matching rule wins.
formsRaise a riskAnyone can raise a risk: describe it, rate likelihood and impact, and name the owner who reviews it.
WorkflowRisk periodic review9 steps — One open risk that came due goes back to its owner: still valid, rating changed (re-rated by the matrix) or closed.
WorkflowRisk submission16 steps — A risk is raised on the form: it is scored, rated by the matrix, added to the register with an SLA, and its owner accepts, mitigates or escalates it.
WorkflowWeekly risk review9 steps — Every Monday, each open risk whose next review date has passed goes back to its owner for a periodic review, and the risk committee gets the list.

Risks · 6 sample rows

Risk IDRiskDescriptionCategoryDepartmentLikelihood (1-5)Impact (1-5)ScoreRatingOwner (user id)OwnerExisting controlsResponseMitigation planMitigation dueResidual scoreStatusRaisedLast reviewedNext review

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. Share the Raise a risk form link (/f/<id>) with staff.
  2. Replace the sample rows in Risks with your register, or keep them as examples. To route periodic reviews to owners, put the owner's user id in Owner (user id); rows without one go to the person who installed the package.
  3. Set the risk committee address in the "Risk committee email" steps of Risk submission and Weekly risk review (risk-committee@example.com).
  4. Tune the Risk rating decision table (thresholds, SLA days, review frequency) and the weekly schedule's day, time and time zone.
  5. Optional: set EMAIL_PROVIDER so escalation and digest emails are delivered.

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

Verify the download

File SHA-256
6ead082410402755e59c068e925859831d60a26d0e3da1ada5914f03052b5283
Package checksum (what is signed)
sha256:e447a75eb9c885e401bee163ce2bd15a809d4378dd8f8f604f497f9316fc6b93
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 risk-register-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