What You'll Learn
The Salesforce-Slack integration architecture layers, how Flow-to-Slack and Slack-to-Salesforce data paths work, how to build Slack Apps on the Salesforce platform, security and governance considerations, and the realistic maturity level of the Slack-first vision in 2026.
The Salesforce-Slack Vision vs the Reality
When Salesforce acquired Slack in 2021, the strategic vision was a "digital HQ" — Slack as the primary interface for Salesforce workflows, reducing the need for users to navigate the Salesforce UI directly. Five years in, the integration is mature in some areas and still evolving in others.
The areas that work well: Salesforce record notifications in Slack channels, Slack-first approval workflows triggered from Salesforce Flow, and Slack commands that surface Salesforce data. The areas still maturing: bidirectional data entry (completing Salesforce records from Slack modals at scale), and AI-powered Slack-Salesforce workflows via Agentforce.
Four Integration Layers
The Salesforce-Slack integration has four distinct architectural layers:
Layer 1 — Standard Notifications (Flow): Salesforce Flow can send messages to Slack channels using the "Send Slack Notification" Flow action. This is the simplest integration: a record change triggers a Flow, which posts a formatted Slack message. No Slack app development required — just a Slack workspace connected to the org via Salesforce Setup.
Layer 2 — Record-Linked Messages: Salesforce can post rich "record cards" to Slack — messages that include a preview of the Salesforce record and direct links to open it. Users can view record data without leaving Slack.
Layer 3 — Slack Modals (Action Back to Salesforce): Slack modals allow Slack users to submit forms that write data back to Salesforce. A "Close Case" modal in Slack might let the user update the Case resolution fields and close it — without opening Salesforce. This requires a Slack App with a Salesforce backend.
Layer 4 — Salesforce Slack Apps: Full Slack Apps built on the Salesforce platform using Heroku or the Slack SDK for Apex. These apps define custom slash commands, interactive message workflows, and App Home experiences in Slack.
// Salesforce Flow — Send Slack Notification action
// Configured in Flow Builder via "Action" element
// Input parameters:
// - Channel: Slack channel ID or name
// - Message: Text (supports basic Slack markdown)
// - Record URL: Optional deeplink to Salesforce record
// Flow path:
// Trigger: Opportunity Stage changed to "Closed Won"
// Action: "Send Slack Notification"
// Channel: "sales-wins"
// Message: "New Closed Won: " & {!Opportunity.Name}
// & " - " & TEXT({!Opportunity.Amount})
// Sending structured Block Kit messages via Apex
String channelId = 'C01234ABCDE';
String messageJson = JSON.serialize(new Map<String, Object>{
'channel' => channelId,
'blocks' => new List<Object>{
new Map<String, Object>{
'type' => 'section',
'text' => new Map<String, Object>{
'type' => 'mrkdwn',
'text' => '*Opportunity Closed:* ' + oppName
}
}
}
});
// Post via Named Credential to api.slack.com/chat.postMessageAuthentication and Security Architecture
Salesforce-Slack integration uses OAuth 2.0 at both connection points:
- Salesforce → Slack (outbound): A Slack App with bot token scopes (chat:write, channels:read) is connected to the Salesforce org via a Named Credential or via the standard Slack for Salesforce setup. The Named Credential stores the Slack bot token securely.
- Slack → Salesforce (inbound): Slack sends webhooks to Salesforce when users interact with messages or modals. These webhooks must be authenticated — Slack signs requests with a signing secret (HMAC-SHA256). Salesforce-side validation of the signature is required before processing the payload.
Governance: What Belongs in Slack vs Salesforce
The most common architectural mistake is treating Slack as a primary data entry interface at scale. Slack is excellent for:
- Real-time notifications and alerts
- Simple single-field updates (close a case, approve a deal)
- Contextual record links with read-only previews
- Team collaboration around a Salesforce record
Salesforce remains the right tool for:
- Multi-field record creation or complex data entry
- Report and dashboard-driven decisions
- Approval processes with complex routing logic
- Any workflow requiring audit trail completeness
Key Takeaways
- The Salesforce-Slack integration has four layers: notifications, record links, interactive modals, and full Slack Apps.
- Standard Flow-based Slack notifications are simple and require no Slack app development.
- Block Kit JSON is required for interactive messages — Flow's built-in action handles text only.
- Slack webhook processing must respond within 3 seconds — use Queueable Apex to handle long-running work asynchronously.
- Slack is ideal for notifications, simple updates, and collaboration around records — not for complex multi-field data entry.
- Validate Slack webhook signatures (HMAC-SHA256) before processing any inbound payload.
Check Your Understanding
1. A Slack user clicks a "Close Case" button in a Slack message. The Salesforce logic to close the case takes 8 seconds. What will happen?
2. You need to send a Slack message with interactive buttons. Which tool handles this?
3. Which use case is Slack NOT the right tool for in a Salesforce context?
Discussion & Feedback