What is a Task?
Origin taxonomy — five buckets
A task exists because something needs to happen. There are five buckets of "why" — every task we ever create maps to one or more of them. Origin answers why does this task exist? Creation surface (defined in §2, detailed in §7.1) answers where was it created or detected? A single origin can be reached from multiple surfaces.
Client-driven
The client tells us — explicitly or implicitly — that they need or want something. Client-driven signals split into two sub-buckets because confidence and routing implications differ.
3.1a Explicit — client stated something
The client directly said what they need or want, in a message, voice call, or stated in-app request.
Default routing: Assist — AI drafts response, human approves.
3.1b Behavioural / implicit — inferred from context
The client didn't directly ask for anything, but their behaviour (in chat or in the app) signals preference, intent, or need.
Key rule — behavioural signals don't become tasks by default.
They feed the taste graph / client profile as background context. A Suggestion fires only when the signal meets a threshold + trip-context condition: enough signals in a tight window, plus an active or imminent trip the signal informs.
| Behaviour | Outcome |
|---|---|
| Single tap on a Maldives property | Client profile update only, no task |
| Liked 4 properties in same region during an active planning window | Suggestion fires — "client seems decided on region X; explore?" |
| Searched "honeymoon Bali" 3 times in a week, no active trip | Client profile update + soft trip seed; no immediate task |
| Repeated dynamic-trip-card opens on an upcoming trip's hotel detail | Suggestion to TA — "client engaging with this booking; offer to walk them through?" |
Default routing: Assist (preference capture) or Suggestion-only (behavioural threshold) — depending on confidence.
World-driven (external)
Something outside our system happens that affects an active or upcoming trip.
Trip lifecycle
The trip itself, as it moves through our pipeline or its calendar, generates work.
Booking stage > 5 days with no component changes → flag to ops manager, "what's blocking?"
Relationship
Pure relationship-layer moments, sourced from the client profile or accumulated context, surfaced by date or pattern.
Internal operations
Our own workflow signals — surfaced by self-monitoring rather than external events.