Home/Help Center/AI not replying

Automation

AI Is On But Not Replying: the 8-Gate Checklist

Eight code-level checks, in order, for why an AI chatbot that looks fully configured is not answering a customer on WhatsApp, Instagram, Messenger or your website.

By Chirag Darji · Updated 27 Aug 2026 · 7 min read

On this page
  1. Before you start
  2. Steps
  3. What you will see
  4. Settings and options
  5. Troubleshooting
  6. Related reading
Chat widget setup in VGraple CRM: appearance, welcome message, position and AI settings

An AI chatbot that looks fully set up but never answers a real customer almost always fails at one specific, checkable point in the pipeline. This article walks through all eight gates a message passes on the way to a reply, in the order the platform actually checks them, so you can find the real cause instead of guessing.

AI not replying: first 5 of 8 steps

  1. 1Gate 1: channel toggle
  2. 2Gate 2: AI provider key
  3. 3Gate 3: plan gate and grandfathering
  4. 4Gate 4: takeover pause
  5. 5Gate 5: contact blocked or opted out
The steps on this page, in order.

Before you start

  • Work through the gates in order. Later gates never run if an earlier one already stopped the message, so checking gate 6 first when gate 2 is the actual problem wastes time.
  • Have the specific conversation open in the inbox while you check; several gates are visible directly in the conversation header or the flow's own configuration.
  • Know which channel is affected. WhatsApp, Instagram/Messenger, and the website widget share some gates and differ on others, most importantly the plan gate.

Steps

  1. Gate 1: channel toggle (bot availability). Open the conversation header. If the AI indicator shows as plain text rather than a clickable chip, no bot is bound to this channel at all: on WhatsApp, no active flow has a matching keyword or catch-all trigger; on Instagram, Messenger or web chat, no bot is configured or connected. Fix this before checking anything else.

AI and flows settings in VGraple CRM with provider keys and the Cron secret

  1. Gate 2: AI provider key. In Settings, then AI & Flows, confirm at least one of Anthropic, OpenAI or Groq has a working key. The AI Response node falls back automatically to any other configured key, but at least one must exist; with none, WhatsApp gets a generic apology reply instead of silence, which can look like the bot is "on" but broken rather than unconfigured.
  2. Gate 3: plan gate and grandfathering. This gate applies to the website chat widget's AI, AI reply suggestions, conversation summaries, and the AI debugger, all of which need the Growth plan or above, or grandfathered access from before the gate shipped. It does not apply to the AI Response flow node used on WhatsApp, Instagram or Messenger, which only needs a key. A silent website widget on a Free or Starter plan is very likely this gate.
  3. Gate 4: takeover pause. Check the conversation header again for "Paused" instead of "AI On." Any manual reply a human agent sent in this conversation pauses the bot for the rest of it until someone resumes it. See AI takeover pause for the full mechanism.
  4. Gate 5: contact blocked or opted out. The flow executor checks opted_out_at and is_blocked on the contact before running any node, including the AI Response node, every single time, not just at the start of a run. A contact who has sent STOP, or been manually blocked, gets no automated reply by design; this is correct behavior, not a defect.
  5. Gate 6: debounce and supersession. WhatsApp holds up to 4 seconds after the last message in a burst before generating a reply, then re-checks for an even newer message immediately before sending. Combined with 10 to 15 seconds of generation time, a real reply can take 15 to 20 seconds to arrive after a burst; this is working correctly, not stalled.
  6. Gate 7: matching trigger (WhatsApp specifically). Confirm the flow's trigger actually matches what the customer sent. A keyword flow only fires on its exact keyword list; if no keyword flow matches, a catch-all (any-message) flow only fires if one exists and is active, and is suppressed entirely while the same contact has an active sequence running.
  7. Gate 8: knowledge base scope and relevance. If the bot answered but generically, or admitted it does not have the detail, this is not silence, it is the knowledge base gate: no source is attached to this specific node or widget, the attached source is scoped to a different bot, or nothing in it cleared the retrieval relevance threshold for this specific question. See knowledge base sources.

What you will see

Working through these gates in order almost always lands on exactly one cause, since each gate either stops the message outright (1 through 5) or delays and then answers it (6), or produces a reply that is technically present but unhelpful (8). A conversation that fails gate 1 never reaches gate 2 in the code, so if the toggle in step 1 already shows as plain informational text, nothing further down the list is relevant yet.

Settings and options

