Skip to content

Task Manager guide ​

Tiếng Việt: Hướng dẫn Quản lý công việc

This handbook covers the four Task Manager sections on the desktop workspace (/admin): Task Streams, Task History, Manual Templates, and Shift Templates.

Schedule & roster (today’s roster and the shift calendar) live on a separate left-rail hub at /schedule. Calendar placement is what drives automatic task assignment for daily and weekly playbooks.

Interactive demo: open task-manager-demo.html in a browser for a step-by-step animated walkthrough of the use case below (no login required).


Table of contents ​

  1. Use case — lunch service at District 7
  2. Open Task Manager
  3. The four sections at a glance
  4. Task Streams
  5. Task History
  6. Manual Templates
  7. Manual Templates and Tasks — how they relate
  8. Shift Templates
  9. Auto-assign from the calendar
  10. How the four sections work together
  11. Troubleshooting

1. Use case — lunch service at District 7 ​

Who: Linh, Restaurant Manager for District 7 (Quận 7 branch).

Goal: Every Server on the Lunch shift (10:00–16:00) should receive the same three-step opening checklist on their phone—without Linh tapping Assign every morning.

Week-one setup (one time) ​

StepWhereWhat Linh does
1Task Manager → Shift templatesCreate “Lunch service 10:00–16:00” for District 7, position Server.
2Task Manager → Manual TemplatesCreate “Lunch floor — open” (Daily, Server, District 7) with three steps: wipe stations (photo by 10:30), read tonight’s script (none by 10:45), confirm POS float (photo by 11:00). Under Schedule-based auto-assign, bind Shift time template = Lunch service.
3Schedule & roster → Calendar (/schedule)Place Minh, Lan, and Hùng on Lunch blocks for the coming week using the Lunch shift template.

What happens each service day ​

  1. When Linh saves a Lunch block (or taps Run auto-assign on the calendar), Nexus matches the daily manual to blocks that use the Lunch shift template.
  2. Each matched employee gets three task rows in Task Streams (one per manual step).
  3. Minh, Lan, and Hùng see those lines on mobile Tasks after sync; push notifications fire if enabled.
  4. Linh monitors progress in Task Streams (overdue banner, status filters).
  5. After completion, rows move into Task History for audit.

One-off exception the same week ​

Health inspection on Tuesday: Linh needs only Lan to run six wipe-and-photo stations—once, not every day.

StepWhereWhat
1Manual TemplatesCreate “Inspection stations” with recurrence One-time, six steps.
2Manual Templates → AssignChoose To individual → Lan → confirm.
3Task StreamsSix rows appear for Lan only; no calendar involvement.

Takeaway: Repeatable shift work → daily/weekly manuals + calendar. Ad-hoc or single-person bursts → one-time manual + Assign, or a single Quick task in Task Streams.


2. Open Task Manager ​

  1. Sign in on a computer with a manager account.

  2. In the left icon rail, click the people / Task Manager icon (first workforce icon). You land on /admin.

  3. Use the text section switcher under the page title:

    Task Streams · Task history · Manual Templates · Shift templates

Your role must allow employees read access (Operations / admin shell). If you only see recruitment or other hubs, ask HQ to adjust Settings → Platform roles.

The header shows Task Manager online (live sync), limited access, or offline depending on connection state.


3. The four sections at a glance ​

SectionQuestion it answersTypical user
Task StreamsWho owes what proof right now?Floor lead during service
Task HistoryWhat did we complete in the past?Manager, HR audit, coaching
Manual TemplatesWhat playbook should run for which role/shift?Supervisor authoring SOPs
Shift templatesWhat are our standard shift time windows?Scheduler, ops lead

Staff on phones never open Task Manager—they use the mobile Tasks tab, which shows the same task rows assigned to them.


4. Task Streams ​

Subtitle: All tasks dispatched today across staff

What it’s for. The live mission-control feed of active checklist lines across the organisation (respecting filters you apply).

What you see ​

  • Each row: assignee, branch, position, playbook source (manual name or ad-hoc), status (Sent, Doing, Done), deadline (HH:mm), evidence requirement (photo / video / none).
  • Overdue styling and an Only overdue toggle.
  • Footer: “N of M tasks” for the current filter scope.
  • Live pill when SSE sync is connected.

Filters ​

FilterPurpose
DurationToday, last 3/7/30 days, or custom range
BranchOne branch or all you can access
PositionJob title (Server, Head Chef, …)
IndividualOne employee
ManualRows spawned from a specific playbook
StatusSent, Doing, Done
Only overdueLate work only

Actions ​

ActionHow
FilterCombine dropdowns; Reset clears them.
New (Quick task)One-off line: assignee, instruction, deadline, evidence—no manual required (Path A).
Update statusSent → Doing → Done when someone completes work without their phone.
View evidenceOpen photo/video lightbox when proof was submitted.
Task drawerTimeline, manual source, assignment day.
DeleteRemove duplicate or mistaken rows (permanent for that row).

