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, split it with a Condition on the message source, and add a POST webhook per branch to the DM Champ incoming custom channel endpoint with your API key.
Under Settings, Developers and API, create a new inbound webhook, name it and copy its URL. This is what DM Champ will call when it sends a reply.
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 with a Customer Replied trigger for each channel you want covered, optionally filtered by contact tag. A Condition action splits by message source, and each branch posts to the DM Champ incoming custom channel endpoint with your API key in the URL. Each webhook carries a message identifier, the GHL contact id, your user id, the body, the channel and the message type.
Direction twoCreate an inbound webhook in GHL under Settings, Developers and API, 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. A second GHL workflow, triggered by that inbound webhook, finds the contact by id and routes the body to the right send action.
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 API key in the webhook URL and the GHL workflow logs. If nothing reaches GHL, check the inbound webhook URL is on the Custom channel card and is active. 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.