Fix GoHighLevel AI Employee Not Responding in Conversations

by Fahim

A lead fills out a form, fires off an inbound SMS, and the conversation thread goes completely silent. You open HighLevel, check the conversation tab, and see unread messages piling up without a single automated reply from your AI Employee.

I ran into this exact mess last week on a client sub-account where the bot ghosted over 40 inbound SMS leads in an afternoon. After tearing through workflow logs, carrier delivery receipts, and sub-account settings, I tracked down the common failure points that kill HighLevel Conversation AI silently. Here is how to diagnose why your AI Employee went mute and get it replying again fast.

Smartphone screen showing an unanswered conversation thread with incoming SMS messages
Smartphone screen showing an unanswered conversation thread with incoming SMS messages

1. Verify the Three Global Switches in Conversation AI Settings

HighLevel splits AI config into bot personality, channel access, and operational modes. If any single toggle is off, the bot fails silently without throwing an error banner in the conversation view.

Head to Settings > Conversation AI > Bot Settings in your sub-account. Check these three settings first:

  • Bot Mode: Make sure this is set to Auto-Pilot. If it’s on Suggestive, HighLevel only drafts suggested replies in the chat box for human agents to review and send. If it’s set to Off, the engine ignores incoming messages entirely.
  • Supported Channels: Ensure the channel receiving messages (SMS, Live Chat, Facebook Messenger, Instagram, or WhatsApp) is explicitly enabled under the channel selector.
  • Conversation Snooze / Sleep Timer: Check the sleep duration field. The moment a human agent sends a manual message inside a thread, HighLevel kicks off a snooze window (often 24 to 48 hours by default) where the bot refuses to reply until that timer expires.

If you recently replied to a test contact from the desktop dashboard or mobile app, the AI Employee stepped aside and let you take over. Clear that contact’s snooze status or test using a fresh phone number.

2. Inspect the LC Phone Wallet and Conversation AI Billing

A silent AI Employee is often just an empty wallet. HighLevel runs Conversation AI queries against prepaid sub-account wallet credits or agency rebilling tokens. If the balance hits zero or an auto-recharge fails, AI queries drop silently without returning an error to the contact.

To check your balances:

  1. Go to Settings > Company > Billing (or at the agency level under Sub-Accounts > Manage Client > Re-billing).
  2. Check your current balance under LC Phone and Conversation AI credits.
  3. Review your auto-recharge trigger. If it’s configured to top up when the balance dips below $10, check whether the card on file was declined on the last attempt.

Take a look at the official HighLevel Help Center documentation on Conversation AI billing thresholds. If a sub-account processes 500+ messages a day, a tight $10 recharge threshold can easily stall your bot during traffic spikes while waiting on Stripe bank processing.

3. Fix Workflow Conflicts Between Global Autopilot and Bot Actions

One classic trap: running global AI Autopilot while simultaneously triggering a workflow that contains a Conversation AI action step.

When both systems fight over the same inbound message webhook, the workflow can intercept the event, kick off an unconfigured wait condition, or lock the thread state. If you route conversations through custom workflows, disable global autopilot to prevent race conditions.

Here is the standard payload structure you should watch for when inspecting inbound webhook events triggering workflow bot steps:

{ "type": "InboundMessage", "locationId": "loc_98a7bc12d3", "contactId": "cnt_45f8e120a4", "channel": "SMS", "body": "Hey, what are your weekend appointment slots?", "direction": "inbound", "status": "delivered"
}

If your workflow routes through custom middleware or webhooks before calling HighLevel, make sure your endpoints return a 200 HTTP response within 4 seconds. If your receiver hangs, check our guide on how to fix GoHighLevel webhook not firing issues to debug downstream execution blocks.

4. Clear Knowledge Base Parsing Failures and Silent Character Overflows

Your prompt and Knowledge Base docs might look fine on paper, but a botched web scrape or bloated context window will cause the LLM endpoint to drop the request without generating a reply.

Navigate to Settings > Conversation AI > Bot Trial. Paste the exact message your customer sent into the test box. If the test box spins forever or errors out, check your training data:

  • Crawled URLs: Look at your crawled pages under the Knowledge Base tab. If a URL shows a red warning or zero extracted characters, delete it and paste the raw text manually.
  • Document Uploads: Heavy PDFs with complex tables, images, or scanned layouts frequently fail text extraction, leaving the model with empty context.
  • Prompt Length: Keep your system prompt lean. If your custom prompt pushes token limits alongside large knowledge base chunks, the API call will time out under the hood.

For custom setups where you need reliable local processing without LLM timeouts, you can route messages to an external endpoint instead. Check our tutorial on building a local AI SMS auto-responder with Ollama and GoHighLevel for full control over the stack.

5. Check DND Status and 10DLC Carrier Filter Blocks

