Recipe · Slack

Get testimonials in Slack

Let your team see every new testimonial in the Slack channel of your choice. We'll wire it with a connector (n8n, Zapier, or Make) in minutes — no code on your server.

Read time · ~4 min
How it works
Testivora fires an event when a testimonial comes in. A connector catches that event and posts a Slack message with the customer's name, stars, and text.
01

Pick your connector

Any of them works: n8n (/docs/automate/n8n), Zapier (/docs/automate/zapier), or Make (/docs/automate/make). Open the guide for the one you prefer — they all catch the Testivora webhook the same way. Not sure? Start with n8n.

02

Catch the Testivora event

In your connector create a webhook trigger and copy its URL. In Testivora go to Settings → Webhooks → New endpoint, paste that URL, and pick the testimonial.created event (or testimonial.approved if you only want to celebrate approved ones). Save. Here's the payload you'll receive — the testimonial lives under data:

json
{
  "id": "evt_3hF2bQ...",
  "object": "event",
  "event": "testimonial.created",
  "version": "1.0",
  "created": "2026-06-03T01:00:00.000Z",
  "attempt": 1,
  "data": {
    "id": "j97...",
    "type": "text",
    "status": "pending",
    "rating": 5,
    "text": "Cerré 3 clientes en una semana.",
    "author": { "name": "Ana López", "company": "Acme" }
  }
}
The event id is stable across retries: use it if you want to avoid duplicate messages.
03

Connect the Slack action and build the message

Add Slack in your connector. The simplest path is a Slack Incoming Webhook (Slack → Apps → Incoming Webhooks → pick the channel → copy the URL) and POST it JSON; or use the Slack app your connector already ships. Build the text from the testimonial fields: name (data.author.name), stars (data.rating), and the text (data.text).

text
⭐⭐⭐⭐⭐ Nuevo testimonio de {{ data.author.name }}

"{{ data.text }}"

— {{ data.author.company }} · {{ data.rating }}/5
Simple message. Replace {{ ... }} with your connector's fields (in n8n: $json.body.data.*).
json
{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*⭐ Nuevo testimonio de {{ data.author.name }}*\n>{{ data.text }}"
      }
    },
    {
      "type": "context",
      "elements": [
        { "type": "mrkdwn", "text": "{{ data.author.company }} · {{ data.rating }}/5" }
      ]
    }
  ]
}
Block Kit version for a nicer message. Send it as the body of the Slack Incoming Webhook.
04

Test it with 'Send test'

From Testivora, on your endpoint, hit 'Send test'. You should see the message land in your Slack channel instantly. If it doesn't, check the chosen event matches and that the connector returns 2xx fast (if it fails, we retry with backoff: 1m, 5m, 30m, 2h, 6h).

Only the good ones
Don't want noise? In your connector add a rating >= 4 filter before sending to Slack. That way you only celebrate 4- and 5-star testimonials and route low ratings somewhere else.