Slack Notifications (Native — No Middleware)
Get real-time notifications in Slack when prospects engage with your campaigns — including LinkedIn replies with the message body, email replies, bounces, unsubscribes, and sending-limit alerts. No Zapier, Make, or n8n in the middle: WarmySender auto-detects Slack Incoming Webhook URLs and formats each event as a readable Slack Block Kit card.
What Arrives in Slack:
- LinkedIn reply — prospect name, LinkedIn profile URL, full reply body (truncated to ~400 chars), campaign, timestamp
- Email reply — subject, prospect email, campaign, timestamp
- LinkedIn invite accepted — prospect name, profile URL, campaign, timestamp
- Bounces / unsubscribes / limit alerts — plain, readable summaries
Setup (5 minutes, no code):
Step 1: Create a Slack Incoming Webhook
• Go to api.slack.com/apps → 'Create New App' → 'From scratch'.
• Name it 'WarmySender' and pick the workspace where you want alerts.
• In the left sidebar under 'Features', open 'Incoming Webhooks' and toggle it On.
• Click 'Add New Webhook to Workspace', pick the channel where alerts should land (e.g., #sales-replies), and authorize.
• Copy the webhook URL — it looks like https://hooks.slack.com/services/T0.../B0.../xxxx
Step 2: Add the webhook in WarmySender
• Settings → Webhooks → New webhook.
• Paste the Slack URL.
• Select the events you want. Recommended: reply.received, linkedin.reply_received, linkedin.invite_accepted, email.bounced.
• Save.
Step 3: Verify
• In the webhook row, click the refresh/test button. A test message should appear in your Slack channel within ~10 seconds.
• If nothing arrives, check the Slack app's webhook URL is correct and the target channel still exists.
That's it — no middleware, no code, no third-party automation tool.
How It Works:
When the webhook URL matches https://hooks.slack.com/…, our delivery worker (server/webhook-deliverer.ts) transforms the JSON payload into Slack Block Kit shape before sending. Other URLs receive the raw signed JSON payload as usual. This means one event can fan out to a Slack channel AND your CRM webhook endpoint simultaneously with zero extra work.
LinkedIn-Specific Events:
- linkedin.reply_received — Fires the first time a prospect replies to a LinkedIn message or InMail inside a campaign enrollment. Payload includes the reply body. Follow-up messages in the same thread don't re-fire (matches how campaigns auto-pause on first reply).
- linkedin.invite_accepted — Fires once per prospect when they accept your LinkedIn connection request. Detected via Unipile real-time webhooks (message-matched) with polling fallback for accepts without a message — expect up to ~8h detection latency on no-message accepts (Unipile's documented behavior).
Multi-Channel Routing (one event → different channels):
Create multiple Slack Incoming Webhooks (one per channel — #sales-replies, #ops-bounces, #linkedin-connected). Add each as a separate webhook in WarmySender with a different event selection. Events fan out in parallel.
Recommended Events Per Channel:
- #sales-replies — reply.received, linkedin.reply_received (highest priority; prospect is engaged NOW)
- #linkedin-activity — linkedin.invite_accepted (network-building signal)
- #ops — email.bounced, email.unsubscribed, limit.hit
- AVOID: email.opened / email.clicked (high volume; floods the channel — use n8n/Zapier with per-campaign filters instead)
Microsoft Teams:
Teams uses a different payload format (Adaptive Cards) than Slack. Our native auto-format targets Slack only. For Teams: use the 'n8n Integration' or 'Zapier Integration' guide to translate our JSON to Teams Adaptive Card format in the middle.
Account Safety (LinkedIn Events):
Enabling these webhooks does NOT call the LinkedIn API — we emit from database state only, read once on reply detection. Your LinkedIn daily action limits are unaffected.
Reliability:
- At-least-once delivery with per-enrollment dedupe (Unipile retries don't duplicate Slack messages).
- 10 retry attempts with exponential backoff (1 min → 72 h) if Slack is temporarily unreachable.
- On Slack 429 Too Many Requests, we honor the Retry-After header automatically.
Privacy Note:
Slack messages include prospect email / LinkedIn profile URL / reply body in plain text. Slack retains message history per your workspace's retention policy — choose the destination channel accordingly (private channel for sensitive conversations).
See also: 'Webhooks Getting Started' guide for signing verification, full event catalog, and retry behavior.