Tips ​

  • Task Streams answers: “Who owes what proof right now?”
  • Changes appear on staff Tasks on mobile after sync (usually within seconds).
  • Use Manual Templates → Assign when you need a full playbook, not a single line.

5. Task History ​

Subtitle: Past tasks across branches · filter, audit, export

What it’s for. A read-focused archive of completed and past tasks—audits, coaching, and “did we run the checklist last Tuesday?”

What you see ​

  • Paginated list (50 rows per page, load more).
  • KPI strip on the current page: total, on-time, overdue, evidence coverage.
  • Same filter dimensions as Task Streams, plus search and has evidence filter.

Actions ​

ActionHow
ResearchFilter by branch, date range, manual, person, status.
Evidence reviewOpen proof from historical rows.
Export CSVDownloads loaded rows on the current filter (not the full database).
Cross-checkCompare with Task Streams for the same day if something still shows open.

Tips ​

  • Task History is not where you assign new work—use Task Streams or Manual Templates.
  • Narrow date filters first; wide ranges take longer to load.

6. Manual Templates ​

Subtitle: Reusable playbooks · assign to position or individual

What it’s for. Authoring reusable playbooks: grouped checklist steps you assign manually or tie to roster automation.

What each manual contains ​

FieldDescription
Name / descriptionTitle staff see when tasks land.
BranchOne branch, or brand-wide scope where supported.
PositionJob title this playbook targets.
RepeatOne-time, Daily, or Weekly (+ weekday picker).
StepsInstruction, deadline (HH:mm), evidence (photo/video/none), optional reference files.
Schedule-based auto-assignOnly for Daily / Weekly (see §9).

Recurrence behaviour ​

RepeatCalendar auto-assign?Typical use
One-timeNo — use Assign or Quick taskInspections, special projects
DailyYes — every scheduled matching dayOpening/closing every shift
WeeklyYes — only on selected weekdaysMonday-only training

Copy in the editor: “One-time = assign from Operations when needed.”

Schedule-based auto-assign fields ​

Shown only for Daily / Weekly manuals:

FieldEffect
Shift time templateManual runs only when the calendar block uses this shift template. When set, assign window below is ignored.
Assign window start / endLocal HH:mm on the calendar day; block must overlap this window.
Lead time (minutes)Optional. Hourly cron only: tasks materialize when now ≥ shift start − lead minutes. Leave empty for immediate assign when managers save shifts or tap Run auto-assign.

Badges on the manual card show Auto · template … or Auto 10:00–16:00 when automation is configured.

Actions ​

ActionHow
CreateNew Manual → steps, scope, recurrence, evidence.
EditOpen template, change steps or scope, Save Manual.
DeleteRemoves template only; does not erase task history already created.
AssignAssign Manual modal: To entire position or To individual. Shows “Will create N task(s) in Task Streams”. Confirm Push to Zalo if used.

Important: Assign twice creates two bundles (new random task IDs). Calendar auto-assign uses deterministic IDs and suppresses duplicates.


7. Manual Templates and Tasks — how they relate ​

Think of a Manual Template as the recipe and each Task row as one ingredient line on someone’s plate today.

text
Manual Template (playbook)
  name: "Lunch floor — open"
  recurrence: daily
  shift template: Lunch service 10:00–16:00
  steps:
    1. Wipe stations (photo, 10:30)
    2. Read tonight script (none, 10:45)
    3. Confirm POS float (photo, 11:00)
           │
           │  Path B: Manager clicks Assign
           │  Path C: Calendar auto-assign
           ▼
Task rows (live checklist lines)
  task A → Minh, step 1, status Sent, manualId → playbook
  task B → Minh, step 2, …
  task C → Minh, step 3, …
  task D → Lan, step 1, …
  … (one row per step × assignee)
           │
           ▼ staff completes on mobile
Task History (archive, searchable)
ConceptStored asKey link
Playbookmanuals + manual_stepsTemplate ID, steps, recurrence, shift binding
Live tasktasksmanualId, manualName, assignmentDayKey (yyyy-MM-dd for auto-assign)
Ad-hoc tasktasksmanualId empty — created from New in Task Streams

Three paths to create tasks ​

PathSourceCreates
A — Just this onceTask Streams → NewOne task row, no playbook
B — Push a playbookManual Templates → AssignAll steps × chosen people immediately
C — Let the roster do itCalendar + daily/weekly manualSteps × each employee on a matching shift block

Paths B and C both materialize the same step list; they differ in when and who triggers it.


8. Shift Templates ​

Subtitle: Reusable shift windows for the calendar and manual auto-assign.

What it’s for. Named time windows that mean the same thing everywhere—for example “Lunch service 10:00–16:00” for District 7 Servers.

What each template has ​

FieldExample
Template nameLunch service
BranchDistrict 7
PositionServer (or Any position)
Start / End10:00 – 16:00 (schedule timezone)

