Integrations

May 25, 2026

Integrations: Slack, Discord, webhooks (Pro)

Pro lets you push every new comment + approval to Slack, Discord, or any HTTP endpoint (Zapier / Make / n8n / custom).

Slack

Reviso sends Slack notifications via Workflow Builder. Slack’s older “Incoming Webhooks” app still works today but Slack has flagged it for eventual removal, so we’ve standardised on Workflow Builder, it’s where Slack is putting all its new tooling and it gives you a lot more control over what the message looks like.

This setup has two parts: building a workflow in Slack, then pasting its URL into Reviso. Plan on about 5 minutes.

Step 1: create the workflow in Slack

  1. In Slack, open Tools → Workflow Builder (top-left workspace menu → Tools & settingsWorkflow Builder).
  2. Click New Workflow → Build Workflow.
  3. For the trigger, choose From a webhook.
  4. Click Set up variables, then add the following six variables. Names must match exactly, and all of them are Data type: text: Variable name Data type summary Text event Text author Text body Text page_title Text page_url Text

Important: all six must exist. Slack rejects the whole webhook with a 400 error if Reviso sends a variable the trigger doesn’t know about, there’s no partial delivery.

  1. Click Done to save the trigger. Slack shows you a Web request URL like https://hooks.slack.com/triggers/T.../.... Copy it.
  2. Add at least one step. The simplest is Messages → Send a message to a channel:
  • Send this message to: pick the channel.
  • Add a message: insert variables from the right-hand panel. A good starting point is just {{summary}}, that gives you the same one-line message Reviso would have sent the old way. For richer formatting, mix and match the other variables, e.g. 💬 New comment from {{author}} on {{page_title}}
    {{body}}
    {{page_url}}
  1. Click Publish.

Step 2: paste the URL into Reviso

  1. WP-admin → Reviso → Settings → Integrations → Slack Workflow / Discord webhook URL → paste the trigger URL, save.
  2. Pick which events trigger a message, comments, replies, approvals.
  3. Click Send test. The message should land in the channel within a couple of seconds. If you get an error like “Unsupported Slack URL”, the URL you pasted is the legacy /services/… shape, go back to Workflow Builder and copy the trigger URL instead (it contains /triggers/).

You can include or exclude reviewer email addresses in the payload (off by default for privacy). Slack/Discord messages never include the email regardless, the toggle only affects the generic webhook payload.

What Reviso sends

For every event, Reviso POSTs a JSON body with exactly the six variables above, all as strings. summary is the same human-readable line we’d send via the old method (💬 New comment from Sarah on "About": The header feels heavy on mobile.). The other fields are the raw pieces so you can format them yourself in the workflow:

  • summary, pre-formatted one-liner. Use this if you just want the message to “look like Slack”.
  • event, one of comment.created, comment.replied, comment.resolved, comment.assigned, page.approved, review.created, review.closed, test.ping. Useful for branching in the workflow (e.g. route approvals to a different channel).
  • author, reviewer name.
  • body, the comment text, truncated to ~25 words.
  • page_title, title of the page the comment was left on.
  • page_url, direct link to that page.

Routing different events to different channels

Workflow Builder supports conditional steps. After the trigger, add a Branch (if/else) step and switch on the event variable, e.g. if event equals page.approved, send to #client-approvals; else send to #design-feedback. You only need one Reviso webhook URL for this; the branching happens entirely inside Slack.

Discord

Discord’s webhooks are Slack-compatible. In Discord: Channel settings → Integrations → Webhooks → Create webhook → copy URL → paste into Reviso’s Slack field. Same flow.

Generic webhook (Zapier / Make / n8n / your own)

For anything Slack-shaped:

  1. Settings → Integrations → Generic webhook URL → paste the destination.
  2. Optional: add a custom header (e.g. X-Auth-Token: …) if your endpoint requires auth.
  3. Save → test.

Payload format (JSON):

{
  "event": "comment.created",
  "site": "https://example.com",
  "review_id": 42,
  "review_name": "Acme Homepage R2",
  "page_id": 17,
  "page_title": "About",
  "page_url": "https://example.com/about/",
  "comment_id": 91,
  "comment_body": "The header feels heavy on mobile.",
  "author_name": "Sarah",
  "author_email": "sarah@client.com",
  "timestamp": "2026-05-25T14:03:00Z"
}

Events emitted:

  • comment.created, a new top-level comment. Full comment fields (incl. comment_id).
  • comment.replied, a reply on a thread. Same comment fields; comment_id is the reply.
  • comment.resolved, a comment marked resolved. Comment fields plus status.
  • comment.assigned, a comment assigned to a team member (Pro). Comment fields plus assignee_name / assignee_email.
  • page.approved, a client approved a page. Carries page_id, page_title, page_url and the approver’s author_name (and author_email when included).
  • review.created / review.closed, a review was opened or closed. Carries review_id, review_name, review_url, scope_type, status (no page/comment fields).

test.ping is also sent when you use the Send test button. Each event has its own on/off checkbox in Reviso → Integrations, so you only receive the ones you turn on.

Zapier-style use cases

  • New comment → ClickUp task
  • New approval → Trello card move
  • New comment with priority “high” → SMS via Twilio
  • New review created → Slack channel created
  • All events → Notion database row

Zapier and Make both have a generic “Webhook by Zapier / Webhook” trigger, paste Reviso’s webhook URL as the source and you have full access to the payload above.

Privacy + payload control

By default the webhook payload includes:

  • Comment body (the actual feedback text)
  • Reviewer name
  • Page URL

Excluded by default:

  • Reviewer email address (you can opt to include via the “Include reviewer email” checkbox)
  • IP addresses
  • User-agent

You control the destination. Reviso has no relationship with the third-party service you’re pushing to, Slack/Discord/Zapier/etc are your subprocessors, not ours.

Rate limits

If a reviewer hammers comments, Reviso throttles webhook delivery to avoid getting your Slack workspace muted. Default: max 30 messages / minute / webhook. Configurable in Settings → Integrations → Advanced.

Comment event fields

Comment events (comment.created, comment.replied, comment.resolved, comment.assigned) carry the comment’s visibility (everyone, team, or private), its assignee_id and assignee_name, any file attachments and the screenshot_url, so an integration can sync them without a second request. Notes left on a listing or archive page also include a context key identifying that surface (for example tax:category:8) in place of a single page id.