PLATFORM · TASKS
Asana doesn't know there's a container stuck in customs.
The dashboard says "3 issues need attention." The operator reads them, opens Asana to create three tasks, copies the order numbers in by hand, loses the link back to the lot. Closes the Asana task, has to come back to TradeOS to update the entity. Asks the supplier to do something — supplier says "okay" — two days later nobody knows what happened. Multiply by every alert, every exception, every handoff: work generated by your platform leaves the platform to die.
Tasks in TradeOS is the nervous system of the platform. Every event — an order status change, a production QC complete, a shipment delay, an invoice falling overdue, a message flagged with an action item — ripples into the Tasks engine. From there, work routes to the right person in the right portal: an operator on the main app, a client on the client portal, a supplier on the supplier portal, or Atlas itself. One task model. Six statuses. Nine categories. Six entity types. Three portals. One nervous system.
Statuses
6 · including pending approval and waiting external
Categories
9 · orders, shipments, production, finance, and 5 more
Entity types
6 polymorphic types · same model as orders
Views
6 · overview, board, list, my day, gantt, calendar
The real operator Tasks page in Board view — 4 status columns, drag-and-drop transitions, real categories and entity links. Same component renders in client and supplier portals with a swapped API prefix.
WHEN OPS WORK LIVES OUTSIDE THE OPS PLATFORM
Work generated by the platform shouldn't leave the platform to die.
Operations work fails for one reason: the work isn't connected to the system that knows the lot, the order, the contract, the counterparty. Three failure modes any ops team has lived all three.
01 · DOUBLE ENTRY
Tasks in one tool, work in another. Two systems, no connection.
Operator sees an exception in TradeOS, creates a task in Asana, loses the link to the lot. Closes the task in Asana, has to come back to TradeOS to update the entity. Double entry on every exception, and a slow erosion of which system is the source of truth.
02 · ORPHANED EVENTS
Events that don't become tasks drift forever.
The dashboard says "3 issues need attention." The operator reads them, remembers them, manages them in their head or a notebook. Three weeks later, one of them slipped — and nobody owned it because nobody ever made it a task.
03 · CROSS-PARTY HANDOFF LOSS
Work that crosses the operator / client / supplier line disappears.
The operator asks the supplier to do something. The supplier reads it, says "okay", forgets it. The operator follows up two days later — what happened? The conversation has the question; the operator has the worry; nothing has the commitment.
THE NERVOUS SYSTEM
Every event in TradeOS emits a task. Every task routes to the human or AI that should handle it.
The Tasks engine is the cross-portal orchestration protocol of TradeOS. Eight kinds of events from every section of the platform fan in. Tasks fan out to four destinations — the three portals plus Atlas itself. There's no separate workflow engine; this is the workflow engine.
01
One data model, three portals
The same TasksPage component renders in operator, client, and supplier portals — only the API prefix changes (/api/tasks · /api/portal/client/tasks · /api/portal/supplier/tasks). Same 6 statuses, same 4 priorities, same activity stream. A task created on the operator side is the same row the supplier sees in their portal.
02
Events emit tasks; tasks don't escape events
When an entity changes state (order goes to in_production, inspection results post, an invoice ages past its due date), the platform decides whether the event needs human attention. If yes, a task is created with the entity link inherited, category preset, and assignee suggested from the responsible-party history.
03
No separate workflow engine
Approvals are tasks (pending_approval status). Cross-team handoffs are tasks (reassigning the assignee). Waiting on a counterparty is a status (waiting_external). We didn't build a workflow engine on top of Tasks — Tasks IS the workflow engine.
SIX VIEWS · ONE TASK GRAPH
Six ways to look at the same task graph.
Same data, six layouts. Switch with one tab. The operator picks the view that matches the work — Board for status flow, My Day for personal focus, Gantt for delivery timelines, Calendar for due-date density.
01 · OVERVIEW
Status pie · category bar · overdue list · weekly throughput.
The control room: tasks by status (pie), tasks by category (bar), overdue action center, this-week upcoming, recent completed, weekly throughput chart, team workload distribution.
02 · BOARD
Four-column Kanban · drag to transition status.
TO DO → IN PROGRESS → APPROVAL → DONE. Drag a card across columns to update its status; transitions go through the same service that handles status changes from anywhere else.
03 · LIST
Tabular · sort · filter · bulk · inline checklist.
The dense view for working through a backlog. Sort by due date or priority, filter by category, bulk-update status or assignee, inline-edit checklist progress without opening the task panel.
04 · MY DAY
Personal focus · Overdue · Due Today · No Due Date.
The operator's morning view. Three sections — overdue (red), due today (amber), no due date (grey). Priority flag per task. Goal of the screen: zero by end of day.
05 · GANTT
Timeline · bars span start to due · grouped by entity.
When the operator needs to see how tasks sequence against delivery dates. Bars span task start to due; status color-coded. Hover for entity context; click to open the task panel.
06 · CALENDAR
Month grid · density by due date.
Where the work falls across the month. Dots colored by priority. Useful for spotting clustering — too many "Friday" tasks, or a quiet week that could absorb a stretch assignment.
ENTITY ANCHORING
Open any task and you're one click from the order, the lot, the shipment, or the invoice it's about.
Six polymorphic entity types — orders, shipments, production lots, clients, manufacturers, invoices. Every task carries a typed reference. Open the entity, see its task panel inline. Open the task, jump back to the entity with one click — plus the connected Messages thread alongside it.
Review AQL inspection failure · decide rework or reject
APPROVALS
Approvals are tasks. Not a separate engine.
When something needs sign-off — a contract redline, a sample dispatch, a budget overrun, a document version — the work moves to pending_approval (one of six statuses), surfaces in the approver's task list with everything else, and resolves via a normal status transition. Approval, rejection, and "needs changes" are status changes. The audit trail lives in the task's activity stream. No second inbox to check.
01
Submit for approval
Operator or counterparty completes work in in_progress and clicks "Submit for approval" — task moves to pending_approval.
02
Lands in approver's inbox
The approver sees the task in their list filtered to APPROVAL. They open it, review the deliverable + activity stream + entity context.
03
Approve · reject · request changes
Status transitions to completed (approve), cancelled (reject), or back to in_progress (changes). Every decision is logged with timestamp + reason in the activity stream.
Real approval flows that ride on the Tasks engine, today:
- Supplier MSA approval — supplier submits contract redline; operator approves or requests changes; status moves to completed on sign-off.
- Sample dispatch approval — client requests sample; operator approves dispatch; supplier executes; sample moves to evaluated.
- Split-shipment approval — operator proposes split; client approves the plan; shipment is created with the approved allocation.
- Document version approval — counterparty uploads a new version of a certificate or compliance doc; operator reviews and approves the version as the active one.
- Budget overrun approval — operator submits an order exceeding the client's stated ceiling; client approves the overrun before the order locks.
ATLAS · ACTION SURFACE
When Atlas detects a signal, it creates a task — with context attached. AI accountable for the work it surfaces.
Most AI tools post chat messages. Chat messages scroll away. TradeOS Atlas creates tasks when it detects something needing human judgment, with the context attached and an assignee suggested. That makes Atlas's signal measurable: did the task close on time? Did it close at all? An unanswered Atlas-created task is a signal as strong as the task itself.
DETECT
Atlas observes a signal
From order data, production data, finance data, messages, document arrivals, counterparty behavior. Examples: a counterparty going quiet on an active thread, a document expiring in 14 days, an invoice aging past its category-typical resolution time, a margin slipping below threshold on a live order.
CREATE
Atlas creates a task
The task carries the signal as its title and description, the relevant entity as its anchor, a suggested assignee pulled from the responsible-party history, and the source data attached as supporting context. The category, priority, and entity link are inherited — no operator typing required.
RESOLVE
Operator acts; Atlas observes
The operator works the task like any other — moves through statuses, posts comments, attaches documents, transitions to completed. Atlas observes the close and learns: did the signal lead to action? How long did it take? Was the resolution direction reasonable? That feedback closes the loop.
Example · Atlas-created task in an operator's list:
Crescent Manufacturing has not posted to PL-2026-071 thread in 38h — reach out
Attached context:
- Last message: Apr 12 · 14:18 KL · supplier · "First lot 80% complete, QC inspection scheduled Tuesday morning"
- Thread baseline: counterparty median response 4h 22m · current gap 38h is 9× baseline
- Active scheduled inspection: AQL 2.5 · Tuesday April 15
- Last 3 similar gaps with Crescent: 2 ended in test-report delays · 1 ended in lot rework
Atlas writes the imperative title, attaches what it observed, suggests an assignee. The operator acts; the close is observed; the loop closes.
VS. ALTERNATIVES
Where Tasks fits versus the general-purpose task tools.
| Capability | TradeOS | Linear | Asana | ClickUp | Monday |
|---|---|---|---|---|---|
| Entity-linked tasks (orders / shipments / lots / invoices / clients / suppliers) | ✓ polymorphic · 6 types | — | — | — | — |
| Same data model exposed in client + supplier portals | ✓ 3 portals · same model | — | guest seats | guest seats | guest seats |
| Approvals on the same engine (not a separate feature) | ✓ pending_approval status | — | approval add-on | workflows | approval app |
| Auto-created from platform events (status change · QC complete · invoice overdue) | ✓ native | — | integrations | automations | automations |
| Tasks from chat (selection toolbar in Messages → task) | ✓ | — | — | — | — |
| AI agent creates tasks with attached context (not chat messages) | ✓ Atlas | AI summaries | AI assist | AI assist | AI assist |
| Six views (overview · board · list · my day · gantt · calendar) | ✓ | board · list | ✓ | ✓ | ✓ |
| 17 custom-field types (text / number / date / dropdown / files / people / ...) | ✓ | labels + estimate | ✓ | ✓ | ✓ |
This isn't a knock on Linear, Asana, ClickUp, or Monday. Linear is excellent at velocity in product engineering. Asana is excellent at project management with workflows and dependencies. ClickUp and Monday are excellent generalist task tools for teams that need workload visibility. Each was built for general work. TradeOS Tasks is built for the task a trade operator actually owns — anchored to a production lot or an invoice or a shipment, shared across operator + client + supplier portals with the same data model, and auto-created when the platform itself detects something needing attention.
FAQ
Frequently asked questions
The five questions operations leads ask first when they evaluate Tasks against Asana or Linear.
Asana, Linear, and ClickUp are excellent general-purpose task tools — and that's the limit. None of them know what a production lot is, what a shipment manifest looks like, what counts as a QC failure on AQL 2.5, or which counterparty owns the next step. Their tasks live in their own database; the order lives in yours; the conversation lives in a third tool. TradeOS Tasks share the same data model as the orders, shipments, production lots, invoices, claims, and samples they're about — because they're stored in the same database. Open a task; the entity is one click away. Open the entity; its tasks are right there. No external integration, no double entry, no broken links.
Bring us one week of your operations exceptions. We'll show you what they look like as tasks routed to the right portal.
Send us your last week of alerts, exception notes, supplier follow-ups, approval requests — whatever lives outside your software today. We'll show you how those rows enter TradeOS as tasks, anchored to the order or lot they're about, routed to operator / client / supplier / Atlas as appropriate. No demo data. Your exceptions.