Facebook Groups Webhook Integration
With the Groups Watcher Pro plan, new posts from the Facebook groups and pages you monitor are sent to a webhook URL you provide—a straightforward integration for your app, script, or automation. We send the group name, post text, links, and related details with each update. Most alerts arrive in under 60 seconds.
This feature is available on the Pro plan. Check pricing here.
Test your webhook
Before or after configuring your endpoint, open Send test webhook. Pick the sample that matches your setup (single post or batched), enter your webhook URL, and we send a test POST so you can confirm everything works.
Request
- Method:
POST - Headers:
Content-Type: application/json - Body: Structured JSON with either
message+data(single post), ormessage+posts+ top-leveltimestampwhen keywords/AI are disabled and your webhook receives all posts in one request.
Payload
Use the sections below for the two custom webhook formats. Other channels (Slack, Discord, etc.) use their own payloads; this page focuses on your own HTTP endpoint.
Single post per request (default)
When your custom webhook is set to receive filtered posts (keywords and/or AI validation), each POST includes a short message and one data object. Map fields like data.group_name, data.post_url, and data.body.
{
"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>"
}
}This is the default webhook format and is sent one post at a time.
Batched posts (keywords disabled)
When you disable keywords in your campaign, we send webhook alerts in batches, so one request can include multiple posts in a posts array.
{
"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>"
}
],
"timestamp": "<ISO 8601 string>"
}Field reference (data object)
| Field | Type | Description |
|---|---|---|
| message | string | Summary line, e.g. New post in <group_name>. |
| data.group_name | string | Name of the Facebook group or page. |
| data.group_id | string | Facebook group or page ID. |
| data.poster_name | string | Display name of the person who posted. |
| data.poster_url | string | Facebook profile URL of the poster. |
| data.post_url | string | URL of the post (Facebook permalink). |
| data.group_url | string | URL of the group or page. |
| data.post_id | string | Facebook post ID. |
| data.post_type | string | Either regular_post or marketplace. |
| data.body | string | Full text of the post. |
| data.images | array of strings | URLs of all images attached to the post (may be empty). |
| data.videos | array of strings | URLs of all videos attached to the post (may be empty). |
| data.timestamp | string | When we sent the notification (ISO 8601). |
In batched mode, each object in posts uses the same keys shown for data above (group_name, post_url, body, etc.), plus a per-item timestamp.
Examples
regular post (with images)
{
"message": "New post in Tampa Bay Homeowners",
"data": {
"group_name": "Tampa Bay Homeowners",
"group_id": "123456789",
"poster_name": "Maria Johnson",
"poster_url": "https://facebook.com/maria.johnson",
"post_url": "https://www.facebook.com/groups/123456789/permalink/987654321012345/",
"group_url": "https://www.facebook.com/groups/123456789",
"post_id": "987654321012345",
"post_type": "regular_post",
"body": "Anyone have a good HVAC person in St. Pete? Our AC went out last night",
"images": ["https://scontent.xx.fbcdn.net/v/.../image1.jpg", "https://.../image2.jpg"],
"videos": [],
"timestamp": "2026-02-11T14:30:00.000Z"
}
}Example: n8n (Slack, Email, SMS, Discord)
You can use the webhook payload in n8n in several ways: post to Slack, send an email, send an SMS via Twilio, and post to Discord. Build a workflow with a Webhook trigger, then add the branches you need. Save the workflow in n8n before testing the webhook URL.
Frequently asked questions
What does the Groups Watcher Pro webhook send?
Each alert is an HTTP POST to your URL with a short summary line plus post details (group name, body text, links, who posted, media links, and timestamps). When keywords are disabled on a custom webhook, alerts can be sent in a batched payload with multiple posts in one request. See the payload section and examples below.
How do I test my webhook URL?
Use the Send test webhook tool on this page. Enter your URL and pick the sample that matches your setup so you can confirm your server or automation gets the same layout as live alerts.
What is Groups Watcher?
Groups Watcher monitors Facebook groups and pages you add on the Pro plan and delivers alerts in under 60 seconds to your webhook, email, Slack, Discord, Microsoft Teams, ntfy, or automation tools such as Zapier, Make, and n8n.
Can I use my own server or API as the webhook?
Yes. Give us an HTTPS address that can receive automated POST requests. Your software can read the fields we send and store them, trigger internal workflows, or pass them along to other tools.
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. This webhook is available when you subscribe to the Pro plan. Need help? Contact support@groupswatcher.com.
View pricing