A product I'm building · Conversation Ops

messup.dev
the work is in the chat

In most Vietnamese companies the real work isn't in a management tool. It's in Zalo groups, page messages and email. messup.dev pulls those channels into one inbox, then lets AI turn them into a task list with named owners. Nobody types anything in.

messup — tasks from a Zalo group
# Group "Sala project" · 214 messages in 6 hours
→ Task: Send level 3 drawings to the site consultant
→ Owner: Tuan · Due: 12 Sep · Source: 3 messages
⚠ "Approve materials batch 2" silent for 4 days. Manager notified.
20+
Channels
6h
Scan interval
0
Rows typed by hand
1
Inbox
~/why-it-exists

Task tools fail for a very human reason

Not because they lack features. Because nobody wants to type the work in. It was already agreed in Zalo. Typing it again is doing it twice.

01

Work is born in conversation

"Send me the contract before Thursday" is a task with a deadline. It never becomes one. Three days later nobody remembers who agreed to it.

02

Messages are scattered everywhere

Personal Zalo, Zalo OA, the page, WhatsApp, Telegram, email. A salesperson opens six apps every morning and still misses a customer.

03

The boss can't see what's stuck

To find out, you reread group chats or ask people. The answer is always "working on it". You learn the truth when it's late.

◆
How messup.dev handles it: don't ask anyone to change habits. Keep messaging as normal. The system follows the conversation, extracts the work, chases it, and only asks a person when a decision is needed.
~/connections

One inbox for everywhere customers message you

Personal channels sign in with a QR code. Business channels connect through official APIs. More than twenty channels are running.

A

Personal channels

Zalo, Telegram, WhatsApp. Scan a QR once. When a provider changes version, the system reconnects instead of asking you to scan again.

B

Business channels

Zalo OA, Facebook Page, Instagram, WhatsApp Cloud, LINE, Telegram Bot, SMS. Running 24/7, with health checks so a dead connection doesn't go unnoticed.

C

Internal channels and email

Slack, Lark, WeCom, DingTalk, Discord, Mattermost, Matrix, QQ, WeChat, plus email over IMAP/SMTP.

One contact book, not ten

The same person can be a Zalo number, a Telegram handle and an email. The system links them into one profile.

  • Reads phone numbers stored inside the name, like "Ms Lan 0912…".
  • Never merges when it isn't sure. It queues for a human to confirm.
  • A wrong merge can be undone, and it's logged.

Only chosen groups enter the system

You choose which groups go into the company view and which don't. A chosen group becomes an official data source for extracting tasks.

  • Images and files in the group are stored and searchable.
  • Every extracted task points back to the original message.
  • Groups you haven't chosen are never read.
~/chat-to-task

From messages to tasks, then followed up

This is what a merged inbox doesn't do. An inbox helps you read faster. This loop stops you from dropping work.

Scan every 6 hours

The system reads new conversation in the enabled groups. Anything already read is skipped.

Extract tasks with an owner, a due date and evidence

Each task says what, who, by when, and what's blocking it. Plus a link to the messages that produced it. No evidence, no task.

Existing tasks get updated, not duplicated

When the next scan sees the same thread, it updates the existing task. Fields a person edited by hand are never overwritten by AI.

◆
People can still create tasks by hand. Those are labelled "manual" and carry no evidence, so reports count them separately.

Forgotten work reports itself

A task silent for 3 days, or due within 24 hours, alerts the owner and their manager. This replaces the manager chasing people.

A dashboard for whoever runs the place

Who is carrying how much, which team is stuck, what slips repeatedly. Click a number for the task list, click again for the actual message.

~/assistant

Ask your own data directly

On top of the collected conversations sits an AI assistant. Two separate spaces: yours and the company's.

01

Answers come with sources

Ask "where did this task come from?" and it points at the message. That's how a manager double-checks what the AI extracted.

02

Permissions follow the asker

The assistant only reads what the person asking is allowed to see. Costs are charged to the wallet of whichever space is running.

03

Shared skills need approval

When the assistant sees work repeating, it proposes a skill. An admin has to approve it before it becomes a company-wide skill.

04

Connects to Claude

You can query messup data from inside Claude, read-only. People who already work in Claude don't have to move.

Reading is free, only AI runs cost money

Reading messages, browsing the task board, opening evidence — all free. You're only charged when AI actually runs: a question, a digest, an extraction pass.

Top up by bank QR with automatic reconciliation. Connecting channels and sending messages are free.

Personal and company work stay separate

One person can use messup for both. The two spaces cannot see each other.

The company only sees work from groups that were explicitly shared into it, never an employee's personal inbox.

~/examples

Four places you notice it in the first week

Click to expand each example.

AA project group with 200 messages a day and nobody summarisingextraction+
Context
A Zalo group with the client, the site consultant and three subcontractors. Decisions are verbal, nobody writes minutes.
What messup does
Takes the group as a source. Every 6 hours it produces a task list with owners and due dates, each pointing back to where it was agreed.
The difference
The weekly meeting starts from an evidenced list, not two hours of working out who said what.
BA salesperson opens six apps and still misses a customerinbox+
Context
The customer messages the page in the morning, Zalo in the afternoon, emails about pricing at night. Three places, three histories.
What messup does
Links the three identities into one customer profile. The inbox filters unanswered messages, adds tags, assigns an owner.
The difference
One timeline for that customer across every channel, visible before you reply.
CThe boss wants to know what's stuck without asking aroundoversight+
Before
Message each team lead, get safe answers, learn the truth once it's late.
What messup does
Alerts automatically: tasks silent over 3 days, tasks due soon, people carrying too much overdue work.
The difference
The question changes from "everything okay?" to "task X is 4 days late, what's blocking it?"
DOne person using it for their own workpersonal+
Who
Freelancers, brokers, shop owners. Lots of messaging, no department to manage.
What messup does
A regular digest of your own inbox: who is waiting on you, what you owe whom.
The boundary
The personal space is fully separate from any company space, even on one account.
~/underneath

What runs underneath

Two separate parts: a web app for people, and a process holding channel connections open 24/7. Kept apart so one failing doesn't take the other down.

Web app
Next.js

Inbox, contacts, task board, wallet, reports, company admin pages.

Channel worker
runs separately

Holds personal-channel sessions, receives business-channel messages, syncs contacts and files.

Data
PostgreSQL

Conversations, contacts, tasks, wallets, logs. Every schema change is tested on a copy before touching the real database.

AI models
multiple vendors

Routed through one gateway. The wallet is charged by real consumption per run.

Payments
bank QR

Top up by QR code with automatic reconciliation. Every wallet movement is recorded.

Claude connection
read-only

Lets you query the data from Claude. Read only, never write.

⚠
Plainly: messup.dev is still in development. The channel layer and inbox are live. Task extraction and follow-up are being finished along the lines above. I update this page as it progresses.