Skip to content
עברית

Internal channel and team channel: guide the bot without taking over

The Internal channel is a private conversation between your team and the bot, attached to one customer conversation in the Inbox. Use it to answer a question, send a directive about this customer, or review an approval card without writing directly to the customer. An optional team channel mirrors that internal conversation to a staff group in Telegram or Slack.

A handoff needs a real way to reach someone outside the app: an enabled email or text alert, an enabled alert to a linked personal Telegram account, enabled push notifications on a registered phone/browser, or a selected team group that receives handoff posts. A connected team channel with no selected destination does not count. Accounts created together with their first workspace can start with handoff email on only when no notification preferences are saved. Any preferences you already saved stay unchanged, including for unrelated alerts or with email at its default off. Existing accounts keep their preferences. Setup offers an explicit one-click enable when your email alerts are off. See personal notification preferences.

Team questions follow their own route. Your handoff alerts can reach email while the bot’s questions still wait in the app. Connect and select a team-channel destination for questions outside the app. During setup, The bot is waiting on you links an open question directly to its private discussion in the Inbox. Answer it there; reading an alert does not resolve it.

For a workspace with more than one active member, setup offers a team-channel connection so the bot’s questions go to your team group. Not now defers this offer without connecting anything. You can return to it later. A solo owner does not get this extra team-group offer.

In the thread, the assistant’s messages sit on one side and your team’s on the other; your own messages are marked You.

Follow the suggested workflow: use these private channels for case decisions and let the bot carry the work forward. We strongly recommend this over manually replying in the WhatsApp Business app, even though using that app alongside omotto is supported. A supported app reply can pause the bot through human control. The internal channel is inside omotto; the optional team channel is in Telegram or Slack, not another in-app screen.

The customer never sees this means the customer cannot read the internal thread. It does not mean your instructions can never lead to a customer message. An answer intended for the customer can become a reply, usually phrased in the customer’s language. Make it clear whether you want information relayed, a private answer for your team, or no further customer contact.

Consultations, approval cards, and requests for human help work inside omotto even if you have never connected Telegram or Slack. An external mirror is an optional way to read and answer the same internal conversation from a staff group.

Staff replies from either external mirror must be plain text. Telegram voice notes, photos, documents, and their captions do not become staff answers. Slack messages that share a file are ignored, including any text sent with the file. Send the answer again as a separate plain text message.

A need labelled Message from an expert comes from an Expert working on a task. Answer the Expert’s question there and say if anything should also reach the customer. The Expert’s own team message is not automatically sent to the customer.

You can send the same kind of directive by assigning a ticket task to omotto under Assistant, or by typing @ and choosing omotto in a task, comment or reply. The task shows the directive, progress, questions and report alongside the internal channel. These are the same messages, not copies. Replying on the task is the same as answering in the internal channel.

omotto does not ask you to approve its wording or steps. A done report checks the task off and tags the assigner. If it cannot finish, it explains why and hands the open task back. When omotto stands down from a team request on its own, it can settle the task as Done or Let go, with an explanation; a task you assigned to omotto as a directive goes back to you instead. Waiting on you identifies a question needing an answer. If omotto asks which conversation to use, choose one on the task before work starts. See giving a task to omotto for the steps and what picked @omotto mentions do.

What you want Where to do it
Give information or instructions for this customer Write in the Internal channel. Say which need you are answering and what should happen next.
Ask a private question about this conversation Write the question in the Internal channel and say you want the answer here. Do not phrase it as a message to the customer.
Send your own reply to the customer Use the main customer message box and the human-control flow in Taking over a conversation. Internal messages are not direct replies.
Keep answering yourself while the bot stays quiet Take over the conversation. Sending an internal directive is not a takeover and does not by itself pause the bot.
Make a lasting change for future conversations Use the Coach and review any proposed change. A one-customer instruction is not automatically a saved business rule; see teaching and learning and the Handbook.
Get help from a courier, supplier, or other specialist Use the configured Experts workflow. Naming an Expert in an internal instruction is not proof that a message has reached them; check the task’s correspondence.

If an internal message offers Review in Coach, it opens a learning suggestion for your review. The link is not proof that anything was saved; check the review outcome in the Coach.

For example, “The replacement is available on Thursday; tell the customer” is customer-directed. “Check the order and report back here; do not contact the customer” asks for private work. Available actions still depend on the business’s connected features and your permissions. Read the response if the request cannot be carried out.

