Triage new GoHighLevel conversations and draft the reply

By General Input

Every new inbound message gets sorted by intent, urgency and mood, with a ready-to-send reply waiting in Slack before anyone opens the inbox.

Integrations

  • GoHighLevel
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Customer Support

Watch my GoHighLevel sub-account and run every time a new conversation is started, using the new conversation poll trigger. The job is to triage every inbound message before anyone on my team has to read it, so nothing sits unanswered and my team only spends attention on the conversations that need a person.

When a conversation comes in, first pull the full thread with the GoHighLevel Conversations Get messages by conversation id operation so you can see what was actually said rather than guessing from a preview. Then look up the person behind it with the Contacts Get Contact operation using the contact id on the conversation. Note their name, the channel they came in on, their phone and email, and anything on the contact record that tells you whether this is a brand new lead or an existing customer.

Classify the conversation on three axes. Intent: new lead, booking request, support question, billing, or spam. Urgency: high, medium, or low, based on whether the person is waiting on us to act and how time sensitive their ask is. Sentiment: positive, neutral, negative, or angry. Reason from what the message actually says and what the contact record shows, not from keyword matching, and if the thread is genuinely unclear then say so rather than forcing a confident label.

Then draft a reply in our tone: short, warm, professional, plain language, no corporate filler. It should answer the actual question that was asked and end with one clear next step. Do not invent prices, availability, policies, or promises we have not made. If answering properly needs a fact you do not have, write the draft so it asks for that detail instead of guessing.

Decide whether the reply can go out on its own. Send it automatically only when every one of these is true: the message is either a simple FAQ you can answer confidently from what we have told you, or a plain acknowledgement such as a thank you or a confirmation; the sentiment is not negative or angry; this is not a high value opportunity; and the intent is unambiguous. When all of that holds, send the reply with the GoHighLevel Conversations Send a new message operation on the same conversation and the same channel the contact used.

Never auto-reply to anything angry, frustrated, or complaint shaped, anything that looks like a high value deal or a large opportunity, anything ambiguous or missing the information needed to answer, any billing dispute, refund, cancellation, or legal question, and anything that would commit us to a specific price, date, or promise. Those get drafted but held for a human every single time. When in doubt, escalate rather than send.

Post the result to our Slack channel using the Slack Bot Send a Message operation, formatted so a human can act on it in one glance: the contact name and the channel they came in on, a line carrying the intent, urgency, and sentiment labels, a one or two sentence summary of what they want, and then the draft reply set apart as a quoted block so it can be copied straight out. Finish with an explicit status line saying either that it was auto-answered and already sent, or that it is waiting for a human, and in that case a short reason why it was held back.

For spam, post a single line naming the contact and marking it as spam, and do not reply to it. Post exactly one Slack message per conversation so the channel stays readable, and if a thread has several messages already on it, triage the conversation as a whole rather than sending one alert per message.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them