Appearance
Sales troubleshooting
Start from the symptom. Each table lists the causes in the order they are most often the answer, how to recognise each one, and where to fix it.
Where to look first
| Place | What it tells you |
|---|---|
| The chat's Activity tab (client card) or the inline events | Every mode switch, outreach attempt, follow-up decision, send error — with the actor and a reason |
| Debug switch in the chat header | Tool calls, model retries, trimmed context, and follow-up entries that are hidden by default |
| Notifications (bell) | Disconnected channels, failed processing, balance, failed Lead Form outreach |
| Automation status card on Automations | Queued / Processed / Failed / Skipped for each automation, with the last errors |
| Outreach Results on an immediate campaign | Per-recipient Sent / Failed / Skipped with the error text |
| Order history and a product's Change history | Who changed a status or stock, and when |
The assistant does not reply
| Cause | How to recognise it | Fix |
|---|---|---|
| Balance is zero | Sidebar shows "0 AI replies remaining"; chat header banner "Agent … is switched off … top up the balance if it ran out"; bell has a payment entry | Top up. AI sales assistants muted for billing reasons come back on their own within the hour — unless you had switched them off by hand. See Balance & billing |
| Status switch is off | Agents page reads "Agent … is paused" | Flip it. If the account has no plan you get "active subscription required to enable agent" |
| Outside Work Hours | Same paused label, flips by itself at the schedule boundary | Expected — off-hours messages are not answered later either; have an operator sweep them or use follow-ups. Work Hours |
| Standard / Pro plan limit | A second assistant switches itself off within ten minutes of being enabled | Only the most recently updated assistant stays active on those plans; upgrade to Multipro for several |
| Channel is off | On Channels the channel's Connect agent to this channel switch is off. A connected WhatsApp, Instagram or Messenger channel that is off shows "Your assistant isn't answering on … yet." with a Switch it on button | Flip it on. Saving or updating a channel's credentials in its settings form switches it off — re-enable after every credential edit. Connecting an already connected WhatsApp number or Messenger page again keeps its on or off state |
| Channel disconnected | Bell shows disconnect_alert; the channel card reads Incomplete / needs reconnect | Reconnect on Channels. The alert repeats only after the next failure |
| Chat is in Operator mode | Header reads "AI … is off"; the chat sits on the Operator tab | Flip the chat's AI switch, or wait for Auto return (24 h by default). To bulk-return chats use Settings → Chat Actions — chats the assistant itself escalated stay with the operator |
| Chat is marked as spam | Amber banner in the header; the chat is only on the Spam tab | Restore to work on the Spam tab |
| Messaging window closed (WhatsApp, Messenger) | Composer reads "Waiting for the customer to write"; sends fail | Business-initiated messages need an approved template — see WhatsApp |
| Message could not be processed | Bell shows handle-chat-…; after retries …-abandoned and the chat is flagged for Attention | The client's text is saved in the chat — reply by hand; if it repeats, check the model/tool errors with Debug |
| The assistant chose not to answer | Activity shows the end_conversation tool (with User can have last word in a chat on) | Intended behaviour; turn the option off under Reply & Tools if unwanted |
| Contact blocked the bot | Red dot on the channel icon in the chat list | Nothing to fix on your side; outbound waits until they unblock |
The assistant replies in a chat a person took over
| Cause | How to recognise it | Fix |
|---|---|---|
| Auto return gave the chat back | The chat's activity shows "Chat automatically returned to AI mode" with the interval that applied. Auto return only runs while Auto return from handoff is ticked, so the setting was on at that moment, even if it is off now | Turn the chat's AI switch off again. Turning auto return off does not take back chats it already returned. To keep chats a person switched off with the AI switch, tick Keep chats switched off by hand in operator mode; chats the assistant handed over still return after the interval. See Handoff Control |
| Many chats came back at once | Several "Chat automatically returned to AI mode" entries within the same minute, some after days in operator mode | Someone ticked Auto return from handoff, shortened the interval, or unticked Keep chats switched off by hand in operator mode. These settings apply to chats already in operator mode, counted from the handoff or the operator's last message, not from the save. The returned chats leave the Operator tab; turn each one's AI switch off again |
| The manager wrote from the channel's own app | No mode switch in the activity after the manager's message (their phone, the native inbox) | Expected when a stop word is set: only a message containing the stop word hands the chat over. Turn on Implicit operator handoff (it clears the stop word) if any manager message should take the chat over. Replies sent from Active chats always take it over |
A follow-up never fired
Work through the entries in the chat's Activity tab — Follow-up scheduled, Follow-up postponed, Follow-up not scheduled, Follow-up step sent — each carries a reason. If there is no entry at all, the sequence never matched.
| Cause | Reason shown / how to tell | Fix |
|---|---|---|
| The sequence is a draft | Draft chip on the Outreach list and on the assistant's Follow ups card | Publish it |
| Not attached to the assistant that owns the chat | The assistant's Toolkit → Follow ups does not list it | Attach it there — a missed call lands in the voice assistant's chat, so attach to that assistant |
| The client does not carry the status / labels | not scheduled with Requires vs Client has labels; with several labels check the and / or switch in the start node | Fix the tagging instructions or the targeting |
| Another follow-up won | not scheduled — superseded / replaced | A conversation runs one follow-up at a time; the one with the shortest entry delay wins. Narrow the targeting |
| The client replied | The sequence completed or moved to the reply branch | Intended: silence is the only trigger |
| Outside Follow-up hours | postponed — Outside working hours; retried three hours later | Widen the hours or accept the delay |
| Assistant or channel is off | postponed — assistant off / channel off; dropped after too long | Turn them back on; the parked step resumes |
| The channel moved to another assistant | The follow-up completed silently | Reattach the sequence to the new assistant |
| Chat is in a Telegram funnel, spam, or Operator mode | No entry while the condition holds | Funnels pause follow-ups until they end; restore from Spam; return the chat to AI |
| Already ran on this chat | The sequence is in the chat's completed list | Sequences run once per conversation — use a new sequence or Clear chat history (destructive) |
| Delay looked shorter than what happened | A later step set to under five minutes sent after five | Steps after the entry step have a 5-minute floor, so two messages never land together |
| Message could not be delivered | sent via … — … would not take it, or could not be delivered — no channel left to try | Add channels to the step's Send via channel(s) or the channel's Follow-up settings; enable the delivery-failure instruction |
| Every channel in the step's channel list failed, no delivery-failure instruction | Outreach send failed, its summary ending with all outreach channels failed: and each channel's reason, then either Follow-up postponed with reason send_failed (retried every hour, dropped as Follow-up not scheduled send_failed_too_long after 72 hours) or, when every channel failed because of the contact (not on the messenger, restricted, no phone or address on the card, unreachable) or cannot start a conversation on its own, the sequence completes | Fix the contact data or the channel, or add another channel to the step's Send via channel(s) or the channel's Follow-up channels list. See Why a step did or did not send |
Full rules on Follow-ups & Outreach.
An outreach or broadcast did not reach someone
| Status in Outreach Results | Meaning | Fix |
|---|---|---|
| Failed | A send was attempted and the channel refused — the Error column has the platform's reason (blocked, not on the messenger, restricted, invalid number) | Fix the contact data or pick another channel; enable Outreach failure alerts on the assistant to hear about these in Telegram |
| Skipped | Nothing was attempted: the person stopped matching the filters between saving and their turn, or the lead was deleted | Expected with a static audience; re-run with fresh filters |
| Not in the list at all | The audience is frozen when you save — people who started matching later are not added | Create a new campaign |
| Not in the list at all, though they match the filters | Someone removed them in the Audience Preview — a removed client is never messaged and never shows as Skipped | Click Restore all while the outreach can still be edited, or create a new campaign |
Other frequent causes:
- Channel order — with several channels the first success stops the rest; a contact with only an email never reaches a phone channel.
- No cold outbound on bot channels — WhatsApp (official), Instagram, Messenger, Telegram bot, Viber bot, TikTok and the widget only deliver where a chat already exists.
- Personal WhatsApp spam restriction — heavy outbound queues for 24 hours with a "Sending is temporarily restricted" status.
- Sending window — messages wait for the window to open; without a timezone the window is read in UTC.
- Assistant inactive at run time — the whole campaign goes to Failed with that reason in the header.
- Failed first-touch attempts leave empty chat stubs in Active chats — hide them with the Hide failed outreach filter.
The numbers don't match
| What you compared | Why they differ |
|---|---|
| The All tab unread pill vs the chats you see | The pill and the sidebar badge count every non-spam chat in the account, ignoring filters, tab and Access scope |
| Attention badge vs rows | The badge is a live count of flagged chats; if the first page comes back empty the badge is forced to 0 |
| Unread after Mark as unread | That action sets the count to the whole history length of the chat, not the real unread number |
| Executed on the Outreach list | Postponed: conversations that completed the whole sequence. Immediate: delivered in the last run (reset when a run starts) |
| Leads "missing" from the Leads page | The page opens with a Date created: last 3 days chip — clear it |
| Board column badge vs the list total | Column badges come from the counts endpoint; a search on the board switches to a flat fetch and counts loaded cards |
| Dashboard tiles vs your own count | Default range is the last 7 days in Europe/Kiev; only billable usage counts (test chats, call openers and analytics are excluded); Active chats counts only chats created in the range; Average chat msgs rounds down |
| Orders "Showing X–Y of Z" vs visible rows | The Status category and Manager filters apply to the fetched page only; Z is the unfiltered total |
| Product list total vs rows | The Warehouse filter applies to the current page only |
| Total in stock vs the warehouse breakdown | Stock lines whose warehouse was deleted still count in the total but have no row |
A lead is missing or duplicated
| Situation | Explanation |
|---|---|
| A lead you know exists is not on Leads | Clear the Date created chip; check your Access scope (leads are visible if they sit in one of your pipelines or have a chat on one of your assistants) |
| Create external lead said "Lead created" but nothing new appeared | Same phone or email already existed — the platform updated that lead instead of creating a duplicate |
| Editing a phone fails with "Phone number already in use" | Another lead owns it; the dialog offers to merge the two |
| A CRM or import sent an email that never showed up | When the email belongs to another lead, non-interactive writes drop the email silently and save the rest |
| Two leads for one person | They were created with different identifiers (phone vs email) — use Merge leads from the lead record; chats, notes, tasks and orders move to the survivor |
| A WhatsApp chat has the customer's name and username but no phone number | The customer uses a WhatsApp username and Meta didn't share their number. Lookups by phone don't find the chat until Meta does. See Customers with a WhatsApp username |
| Two WhatsApp chats for one customer, one of them without a phone number | The customer switched to a WhatsApp username, and their first message after that came without a number. See Customers with a WhatsApp username |
| A webhook lead exists on Leads but has no chat | Capture only mode saves the lead and sends nothing; use the record's outreach buttons to start a conversation |
| A form lead was counted Skipped by the automation | Either no identifier usable by the selected channels (no phone for WhatsApp, no email for Gmail), or the linked agent was off when the form email arrived — in Collect and send instant outreach mode, or in either mode when the agent was stopped for billing or moderation. In the second case the bell has an outreach alert ending in "agent is off" (or "agent is off (<reason>)"); switch the agent on (or top up) and re-submit the form, because the skipped email is not reprocessed. A Collect leads only automation still captures leads while the agent is switched off by hand or outside Work Hours — see Lead Form Instant Outreach |
A booking landed wrong
| Symptom | Cause | Fix |
|---|---|---|
| Booked hours away from what the customer said | The calendar's Timezone is still UTC | Set it on the Calendar integration; the grid displays in the calendar's zone |
| "This time slot conflicts with existing event …" on + New Event or after a drag | The slot overlaps another booking for the same staff member (cancelled events don't count) | Pick another time; group classes are gated by seats instead |
| The assistant offered a day, not a time | A service of 24 hours or longer is booked by the day (Check-in / Check-out) | Expected; shorten the service duration for hourly slots |
| "A booking cannot span more than 90 days" | Stays are capped at 90 calendar days | Book in parts |
| The customer never heard about a change you made | Staff-side edits, drags and cancellations send nothing | Message them from the chat — View Chat on the event |
See also
- Chats & client analytics — tabs, badges and the Attention queue.
- Follow-ups & Outreach — the full runtime rules and limits.
- Automations — status card states and retry semantics.
- Balance & billing — zero-balance behaviour and recovery.
- Notifications — what each alert means.
- Leads & Pipelines — filters, merge, import and dedupe rules.
- Calendar — timezone, conflicts and stays.
- Search troubleshooting — when the assistant can't find a product.
- Agents troubleshooting — the Agents Platform counterpart.
