Taskr (Work Orders)
Part of the IP4CMS portal. β All module guides
What it's for β Taskr is IP4CMS's field-task and work-order capability. It lets your team capture pieces of work, give them a clear status, assign them to the people (or teams) who will do them, track how far along each one is, and break large jobs down into smaller sub-tasks. In IP4CMS, Taskr is delivered in two connected ways: as work orders / tasks managed inside the portal (the project-and-task data your operators create and update day to day), and as a link to the external TaskR platform (Rekode), where field execution β the jobs your technicians actually pick up and complete in the field β happens. The portal side is your control room; the TaskR platform is where field crews run their work.
Where to find it
There are two distinct entry points, and which ones you see depends on your licence:
- TaskR module area β the standalone Taskr landing page, available when the
taskrlicence module is enabled. It is the front door to TaskR product features. - Settings β Flows β TaskR integration β at
Settings β Flows β TaskR integration. This is where you connect the portal to the external TaskR (Rekode) platform. It needs the separateflows:taskrlicence module.
Day-to-day work-order data (the tasks, statuses, and assignments themselves) lives within the portal's Projects area, under the project module those tasks belong to. Each task is created inside a project module, so you reach your work orders by opening the relevant project.
Before you start
Check the following before you expect Taskr to work:
- Licences. The product features need the
taskrmodule on your tenant licence. The platform connection (API and webhooks) needs the separateflows:taskrmodule. These are independent β you can have one without the other. Ifflows:taskris off, the TaskR landing page shows an amber notice telling you the platform integration is not enabled. - Permissions. You need the right permissions for what you want to do (see Permissions & access below). Without
flows:taskr:integration:readyou cannot even view the integration settings; withoutflows:taskr:integration:manageyou can view but not change them. - Platform credentials. To wire up the external TaskR platform you'll need its base URL and an API key, and optionally a webhook signing secret. Your TaskR/Rekode workspace must already exist (it is usually created during provisioning).
Key tasks
Task: Connect the portal to the TaskR platform
This is the one-time setup that lets the portal talk to TaskR (Rekode).
- Open
Settings β Flows β TaskR integration. - If you see an amber banner saying to enable
flows:taskr, stop β the licence module is off and the form will not appear. Have it added to your tenant licence first. - Fill in the fields below and click Save. A green confirmation appears on success.
Fields
| Field | What to enter |
|---|---|
| TaskR platform base URL | The web address of your TaskR/Rekode API (for example a regional Rekode host). Must be a valid URL, up to 2000 characters. |
| API key | The secret key issued for your workspace. Shown as a password field so it stays masked. Up to 2000 characters. |
| Webhook signing secret (optional) | The secret used to verify inbound webhooks from TaskR. Leave blank if you are not using webhooks. |
These values are stored as flows module settings (taskr_platform_base_url, taskr_api_key, taskr_webhook_secret). If you only have read permission the form loads but is locked and the Save button is hidden.
Task: Create a work order (task)
Work orders are created as tasks inside a project module.
- Open the project module the work belongs to (under Projects).
- Create a new task.
- Complete the fields below and save. New tasks default to 0% complete.
Fields
| Field | Meaning |
|---|---|
| Title | Short name of the work order. Required. |
| Description | Fuller detail of what needs doing. Optional. |
| Status | The lifecycle status (see below). Optional β a task can start with no status. |
| Due date | When the work is expected to be finished. Optional. |
| Sort order | Controls where the task sits in the list. Lower numbers appear first. |
| Percent complete | How far along the task is, 0β100. Values outside that range are clamped. |
| Parent task | If set, this task becomes a sub-task of another, letting you break a big job into steps. |
Task: Assign a work order to people
Assignees are the people (or teams) responsible for the work. Taskr uses a flexible "assignable" model β an assignee can be a portal user or another assignable entity β so you are not limited to individual staff accounts.
- Open the task.
- Add one or more assignees, or replace the whole set at once.
- Save.
How it behaves
- Add attaches one assignee; adding the same one twice is harmless (duplicates are ignored).
- Set replaces every existing assignee with the new list in a single action β useful for reassigning a job wholesale.
- Remove detaches a single assignee.
- For assignees that are portal users, their profile picture is shown alongside the task; other assignable types appear by name only.
Task: Move a work order through its lifecycle (statuses)
Statuses are how a work order shows where it is β for example New, In progress, Done. They are defined per tenant, so your set of statuses is whatever your organisation has configured.
- Open the project area's task-status settings to review or create statuses.
- To progress a work order, open the task and change its Status.
Status fields
| Field | Meaning |
|---|---|
| Name | The label shown on tasks, e.g. "In progress". |
| Colour | A hex colour used to make the status visually distinct in lists. |
| Sort order | The order statuses appear in pickers and boards. |
| Is closed | Marks the status as a "finished" state. Use this for statuses like Done or Cancelled so the system knows the work order is complete. |
Statuses are soft-deleted, so removing one keeps historical tasks intact.
Task: Track progress and roll-ups
Each work order carries a percent complete. When a task has sub-tasks, Taskr ignores the parent's own figure and instead shows an effective percent complete that averages the progress of its sub-tasks (recursively, all the way down). So if you split a job into five steps and three are done, the parent reflects the real combined progress automatically β you don't update the parent by hand.
Task: Provision or manage a TaskR (field execution) workspace
Field execution β the jobs your crews actually run β happens on the external TaskR platform. A TaskR workspace is created through IP4CMS provisioning rather than typed in manually. During provisioning you supply:
- Workspace / organisation name β the trading name of the TaskR workspace.
- Administrator email β the primary login for the workspace admin.
- Contact phone β optional onboarding contact.
- Data region β South Africa, West Europe, or West US. This decides which regional TaskR host stores your data; South Africa is the default.
Once provisioned you can also suspend and later reactivate a workspace from the same provisioning action. After onboarding completes you receive a login URL for the new workspace. The workspace ships with the standard TaskR modules β jobs, settings, and dashboards β which is where field staff pick up and complete work.
How the data connects
- Tasks live inside project modules. Every work order belongs to a project module, and project modules belong to projects. This is how a job is scoped to a particular piece of work or a particular customer/location context.
- Statuses, tasks, and assignees are three linked pieces. A task points at one status; a task can have many assignees; statuses and tasks are independent records you manage separately.
- Assignees connect to members and other entities. Assignment goes through a generic "assignable" β a portal user, or another entity type β rather than only individual staff. That is what lets you point a work order at the right responsible party, including people drawn from your members/contacts data.
- The portal and the TaskR platform are joined through Flows. The
flows:taskrintegration stores the platform URL, API key, and webhook secret as Flows settings. Flows is the bridge that carries information between the portal's work-order records and the external TaskR platform where field execution happens. Provisioning (Rekode) is what creates the workspace those flows talk to, and the chosen data region determines which regional host is used. - Sub-tasks form a tree. A parent task and its sub-tasks roll up automatically, so the structure of the work (job β steps) is mirrored in the data and in the progress figures.
Permissions & access
| Permission | Lets you |
|---|---|
taskr:read:all | View the standalone TaskR product area (needs the taskr licence module). |
taskr:manage:all | Manage TaskR product features (needs the taskr licence module). |
flows:taskr:integration:read | View the TaskR platform integration settings. |
flows:taskr:integration:manage | Change and save the TaskR platform integration settings. |
projects:task:read:all | View work orders / tasks. |
projects:task:create:all | Create work orders / tasks. |
projects:task:update:all | Edit work orders / tasks (title, status, due date, progress). |
projects:task:delete:all | Delete work orders / tasks. |
projects:task:assign:all | Assign people to work orders. |
The two integration permissions are gated on the flows:taskr licence module; the two taskr:* permissions are gated on the taskr module. If the licence module is off, the matching permissions have no effect.
Tips & gotchas
- Two modules, two purposes.
taskris the product module;flows:taskris the platform integration module. Enabling one does not enable the other. If the TaskR area looks empty or the integration form refuses to appear, check which module is actually licensed. - The integration form silently locks for read-only users. With
flows:taskr:integration:readbut not:manage, the form still loads and shows current values β but every field is disabled and there is no Save button. That is expected, not a bug. - Secrets are masked, not hidden. The API key and webhook secret render as password fields. Re-entering them overwrites the stored value; leaving them as loaded keeps the existing one.
- Parent progress is automatic. Don't try to keep a parent task's percentage in sync by hand β once it has sub-tasks, its displayed progress is the average of theirs. Edit the sub-tasks.
- "Closed" is a status flag, not a delete. Mark finished states with Is closed rather than deleting the status. Deleting tasks and statuses is a soft delete, so records aren't truly lost, but reusing a status across history is cleaner.
- Region is set at provisioning time. The TaskR workspace's data region (and therefore which regional host holds the data) is chosen when the workspace is provisioned. Pick it deliberately β it determines data residency.
- Percent is clamped. Any progress value is forced into 0β100, so you can't accidentally store 150%.