Slack
The Slack integration sends real-time notifications about subscription events to your Slack channels. Get instant updates about new subscribers, cancellations, renewals, and revenue changes with rich, color-coded messages and contextual emojis.
In the Communication section within Integrations, you can connect your Slack account to Superwall:
Required Fields
Fill out the following fields and click the Enable Slack button at the bottom right to save your changes:
- Webhook Url: Your Slack webhook URL for sending messages to a channel.
- Include Sandbox: Whether to include sandbox events in Slack notifications.
- Event Type: Type of events to send: revenue only or all lifecycle (includes trials, cancellations).
Features
- Real-time Notifications: Instant Slack messages for subscription events
- Smart Filtering: Choose between revenue events only or all subscription lifecycle events
- Visual Design: Color-coded messages with contextual emojis for quick scanning
- Revenue Insights: See price, proceeds, and currency information at a glance
- Sandbox Control: Optional inclusion of test/sandbox events
- Rich Context: Includes user ID, product, country, and transaction details
Configuration
Required Settings
| Field | Description | Example |
|---|---|---|
integration_id | Must be set to "slack" | "slack" |
webhook_url | Your Slack incoming webhook URL | "https://hooks.slack.com/services/..." |
include_sandbox | Whether to include sandbox events | "Production Only" or "Production & Sandbox" |
event_type | Types of events to send | "Revenue Events Only" or "All Subscription Events" |
Example Configuration
{
"integration_id": "slack",
"webhook_url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX",
"include_sandbox": "Production Only",
"event_type": "Revenue Events Only"
}Setting Up Slack Webhooks
-
Create Incoming Webhook:
- Go to api.slack.com/apps
- Create a new app or select existing
- Enable "Incoming Webhooks"
- Add new webhook to workspace
- Select target channel
-
Copy Webhook URL:
- Format:
https://hooks.slack.com/services/T.../B.../... - Keep this URL secure
- Format:
-
Test Connection:
- The integration sends a test message on setup
- Verify it appears in your selected channel
Event Filtering
Revenue Events Only
Sends notifications for events with monetary impact:
- ✅ Initial purchases (paid)
- ✅ Renewals
- ✅ Refunds (negative amounts)
- ✅ Trial/intro conversions (when paid)
- ❌ Cancellations (no immediate revenue impact)
- ❌ Expirations
- ❌ Billing issues
All Subscription Events
Sends notifications for all lifecycle events:
- ✅ All revenue events (above)
- ✅ Trial starts
- ✅ Cancellations
- ✅ Uncancellations
- ✅ Expirations
- ✅ Billing issues
- ✅ Product changes
- ✅ Subscription pauses
Message Format
Visual Indicators
Messages use colors and emojis for quick scanning:
Colors
- 🟢 Green (#36a64f): Positive events (purchases, renewals, uncancellations)
- 🔴 Red (#FA6A6A): Negative events (cancellations, expirations, refunds)
- ⚫ Gray (#666666): Neutral events (product changes, pauses)
Emojis by Event Type
Trial Events:
- 🤩 Trial start
- 💰 Trial conversion
- 😞 Trial cancelled
- 😞 Trial expired
- 🤩 Trial uncancelled
- 🤬 Trial refunded
Intro Offer Events:
- 💰/🤩 Intro offer start
- 💰 Intro offer conversion
- 😞 Intro offer cancelled
- 😞 Intro offer expired
- 🤩 Intro offer uncancelled
- 🤬 Intro offer refunded
Subscription Events:
- 💰 New subscriber
- 💰 Renewal
- 😞 Subscription cancelled
- 😞 Subscription expired
- 🤩 Subscription uncancelled
- 🤬 Subscription refunded
Special Events:
- 😵💫 Product change
- 🫠 Billing issue
- ⏸️ Subscription paused
- 💸 Non-renewing purchase
Message Structure
Each Slack message includes:
[Emoji] [Event Description]
━━━━━━━━━━━━━━━━━━━━━
💵 $9.99 USD (Proceeds: $6.99)
📦 com.example.premium.monthly
🌍 United States
👤 User123
🏪 APP_STORE
🔗 Transaction: 700001234567890Field Descriptions
| Field | Description | Example |
|---|---|---|
| Header | Event type with emoji | "💰 renewal" |
| Price | Transaction amount | "$9.99 USD" |
| Proceeds | Net after fees | "Proceeds: $6.99" |
| Product | Product identifier | "com.example.premium" |
| Country | User's country | "United States" |
| User | User identifier | "User123" or transaction ID |
| Store | Payment provider | "APP_STORE" |
| Transaction | Transaction ID | "700001234567890" |
Sandbox Handling
Production Only
- Production events → Sent to Slack
- Sandbox events → Skipped
Production & Sandbox
- Production events → Sent to Slack
- Sandbox events → Sent to Slack with 🧪 indicator
Sandbox events include a note in the message to differentiate from production.
Special Event Handling
Refunds
Identified by negative price values:
- Header changes to "refunded [type]"
- Emoji changes to 🤬
- Color remains red
- Shows negative amount
Family Sharing
Events with isFamilyShare: true:
- Shows shared subscription indicator
- Price may be $0 for family members
- Original purchaser shows full price
Trial Conversions
Renewals with isTrialConversion: true:
- Header shows "trial conversion"
- Indicates successful trial-to-paid transition
- Always green/positive color
Product Changes
Shows when users switch plans:
- Displays old and new product IDs
- Neutral gray color
- May have $0 price
Use Cases
Revenue Monitoring
Track real-time revenue with "Revenue Events Only":
- Monitor daily subscription revenue
- Get alerts for high-value purchases
- Track refund activity
- Celebrate trial conversions
Customer Success
Track lifecycle with "All Subscription Events":
- Monitor cancellation trends
- Identify billing issues quickly
- Track trial-to-paid conversion
- Spot at-risk subscribers
Team Celebrations
Share wins with your team:
- New subscriber notifications
- Trial conversion celebrations
- Renewal milestones
- Recovery from cancellations
Best Practices
- Dedicated Channels: Create specific channels for different event types
- Filter Appropriately: Use "Revenue Only" for finance, "All Events" for customer success
- Include Context: User IDs help connect events to support tickets
- Monitor Patterns: Watch for unusual cancellation or refund spikes
- Sandbox Separation: Consider separate webhooks for production vs testing
Troubleshooting
Messages Not Appearing
- Check Webhook URL: Ensure URL is valid and not revoked
- Check Channel: Verify bot has access to target channel
- Check Filters: Confirm event type and sandbox settings
- Check Slack Limits: Webhook rate limits (1 per second)
Incorrect Information
- Check Timezone: Timestamps are in UTC
- Check Currency: Amounts in USD, original currency shown
- Check User ID: Falls back to transaction ID if not available
Test the Integration
Send a test event to verify setup:
- Configure the integration
- A test message is automatically sent
- Check your Slack channel
- Look for "🧪 Test event" message
Rate Limits
Slack incoming webhooks have a rate limit of 1 message per second. The integration sends events individually as they occur, typically well within this limit.
Security Considerations
- Webhook URLs are sensitive: Treat like passwords
- Rotate if compromised: Generate new webhook URL if leaked
- Channel permissions: Ensure appropriate team members have access
- PII considerations: User IDs may be visible to channel members
Advanced Configuration
Multiple Channels
Set up multiple integrations for different channels:
- Revenue events → #revenue-alerts
- Cancellations → #customer-success
- All events → #subscription-monitoring
Custom Filtering
While the integration offers two preset filters, you can:
- Use Slack workflows for additional filtering
- Set up multiple integrations with different settings
- Use Slack's notification preferences per channel
Message Examples
New Paid Subscription
💰 new subscriber
━━━━━━━━━━━━━━━━━━━━━
💵 $49.99 USD (Proceeds: $34.99)
📦 com.example.premium.yearly
🌍 United States
👤 user_abc123
🏪 APP_STORE
🔗 Transaction: 700001234567890Trial Start
🤩 Trial start
━━━━━━━━━━━━━━━━━━━━━
💵 $0.00 USD
📦 com.example.premium.monthly
🌍 Germany
👤 user_xyz789
🏪 PLAY_STORE
🔗 Transaction: GPA.1234-5678-9012Refund
🤬 refunded subscription
━━━━━━━━━━━━━━━━━━━━━
💵 -$9.99 USD (Proceeds: -$6.99)
📦 com.example.premium.monthly
🌍 United Kingdom
👤 user_def456
🏪 STRIPE
🔗 Transaction: sub_1234567890Billing Issue
🫠 Billing issue
━━━━━━━━━━━━━━━━━━━━━
💵 $0.00 USD
📦 com.example.premium.monthly
🌍 Canada
👤 user_ghi789
🏪 APP_STORE
🔗 Transaction: 700009876543210
❗ Payment failed - subscription at riskHow is this guide?