Messages, quick replies and auto replies in Multi Messenger CRM
AndySendy academy

Messages, quick replies and auto replies in Multi Messenger CRM

Multi Messenger CRM

Messages stores text and HTTP request templates. Use it to configure operator quick replies and rules that automatically respond to incoming messages. The same templates are chosen as campaign texts in Sending & warm-up.

Template names, customer names and numbers in the videos are sample values.

Step by step

Messages and auto-replies: step-by-step guide

The guide has 4 parts. Parts 1–3 are enough for an ordinary auto-reply; part 4 is for developers. Steps are numbered within each part: step 2.5 is the fifth step of part 2. Each step is shown in a short video of the real program interface. The video starts by itself when the step appears on screen. Click a video to open it large.

Part 1 of 4

1The Messages section

This section stores reply templates. A template goes to the customer by itself when they write a matching phrase (auto-reply), or when you click it in a chat (quick reply). The same templates are picked as campaign texts.

  1. Open “Messages”

    In the left panel, click “Messages”. One table row is one template: the name and the start of the text, “incoming regex” (which messages to answer), “Usage”, “type” and the “on” switch.

    In the Usage column: quick reply — a button in the chat; auto-reply — the program replies by itself; requires confirmation — the reply is not sent by itself.

    The templates in the video are examples. The first time you open it the table is empty: “No messages”.

  2. Turn auto-replies on

    Click the master switch in the top right (hint “Auto-replies: enable/disable all”). It turns all auto-replies on or off at once. When it is off, the table dims and the program does not reply to anything by itself.

    Quick reply buttons in chats work either way.

  3. Disable a template without deleting it

    Click the switch in the template's row. The template stays in the table but does not reply by itself and is not shown as a button in chats. Click again to turn it back on.

    This is the same as the “Enabled” checkbox in the template window.

  4. Drag a row up or down

    For each incoming message the program checks templates from top to bottom and sends the reply of the first match. The rest are not checked. So put narrow rules above general ones.

    Take a row by the dotted handle on the left and drag it. The order is saved at once.

    If a template matches but no reply comes out (for example, the HTTP service did not answer), the program checks the next one.

Part 2 of 4

2Creating the “Order number” template

Goal: a customer writes “Order 58321” and the program replies at once: “Thank you! Checking order #58321…”. The number is filled in automatically. At the end: editing, deleting, export and import.

  1. Click “+”

    The “+” button in the top right (“Add message”) opens the “New message” window. “Enabled” and “Quick reply” are already ticked there.

  2. Type a name

    In “Name”, type Order number. Only you and your managers see the name: it labels the table row and the chat button. The customer never receives it.

    A template without a name is not saved: “Name cannot be empty”.

  3. Keep the Text type

    In “Type”, keep Text for a plain text reply.

    Post and Get get the reply from your server or an AI — see part 4.

  4. Tick “Auto-reply”

    Tick “Auto-reply” — the program will reply by itself when a message matches the regex. The other checkboxes:

    • “Enabled” — the template works;
    • “Quick reply” — a button in the chat;
    • “Requires confirmation” — the reply is not sent at once: for an auto-reply a Confirm / Cancel card appears in the chat, for a quick reply the text lands in the message box.
  5. Type the incoming regex

    The “Incoming Regex” field says which messages to answer. The simplest option is one word:

    (?i)order

    (?i) means upper and lower case do not matter. It matches “Order 58321”, “where is my order?”, “ORDER”; it does not match “I want to buy” — the word “order” is not there.

    Without a regex an auto-reply never fires. A broken expression does not fire either, with no warning.

  6. Or take the number from the message

    To put the number the customer sent into the reply, type this whole line instead of the word:

    (?i)^order\s*(\d+)$

    The program saves the digits in brackets as $1. It matches “Order 58321” and “order58321”, not “Where is order 58321?” — the message must start with the word.

    What the symbols mean
    (?i)case does not matter
    ^ … $the whole message, start to end
    \s*spaces, if any
    (\d+)digits — become $1

    More ready lines are in the reference below.

  7. Type the reply text

    In “Reply text”, type Thank you! Checking order #$1 — I will reply within 5 minutes. $1 is replaced with the number from the customer's message.

    Options in curly braces, such as {Hello|Good afternoon}, are picked at random on every send. The ⤢ button opens the field full screen.

  8. Choose labels (optional)

    Open “Labels on successful delivery” and click a label: a tick adds it to the customer, a second click makes a cross (remove). Empty — labels are left alone.

    • An auto-reply sets labels when it fires.
    • A quick reply — when the reply is queued. If the text lands in the message box (“Requires confirmation”), labels are not set.

    For an auto-reply with “Requires confirmation” the label is set at once, before the manager decides. If the manager clicks Cancel there is no reply, but the label stays. The same happens if the account is disabled. Do not give such templates labels like “Reply sent”.

    “Labels on failed delivery” work only in campaigns.

  9. Click “Save”

    Click “Save”. The new template appears as the first row of the table, so it is checked before the others.

  10. Edit or delete a template

    Double-click a row to open the “Message” window with the fields filled in. Make changes and click “Save”.

    Deletion cannot be undone. If the template is selected for an account in “Sending and warm-up”, it cannot be deleted — the program shows the account numbers; choose another message there first.

    Click “Delete” and confirm with “OK”. Chat history stays.

  11. Save templates to a file

    Click the up-arrow button, “Export to file”. The browser saves messages_YYYY-MM-DD.json with all templates and the master switch position.

    A copy of all sections at once is made with the button in “Settings”.

  12. Add templates from a file

    A template with the same name as one of yours is replaced by the file's version.

    Click the down-arrow button, “Import from file: add to existing”, pick the file and confirm with “OK” in “Add from …: N item(s)?”.

    • New templates go to the top of the table, in the file's order.
    • A replaced template keeps its place.
    • Other templates and the master switch do not change.

    ⬇ Download ready-made templates — delivery, opening hours, price list and “Thank you for your order”. The auto-replies in it are off: replace the parts in square brackets with your details and turn on the row switch.