GateWhere it livesWhat passes it
1. Channel toggleConversation headerAn active flow (WhatsApp) or a configured, connected bot (Instagram, Messenger, website) exists for this channel
2. AI provider keySettings, AI & FlowsAt least one of Anthropic, OpenAI or Groq has a valid key
3. Plan gateOrg plan / billingGrowth plan or above, or ai_grandfathered setting, for widget AI, suggestions, summaries and the debugger only
4. Takeover pauseConversation headerai_paused is false for this specific conversation
5. Blocked / opted outContact recordopted_out_at is null and is_blocked is false
6. DebounceAutomatic, per message burstThe hold period (default 4 seconds) has elapsed with no newer message
7. Matching triggerFlow Builder (WhatsApp)An active flow's keyword matches, or an active catch-all exists with no competing sequence
8. Knowledge baseNode or widget settingsA relevant source is attached and scoped to this bot

Troubleshooting

SymptomLikely gateFix
AI toggle shows as text, not a clickable chipGate 1Set up an active flow with a trigger (WhatsApp) or connect a bot for that channel (Instagram, Messenger, website)
WhatsApp bot gives a generic apology instead of a real answerGate 2Add or repair an AI provider key in Settings, then AI & Flows
Website widget silent, WhatsApp flow bot works fineGate 3Upgrade to Growth or confirm grandfathered status; the plan gate does not affect the WhatsApp flow node
Conversation header shows "Paused"Gate 4Click it to resume, or leave it paused if a human is intentionally handling this conversation
No automated reply, and the contact recently sent STOPGate 5Correct behavior; do not attempt to route around it
Reply arrives 15 to 20 seconds after a message burstGate 6Correct behavior; only investigate further if replies never arrive at all
WhatsApp bot silent even though the flow is activeGate 7Confirm the trigger's keyword actually matches what was sent, and that a catch-all flow exists if the flow is meant to be general-purpose
Bot replies but gives a vague or generic answer to a specific questionGate 8Attach or correct the knowledge base scope; see knowledge base sources

Once you know which gate is failing, the deeper articles cover the fix in full: AI takeover pause for gate 4, and knowledge base sources for gate 8.

Frequently asked questions

My conversation header shows "AI On" but the bot never answered. What is the first thing to check?
Whether a bot is actually bound to that channel at all: on WhatsApp, an active flow with a matching keyword or catch-all trigger; on Instagram, Messenger, or the website, a configured and connected bot. The "AI On" chip only appears as a real control once a bot exists to control, so if it is showing, move to the next gate rather than assuming the channel itself is the problem.
Does a missing AI provider key look different from a plan gate?
Yes, in principle, but both can produce a generic apology reply on WhatsApp rather than silence, since the AI Response node has a hardcoded fallback message. On the website widget and reply suggestions, a plan gate returns an explicit upgrade error instead, which is easier to diagnose than a vague AI reply.
Why would the bot answer on WhatsApp but not on the website widget for the same organisation?
The AI Response flow node used on WhatsApp, Instagram and Messenger has no plan gate, only a key requirement; the website widget's AI does require the Growth plan or grandfathered access. An organisation on a lower plan with only a flow-based bot working, and a silent widget, is seeing exactly this gate in action.
Can a debounce delay look like the bot is not replying?
Yes, briefly. The default debounce holds up to 4 seconds after the last message in a burst before generating a reply, and generation itself can take another 10 to 15 seconds. A reply that takes 15 to 20 seconds to arrive after a burst of messages is working correctly, not stalled.
Does an opted-out contact ever get a silent bot as the actual, correct behavior?
Yes. A contact with opted_out_at set, or marked blocked, is skipped by the flow executor before any node runs, including the AI Response node. This is intentional: the bot must never message someone who has opted out, so a silent reply here is correct, not a bug to fix.
How do I tell a knowledge base gap from every other cause?
The bot still answers, just generically or with an admitted "I don't have that detail," rather than staying silent. If the customer got any reply at all, even an unhelpful one, the earlier gates (trigger, key, plan, pause, blocked) all passed; the remaining gap is in what the knowledge base actually contains.
Is there a single place that shows all eight gates at once?
No single dashboard covers all eight; they live across the conversation header (pause and channel toggle), Settings then AI & Flows (keys and plan), and the flow or widget configuration itself (trigger, knowledge base). This checklist exists because the causes are spread across several places by design, not one screen.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.