Tasks that know what they are about

Every task carries the ids of the contact, project, estimate and opportunity it came from, plus a snapshot label of the job or customer.

What it is

The composer sends contactId, projectId, estimateLinkId and opportunityId along with a human-readable contextLabel and a canonical module id. The hub uses the label for grouping and the ids to show what kind of thing a task points at.

Also called: task context · task linked to a job · which customer is this task for

See it
Tasks that know what they are about
New lead 4
Marlin Hoover
$30k
Delia Yoder
$40k
Sutter Kline
$27k
Contacted 2
Sutter Kline
$58k
Ronan Petsch
$43k
Ivy Brubaker
$64k
Estimate 3
Ivy Brubaker
$56k
Gideon Alt
$69k
Sold 2
Marlin Hoover
$54k
Delia Yoder
$52k
A task row's footer chips: 'project', the client label, the assignee. TaskRow in TaskHub.tsx. Sample data — no customer information appears here.
How it works
  1. 1captureHere('task') supplies the canonical module id from the shared context envelope (FEAT-ZLTWNB) so grouping stops depending on a literal being hand-typed correctly at each call site.
  2. 2An explicit category on the context still wins server-side, so a junction that deliberately files elsewhere keeps doing so.
  3. 3With neither, the API falls back to id-guessing: project → Project Mgmt, estimate → Estimates, opportunity → Sales Pipeline, contact → Contacts.
Why we built it

The legacy id-guessing 'mislabels anything raised from a screen carrying a contact id', which is why the envelope's module id was introduced above it. The snapshot label rather than a join is migration 166's rule: reference identity in the id columns, readable presentation in the label.

The problem
  • Uncategorised tasks by omission
  • Mislabelled tasks raised from screens that happen to carry a contact id
Sound familiar?
What you get
Tasks group under the right area without anyone choosing
The label survives archiving

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →