DutyDesk
Features

Everything that happens between a message arriving and a reply going out

One path, in a fixed order: flow, rule, and if nothing matches — AI, or it waits for you. The same path for WhatsApp, for Telegram and for a transcribed voice message.

The order every incoming message is checked in
1Received
The message arrives on its own channel and is identified by the contact’s network.
2Transcription
A voice message is transcribed to text, and from here behaves like any other message.
3Active flow
If the conversation is mid-flow, the reply is decided by the step it is on.
4Rules
The rules are checked in priority order, and the first one that matches replies.
5Fallback
No match? The AI replies if you turned it on; otherwise the message is flagged and waits for you.
Rules

Three kinds of trigger, one priority order

A rule is a condition and a reply. The condition can be a keyword, a regular expression or a time window, and the priority decides which is checked first when two of them match.

Several keywords in one rule, with or without case sensitivity.Regular expressions for precise rules — a greeting that will not fire inside a long sentence, for instance.Placeholders in the reply: the contact’s name, the time of day, the account name.A cool-down per contact, so the same reply is not sent twice in a row.
Rules are shared across every channel by default, and any single field can be overridden for one platform.
Opening greetingRegular expression · priority 50
Trigger
^(hello|hi|good morning|hey)$
Reply
Hi {{contact_name}}! How can we help?
Cool-down
600 seconds per contact
WhatsApp
Inherits the shared reply
Inherited
Telegram
Its own wording + 3 buttons
Overridden
74 firings today · 3 platform-level overrides
Flows

A multi-step conversation with state per contact

A flow asks, branches on the answer, performs an action and closes. The state is kept per contact, so someone can come back to the conversation hours later and it carries on from the same point.

Numbered menus and nested branches, without writing a line of code.The same question shows as buttons on Telegram and as a numbered list on WhatsApp.Response and completion rates per step, so you can see where people drop out.
Order tracking5 steps · 87% completion
Step 1 · trigger
delivery | when will it arrive | tracking number
Trigger
Step 2 · question
What is the order number?
91% answered
Step 3 · condition
Not found → 2 attempts, then a person
Condition
Step 4 · action
Send the status and the tracking number
33 sent
Step 5 · close
Close the conversation · option to open a ticket
38 starts today · 13% drop-off
AI replies

A safety net, not the engine

The AI never sees a message a rule or a flow has already handled. It steps in only when nothing matched, follows instructions you write, and stays inside a monthly budget you set.

Two connectors: ChatGPT and Gemini. The key is yours and is encrypted locally.A single rule can answer through the model with instructions of its own, without turning AI on for everything.Token tracking on every call, with a monthly cap that stops before a surprise on the bill.A reply that is too long or not confident enough is handed to a person instead of being sent.
Both connectors are off by default. Without a key you enter, nothing goes to an outside provider at all.
AI settingsOff by default
Reply connector
ChatGPT (OpenAI)
Active
Transcription connector
Chosen separately
Monthly budget
40,000 tokens
Used this month
11,240 tokens · 28%
Maximum reply length
320 characters before hand-off
Voice messages

A recording in, text out, the same rules

A voice message is transcribed and then travels exactly the same path — flow, rule, then AI. The transcription connector is chosen separately from the reply connector, so you can transcribe with one provider and answer with another.

A failed transcription is marked in the log with the reason, and can be retried with one click.The retry goes back to the original channel — a contact’s address carries its network with it.Off by default, because every transcription is a paid call.
Voice message · Dana K.WA · 00:14
Transcript
how much is a mobile scaffold for four metres
Succeeded
Rule fired
Price and cost
Reply
The price list starts at ₪1,840 + VAT
End-to-end time
6.1 seconds
A failed transcription is kept in the log with a reason and a retry button
Rate limiting

The bot behaves like a person, not like a script

Three limits work together by default. They exist to reduce the risk to a WhatsApp account, not only to save on costs.

A random pause, inside a window you define, before every automatic reply.A cool-down per contact, which survives restarting the app.A daily cap per connection — each connected account carries its own.Sending by hand bypasses the limits, because a person pressed send.
Automating a personal WhatsApp account is against the terms of service and can lead to a block. The limits reduce the risk; they do not remove it.
Sending limitsPer connection
Pause window
2–8 seconds
Measured response time
4.48 seconds
Within target
Cool-down per contact
60 seconds
Daily cap
200 messages
Used today
178 · 89%
Near the cap
Log and analytics

Every decision is logged, including the decision not to reply

The log records what was held back and why — a cool-down, the daily cap, outside opening hours, no match. That is what turns “why did it not reply?” into a question with an answer.

Clicking a row opens the full picture: the rule, the response time and the reply that went out.Filter by channel, direction or “no match only” — this is where the missing rule gets written.Interactions, match rates and token consumption, with data export.
Reasons nothing was sentLast 7 days
No match
46 messages
A rule waiting to be written
Cool-down active
31 messages
Outside opening hours
18 messages
Daily cap
4 messages
Consider raising it
Conversation with a person
9 messages
Every reason is recorded as an internal code and shown as a sentence in your language

What each platform supports

The rules are shared, but the platforms are not the same. Anything unsupported is shown greyed out in the app with the reason — it does not quietly disappear.

Capability
WAWhatsApp
TGTelegram
MSMessenger
IGInstagram
Connection method
QR scan
Bot token
Page sign-in
Business page
Keyword rules
Supported
Supported
Supported
Supported
Flows
Numbered list
Buttons
Quick Replies
Buttons
Quick-reply buttons
Not available over QR
Inline
Supported
Supported
Text formatting
Bold and italic
MarkdownV2
Plain text
Plain text
Media in a reply
Image and PDF
Image and PDF
Link
Image
Voice messages
Transcription
Transcription
None
None
Reply window
No limit
No limit
24 hours
24 hours
Risk to the account
Present · personal account
None · official API
None · official API
None · official API
Instagram is in development. Its rows describe what the platform allows, not what already ships.

The first rule takes three minutes