Internal conversation: Inbox → customer conversation → Internal channel. External connection: Settings → Chat services → Team channel. Staff language and conversation topics: Settings → Bot → Handbook → Where [bot name] communicates → With the support team. The heading uses your bot’s name. Alert recipients are under Settings → Notifications → Routing; personal delivery is under My account → Notifications.

The Internal channel already works in the Inbox; no outside connection is required for private discussion there.

Optional: add one external team channel in Telegram or Slack, choose staff language, and review notification recipients. If you choose an external mirror, complete only its matching connection procedure below. Personal alerts and posts in the staff group are separate delivery choices.

  • The internal channel lives inside a customer conversation, so you need at least one conversation in the Inbox to open it. You do not need an outside account for it.
  • To change the staff language or connect an outside mirror, you need permission to manage chat connections. If a control is missing, ask your workspace owner to check your permissions.
  • For a Telegram staff group: a Telegram account, a new dedicated staff bot from BotFather, and a private group of the people who should see customer-related internal work.
  • For a Slack staff channel: Slack’s permission to install apps in your Slack workspace, which may need an administrator, and a staff-only channel.

Start in the Inbox — no external connection needed

Section titled “Start in the Inbox — no external connection needed”
  1. Open the customer conversation in the Inbox.
  2. Click Internal channel, the headset button beside the customer message composer.
  3. Read the internal messages and the requests under Needs your attention, above the internal message box.
  4. If you are answering a particular need, click its title to expand and select it before typing. This identifies which request your answer is about.
  5. Write in Guide the agent and click Send directive.
  6. Read the bot’s response and check the customer conversation if you expected a customer reply.

The placeholder changes to To change it, type instructions when an approval is waiting. It is still the internal message box, not a direct customer reply.

If you answer the bot’s request while you hold the conversation, that answer can hand control back so the bot can pass it on. An answer, approval decision or directive from another or unidentified teammate leaves takeover in place. The team thread says it is held, explains why, and names the teammate who took over. It will be sent when takeover ends. See answers during takeover.

Several requests can belong to the same conversation. Expand the additional waiting requests, or use Load more open needs, when needed. Earlier messages stay readable. Show earlier updates lets you inspect previous wording when a need has changed; Answered an earlier version warns that an answer referred to an older version, not necessarily today’s request.

This is a staff bot, separate from the Telegram bot your customers talk to and from your personal Telegram notification connection. Do not reuse a bot token already connected for another purpose.

  1. In Telegram, open the official @BotFather.
  2. Send /newbot and follow Telegram’s prompts to create a dedicated staff bot. BotFather gives you a token: the secret that lets omotto connect the bot.
  3. In omotto, open the Team channel screen listed above.
  4. Under External staff mirror, choose Telegram if the transport picker is shown.
  5. Paste the token in Bot token.
  6. Click Connect or Update token, as shown.
  7. Add this staff bot to a Telegram group used only by the people who should see customer-related internal work.
  8. Send /register in that group.
  9. Return to omotto and check for Connected and Group registered. Connecting the bot and registering its destination group are separate steps.

Never paste the token into a customer conversation or the Coach. Telegram’s bot guide warns that anyone with it can control the bot. If it is exposed, replace it through BotFather and update it in omotto.

Topics are named discussion areas inside a Telegram group. To use Use a topic per customer conversation, the group must have Topics enabled and the bot must be an administrator with Manage Topics permission.

  1. Enable Topics in your Telegram group’s settings.
  2. Give the staff bot the Manage Topics administrator permission.
  3. If omotto shows a BotFather setup warning, complete the bot-rights setup it describes.
  4. Send /register in the group again so omotto checks the permissions again.
  5. In the Handbook’s team settings, open the topics value, enable Use a topic per customer conversation when available, then choose Save. On the connection page, the same switch saves immediately; Connect and Update token are not its save buttons.

If topic creation is unavailable, the switch may be disabled with setup guidance. If creating a topic fails, internal requests can appear as ordinary group messages instead. You can leave the option off and continue using replies to the relevant message.

Each topic is named for the customer (a visitor with no name shows as Website visitor with the time they arrived). Its first message has an Open conversation button that opens the conversation in omotto. When the bot updates a request, the message shows how many times it changed and a See edit history button.

Slack is a separate workplace messaging service. This option appears only when it is available in your omotto workspace. If Slack is absent, use the in-app channel or Telegram, or contact support.

  1. Open the Team channel screen listed above.
  2. Under External staff mirror, choose Slack.
  3. Click Add to Slack.
  4. Follow Slack’s prompts to authorize omotto for the intended Slack workspace. Your Slack workspace may require an administrator’s approval to install apps.
  5. After returning to omotto, choose the staff destination under Choose a channel.
  6. Click Save channel.
  7. Check the displayed Workspace and Channel.

