Slack alert on negative reviews with Zapier

A message in your team's channel as soon as a review of 2 stars or fewer comes in, with a webhook, Webhooks by Zapier and Slack, no code.

API documentationNo-code recipes · Slack with Zapier

What you get

As soon as a review of 2 stars or fewer comes in on one of your locations, a message goes to your team's Slack channel, with the rating, the author and the text of the review. Nobody needs to open the app to be notified.

The Zap uses Zapier's generic apps, Webhooks by Zapier, Filter by Zapier and Slack: there is no Ma Belle Note app in Zapier, and none is needed. The same Zap works with Microsoft Teams instead of Slack. The labels quoted are those of Zapier's English interface.

What you need

  • A Zapier account whose plan includes Webhooks by Zapier, which is not part of Zapier's free plan at the time of writing.
  • A Slack workspace where you can connect Zapier.
  • Owner or admin access to Ma Belle Note, to add the endpoint.
  • An API key with the reviews:read scope, for instance created with the Read only template.

1. Receive the events in Zapier

Create a Zap. As trigger, pick Webhooks by Zapier, event Catch Hook, then copy the address Zapier shows, of the form https://hooks.zapier.com/hooks/catch/123456/abcdef/.

2. Subscribe this address to new reviews

In the app, open Settings › Integration, API & webhooks, Webhooks tab, then Add an endpoint:

  • Receiving address: the address copied from Zapier.
  • Subscribed events: only New review (review.created).
  • Keep Ignore reviews imported during the historical backfill ticked.

Keep the secret shown: Zapier does not verify Standard Webhooks signatures, but you will need it if you later move to your own server. You can also create this endpoint through the API, with POST /v1/webhook-endpoints (see the webhooks guide).

3. Give Zapier a sample review

To offer the review's fields to the next steps, Zapier needs a received sample. The app's test event contains no review: wait for the next review, or send Zapier an event built from your latest review, from a terminal with curl and jq:

curl -s "https://api.mabellenote.com/v1/reviews?limit=1" \
  -H "Authorization: Bearer $MBN_API_KEY" \
  | jq '.data[0] | {object: "event", id: "ev_sample_zapier", type: "review.created", apiVersion: "v1", createdAt, establishmentId, origin: "sync", data: {object: .}}' \
  | curl -X POST "https://hooks.zapier.com/hooks/catch/123456/abcdef/" \
      -H "Content-Type: application/json" \
      --data-binary @-

Go back to Zapier, test the trigger and pick this sample.

4. Read the review again through the API

Catch Hook does not verify the deliveries' signature: anyone who knows the Zap's address can send it a request. To never alert on a fake review, read the review again through the API, which only answers for the reviews of your account.

Add the Webhooks by Zapier › GET action:

FieldValue
URLhttps://api.mabellenote.com/v1/reviews/ followed by the trigger's Data Object Id field
HeadersAuthorization = Bearer mbn_live_...

The fields of this step, rating, author.name and comment, are the up-to-date and verified version of the review: use them from here on. For an unknown identifier, the API answers 404 and the rating is missing: the filter of the next step then stops the Zap.

5. Keep only negative reviews

Add Filter by Zapier, with two conditions:

  • the trigger's Type field exactly matches review.created;
  • the Rating field of step 4, as a number ((Number) Less than), is less than 3.

Only reviews of 1 or 2 stars go through. The app's test event, of type webhook.test, stops here: this is expected.

6. Post the message in Slack

Add Slack › Send Channel Message, pick the channel, then compose the text with the fields of step 4. The resulting message looks like this:

Review 2/5 by Jean D.
Very slow service tonight, a shame because the food was good.

To add the location's name, insert before Slack a second Webhooks by Zapier › GET action on https://api.mabellenote.com/v1/establishments/ followed by the Establishment Id field, with a key that also holds establishments:read: its name field is the location's name.

7. Publish the Zap

Turn the Zap on. From then on, every new negative review reaches the channel a few seconds after it is synced into Ma Belle Note.

Good to know

  • Rare duplicates: a delivery is guaranteed at least once. If Zapier's response gets lost, the event is delivered again, and the message may go out twice.
  • Keep the address secret: if the Zap's address leaks, create a new Catch Hook, add a new endpoint with the new address, then delete the old one.
  • Zapier tasks: every review received uses at least one task of your Zapier plan, the one of step 4's read, even when the filter stops it afterwards.
  • Private feedback: also subscribe the endpoint to New private feedback (feedback.created) and read it again with GET /v1/feedbacks/<id> (feedbacks:read scope) to be told about the feedback left through your QR codes.

Updated on October 25, 2026