DutyDesk
Guide

From installing to your first automatic reply

Three required steps, and everything else optional. If all you want is for the bot to answer “what are your prices”, this page takes five minutes.

Prefer to see it? The walkthrough covers the same screens in pictures →

1 · Installing

Download the file for your system and install it as usual. The builds are not digitally signed at this stage, so the operating system shows a warning the first time.

macOS
Right-click the app and choose “Open”, then “Open” again in the dialog that appears. A normal double-click never shows that button. Once per version.
xattr -dr com.apple.quarantine "/Applications/DutyDesk.app"
Windows
SmartScreen will show “Windows protected your PC”. Click “More info”, then “Run anyway” — the button only appears after that first click.

2 · Connecting WhatsApp

The connection works like any linked device: the phone stays the owner of the account, and the computer joins it.

1Open Settings → Channels → Add a channel → WhatsAppThe app shows a QR code and waits.
2On the phone: Settings → Linked devices → Link a deviceThe same path you use to link WhatsApp to a browser.
3Scan the code off the screenThe link is stored encrypted, and a restart will not ask you to scan again.
4Send a message from another phoneIt appears in the log immediately, even before you have written a rule.
Automating a personal account is against WhatsApp’s terms of service and can lead to a block. Leave the rate limits on and start at low volume. The full explanation.

3 · Connecting Telegram

Telegram runs against the official Bot API. There is no webhook, no public address and nothing to host — the app keeps a poll open for as long as the window is.

1Open a chat with BotFather on TelegramIt is the official bot that issues bots.
2Send the command and pick a nameThe display name is free; the username has to end in bot./newbot
3Copy the token it sends backKeep it like a password. It grants full control of the bot.7812345678:AAH-xxxxxxxxxxxxxxxxxxxxxxxxxxx
4Paste it into the bot card under Settings → ChannelsThe token is stored encrypted and polling starts at once. The same token cannot run in two places at the same time.

4 · Messenger and Instagram

Messenger answers the inbox of one Facebook Page, and Instagram the professional account linked to that Page. The same rules, the same flows, the same log and the same customers — only the socket differs.

1Settings → Channels → Add a channel → MessengerYou need a Facebook Page you administer. A personal profile will not do: a profile’s Messenger has no interface a program is allowed to use.
2Grant the permissions before you mint the tokenA token carries what existed when it was made. A permission added afterwards is not in it, and the failure reads exactly like a bad token.
3Paste the Page token on its own cardTest before Save. If what you pasted is a system user token — which is what Meta’s own business settings hand out — the app exchanges it for the Page’s own token and checks the result really is that Page.
4Instagram: link the professional account to that same PageThen add the Instagram card. No Page, no Instagram — it is the same token and the same engine with one parameter changed.
Facebook gives you 24 hours to reply. Outside it the bot sends nothing on its own; between a day and a week you can still write by hand, and past seven days the composer refuses and says why. An Outbound campaign cannot reach this channel at all.

5 · Your first rule

A rule is a condition and a reply. Start with a keyword — it is the kind that covers most of the questions that keep coming back.

The rule’s fields
Trigger type
Keyword
A keyword, a regular expression or opening hours.
Words
price | how much | cost | quote
Each word on the line is checked on its own. The sentence does not have to match exactly.
Reply
Hi {{contact_name}}, the price list starts at ₪1,840 + VAT. What height do you need?
A question at the end of the reply doubles the rate at which people carry on.
Cool-down
60 seconds
Per contact. Stops the same reply repeating inside one conversation.
Priority
80
Higher is checked first. Leave gaps of 10 so there is room to add something in between.
Platforms
Shared across all channels
Any field can be overridden for one platform from inside the rule editor.
Placeholders you can drop into a reply
{{contact_name}}The contact’s name
{{time_of_day}}morning · afternoon · evening
{{account_name}}The name of the account that received the message
{{business_hours}}The opening hours you set

You can also invent your own: a question in a flow keeps the answer, and from then on {{customer_age}} means what that customer wrote — including in rules that fire months later.

6 · Your first flow

When one reply is not enough — you need the working height, say, or an order number — a flow runs the conversation in steps and keeps state per contact.

Trigger
What starts the flow — keywords, a command or a schedule.
Question
A question with options, or free input. The answer is kept for the steps that follow.
Condition
A branch based on what was chosen, including skipping ahead.
Action
Send media, open a ticket or hand off to a person.
End
Close the flow and tag the conversation. The state resets.
A question with options shows as buttons on Telegram and as a numbered list on WhatsApp. You write it once; each platform is handed the shape it supports.

7 · Posts and comments

The one thing here that addresses an audience rather than a person: a post to a Facebook Page or a Telegram channel, scheduled in advance, with the comments that come back answered by the rules you already wrote.

Write it once, aim it at the channels
The tab holds a calendar of what goes out when, and the queue behind it. Ticking two channels makes two posts, shown as the one thing you wrote.
Who holds the clock differs by channel
A Facebook post is handed to Meta with its publish time and goes out whether or not this computer is on. Telegram has no scheduled send, so a post to a channel only fires while the app is open.
Comments are answered by the same rules
A Page’s comments are polled; a Telegram channel’s arrive through its discussion group. Somebody typing in the group rather than under the post is answered last — not dropped.
A post is not a message to a customer
It is not written to the message log, not counted against the daily cap, and files nobody as a customer.
Publishing to Facebook does not work yet: the permission to post to a Page is waiting on Meta’s review, and the check that should warn you first answers yes even for a token that cannot publish. Telegram channels publish properly.

8 · Limits and AI

The defaults are deliberately conservative. Change them gradually, once the log has shown you the bot behaving the way you expected.

Pause window
A random pause before every automatic reply. Do not go below one second.
2–8 seconds
Cool-down per contact
Survives restarting the app.
60 seconds
Daily cap
Counted per connection. Sending by hand does not count.
200 messages
Opening hours
Outside them a separate automatic rule runs, if you turned it on.
Sun–Thu 08:00–17:00
AI connector
ChatGPT or Gemini. It needs an API key of your own, stored encrypted.
Off
Token budget
When it runs out the AI stops, and that is written into the log as the reason.
40,000 a month
Voice transcription
The transcription connector is chosen separately from the reply connector.
Off

9 · The key and the licence

The key comes from your account area and takes one slot per computer, up to two computers at a time. The app verifies it against the licence server in the background, and there is a short grace period for working without an internet connection.

1Copy the key from your account areaIt is on the first card under “Overview”, with a copy button.
2Paste it in the app under Settings → LicencePasting takes one slot for this computer.
3The computer appears in the device listWith its name and operating system, on the “Key and devices” tab of your account area.
4Changing computers — release a slotReleasing from the account area or from the app frees the slot for another computer immediately.

10 · When something does not work

Check three things in order: that the global pause is not on (the button in the header), that automatic replies are switched on, and that the account shows as connected. If all three are green, open the log and filter to “no match only”. The message very likely arrived and no rule caught it.
Ready to start?
Three full days of trial, with no card.
Download