For a missing private channel, add the omotto app to that channel in Slack, then refresh omotto. Slack’s guide to apps explains adding an app through the channel header’s Agents & apps tab or by mentioning it. omotto also shows the shortcut /invite @omotto. If the channel is already assigned to an Expert, choose another channel.

Keep the destination limited to staff who should see the information. To answer a particular request:

  1. Open its Slack thread.
  2. Copy the reference and colon shown in the request’s instruction about how to start your reply.
  3. Start a new plain text message with that copied prefix, then write your answer.

Several requests can share the same thread. The displayed prefix identifies the request you mean. An ordinary thread reply without the prefix can still be interpreted by the bot, but does not explicitly select a particular request. Do not post the answer as an unrelated channel message.

Optional: review who receives handoff alerts

Section titled “Optional: review who receives handoff alerts”
  1. Open workspace notification Routing at the location listed above.
  2. Review recipients for Conversation needs attention and Internal channel needs a human.
  3. Check the recipient count and names, or the record-based route when offered.
  4. Review Per-type overrides for alerts that need different people.
  5. Ask each responsible teammate to check their personal notification delivery preferences.
  6. When a new request is raised, check whether the chosen staff group or channel receives its post as well as whether the intended people receive their alerts.

These are different destinations. An external team channel does not choose personal alert recipients. A personal notification switch does not establish a group connection. Requests still appear in the Inbox when no external mirror is connected. If an expected external post is missing, check that mirror connection separately; a personal notification does not prove the group received a post.

  1. Open a customer conversation, choose Internal channel, send a short Send directive, and read the bot’s response in the internal history.
  2. For a Telegram mirror, check that omotto shows Connected and Group registered. Then, when the bot next sends a new request, check that it appears in the staff group.
  3. For a Slack mirror, check the displayed Workspace and Channel, then, when the bot next sends a new request, check that it appears in that channel.
  4. Reply to a request from the staff group, (in Telegram reply to the request’s own message; in Slack start with the displayed prefix), and check that omotto shows your answer in the internal history.

Accepted in the internal history, understood by the bot and received by the customer are three different outcomes. See Check feedback and delivery below.

For when the bot asks for help, team hours, reminders, and handback, see Support Team.

Setting or control What it does Default or initial state
Staff group language Language used for the bot’s questions and messages to staff, independent of the customer’s language. Choose English, Hebrew, or Follow organization default (language). Inherited language follows the workspace’s language; English is the fallback if that language is unsupported. In the Handbook editor, choose Save. On the connection page, the selection saves immediately. Follow organization default. Applies even without an external mirror.
External staff mirror Optional connection for reading and answering internal requests outside omotto. No mirror is required or automatically connected.
Mirror transport Choose Telegram or Slack, when Slack is offered. Only one external mirror can be active for the workspace. The picker only changes the setup form shown; selecting a service does not save or establish a connection. Telegram is the initial choice before a connection. Disconnect the active mirror before switching.
Bot token Secret supplied by Telegram to connect your dedicated staff bot. Keep it private. Use Connect, or Update token for an existing connection. Leave the saved masked value untouched to keep it. No token on a new connection.
Use a topic per customer conversation Telegram only. Uses a Telegram topic to keep the customer’s internal conversation together. Related requests for that conversation can share the topic; it is not a separate topic for every message. With the option off, requests appear as ordinary group messages. In the Handbook editor, choose Save; on the connection page, the switch saves immediately. Initially follows whether the registered group has Topics enabled, until you choose a value yourself.
Choose a channel / Save channel Slack only. Selects the staff channel after workspace authorization. No channel is selected on a fresh installation.
Show advanced options / Hide advanced options Shows or hides read-only connection information for support. It is not a separate connection method you need for normal setup. Hidden initially.
Disconnect Stops the selected external mirror after confirmation. It does not remove the in-app internal channel. Available when there is a connection to disconnect.

Changing the staff language or mirror requires permission to manage chat connections. Sending directives and manually closing needs require the conversation takeover permission; that permission does not mean every proposal can be approved. Ask your workspace owner if a control is missing or disabled. See Permissions and Team members and groups.

Choose only the options that fit what you want this feature to do.

  1. Choose the Staff group language that your team reads best.
  2. Set when the bot asks for help, team hours and handback in Support Team.
  3. Check notifications so people hear about new needs.
  4. Add Experts for outside questions, and review taking over a conversation for times staff answer the customer directly.

