GitHub

Support that already knows what they bought.

Conversations are first-class records with a status, an assignee, and a link to the product or campaign they came from. A message can carry a product card, an order, a coupon or a suggestion, so answering a question does not mean pasting a link from another tab.

Wrong size — can I swap it?
#4192 · Oat, M
Reserved a large from Bristol.

messaging

Run

Support that already knows what they bought.

Every conversation opens with the customer's orders and history attached.

Inbox

5 open
MO

Maya Okonkwo

#1042 · 12m

Where is my order?

PS

Priya Shah

#1040 · 1h

Can I change the size?

DF

Dana Feld

Resolved · 2h

Thanks — it arrived!

Sorted by last activity — written in the same transaction.

Maya Okonkwo

Assigned · SamOpen

Hi — has my order shipped yet?

order · #1042

Paid

Sunset Linen Shirt +2 · $182.40

Not shipped · express

Internal note · staff only

Merino restock lands Thursday — offer the swap.

Assistant · draft reply

It ships today. Here's 10% off your next order for the wait.

coupon · SORRY10

Parts: product · order · coupon · suggestion · quote

Send
AssignmentOpen · resolved · archivedInternal notesCustomer dashboard
How conversations work

Inside conversations.

01

Assignment and status

Conversations carry a status and an assignee, and last activity is written with each message so the inbox always sorts correctly.

02

Structured message parts

A message can carry a product, an order, a coupon, a suggestion, a quoted reply, or an image alongside the text.

03

Staff notes stay internal

Internal notes are a separate message type the customer-facing view never loads, so an aside can't leak into the thread.

04

One source, two views

The admin inbox and the customer's view read the same messages, so what your team sees and what the buyer sees always match.

Modules that sit next to this one

MIT licensed · self-hosted

Conversations ships with Litestore. So does everything else.

Get the source