Send Facebook Group Posts to GoHighLevel (Inbound Webhook)
With the Groups Watcher Pro plan, you can send new Facebook group and page posts into GoHighLevel by using a custom webhook. In GoHighLevel, create a workflow with an Inbound Webhook trigger (method POST), copy the trigger URL, and paste it into Groups Watcher. Most alerts arrive in under 60 seconds.
This feature is available on the Pro plan. Check pricing here.
Set up GoHighLevel inbound webhook
- In GoHighLevel, open Automation > Workflows and create a workflow.
- Add trigger: Inbound Webhook and choose POST.
- Copy the webhook URL generated by GoHighLevel.
- In Groups Watcher Dashboard, choose Custom webhook and paste that URL. If you do not have dashboard access yet, you can test your webhook by clicking Send test webhook below.
- Send a test webhook so GoHighLevel captures the payload and exposes mapping references.
- Add actions like Create/Update Contact, Add Note, or pipeline updates, then map incoming fields from the webhook trigger.
- Save and publish the workflow.
Test your GoHighLevel webhook
Use the button below to send a sample payload to your GoHighLevel inbound webhook URL. Choose the sample that matches your campaign mode (default single post or all posts), then confirm the request appears in GoHighLevel references for mapping.
Request
- Method:
POST - Headers:
Content-Type: application/json - Body: Structured data with either
message+data(one post), ormessage+posts+ a top leveltimestampwhen your Groups Watcher webhook is set to receive all posts (see Batched payload). Full reference: Custom webhook.
Payload (for GoHighLevel mapping)
In the default format, GoHighLevel receives message and data. Use data.poster_name, data.post_url, data.body, data.group_name, and related fields in your contact and follow-up actions.
Depending on your campaign, Groups Watcher sends one of two layouts of structured data. Default means one post per request with message and data (posts that pass keywords or AI validation). All posts means a batched body with message, a posts array, and a top level timestamp. See Single post and Batched payload below, or the full write-up on Custom webhook.
Single post per request (default)
Each POST has a short message and a data object with all post fields.
{
"message": "<string>",
"data": {
"group_name": "<string>",
"group_id": "<string>",
"poster_name": "<string>",
"poster_url": "<string>",
"post_url": "<string>",
"group_url": "<string>",
"post_id": "<string>",
"post_type": "regular_post" | "marketplace",
"body": "<string>",
"images": ["<url>", ...],
"videos": ["<url>", ...],
"timestamp": "<ISO 8601 string>"
}
}Batched payload (all posts)
When your custom webhook is set to receive all posts, we send one POST per batch. The message summarizes the count (for example 1 new post in your groups or 3 new posts in your groups). Each element of posts uses the same field names as data above, as a flat object inside the array. The top level timestamp is when we sent the webhook.
{
"message": "2 new posts in your groups",
"posts": [
{
"group_name": "<string>",
"group_id": "<string>",
"group_url": "<string>",
"poster_name": "<string>",
"poster_url": "<string>",
"post_url": "<string>",
"post_id": "<string>",
"post_type": "regular_post" | "marketplace",
"body": "<string>",
"images": ["<url>", ...],
"videos": ["<url>", ...],
"timestamp": "<ISO 8601 string>"
},
{
"group_name": "<string>",
"group_id": "<string>",
"group_url": "<string>",
"poster_name": "<string>",
"poster_url": "<string>",
"post_url": "<string>",
"post_id": "<string>",
"post_type": "regular_post" | "marketplace",
"body": "<string>",
"images": ["<url>", ...],
"videos": ["<url>", ...],
"timestamp": "<ISO 8601 string>"
}
],
"timestamp": "<ISO 8601 string>"
}Slack, Discord, ntfy, and Teams use different formats. The examples above apply when your automation receives a webhook URL from Groups Watcher (including via Zapier, Make, or n8n).
The field reference table below describes data.* for the default format. For batched all posts, each element of posts uses the same keys as data (flat objects in the array).
Frequently asked questions
How do I connect Groups Watcher to GoHighLevel?
Use a GoHighLevel workflow with an Inbound Webhook trigger. Copy the webhook URL from that trigger and paste it into your Groups Watcher Pro custom webhook settings. Each new Facebook group or page post is sent to that URL in under 60 seconds.
Should I use POST, GET, or PUT in GoHighLevel?
Use POST for this integration. Groups Watcher sends structured JSON data to your GoHighLevel webhook URL via POST.
How do I map fields in GoHighLevel?
After GoHighLevel receives a sample webhook, add actions such as Create/Update Contact or Add Note. In field mapping, choose values from the inbound webhook trigger such as data.poster_name, data.post_url, data.group_name, and data.body.
Can I test before going live?
Yes. Use the Send test webhook button on this page to send a sample payload to your GoHighLevel webhook URL, confirm references appear in the workflow, then save and publish.
Can I use Groups Watcher for brand mentions on Facebook?
Yes. Teams use Pro to watch groups and pages where people talk about a brand, product, or competitor. Add keywords or AI filtering so you see the conversations that matter. Most alerts reach you in under 60 seconds through email, webhooks, Slack, and the other channels in these guides.
Pro plan only. GoHighLevel works through the same custom webhook integration used by Pro. Need help? Contact support@groupswatcher.com.