Answering a need and correcting an earlier answer

Section titled “Answering a need and correcting an earlier answer”

An open need is a specific request for your team’s help, not the whole customer conversation. Read its current wording before answering. Explain the useful facts, not just “done,” if the customer still needs an answer.

Ordinary staff answers may be rephrased for the customer. If the exact wording matters, explicitly say that these are the words to send. Do not put private commentary inside that quoted customer text.

To correct an earlier answer, send a new internal message that identifies the earlier answer and gives the corrected facts. For example, “Correction to my answer about delivery: Friday, not Thursday; the other details are unchanged.” This is not an edit or deletion of a message the customer already received. Check the resulting customer reply, especially if the earlier information was already sent.

In Telegram, reply to the specific request or answer you mean. In Slack, follow the displayed reply-prefix instruction described in the setup steps above. This is particularly important when several needs share a thread. A direct message to the staff bot is not a general-purpose assistant chat.

Some actions require a human decision. The customer conversation points you to the internal channel; the decision controls are on the waiting proposal there.

  1. Open the proposal’s Decide menu.
  2. Choose Proposal details and read the action, its values, and any warning.
  3. Choose Approve to authorize the displayed proposal, or Decline to refuse it.
  4. If the values are wrong, write the changes in the internal message box instead of approving the old values.
  5. When an updated proposal appears with Revised, review its new details and make a fresh decision.

Giving changes in prose does not silently execute the revised action. It creates an updated proposal for confirmation. An approval is also not proof that the action or its customer message succeeded; inspect the outcome.

For a failed Custom API action, the internal channel shows the recent failure notes and a saved staff-only error copy when available. A connected staff mirror receives a failure notification too. Sign-in secrets and known customer details are hidden. The copy is not given to the bot or sent to the customer, even when the operation shares no response fields with the bot. If the body is missing, too large or unsafe to decode, a notice says it was omitted. Check the other system before repeating a server-error or uncertain action.

Approval access is separate from the ability to read the thread or send guidance. Some external approval buttons require you to confirm inside omotto, and outdated buttons cannot approve a newer version. Open the current proposal in the Inbox if you see a refusal. For who may approve and how requests are routed, see Permissions and Support Team.

An Expert review continues on another channel or is already closed

Section titled “An Expert review continues on another channel or is already closed”

An Expert review stays in the private internal channel. When the task has a saved continuation, the review shows where it started and where the customer continued. Open Expert task opens that task if you have access. The channel’s conversation button opens its saved destination and closes the panel without discarding your unsent internal draft. No tags or destination links appear without that saved connection.

An old review alert can open Nothing to do here anymore, with the recorded ending, actor when known and closing time. It is not an open request to act again. The ending remains available even if there is no continuation link. An available destination-conversation button can still take you to the customer.

Use Mark as handled beside a need when your team has already dealt with it or no longer needs to follow up. This closes that need, not the entire customer conversation or ticket.

  1. Click Mark as handled beside the correct need.
  2. Read the confirmation and confirm Mark as handled.
  3. If the customer was promised a follow-up, choose Handled elsewhere or Follow-up no longer needed.
  4. Add Details (optional) if useful for the team.
  5. Confirm Close anyway only if you really intend to stop that follow-up.

Nothing is sent to the customer. The closed need cannot be reopened with this control. If you still owe an answer, send or arrange that answer instead of using closure as a substitute. Another question or approval on the conversation may still be waiting. Merely opening the channel, reading a request, or taking over is not the same as resolving it.

An order change needs staff to check Shopify

Section titled “An order change needs staff to check Shopify”

For an unconfirmed order change, order details update or its payment/refund, the need is titled An order change needs confirmation — check Shopify. Check the order and finish any settlement in Shopify before marking the need as handled. Do not ask the bot to repeat the edit or send another refund. Only someone in the action’s current approval audience can close this need; access to the thread alone is not enough.

Marking it as handled records the human check. It does not send a new edit, payment or refund, and the bot cannot certify that check for you. If the customer still needs an answer, send or arrange it separately.

Keep these three outcomes separate:

  • The internal message was accepted. It appears in the internal history.
  • The bot understood or queued work. Read the internal response, including any explanation that something is blocked.
  • The customer received a reply. Check the actual customer message and its delivery status. A handled need or an internal acknowledgement alone is not delivery proof.

If Not routed — try again appears, use Retry in the internal channel. If a staff answer could not be sent, or the sent reply did not preserve the instruction, a notice may ask you to review the conversation. Inspect what the customer actually received before sending a correction or retrying.