If the AI Employee logs a response in the background but the lead never receives an SMS, the AI isn’t broken—the carrier blocked the delivery. Inbound messages land fine, but outbound replies hit carrier spam filters or trip account-level Do Not Disturb (DND) flags.

To verify this, open the contact record in Contacts > Smart Lists:

  1. Look at the left-hand details pane. Make sure DND (Do Not Disturb) is not enabled for SMS or All Channels.
  2. If a contact ever replied with STOP, UNSUBSCRIBE, or CANCEL, HighLevel flips DND on automatically for compliance. The AI Employee will not send messages to contacts with an active DND flag.
  3. Check the thread for red exclamation icons next to outgoing messages. Hover over them to read the carrier error code (like Error 30007 or 30008 for unregistered A2P 10DLC traffic).

Refer to the HighLevel Developer API docs on message delivery statuses when troubleshooting programmatic outbound failures.

6. Write an Audit Script to Detect Stalled Conversations via API v2

Clicking through individual contact chats across dozens of sub-accounts is a waste of time. You can write a lightweight Node.js script using the HighLevel API v2 to scan conversation threads, flag inbound messages that got no response within 5 minutes, and alert your team.

Here is an audit script that pulls recent unreplied conversations:

import axios from 'axios';
const ACCESS_TOKEN = process.env.GHL_ACCESS_TOKEN;
const LOCATION_ID = process.env.GHL_LOCATION_ID;
async function checkSilentConversations() { const fiveMinutesAgo = Date.now() - (5 * 60 * 1000); try { const response = await axios.get('https://services.leadconnectorhq.com/conversations/search', { headers: { 'Authorization': `Bearer ${ACCESS_TOKEN}`, 'Version': '2021-07-28' }, params: { locationId: LOCATION_ID, limit: 20, sort: 'desc' } }); const threads = response.data.conversations || []; for (const thread of threads) { const lastMessageTime = new Date(thread.lastMessageDate).getTime(); const lastDirection = thread.lastMessageType; if (lastDirection === 'TYPE_INBOUND_SMS' && lastMessageTime < fiveMinutesAgo) { console.log(`[ALERT] Unanswered inbound thread: ${thread.id} | Contact: ${thread.contactId}`); } } } catch (err) { console.error('Failed to fetch conversation audit:', err.response?.data || err.message); }
}
checkSilentConversations();

If you run this in production, make sure your token refresh flow is dialed in so expired credentials don't kill your monitor. Follow our guide on GoHighLevel API v2 OAuth token refresh in Node.js to keep your audit workers running reliably.

If you need to batch-update contact tags or sync records during an outage, you can also push Google Sheets contacts to the GoHighLevel API with Apps Script to re-trigger paused workflows.

7. Recovery Checklist: Fix Your Silent AI Employee

Run through this quick checklist whenever an AI Employee goes silent:

  1. Switch Mode: Go to Conversation AI > Bot Settings, set the mode to Auto-Pilot, and click Save.
  2. Verify Channel Matrix: Confirm your target inbound channel (SMS/Webchat/IG) has an active checkmark.
  3. Check Snooze Timer: Drop the manual takeover snooze window from 48h down to 1h if your team views threads often.
  4. Top Up Wallet: Make sure LC Phone and AI balances stay above $5 with a valid card on file.
  5. Test in Sandbox: Run the prompt inside Bot Trial to confirm your knowledge base isn't throwing silent token errors.
  6. Check A2P 10DLC & DND: Confirm the contact doesn't have DND enabled and your sub-account A2P brand registration is approved.
  7. Inspect Workflow Action Steps: If using workflow bots, make sure there isn't a misconfigured Wait step blocking the Conversation AI action.

Frequently Asked Questions

Why does the AI Employee work in the Bot Trial tab but not over real SMS?

The Bot Trial tab only tests prompt generation against your knowledge base. It completely bypasses telecom networks, channel switches, agent takeover snooze timers, contact DND tags, and LC wallet balances. If Bot Trial works, the issue is almost always channel routing, carrier filtering, or billing.

How do I force the bot to resume after an agent sends a manual message?

When a human types a message, HighLevel pauses the bot for that contact. To wake it up immediately, open the conversation, check the top-right toolbar in the chat pane, and click Resume Bot. You can also lower the global snooze timer in Bot Settings.

Can I use custom fields inside the AI Employee prompt?

Yes. You can use standard merge fields (contact first name, booking calendar links, custom values) in your prompt. Just make sure those custom fields have fallback values. If an empty field breaks prompt formatting, the model can return an empty string.

Does the AI Employee work on unassigned conversations?

Yes. The AI Employee operates at the channel level across the entire sub-account regardless of user assignment, unless you explicitly added workflow logic that restricts bot actions to specific assigned users.

all_in_one_marketing_tool