SCROLL FOR MORE
Open the inbox
Open the inbox
Open the inbox
TriageDesk reads support@ overnight, works out what every message is, and drafts the reply. In the morning you approve, edit or kill each one — and nothing leaves your mailbox until you tap it.
>
READS OVERNIGHT
READS OVERNIGHT
READS OVERNIGHT
//
//
//
DRAFTS THE REPLY
DRAFTS THE REPLY
DRAFTS THE REPLY
//
//
//
YOU APPROVE
YOU APPROVE
YOU APPROVE
<
[n.
01
/
10
]
> Why TriageDesk
[n.
01
/
10
]
> Why TriageDesk
[n.
01
/
10
]
> Why TriageDesk
An agent that answers to you
and can prove what it did
It works in your mailbox, in your voice, and writes down why it decided what it decided. Nothing reaches a customer without a human tapping approve.
An agent that answers to you
and can prove what it did
It works in your mailbox, in your voice, and writes down why it decided what it decided. Nothing reaches a customer without a human tapping approve.
An agent that answers to you
and can prove what it did
It works in your mailbox, in your voice, and writes down why it decided what it decided. Nothing reaches a customer without a human tapping approve.
//
001
Your mailbox, not ours
Microsoft 365 or Gmail. Replies go out from your address and thread in the customer's own conversation.
//
002
Reads before it writes
Every message is classified and priced for urgency before a single reply is drafted.
//
003
A receipt on every action
Each decision carries verbatim spans of the customer's message — evidence you can check.
//
001
Your mailbox, not ours
Microsoft 365 or Gmail. Replies go out from your address and thread in the customer's own conversation.
//
002
Reads before it writes
Every message is classified and priced for urgency before a single reply is drafted.
//
003
A receipt on every action
Each decision carries verbatim spans of the customer's message — evidence you can check.
//
001
Your mailbox, not ours
Microsoft 365 or Gmail. Replies go out from your address and thread in the customer's own conversation.
//
002
Reads before it writes
Every message is classified and priced for urgency before a single reply is drafted.
//
003
A receipt on every action
Each decision carries verbatim spans of the customer's message — evidence you can check.
[n.
02
/
10
]
> Numbers
[n.
02
/
10
]
> Numbers
[n.
02
/
10
]
> Numbers
Every one of these
is a constant in the code, not a claim
Every one of these
is a constant in the code, not a claim
Every one of these
is a constant in the code, not a claim
120 a day
Hard ceiling on replies out of one mailbox. Past it the queue stops draining until tomorrow — nothing is lost.
3 a thread
Past this many agent replies, every further message in that conversation goes to a human and stays there.
3 categories
Complaints, legal threats and cancellations are never drafted at all — a branch in the code, not a threshold.
60 a pass
What one overnight run reads. The watermark means the next run resumes where it stopped, so a backlog is worked down rather than dropped.
// The kill window
120s
Seconds an approved reply is held before it leaves your mailbox. Undo inside it and the customer never saw anything.
// Approve before send
0
Replies this agent can send without a human tapping approve. There is no code path that does it and no setting that adds one.
[n.
03
/
10
]
> Core Features
One agent between the inbox
and the first person who opens it
Microsoft 365 or Gmail, connected by OAuth. It reads what arrived since the last run and sends nothing without your tap.
A category and an urgency for every message, with the sender's own words quoted back as the reason it decided.
Drafted from the thread and your saved answers and nothing else. Where the answer is in neither, it says so rather than guessing.
- 01Read
- 02Classify
- 03Draft
- 04Approve
Microsoft 365 and Gmail, in one morning queue.
Keep the mailbox
TriageDesk connects to Microsoft 365 or Gmail and works inside it — replies go out from your own address, land in your own Sent folder, and thread in the customer's own conversation.
- Microsoft 365Unread mail since the watermark, and the reply threaded by Graph's createReply.
- GmailOne scope — gmail.modify. It cannot permanently delete a thread.
- Approval gateNothing sends until a human taps approve. There is no autonomous path.
- Receipts and capsEvery action logged with its evidence, and both caps enforced in code.
You approve, edit or kill each card
Approving does not send — it stages the reply behind a 120-second window you can still use.
3 categories it refuses to answer
Complaints, legal threats and cancellations go to a human undrafted. It is a branch in the routing code, not a confidence threshold.
[n.
04
/
10
]
> The loop
[n.
04
/
10
]
> The loop
[n.
04
/
10
]
> The loop
It works overnight.
You approve in the morning.
It works overnight.
You approve in the morning.
It works overnight.
You approve in the morning.
// 01
A cron pass reads everything unread that arrived since the last time it ran — out of the Microsoft 365 or Gmail inbox your team already lives in. No forwarding address, no second system of record, no migration.
Overnight, on your own mailbox
The pass resumes from a watermark rather than polling: it asks the provider only for unread mail received after the newest message it recorded, up to 60 in one run, and advances the watermark only once a message is actually written down — so a pass that dies halfway re-reads instead of skipping.
// 02
What lands is one card per conversation: the drafted reply, what the sender is actually asking for, and the line from their message that decided it. Approve it, edit the wording, or kill it outright.
A morning queue, not a morning inbox
A drafted reply is written to the queue as pending_review, and the only code path that reaches the mail rail runs against rows a human has already approved. There is no autonomous mode to switch on.
// 03
Every read, classification, draft, handoff, approval, kill and send is written to the ledger with the evidence it acted on. Approving stages the reply rather than sending it, so you get a beat to change your mind.
A receipt on every action, and a window to take it back
A 120-second undo window on an approved reply — the dispatcher will not pick a row up before its window has elapsed, undo flips it to cancelled atomically, and the receipt is written BEFORE the mail rail is touched, so a send that could not be logged does not go out. Each tick moves at most 20 due replies, so the queue drains over minutes rather than as one burst out of a real company mailbox.
// 04
When a check does not pass, the agent stops and hands the thread to you. It never proceeds on a maybe, and there is no flag anywhere that makes it proceed anyway.
Gates fail closed
A draft that commits to a refund, a credit, a discount, a guarantee or a date the thread never mentioned is thrown away. 3 categories — complaints, legal threats and cancellations — are never drafted at all. A thread past 3 agent replies goes to a human and stays there, and past 120 replies in a day the queue stops draining until tomorrow.
[n.
05
/
10
]
> The artifact
[n.
05
/
10
]
> The artifact
[n.
05
/
10
]
> The artifact
Hi — our CSV exports have been failing since Tuesday. It spins for about a minute and then says something went wrong, no error code. We close the month on Friday so this is blocking us. Anything you can tell me would help.
We close the month on Friday so this is blocking us
Thanks for the detail — the spin-then-fail on CSV export is something we can see on our side too, and it is not something you have configured wrong. I have put this in front of the team with your account attached and flagged that you close on Friday. I do not want to give you a fix time I cannot stand behind, so I will come back to you as soon as I have one either way. If you need the data before then, tell me which date range and I will get it to you directly.
This is the thing
you actually get.
Not a dashboard tour — one card out of the morning queue, exactly as the agent writes it. What arrived, what the agent took it to be, the line from the sender's own message that decided it, the reply it drafted, and why that reply is or is not on its way.
[n.
06
/
10
]
> What you get
[n.
06
/
10
]
> What you get
[n.
06
/
10
]
> What you get
Everything a morning needs,
done before you get there
Everything a morning needs,
done before you get there
Everything a morning needs,
done before you get there
From the first unread message to the reply that goes out, TriageDesk runs the sorting on your own mailbox — you only approve.
[n.
07
/
10
]
> Pricing
Priced per inbox, not per person who reads it.
Includes:
Overnight pass over your own mailbox
Every message classified and prioritised
The full ledger, with its evidence
No credit card required
Not in this tier — Drafted replies in a morning queue
Not in this tier — Approve, edit and kill
Not in this tier — Sending from your own mailbox
Includes:
Everything in Free
A drafted reply per conversation
Approve, edit or kill each one
Sends from your own mailbox, in-thread
The 120-second window on every approved send
Unlimited people on the inbox
Not in this tier — More than one shared inbox
Includes:
Everything in Desk
Several shared inboxes, one queue
Per-inbox voice and saved answers
Per-inbox send caps
Microsoft 365 and Gmail side by side
Full ledger export
Same approve-every-send control
[n.
08
/
10
]
> Changelog
[n.
08
/
10
]
> Changelog
[n.
08
/
10
]
> Changelog
Aug 14, 2026
The overnight pass, the queue and the undo window
Aug 14, 2026
The loop shipped: a cron pass reads unread mail since its watermark, classifies it, and writes one drafted reply per conversation into a morning queue.
Aug 14, 2026
Receipts you can actually check
Aug 14, 2026
Every action writes a ledger row carrying the evidence it acted on — and the evidence is verbatim spans of the customer's own message.
Aug 14, 2026
Both caps, and the categories it refuses
Aug 14, 2026
A per-thread reply cap and a per-day send cap now bound the loop, and neither can be waived.
[n.
10
/
10
]
> FAQ
The things a small team asks first.
How the overnight pass works, what it connects to, what it refuses to do, and what you can check afterwards.
//
001
It reads every message that arrived in your shared inbox since the last time it ran, works out what each one is — a bug, a billing question, a cancellation, a bounce — and writes one drafted reply per thread. In the morning you get a queue of cards instead of a wall of unread mail. Nothing has been sent.
//
002
No, and there is no setting that turns that on. Every draft is written to a review queue, and the only code path that reaches the mail rail is the one that runs against replies a human already approved. Approving does not send either — it stages the reply behind a kill window you can use.
//
003
No. Your system of record stays Microsoft 365 or Gmail. Replies go out from your own address, land in your own Sent folder, and thread inside the customer's own conversation. If you turned TriageDesk off tomorrow your inbox would be exactly where you left it.
//
004
Nothing gets drafted. Complaints, legal threats and cancellations are routed to a human undrafted — that is a branch in the code, not a confidence threshold, so it cannot be tuned away by a model having a good day.
//
005
Every classification and every draft writes a ledger row carrying the evidence it acted on, and the evidence is verbatim spans of the customer's own message. A quote the message does not literally contain is dropped before it is ever shown, so a receipt in the ledger is something you can check without opening the original.
//
006
It is not allowed to. A drafted reply may only commit to something already present in the thread or in the answers your team has saved — a refund, a credit, a discount, a guarantee or a date that appears in neither is rejected outright and the thread goes to a human instead.
//
007
Two things per message: what it is — a bug, a billing question, a sales enquiry, an onboarding request, a feature ask, a complaint, a legal matter, a cancellation, an auto-reply or a cold pitch — and how urgent it is. Everything after that follows from those two answers.
//
008
Urgent means production is down, money is moving wrongly, a deadline is today, or the sender is escalating. It is a judgement on the message rather than on the sender, so a polite customer with a real outage outranks an impatient one asking about an invoice.
//
009
One prepared reply per conversation, using your team's name, your sign-off and the tone you set. Where the answer is not in the thread or in your saved answers it says plainly that it is checking and will come back — it is instructed never to fill the gap with a guess.
//
010
Three things catch it before you ever see it, and a fourth after. A draft carrying a bracketed placeholder is thrown away. A draft that commits to something the thread never mentioned is thrown away. A draft it cannot parse at all is thrown away. And the one that survives is still just a card in a queue with a Kill button on it.
//
011
Up to a cap, and then it stops for good. A thread the agent has already answered 3 times is, by definition, not a thread it is solving — every further message in it goes to a human and stays with them.
//
012
Records them and stops. They are classified like everything else so your counts stay honest, and then they are done — no card, no draft, no notification. A morning queue full of postmaster notices is not a queue.
//
013
Microsoft 365 and Gmail. Both connect by OAuth against your own account; there is no forwarding address, no IMAP password, and no copy of your inbox living somewhere else as the system of record.
//
014
On Microsoft 365, Mail.ReadWrite and Mail.Send — write access because an approved reply goes out through Graph's createReply, which threads it inside the customer's own conversation. On Gmail, one scope: gmail.modify, which covers reading, sending and marking read, and cannot permanently delete a thread.
//
015
It is built not to. The overnight pass resumes from a watermark and asks the provider once for a bounded window of unread mail rather than polling, the dispatcher moves at most 20 due replies per tick so the queue drains over minutes rather than as one burst, and the daily send cap sits far below the ceilings Microsoft and Google publish for a single mailbox. Those published ceilings are on this page, with their sources.
//
016
Your address. They go out as the connected mailbox, land in your own Sent folder, and thread inside the conversation the customer started — so a reply looks like a reply, not like a ticket notification from a third party.
//
017
Reading and sending stop immediately, and the loop reports that the mailbox is gone rather than failing quietly. Your inbox is untouched: every message it read is still exactly where it was, because it was never moved anywhere.
//
018
The tokens are encrypted at rest and never reach a browser — the integrations row is read server-side and only the account label and its connection state are sent to the page. The message bodies are stored so the queue can show you what you are replying to, and they are readable only by your own account.
Questions
Need help with something? We are a small team too. Write to us and a person answers.
Email us »//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
Open the inbox to a queue, not a backlog.
The demo is live — a real morning on a support inbox, with the queue already drafted. Free, no card.
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
Open the inbox to a queue, not a backlog.
The demo is live — a real morning on a support inbox, with the queue already drafted. Free, no card.
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
Open the inbox to a queue, not a backlog.
The demo is live — a real morning on a support inbox, with the queue already drafted. Free, no card.
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]
//
[#drafts-the-reply]
&
[#you-approve]