Where shift templates are used ​

  1. Schedule & roster → Calendar — when placing a block, pick a template to pre-fill times and store shiftTemplateId on the block.
  2. Manual Templates → Schedule-based auto-assign — bind a daily/weekly manual to this shift flavour so only Lunch blocks receive that checklist.

Mental model ​

text
Shift template  =  WHAT KIND of shift (label + default hours)
Calendar block  =  WHO works WHEN (employee + actual UTC interval)
Manual template =  WHAT CHECKLIST runs for that kind of shift

Shift templates describe when a shift flavour runs; the calendar places who works those hours.

Actions ​

ActionHow
CreateAdd template — name, branch, position, start/end.
FilterBy branch in the panel header.
DeleteTrash icon — confirm no active calendar blocks or manual links depend on it.

Tips ​

  • Times follow Asia/Ho_Chi_Minh (Hanoi, UTC+7) unless IT overrides SCHEDULE_TIMEZONE / VITE_SCHEDULE_TIMEZONE.
  • After changing templates, review linked manuals and upcoming calendar blocks.

9. Auto-assign from the calendar ​

Automatic assignment is Path C: daily and weekly manuals become task rows when employees appear on matching calendar blocks.

Matching rules ​

For each daily/weekly manual and each scheduled shift block on a calendar day:

mermaid
flowchart TD
  A[Scheduled shift block] --> B{Manual recurrence daily/weekly?}
  B -->|No once| Z[Skip auto-assign]
  B -->|Yes| C{Branch + position match manual?}
  C -->|No| Z
  C -->|Yes| D{Weekly: weekday in weeklyDays?}
  D -->|No| Z
  D -->|Yes| E{Manual has shift template?}
  E -->|Yes| F{Block uses same shift template?}
  F -->|No| Z
  F -->|Yes| G[Materialize tasks]
  E -->|No| H{Assign window set?}
  H -->|Yes| I{Block overlaps local window?}
  I -->|No| Z
  I -->|Yes| G
  H -->|No| G
PriorityManual settingBlock must…
1Shift time template selectedUse the same shiftTemplateId
2Assign window start + end (HH:mm)Overlap that local window on the day
3NeitherMatch any block for manual’s branch + position

Additional filters:

  • Manual branch matches block branch (or manual is brand-wide).
  • Manual position matches employee’s position (or manual targets all positions).
  • Weekly manuals: day’s weekday must be in weeklyDays (defaults Mon–Fri if unset).

When auto-assign runs ​

TriggerLead time respected?
Create shift block (POST /schedule)No — immediate
Update shift block (PATCH /schedule/{id})No
Fill week from defaultsNo
Calendar Run auto-assign buttonOnly if respectLeadTime: true
Hourly cron (production, :15 past each hour)Yes — honours Lead time (minutes)

Idempotency ​

  • Auto-assign uses deterministic task IDs (t-auto-{manual}-{employee}-{day}-s{step}) and skips duplicates—safe to run twice.
  • Manual Assign uses random IDs—clicking Assign twice creates duplicate bundles.

Manager checklist ​

  1. Manual is Daily or Weekly (not One-time).
  2. Shift template or assign window aligns with how you draw blocks on the calendar.
  3. Employee is on the calendar for that day with a matching block.
  4. For cron-delayed drop: Lead time is set and the hourly job has run close enough to shift start.
  5. If tasks did not appear after editing the calendar, tap Run auto-assign on the schedule page.

For calendar editing step-by-step, see Putting someone on the calendar in the manager guide.


10. How the four sections work together ​

text
Shift Templates  ──►  Calendar blocks (/schedule)  ──►  Auto-assign (Path C)
        │                                                    │
        └──────────────►  Manual Templates ◄─────────────────┘
                                    │
                                    ▼ Assign (Path B) / auto-assign
                              Task Streams (live)
                                    │
                                    ▼ staff mobile Tasks tab
                              Task History (archive)
You want to…Start here
Define standard shift hoursShift templates
Write a repeatable checklistManual Templates
See live progress todayTask Streams
Audit last week’s completionsTask History
Put people on shiftsSchedule & roster (/schedule)

11. Troubleshooting ​

SymptomWhat to check
Auto-assign never firedManual must be Daily/Weekly; shift template or window must match calendar block.
Wrong people got tasksPosition on manual vs employee card; shift template on block vs manual binding.
Duplicate tasksDouble Assign click (Path B). Auto-assign should not duplicate.
Tasks empty in StreamsDate filter (Today vs custom); branch/position filters too narrow.
Staff phone emptySame calendar day (assignmentDayKey); roster branch matches employee.
Cron delayLead time set—tasks appear only within N minutes of shift start on hourly cron.

For broader manager topics (yield, salinity, recruitment, settings), see the manager & staff guide.

For staff mobile task completion, see the floor employee guide.

Updated automatically when guides are merged to git.