Part 3 of 4

3What it looks like in a chat

Three ways a template is sent: automatically, by button and after your confirmation.

  1. Open the chat — the reply is already sent

    The customer wrote “Order 58321”. The program replied by itself as soon as the message arrived, even if nobody opened the chat: $1 became 58321.

    The reply is marked “waiting to send”: it waits in the “Queue” until the phone sends it.

    Needed: the master switch, an enabled template with “Auto-reply”, a connected phone and an account that is not disabled.

  2. Click the quick replies button

    In the header of the open chat, click the speech-bubble button. It lists the templates that have “Quick reply” ticked.

    No button means no enabled template has “Quick reply”.

  3. Pick a template

    Click “Greeting”. The reply appears in the chat marked “waiting to send”. The program picked one option from {Hello|Good afternoon}. In a quick reply $1 comes from the chat's last incoming message.

    If the template has “Requires confirmation”, the text is not sent but placed in the message box — edit it and send it yourself.

  4. Confirm the reply

    For an auto-reply with “Requires confirmation” a card “Auto-reply awaiting confirmation” with the ready text appears above the message box.

    Click “Confirm” — the reply is queued and goes to the customer. “Cancel” deletes the reply; the customer never gets it.

    If sending fails (for example, the account is disabled), the card stays.

Part 4 of 4

4For developers: replies from your server or an AI

Needed only if the reply text should come from your server or an AI. Post or Get type: the program sends a request and forwards the text it gets back to the customer.

  1. Open a Post template and fill in the request

    Double-click a template of type Post or Get (or choose that type in a new template) — the “HTTP / AI” block appears.

    • URL — your service or the AI API, starting with http:// or https://.
    • Headers — one per line: Name: value. The access key goes here too.
    • Request body — what to send with Post (required for Post). $prompt is replaced with the Prompt text, $1, $2 with parts of the message. Get sends no body: put substitutions in the URL.
  2. Fill in the prompt and output_regex

    • Prompt — the task for the AI; $1 is the part of the customer's message.
    • output_regex — picks the customer text out of the service response: the first group in brackets is used. Empty — the whole response is sent as is; for an AI's JSON fill it in, for example "content"\s*:\s*"(.*?)".

    “Reply text” is not used in an HTTP template. With AI it helps to turn on “Requires confirmation”.

