PLATFORM · COMMUNICATIONS

The thread about the late lot lives in someone's Slack DMs. The order record knows nothing.

Trade ops teams generate hundreds of conversations a week — about orders, production lots, shipments, invoices, claims, samples, internal coordination. The thread with the factory about the late lot lives in someone's Slack DMs. The discussion about the amendment lives in an email thread on a procurement manager's laptop. The client's question about lead time lives in WhatsApp messages no one else can search. The record of the order knows nothing. Six months later, an audit asks "why did we accept the split shipment?" and nobody can find the conversation that explained the decision.

Messages in TradeOS anchors every thread to the entity it's about, surfaces who you're talking to (client / supplier / logistics / your team), lets any line become a task in one click, and keeps internal team coordination inside the same thread without exposing it to the counterparty. The conversation lives on the record. The record knows what was said.

Book a demoSee pricing

Entity types

Order, shipment, lot, invoice, claim, sample, task, direct message

Counterparty kinds

Client, supplier, logistics, internal team

Edit window

15 min · then immutable

Tasks from chat

One click from any selected line

The operator Messages page — entity-anchored threads on the left, active conversation with task pills and internal notes on the right.

WHEN CONVERSATIONS LIVE OFF-RECORD

Trade conversations are not channels. They're records.

A trade conversation about a production lot, an order amendment, or a quality dispute is a business record — not a Slack channel that scrolls away. Most platforms treat it as the latter; the cost shows up six months later when no one can find the conversation that explained the decision.

01 · INBOX SPRAWL

Conversations live in inboxes, not on records.

The thread with the factory about the late lot lives in someone's Slack DMs. The discussion about the amendment lives in an email thread on a procurement manager's laptop. The client's question about lead time lives in WhatsApp messages no one else can search. The record of the order knows nothing.

📧 inbox💬 DM📱 phone↛ order record

02 · HANDOFF LOSS

Every handoff means rebuilding the context.

The ops lead is on PTO. A colleague picks up the order, opens it in the platform, and sees a clean status row — but nothing about the three-message back-and-forth on the QC concern, the agreed split-shipment plan, or the supplier's promised remedy. The conversation existed; the platform doesn't have it.

person Ahandoffperson B↛ zero context

03 · ACTION DRIFT

What was decided becomes what was discussed.

"Send the SGS report by Wednesday." Said in a message. Agreed in a message. Forgotten in a message. Decisions made inside conversations need to become tracked tasks on the record — not stay buried in the thread until someone finds them too late.

decisionchat history⚠ never executed

WHAT IT DOES

What the Messages module does

Open any order, see the conversation about it — without leaving the platform.

A thread in TradeOS is never abstract — it carries a threadType and entityId pointing at the order, shipment, production lot, invoice, claim, sample, or task it's about. Eight thread types in total. Open an order; the thread is there. Open Messages; the thread shows the entity it belongs to in a badge above the preview. Open the entity from the thread header with one click. No more "which channel was that in" — the conversation lives on the record it's about.

THREAD TYPES · 8 ENTITY-ANCHORED

📦
OrderRD-2026-018 → consignee, amendments, LC questions
42
🚢
ShipmentSH-2026-088 → vessel updates, BOL, customs
28
🏭
Production lotPL-2026-067 → AQL inspections, QC concerns
31
🧾
InvoiceINV-2026-077 → payment, dispute, balance
19
ClaimCLM-2026-014 → quality, damage, short-ship
6
🧪
SampleSMP-2026-142 → dispatch, evaluation, feedback
11
TaskTSK-2026-089 → coordination on a tracked task
3
💬
Direct (internal)no entity → team-only or 1:1 internal chats
2
142 active threads · all anchored to a record or to your team

Filter your inbox by who you're actually talking to — client, supplier, logistics, your team.

Every counterparty in TradeOS is tagged with a relationship kind: client (the buyer), supplier (the manufacturer), logistics (the forwarder, carrier, customs broker), or internal (your own team). The Messages inbox carries that tag onto every thread, and the filter strip lets the operator narrow to one relationship at a time. Sales follow-ups go under Client. Production check-ins go under Supplier. BOL discussions go under Logistics. Team coordination goes under Internal. The signal-to-noise ratio in the inbox shifts from "every message" to "every message from the side of the trade you're working on right now."

RELATIONSHIP FILTER · 4 KINDS

