Already running your business in GoHighLevel? Messages that come into GHL are forwarded to DM Champ for AI handling, and replies go back through GHL to the customer on the original channel. GHL stays your hub. DM Champ does the conversations.
How it worksWhat the setup actually looks like, from the connection screen to the first booking or record the AI handles in GoHighLevel.
In DM Champ, open Settings, Integrations, API Key. You also need a GoHighLevel account with permission to create workflows and manage webhooks.
Create a workflow with a Customer replied trigger per channel (Reply channel filter), split it with If / else on the workflow trigger, and add a POST webhook per branch to the DM Champ incoming custom channel endpoint with your API key.
Start a second workflow with the Inbound webhook trigger and copy its URL. This is what DM Champ will call when it sends a reply. Post one sample request to it and select that as the mapping reference so the trigger saves.
In DM Champ, go to Settings, Channels, scroll to the Custom channel card at the bottom, paste the GHL inbound webhook URL into Webhook URL and save.
Trigger a GHL workflow on that inbound webhook, find the contact by contact id, split on the channel value and send the body through the matching action. Turn Allow Re-entry on in both workflows.
Every screen and field is covered in the setup guide: GoHighLevel documentation.
What it doesA customer messages you on SMS, email, Messenger, Instagram or live chat in GHL. A GHL workflow forwards that message to DM Champ, which processes it with the AI, tags the contact and does whatever else you have configured. When DM Champ sends a reply, manually or from the AI, it notifies GHL, and a second workflow finds the contact and sends the reply out through the correct channel. You keep using GHL as your main hub.
Direction oneIn GHL you create a workflow and add the Customer replied trigger once per channel, each with its Reply channel filter set to that channel and optionally a contact tag filter. An If / else action splits on which trigger fired, and each branch posts to the DM Champ incoming custom channel endpoint with your API key in the URL. Each webhook carries only a message identifier, the GHL contact id, your user id, the body and the channel; an extra field such as a message type or status makes the request fail.
Direction twoIn GHL the inbound webhook is a premium workflow trigger: add Inbound webhook as the trigger of a second workflow and copy its URL. In DM Champ, open Settings, then Channels, scroll to the Custom channel card at the very bottom, paste that public HTTPS URL into Webhook URL and save. DM Champ then notifies GHL every time a message is sent to a contact, with the contact id, message id, user id, body, recipient id and channel. The trigger saves once GHL has seen one sample request, and its URL changes if you reselect the trigger, so paste the new one on the card if that happens. The workflow then finds the contact by id and routes the body to the right send action; the Messenger and Instagram send actions need that Facebook or Instagram account connected in GHL before the workflow publishes.
Two places people mix upThe API key you paste into the workflow URL lives under Settings, Integrations, API Key. The relay that sends replies back to GHL is set on the Custom channel card at the bottom of Settings, Channels. It is not the Settings, Integrations, Webhooks page. That page is a different feature for event notifications and sends a different payload, so pasting the GHL URL there means replies never arrive.
Be realisticIt involves building automated workflows and connecting systems with webhooks and API calls. If that is not your comfort zone, hand the help doc to a developer or a tech-savvy team member. Once it is wired, test each direction: send yourself an SMS and check it appears in Chats with the right channel label, then reply from DM Champ and confirm the customer receives it in GHL on the same channel.
When something is missingIf only the first message from each contact comes through, Allow Re-entry is off in the workflow settings and needs turning on in both workflows. If nothing reaches DM Champ, check the GHL execution logs: an Unknown field error means the webhook carries a field DM Champ does not accept, so remove it; otherwise check the API key in the webhook URL. If nothing reaches GHL, check the current inbound webhook URL is on the Custom channel card. If a contact cannot be found, the recipient id in the payload has to match an existing GHL contact id.
The same AI agent that closes $40K deals in DMs is one click away. No signup, no demo call: open the chat, push back, see if you can break it.