Auto-reply did not fire? Check in this order

  1. The program is running on the main computer — only it sends auto-replies. The managers’ site never replies by itself, so a customer never gets the answer twice.
  2. The phone is connected — the reply goes out from the phone; without it the reply stays “waiting to send” in the Queue.
  3. The account is not disabled — a disabled account sends nothing, yet the template’s labels are still set.
  4. The master switch is on — top right of “Messages”.
  5. The template is enabled and has “Auto-reply” — “Quick reply” alone is not enough.
  6. The regex is filled in and matches — watch the case — add (?i) at the start.
  7. No other matching template above it — only the first match is sent.
  8. “Requires confirmation” is off — otherwise the reply waits in a card in the chat.

Warm-up service messages never trigger auto-replies — warm-up has its own mechanism.

Checkbox cheat sheet

CheckboxesWhat happens
Quick replyA button in the chat, sent when you click it.
Auto-replyThe program replies by itself when the message matches the regex.
Quick replyAuto-replyReplies by itself and is available as a button.
Auto-replyRequires confirmationA Confirm / Cancel card in the chat.
Quick replyRequires confirmationThe text lands in the message box; you send it yourself.

Reference

Only what the steps above do not cover: ready-made expressions to copy, examples and technical details for developers.

Ready-made expressions for common tasks

Click Copy and paste the line into the Incoming Regex field. You do not need to understand the symbols. Without (?i), letter case matters: price will not match “Price”.

TaskWhat to typeWhat it matches
The message contains a word(?i)price“What is the price?”, “PRICE list”
One of several words(?i)(price|cost|how much)“Send the price list”, “How much?”
A greeting on its own(?i)^(hi|hello|good afternoon)[!.\s]*$“Hi!”, “good afternoon”
Order number into $1(?i)^order\s*(\d+)$“Order 58321” → $1 = 58321
Text after a word into $1(?i)^question:\s*(.+)$“Question: do you deliver?” → $1 = “do you deliver?”
Any message(.+)everything; put this template in the last row

Type the expression without surrounding /. An invalid expression never fires.

Do not want to write expressions yourself? Download the ready-made templates and add them with Import from file (step 2.12).

Use cases

  1. Answering price questions. Type Text, Auto-reply checked, regex (?i)(price|cost|how much), text {Hello|Good afternoon}! Current price list: …. The customer gets an answer right away, at any time of day.
  2. Sending the order number to your CRM (set up by a developer, see part 4). Type Post, Auto-reply, regex (?i)^order\s*(\d+)$, your CRM URL, body {"order": "$1"}. The customer receives the text your CRM returns; pick the right part of the response with output_regex.
  3. Answering everything else with a check. In the last row, a template with regex (.+), Auto-reply and Requires confirmation. For any message the templates above did not catch, a manager gets a ready draft and decides whether to send it.

Variables

$0 is the whole regex match; $1–$99 are the bracket groups in order. A missing group becomes an empty string. A quick reply takes $1 from the last incoming message in the chat; if that message does not match the template’s regex, the variables are empty.

In HTTP templates, $1, $2 work in the URL, headers, request body and Prompt. $prompt inserts the filled-in Prompt. URL values are encoded; in a body that starts with { or [, they are escaped for JSON.

Options like {option 1|option 2} are resolved on every send, including in the HTTP service’s reply. Placeholders like {{Name}} are not supported in auto-replies and are removed.

For developers: HTTP technical details

For the developer who connects your service or an AI model.

  • The URL must start with http:// or https://. Post requires a request body; Get sends no body.
  • A status outside 200–299, a connection error or an empty response creates no message. The Reply text field is not a fallback for HTTP templates.
  • The connection is limited to 8 seconds and the whole request to 25 seconds. Only the first 500,000 bytes of the response are processed.
  • output_regex: if the expression has brackets, the first group is used, otherwise the whole match. No match means no reply, and the program checks the next template. An empty output_regex sends the whole response as is.

If a managers’ site is connected

  • If the program is connected to a managers’ site, templates are shared. An edit made in the program is saved on the managers’ site and comes straight back. If the managers’ site is unreachable, the template cannot be saved — try again later.
  • The program and the managers’ site each have their own master auto-reply switch. Only the program on the main computer sends auto-replies; the managers’ site never replies on its own, so there are no double replies. Quick reply buttons work in both.