client5 threads · 1 unread
Brevin Health EU · SH-2026-088
Norwell Components UK · RD-2026-091
Iberica Healthcare · INV-2026-064
supplier4 threads · 2 unread
Crescent Manufacturing · PL-2026-067
Sapphire Industries · SMP-2026-142
Crescent Manufacturing · QC-2026-0142
logistics2 threads · 0 unread
COSCO Booking Desk · SH-2026-088
DHL Forwarder · SH-2026-091
internal1 thread · 0 unread
James Chen · ops handoff
filter strip: All · Client · Supplier · Logistics · Internal — one click narrows the inbox

Decisions made in chat become tracked tasks on the record — not buried in the thread until someone finds them too late.

Decisions made in conversations don't have to stay there. Highlight any text inside a message — a deadline, an action item, an agreed remedy — and a floating "Create task" button appears above the selection. Click it; the task modal opens with the selected text prefilled as title and description, the source message attached, and the thread's entity context inherited. The composer also carries a "Create task" button for proactive task creation when no specific message is the source. Tasks spawned from a message appear as a pill directly under it in the thread, so the conversation always shows which lines became commitments. Composer-spawned tasks land in a footer summary at the bottom of the timeline.

TASKS FROM CHAT · 2 ENTRY POINTS

1

Select text in any message

Highlight the action item, deadline, or agreed remedy.

Confirmed — we'll have the SGS report by Wednesday EOD. Apr 26 cut-off is tight.

Create task from selection
2

Modal prefilled · source message attached

Title and description carry the selection; assignee, due date, priority set on creation.

TitleFollow up on SGS report by Wed EOD
Descriptionwe'll have the SGS report by Wednesday EOD
Source threadPL-2026-067 · Crescent Manufacturing
AssigneeJames Chen
DueApr 16 · Wednesday EOD
3

Pill appears under the source message

The thread keeps a visible link from the line that became a task to the task itself.

→ Task · Follow up on SGS report by Wed EOD · assigned to James Chen · due Apr 16

Tell your team what you really think about the supplier — without the supplier ever seeing it.

The hardest part of customer-facing communication isn't the customer-facing part — it's the team coordination that happens around the customer-facing part. Most platforms force operators to spin up a separate Slack thread to coordinate on a reply, then forget which conversation belonged to which. TradeOS keeps both inside the same thread: flip the "Internal note" toggle in the composer, post your team-side message, and it saves with audience scoped to operator users only — invisible to the client, supplier, or logistics partner on the other side of the thread. Distinct styling makes internal notes visually obvious so no one posts to the wrong audience by accident. Every internal note is part of the same chronological timeline as the external messages; the team coordination context lives next to the customer context.

INTERNAL NOTE · SAME THREAD · OPERATOR-ONLY AUDIENCE