When something meant for a customer was not sent, the customer conversation shows a short card that says what happened, for whom, and the one decision you need to make. If you open the alert after it was already handled, you still land on the same place, which then shows how it ended.

  • An answer that was never sent. If the bot did not send an answer that came from an Expert or a teammate, it appears in the conversation as a message marked Answer from ‹name› · not sent, with that person’s own words. If the bot gave a reason for holding it back, it appears after Why it held back:. If the customer has since moved to another channel, the card says so.
  • Send on ‹channel›… opens the conversation where the customer is now and puts those words in the message box, marked ‹name›’s words. Edit before sending. Nothing is sent until you press Send yourself. Edit the words first: they were written for the bot, not for the customer.
  • Not needed closes the item. Nothing is sent to the customer.
  • When the bot can try again (an unsent answer). For an unsent answer from an Expert or teammate, Re-enable guidance appears only when whatever stopped the answer has changed: you handed the conversation back, the customer’s 24-hour WhatsApp window opened again, or the bot was resumed. Otherwise there is nothing to retry, so the card does not offer it.
  • An instruction the bot couldn’t carry out. If the bot couldn’t carry out an instruction you gave for a conversation and told the team why, the card says so and offers Re-enable guidance or Not needed. Re-enable guidance is available right away: fix the cause first, then re-enable it to try again.
  • Waiting, paused or switched off. The card names the reason (for example, the customer has not written back yet, or the bot is switched off for this line) and says when the item will go out on its own.
  • Not sure it arrived. If omotto can’t tell whether the customer got it, the card says so. Check the customer’s channel before sending again.
  • Already handled. The card shows how it ended, for example Sent by ‹name› on ‹channel›, Marked not needed by ‹name› with the time, or Delivered automatically.

The matching note in the team channel names the conversation and, when the customer has moved, where they are now. It has the buttons Show it in the conversation and ‹channel› conversation. An Expert’s message that needs review stays in the team channel only. Once it is settled, it shows Nothing to do here anymore and how it ended. For held replies during a timeout or misuse pause, see Abuse protection and timeouts.

A warning about stopped recovery beside an internal message can instead concern delivery to the external staff mirror. The complete internal message remains available in omotto; that warning is not evidence that the customer received anything.

Telegram: Disconnect stops the staff mirror in omotto but keeps the saved token. It also attempts to stop Telegram forwarding messages to omotto; if that cleanup fails, Telegram may still retain the old connection. To reconnect the same bot, keep the saved token unchanged, use Update token, and check the group registration again.

Slack: Disconnect clears the mirror’s saved workspace, channel, and token. Reconnecting starts with Add to Slack and a fresh authorization, followed by choosing a channel. This is not the same as disconnecting the Slack connection used by Experts.

Disconnect after choosing a staff language

Section titled “Disconnect after choosing a staff language”

Your language preference is kept when disconnecting either mirror.

Disconnect the active mirror before connecting the other one. You cannot run a Telegram mirror and a Slack mirror together.

Telegram says this bot is connected to another service

Section titled “Telegram says this bot is connected to another service”

Check the address shown in the warning. Choose Connect here anyway only when you want this workspace to use the bot instead of that service. The other service will stop receiving messages for that bot. Editing the token cancels the pending confirmation. A bot already used elsewhere in this workspace must be disconnected there first.

A connected Telegram bot moved to another service

Section titled “A connected Telegram bot moved to another service”

omotto marks the connection as an error and stops taking it back automatically. To reconnect here, use Update token with the same token, then confirm Connect here anyway if asked. You do not need a new token. If the other service releases the bot, omotto may recover automatically. If it does not, reconnect here; for a team bot, check that its group is registered too.

A separate need asks you to check the conversation and reply if needed. The bot’s reply to the customer is not replaced by a generic failure message. Repeated failures are added to the same need while it stays open, without another immediate alert for each one. Open the conversation, handle any customer follow-up, then close the need when finished. If the problem returns after you close it, a new need can appear.

If you sent a voice note, attachment, or caption, resend the answer as a separate plain text message. In Slack, copy the displayed reference and colon to the start of your reply so it identifies the request.

Use the Internal channel in the Inbox. In-app help requests and approval controls remain available independently of the external connection. Check the connection error, group membership, and permissions before reconnecting.

If registration, authorization, or delivery keeps failing, contact omotto support with the visible error and the service involved. Do not send your bot token. For notification destinations rather than conversation guidance, see Notifications.