Testimonials are most powerful when they flow automatically into the rest of your business — your CRM, your Slack, your email marketing platform, your spreadsheet. SocialProof.Reviews fires a webhook every time a new testimonial is submitted, giving you a real-time trigger you can route anywhere.
A webhook is an HTTP POST request your workspace sends to a URL you choose, the moment a new testimonial comes in. The payload contains everything about the submission — the reviewer's name, email, rating, review text, photos, and metadata. Your receiving system can then do anything: log it, notify your team, update a CRM record, or trigger a drip sequence.
Log in to SocialProof.Reviews, open your workspace, and go to the Embed & Integrations section in your admin panel. Find the Webhooks tab.
Paste the URL that should receive the POST request. This can be:
Click Save, then use the Send test event button to fire a sample payload to your endpoint. Verify it arrives correctly before going live.
Every testimonial submission sends a JSON payload structured like this:
{
"event": "testimonial.submitted",
"workspaceId": "abc123",
"testimonialId": "t_xyz789",
"submittedAt": "2026-03-17T10:30:00Z",
"reviewer": {
"name": "Jane Smith",
"email": "[email protected]",
"jobTitle": "Head of Marketing",
"company": "Acme Corp",
"photoUrl": "https://..."
},
"rating": 5,
"review": "This tool completely changed how we collect and display customer feedback.",
"photos": ["https://...", "https://..."],
"videoUrl": null,
"approved": false,
"source": "collect-form"
}
Zapier lets you connect SocialProof.Reviews to 6,000+ apps without writing any code.
Log in to zapier.com and click Create Zap.
https://hooks.zapier.com/hooks/catch/123456/abcdef/⚠️ Important: Zapier only accepts the test payload while it is actively waiting for a trigger. If it is not listening you will get a 401 error.
Now connect any action you want. Examples:
Notify your team in Slack:
New ⭐⭐⭐⭐⭐ review from {{reviewer__name}} at {{reviewer__company}}: "{{review}}"#testimonialsAdd reviewer to your email list (Mailchimp):
{{reviewer__email}}{{reviewer__name}}testimonial-submittedLog to a Google Sheet:
Create a contact in HubSpot:
{{reviewer__email}}Click Publish and every new testimonial submission will now automatically trigger your workflow.
Make is a more visual, developer-friendly automation platform. It's ideal if you need multi-step flows, conditional logic, or data transformation.
Log in to make.com and click Create a new scenario.
https://hook.eu1.make.com/abc123xyz — copy it⚠️ Important: Make only accepts the webhook while it is actively listening. If Make is not in listening mode you will get a 401 error.
After the test payload is received, Make shows you every field available to use in your automation. You will see:
Examples of powerful Make automations:
Filter by rating, then notify:
rating >= 4#wins channelApprove high-rating testimonials automatically:
approved: trueAdd to a CRM with conditional logic:
reviewer.company is not empty → update company record in Salesforcereviewer.company is empty → add to Mailchimp consumer listCreate a Notion database entry:
Click the power toggle at the bottom left of the scenario editor to turn it on. Make will now process every incoming testimonial webhook.
SocialProof.Reviews sends webhooks from a fixed set of IP addresses and includes a signature header (X-SPR-Signature) you can use to verify the request is genuine. To validate:
HMAC-SHA256 of the raw request body using your workspace secret keyX-SPR-SignatureThis prevents replay attacks and ensures no one can spoof fake testimonials into your automations.
| Use case | Platform | Trigger | Action |
|---|---|---|---|
| Real-time Slack alert | Zapier | testimonial.submitted | Slack message |
| Auto-tag in email list | Make | testimonial.submitted (rating ≥ 4) | Tag subscriber |
| Log all reviews | Zapier | testimonial.submitted | Google Sheets row |
| Push to CRM | Make | testimonial.submitted | HubSpot/Salesforce contact |
| Auto-approve 5-star | Make | testimonial.submitted (rating = 5) | API PATCH approved=true |
| Trigger drip sequence | Zapier | testimonial.submitted | Mailchimp automation |
Before blaming Make, Zapier, or your own server, confirm that SocialProof.Reviews is actually sending the request:
You should see ✓ Sent! Payload delivered to your endpoint. in the app, and a new request appear on webhook.site within a second or two. Click it to inspect the full JSON payload.
If webhook.site receives it, your SocialProof.Reviews webhook is working correctly — the problem is with your Make/Zapier setup, not with the platform. Proceed to Step 2.
If webhook.site does not receive it, double-check that you clicked Save changes after pasting the URL and that the Enable webhooks toggle is switched on.
A 401 from Make means the webhook token is invalid or unregistered — Make does not recognise the URL. This happens when a scenario was not properly saved after the webhook was created, or the webhook was deleted. Simply clicking "Run once" will not fix a 401; you need to recreate the webhook module entirely.
Make will capture the payload and show all available fields. Click OK to confirm the data structure, then continue building your scenario.
✗ HTTP 401 — Make/Zapier rejected the request. The most common cause is that Make or Zapier was not actively listening when you clicked Send test, or the webhook token is invalid (see Step 2 above for Make). Fix:
✗ HTTP 404 — Webhook URL not found. The URL has been deleted or the scenario/zap has been disabled. Go back to Make or Zapier, check the webhook module still exists, and copy a fresh URL.
✗ Could not connect / HTTP 0.
The URL is either not reachable or you have not saved it yet. Make sure you clicked Save changes after pasting the URL, and that the URL starts with https://.
The test delivers but real submissions don't. Check two things: (1) the Enable webhooks toggle is turned on and saved, and (2) the events you want are checked under Events to send. Real submissions only trigger when the webhook is enabled.
My endpoint isn't receiving the webhook. Check that your URL is publicly accessible — localhost URLs will be rejected. Use webhook.site to confirm the payload is being sent (see Step 1 above).
I'm getting duplicate events.
Implement idempotency on your receiving endpoint using testimonialId as a deduplication key.