CM
Crescent Manufacturing9:48visible to all
Confirmed — we'll have the SGS report by Wednesday EOD.
JC
James Chen · ops manager10:03internal · team only
Heads up team — Crescent has slipped twice on test reports this quarter. If we don't have the SGS by Wednesday EOD let's escalate to Wei directly.
CA
Carmen Aldridge · you10:08internal · team only
Agreed. I'll send a Tuesday-evening nudge if there's no SGS update by then. Tracking on TSK-2026-091.
CA
Carmen Aldridge · you10:12visible to all
Thanks for confirming. We'll plan around the Wednesday EOD SGS report — will share customs prep status once we have it.
Crescent only sees the external messages (the SGS confirmation and Carmen's reply). The two internal notes are visible to the EDMA team only.

HOW IT CONNECTS

Every other section reads from this thread — every order page, every shipment, every task.

Messages isn't a separate inbox living next to the platform — it's a layer that lives on every entity that already exists, with bidirectional connections to Tasks and Documents.

MESSAGES142 threadsOrdersorder threadsProductionlot threadsShipmentsshipment threadsTaskscreated from chatDocumentsmessage attachmentsClaims · Samplesclaim · sample threadsInvoices · Financeinvoice threads
Messages at the center · 6 connected sections · every thread anchored to an entity (or marked direct/internal).
SectionWhat flowsWhat you see
OrdersOne thread per order · subject + consignee + amendmentsOrder detail surfaces the thread inline
ProductionOne thread per lot · QC questions, inspection coordinationLot detail shows the thread next to QC results
ShipmentsOne thread per shipment · forwarder, carrier, BOL discussionShipment detail shows the thread next to tracking
FinanceOne thread per invoice · payment, balance, disputeInvoice detail shows the conversation
TasksBidirectional: tasks created from messages, messages reference source tasksTask pills appear under spawning messages
DocumentsMessage attachments stored as documents (linked by documentId)Attachments land in the documents library

ON THE ROADMAP

Where Messages is heading next.

Today, Messages is an in-app messaging layer — entity-anchored, relationship-aware, with tasks-from-chat and internal notes. The next milestones extend it outward to the channels trade actually runs on, plus the in-thread affordances (attach, mention) that are currently scaffolded but not yet wired.

v1.5 · NEXT

Channel routing

Inbound messages from WhatsApp Business, Telegram, Email (Gmail · Outlook · IMAP), and SMS via Twilio land in the same threads, anchored to the same entities. Outbound replies route back through the same channel. Counterparties keep using their existing apps; operators keep using TradeOS Messages.

messages.channel column + inbound webhooks · provider registry already scaffolded at server/src/modules/integrations/providers/

v1.5 · NEXT

Attach & Mention in composer

The composer's Attach button (link a file from the documents library or upload a new one) and @Mention picker (tag teammates or counterparty contacts) are currently scaffolded with disabled "coming soon" tooltips. Wiring them up is a near-term unlock — the data model already supports it (message attachments and mentions fields exist on the DTO).

UI stubs already in place · backend fields live

v2 · LATER

Inline translation

Auto-translation for cross-language threads (Mandarin ↔ English the most common case for our footprint), with a trade-terminology dictionary that preserves Incoterms (CIF / FOB), LC terms, QC standards (AQL / EN 455), and product references rather than translating them word-for-word. Operators see source + translated; counterparties see their native language.

deferred to v2 · LLM-backed with trade-specific overrides

v2 · LATER

Voice notes & meeting recap

Voice memos in WhatsApp / WeChat threads transcribed inline. Calendar meetings (Zoom, Meet, Teams) summarized into thread posts on the relevant order or claim. Both depend on channel routing landing first; both are paced behind operator demand once the in-app foundation is settled.

depends on v1.5 channel routing

We list the integration backlog explicitly because the alternative — claiming WhatsApp / Telegram / WeChat / SMS as built when they're not — wastes a buyer's evaluation cycle and our reputation. Today's Messages is in-app; tomorrow's is the same threads, more channels.

VS. ALTERNATIVES

Where Messages fits versus the tools that already organize conversations.

CapabilityTradeOSSlackMS TeamsFrontHubSpot
Threads anchored to order / shipment / lot / invoice / claim / sample / taskdeal only
Relationship-aware inbox (client · supplier · logistics · internal filter)tagscontact type
Create task from selected text in a messagevia appvia appvia appworkflows
Internal notes inside a counterparty thread (audience-scoped)deal notes
15-min edit window then immutable audit trailunbounded editunbounded editemail immutableactivity log
Connected to order / lot / shipment data inside the same platformCRM only
Channel routing (WhatsApp / Telegram / Email / SMS)v1.5 roadmapemail · WAemailemail · WA · SMSemail · WA

This isn't a knock on Slack, Teams, Front, or HubSpot. Slack and Microsoft Teams are excellent at internal team chat organized by channel. Front is excellent at collaborative email with shared inboxes and team comments. HubSpot is excellent at sales conversations attached to a CRM deal. Each was built for a specific shape of conversation. TradeOS Messages is built for the conversation a trade operator actually has — anchored to an order, a lot, a shipment, an invoice, with the counterparty's relationship (client / supplier / logistics) tagged on the thread, and tasks spawning from any line. Channel routing (WhatsApp / Telegram / Email / SMS) is the next milestone, not the current claim.

Send us one order with a real thread happening on it. We'll show you what that conversation looks like anchored to the entity, with tasks spawning from selected lines.

Send the email thread, the WhatsApp chat, or the Slack DMs you'd normally have about one in-flight order. We'll show you how those messages land on the order record, how internal notes stay invisible to the counterparty, and how decisions in chat become tracked tasks. No demo data. Your conversation.

Book a demoTalk to sales

See pricing →

FAQ

Frequently asked questions

The five questions operators ask first when they evaluate Messages.

Slack and Teams are channel-based — conversations live in #channels named after projects or teams. TradeOS Messages are entity-based — every conversation lives on the order, shipment, production lot, invoice, claim, sample, or task it's about. Open an order, see its thread. Open Messages, see every thread grouped by what it's about and who you're talking to (client / supplier / logistics / internal). You don't need to remember which channel a conversation lives in — it lives on the record.

Messages for trade operators | TradeOS