SosalySosaly account
Guides

Send Facebook group posts to Make

Make's Facebook Groups modules are gone, along with the Facebook API they used. GroupSignal can send Make the group posts that matter to you: the posts that match a monitor, or only the ones you save. Set up a Make custom webhook, and each post lands as a new row in Google Sheets or goes on to any other module.

Why Make's Facebook Groups modules are gone

Meta removed the Facebook Groups API for every app on April 22, 2024 (Graph API changelog), and Make's Facebook Groups app stopped working the same day. No automation tool can read group posts through Facebook any more. GroupSignal works differently: its Chrome extension reads the groups you've joined while Chrome is open on your computer and signed in to Facebook. Sosaly then sends Make only the posts that match your monitors, never a whole group, and it sends them from its own servers, so delivery doesn't depend on your browser.

What you need

  • A GroupSignal monitor watching your groups. Sending needs an active trial or plan.
  • A Make account.
  • A Google Sheet with a header row, for example: Date, Monitor, Post link, Text, Event ID.

Step 1: Create a custom webhook in Make

  1. Create a scenario and add the Webhooks module Custom webhook.
  2. Next to Webhook, click Add and give the webhook a name, such as the name of your monitor.
  3. Optional: under API Key authentication, add a key. Make then refuses requests that don't carry it. Keep a copy of the key value; you'll paste it into Sosaly.
  4. Click Save and copy the webhook URL. It looks like https://hook.eu1.make.com/ followed by a long token, with your own Make region in place of eu1.

Make now waits for a first request, which it uses to learn the data's structure. Leave the scenario open.

Step 2: Add the webhook to your monitor

  1. In Sosaly, open Monitors, choose the monitor, and open its Webhook tab.
  2. Under Destination, choose Make Custom Webhook and paste the URL into Destination URL.
  3. If you added an API key in Make, paste it into Optional Make API key.
  4. Choose When to send and What to include, explained below, then Save webhook.

Sosaly keeps the URL encrypted and never shows it again; to change it, choose Replace destination. Each monitor has its own webhook. To collect several monitors in one place, paste the same URL into each; every event carries its monitor's name.

When to send

  • When saved (the default) sends a post the first time you choose Save opportunity in your inbox. Only posts you've chosen leave Sosaly, including Possible matches you decide to save. Saving the same post again never sends it twice.
  • When matched sends every new AI match as it arrives, before you've reviewed it. Possible matches are never sent this way, and saving one doesn't send it either. If you want Possible matches in Make, use When saved and save the ones you want.

Neither sends anything from before you set up the webhook.

What to include

  • Minimal: the event's ID, type and time, the monitor name, and the link to the post on Facebook.
  • Standard (recommended): Minimal plus the post's text. Very long posts are cut short, and a photo or video post without text has empty text.
  • Full context: Standard plus the author's name and the group's name, when they're known.

No profile includes the AI's reason for a match (the Why it matched line in your inbox), your Find and Ignore wording, or the author's profile or picture. Post text and names can identify people, and once they're in Make and the apps it connects, Sosaly can't delete those copies. Choose the smallest profile that does the job.

Step 3: Send a test

After saving, choose Send test under Webhook delivery on the same tab. Sosaly sends an event with invented content; Make reads its structure, and the fields become available to map in the modules you add next. If you later switch to a profile with more fields, open the webhook module, ask Make to detect the new structure, and send another test.

Every event is a JSON object with these fields:

  • eventId: a unique ID for the event. If the same ID arrives twice, it's the same post.
  • eventType: opportunity.saved (When saved) or candidate.matched (When matched).
  • occurredAt: when the post was saved or matched, in UTC.
  • monitorName: the monitor that found the post.
  • primarySourceUrl: the link to the post on Facebook.
  • postText: the post's text, with Standard and Full context.
  • authorDisplayName and targetDisplayName: the author's and the group's names, with Full context, when known.
  • schema, profile, source and contentKind describe the event's format, profile and source.
{
  "schema": "groupsignal.webhook@2.0.0",
  "profile": "STANDARD",
  "eventId": "550e8400-e29b-41d4-a716-000000000036",
  "eventType": "opportunity.saved",
  "occurredAt": "2026-01-15T12:00:00.000Z",
  "monitorName": "Example opportunities",
  "source": "facebook",
  "contentKind": "POST",
  "primarySourceUrl": "https://www.facebook.com/groups/123456789/posts/987654321",
  "postText": "A local business is looking for a website designer next month."
}
The Standard test event, with invented content

Step 4: Add a row to Google Sheets

  1. After the webhook, add the Google Sheets module Add a Row and connect your Google account.
  2. Choose the spreadsheet and sheet, and say that it has a header row.
  3. Map each column to a field from the webhook: Date to occurredAt, Monitor to monitorName, Post link to primarySourceUrl, Text to postText and Event ID to eventId.
  4. Run the scenario once and choose Send test again to check that a row appears. Then save the scenario and switch it on.

A switched-on scenario runs as each event arrives. Each event adds one row: one for every post you save with When saved, or for every new AI match with When matched.

If something goes wrong

The Webhook tab lists recent deliveries under Webhook delivery, each with its status:

  • Accepted: Make received the event. That doesn't prove the rest of your workflow ran; check its history in Make.
  • Pending: waiting to be sent, or to be tried again after a temporary error. Sosaly retries temporary errors on its own.
  • Failed: Make refused the event, or it ran out of attempts. When Retry delivery is offered, fix the cause in Make first, then retry. An event can be retried for 24 hours after the post was saved or matched.
  • Unknown: Sosaly can't tell whether Make received it. It may already have arrived, so a retry can create a duplicate; the eventId tells them apart.
  • Cancelled: not sent, because the webhook was paused, changed or removed before the event went out.

Make-specific causes:

  • Refused as unauthorized: the API key in Sosaly doesn't match the one in Make. Choose Replace destination and enter both again.
  • The webhook is gone: Make switches off a webhook that hasn't been attached to a scenario for more than five days. Create a new one, then Replace destination.
  • Accepted, but no row: Make accepts events while the scenario is off and queues them until it runs. Switch the scenario on, and check its history for errors.

Nothing listed at all? Only posts saved or matched after you set up the webhook are sent, and sending needs an active trial or plan. If no matches are reaching your inbox either, writing a monitor covers what to check.

Beyond Google Sheets

The same webhook can feed any Make module: a Slack message, an email, a record in Airtable or a contact in your CRM. Make can't reply on Facebook for you, and the reply is better written by you anyway. How to reply to a post in a Facebook group without getting removed covers what to write. Using Zapier instead? Send Facebook group posts to Zapier and Google Sheets.