Slack Notifications
Real-time alerts in Slack for the events that matter: new feedback, campaign launches, budget thresholds, and payout failures.
The integration uses Slack Incoming Webhooks โ Slack's standard, non-OAuth mechanism. It's read-only from Slack's side (we can only post, we can't read your channels), no app approval required, and works with the free Slack tier.
What you'll getโ
| Event | When it fires | What's in the message |
|---|---|---|
| New feedback received | A user submits a response that passes AI scoring | Campaign name, quality score (0โ100), reward amount |
| High-value feedback | Score โฅ 75 | Same + "๐" highlight โ don't miss the best ones |
| Budget alert | Campaign reward budget passes 80% consumed | Campaign name, percentage used |
| Campaign activated | Campaign transitions from DRAFT to ACTIVE after Stripe payment | Campaign name, budget |
| Payout failure | Tremendous returns an error on a reward disbursement | Response ID, error message (actionable) |
All notifications are fire-and-forget: if Slack is down, Pay4Feedback's core flow is unaffected. The message is logged and skipped โ no retries, no queues.
Prerequisitesโ
- A Slack workspace where you have permission to add apps (typically any member unless your admin has restricted it).
- A channel (or DM) where you want notifications to arrive. Private channels work too.
- Two minutes.
Step 1 โ Create a Slack Incoming Webhookโ
-
Open api.slack.com/apps and click Create New App.
-
Pick From scratch. Name it "Pay4Feedback" and select your workspace. Click Create App.
-
In the left sidebar, click Incoming Webhooks. Toggle Activate Incoming Webhooks to On.
-
Scroll to the bottom and click Add New Webhook to Workspace.
-
Choose the channel that should receive Pay4Feedback alerts. Click Allow.
-
Back on the Incoming Webhooks page, copy the URL under Webhook URL. It looks like:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Anyone with this URL can post to your channel. Don't paste it into public issue trackers, screenshots, or client-side code. If it leaks, rotate it by deleting the webhook in Slack and creating a new one.
Step 2 โ Paste into Pay4Feedbackโ
- In the Pay4Feedback dashboard, go to Settings โ Slack Notifications.
- Paste the webhook URL into the Webhook URL field.
- Flip the Enabled toggle to on.
- Click Send test message. A "๐ Test notification from Pay4Feedback" message should appear in your chosen Slack channel within a second or two.
- If the test succeeded, click Save Integration.
If the test fails, see Troubleshooting below.
Step 3 โ Verify the first real notificationโ
The simplest live test: open your survey widget in an incognito window and submit a response. Within a second of the response passing AI scoring, you'll see a "โญ / ๐ / โ ๏ธ New feedback received" message in Slack, with the quality score and reward amount.
If the test message works but real-event messages don't arrive, double-check the Enabled toggle is on and saved.
Notification examplesโ
Here's what each notification looks like when it arrives in Slack (rendered by Slack's default Incoming Webhook formatter):
New feedback (high quality):
โญ New feedback received Campaign: Q2 Pricing Exit Survey Quality: 87/100 Reward: โฌ8.70
High-value feedback:
๐ High-value feedback! (Score: 92/100) Campaign: Q2 Pricing Exit Survey This feedback contains detailed reasoning.
Budget alert:
๐ฐ Budget alert Campaign: Q2 Pricing Exit Survey 82% of budget used. Consider increasing or pausing.
Campaign activated:
๐ Campaign activated Q2 Pricing Exit Survey is now live and collecting feedback. Budget: EUR 500.00
Payout failure:
โ Payout failed Response: 7b0f... Error: Tremendous returned: recipient email invalid
Which channel should you use?โ
- Small team / single campaign: use a dedicated channel like
#pay4feedback-alerts. Everyone gets the same feed. - Multiple campaigns: Slack's Incoming Webhook URLs are per-channel. If you need different campaigns in different channels, create multiple webhooks in Slack โ but Pay4Feedback only stores one webhook per tenant today, so all notifications go to one place. Channel routing per campaign is on the roadmap; tell us at sales@pay4feedback.com if you need it.
- Noisy? Budget alerts and payout failures are low-frequency; the loudest stream is "new feedback received". For teams running 10+ approvals per day, muting the channel's notifications (while keeping the message log visible) is a common pattern.
Troubleshootingโ
"URL doesn't look like a Slack Incoming Webhook"โ
The test endpoint validates that the URL starts with https://hooks.slack.com/. Most mistakes:
- You copied your Slack workspace URL instead of the webhook URL. Go back to Incoming Webhooks in your Slack app and copy the URL under Webhook URL specifically.
- You copied only part of the URL. The full URL is long (>80 characters) and contains three slash-delimited segments after
/services/.
"Slack responded with HTTP 404"โ
The webhook URL doesn't exist anymore. Reasons:
- The Slack app was deleted or the webhook was removed.
- The URL was truncated on copy-paste.
Delete the value in Pay4Feedback, create a new webhook in Slack (Step 1 above), paste, test.
"Slack responded with HTTP 403"โ
Slack rejected the request. Usually: the channel the webhook was installed into has been deleted or made private after install. Create a new webhook in Slack and pick a live channel.
Test message succeeds but real notifications don't arriveโ
- Is the Enabled toggle actually on? It's separate from the URL field โ both must be set.
- Did you click Save Integration after enabling? The test endpoint saves automatically; the main "Save" button doesn't auto-enable.
- For "new feedback" messages specifically: the notification only fires on feedback that passes AI scoring (score โฅ rejection floor, default 30). Completely garbage submissions don't notify โ they get silently rejected. Submit a response with a real paragraph of text to trigger it.
Notifications stop firing after working for a whileโ
Two things to check:
- Did Slack rotate or revoke the webhook? Go to api.slack.com/apps โ your app โ Incoming Webhooks. If it's gone, the URL is dead. Recreate and paste the new one.
- Did a workspace admin remove the Pay4Feedback app? Same page โ if the app was removed, all its webhooks are invalidated.
The test button is disabledโ
The button is disabled until the URL field has text. Paste first, then test.
Disabling notificationsโ
Toggle Enabled off in Settings โ Slack Notifications and click Save Integration. The webhook URL stays saved for easy re-enable later. If you want to permanently remove the URL, clear the field before saving.
To cleanly revoke access from Slack's side as well: api.slack.com/apps โ Pay4Feedback app โ Manage Distribution โ Remove App.
Security notesโ
- The webhook URL is stored in the
tenant_settingstable at rest, encrypted by AWS RDS (AES-256) along with all other tenant data. - Only users with Admin or Owner role on your tenant can view or edit the URL in Settings.
- All outgoing webhook calls use HTTPS with TLS 1.2+.
- Pay4Feedback never logs the webhook URL in plain text โ only the tenant ID and whether a delivery succeeded.
Relatedโ
- API & Integrations โ roadmap for other integration targets (MS Teams, Zapier, Make, webhooks).
- Contact & Support โ if Slack behaves unexpectedly and this guide doesn't cover it.