Salesforce Slack Integration: Setup, Flows and Best Practices

In this article
- To connect Salesforce to Slack, use Salesforce’s own integration: a Slack admin requests the connection, a Salesforce admin approves it in Setup, users are mapped by email or SAML, and the connection is activated in Slack. It is available on all Slack plans.
- Once connected, you get the Salesforce app in Slack (search, previews, record edits), Salesforce channels tied to records, Flow Slack actions for alerts and deal rooms, approvals, case swarming, and Agentforce and Slackbot.
- Start with two narrow uses: a big deal won alert and a daily DM digest, or case swarming for support. Add more only when people act on the first ones.
- The two traps are notification fatigue and data exposure: alert text and record previews are visible to everyone in the conversation, whatever Salesforce sharing rules say.
Jump to
- Your options at a glance
- What Salesforce for Slack actually gives you
- Which approach fits you
- How to connect Salesforce to Slack, step by step
- Salesforce channels: deal rooms tied to a record
- Flow Slack actions: four flows worth building
- Approvals in Slack, and their limits
- Case swarming with Service Cloud for Slack
- Agentforce and Slackbot in Slack
- Chatter or Slack in new orgs
- Who sees what: sharing and data exposure
- Notification design: what to send where
- Other pitfalls and fixes
- When a custom Slack app makes sense
- Go-live checklist
- Where Gilzor fits
Your options at a glance
There are five ways to bring Salesforce into Slack. Most companies need the first two and nothing else for a long time. The rest fill gaps.
| Option | What it does | Direction | Cost level | Effort | Limits |
|---|---|---|---|---|---|
| Salesforce for Slack (Salesforce-built integration) | Org connection, user mapping, Salesforce app in Slack, record previews and edits, Salesforce channels, approvals, swarming, AI features | Both ways: view and edit records from Slack | No additional cost; some features need paid Slack plans | Hours to connect, days to roll out | No Government Cloud orgs; IP restrictions can break features |
| Flow Slack actions | Post messages, create and archive channels, add users, pin messages, launch screen flows in Slack | Salesforce to Slack | Included | Low: point and click | Needs the connection; inviting people to a new channel is a separate action |
| Agentforce and Slackbot | Ask questions about Salesforce data, find and update records, run Agentforce agents in Slack | Both ways, with user approval for changes | Slackbot varies by Slack plan; agents need an Agentforce license | Low to medium | Only sees what the user can see in Salesforce |
| iPaaS: Zapier, Make, Workato | Alerts and digests that combine Salesforce with other systems | Either way | Entry plans start around $20 a month (for example, Zapier Professional from $19.99 billed annually, list price, October 2026); enterprise iPaaS is quoted per contract | Low to medium | Per-task pricing, another credential store, polling delays |
| Custom Slack app (Bolt + Salesforce APIs) | Your own bot, interactive approvals, slash commands, data from several systems | Both ways | Project budget plus upkeep | High | You own hosting, security and both sides’ API limits |
One thing to drop: Slack says its older Slack-built Salesforce app is no longer supported and recommends the Salesforce-built integrations. If your alerts still come from it, plan the move before they break. Slack also ended support for legacy Salesforce connections on March 31, 2026, so older connections need to be updated to keep Salesforce features working. Using Microsoft Teams instead? See the Salesforce Microsoft Teams integration guide. For how Slack fits your wider Salesforce architecture, start with the Salesforce integration guide.
What Salesforce for Slack actually gives you
“Salesforce for Slack” is the name Salesforce uses for its suite of Slack integrations. They share one org connection and one user mapping, and you switch them on one by one.
- The Salesforce app in Slack. After the connection is active, mapped users get a Salesforce app in Slack. They can search Salesforce from Slack, open a record and edit the fields their Salesforce permissions allow, and the change is saved in Salesforce. On Business+ and Enterprise plans they can also open and share list views and pull Salesforce fields into a canvas, according to Slack.
- Record previews. Paste a Salesforce link into a message and Slack shows a preview of the record. Admins choose how much the preview shows.
- Salesforce channels. A Slack channel tied to one record, such as an Account or Opportunity, with tabs for Messages, record details, a Summary (Business+ and Enterprise+) and related conversations. Slack’s documentation says they can map to any object except Users.
- Flow Slack actions. Core actions in Flow Builder that post messages, manage channels and launch screen flows in Slack. This is how most alerts are built.
- Approvals and notifications. Approval requests with Approve and Reject buttons, and Slack-enabled custom notification types that a flow can send, according to Salesforce’s developer documentation.
- Service Cloud for Slack. Case swarming: experts solve a hard case together in a Slack channel, and the swarm is tracked on the case.
- AI. Slackbot can answer from and update connected Salesforce orgs, and Agentforce employee agents can run in Slack.
Which approach fits you
How should you bring Salesforce into Slack?
How to connect Salesforce to Slack, step by step
You need a Slack Workspace Owner or Admin (Org Owner or Admin on Enterprise plans), or a member with Slack’s Salesforce Admin system role, and a Salesforce System Administrator. Book an hour with both. The steps below follow Slack’s and Salesforce’s current documentation; screen names change between releases, so match what you see.
- Check the basicsSlack can’t connect to Government Cloud Salesforce orgs. Slack also warns that features relying on the connection may not work as expected when Salesforce IP restrictions are on. Pro, Business+ and Enterprise plans can connect up to 20 additional Salesforce orgs.
- Start with a sandboxConnect a full or partial sandbox first if you will build flows. You test alerts against fake deals instead of announcing a test “closed won” to the whole sales floor. Connect production once the flows are ready to deploy.
- Request the connection in SlackClick your workspace name, hover over Tools & settings, open Manage Salesforce Organizations and click Connect Salesforce Org. Enter the org URL, choose Email or SAML NameID as the mapping field, decide whether automatic account mapping stays on, and click Request Connection.
- Approve it in SalesforceIn Setup, under Platform Tools, open Slack, then Manage Slack Connection. Under User Configuration, pick the same mapping field, accept the terms and click Approve.
- Activate it in SlackBack in Manage Salesforce Organizations, select the pending connection, review it and click Activate. Mapped members now get the Salesforce app in Slack.
- Map usersKeep automatic mapping on if emails (or SAML IDs) match in both systems. Fix mismatches first: aliases, shared inboxes and contractors with personal emails. Anyone left over can be added from the org’s Users tab one by one or by CSV, and Export User Mapping CSV shows who is connected.
- Assign permissionsGive users the Slack permissions and permission sets for each feature you switch on. For example, Salesforce’s documentation lists the Connect Salesforce with Slack permission and a Slack Service User permission set for Service Cloud for Slack. Assign them only to the pilot group at first.
- Configure Salesforce channelsIn Setup, search for Slack Channels for Records, click Add Objects and pick the objects that should get channels, for example Opportunity and Account. Set the default privacy and how much record previews show (next section).
- Build and test the first flowCreate a record-triggered flow with a Send Slack Message action, run it in the sandbox, check who can see the message, then deploy to production with your normal release process.
Users with the Unified Employee license can only be mapped automatically, so keep automatic mapping on if you use it. If your Salesforce org URL changes, the connection to Slack must be updated. And Slack says the connection uses a Salesforce Platform Integration User to manage object access for features like Salesforce channels: leave it alone and don’t reuse it for other integrations.
Salesforce channels: deal rooms tied to a record
A Salesforce channel is a normal Slack channel that knows which record it belongs to. Members see the record details in a tab, can edit fields they are allowed to edit in Salesforce, and see related conversations. Members can start one from a record shown in Slack, either as a new channel or by linking an existing one.
The admin settings that matter most:
- Which objects. Add only the objects where people really collaborate: large Opportunities, key Accounts, maybe a custom Project object. Every object you add invites more channels.
- Privacy. Public and Private work like any Slack channel. Limited access lets Salesforce record permissions decide who can see and join the channel, with three levels: anyone who can view the record, record editors, or record owners (and people with transfer access). Slack defaults a new configuration to Public if the object is public in Salesforce’s record access settings, and to Limited otherwise.
- Naming. Channel names match the record name by default and update when the record is renamed. You can map them to another field instead.
- Record previews. Choose Show record details (the default), Show name and object only, or Show object only, with exceptions per object. Slack warns that previews are visible to everyone in the conversation, regardless of their Salesforce permissions.
Changing or removing a configuration does not touch channels that already exist, so decide the defaults before the pilot, not after a hundred channels.
Flow Slack actions: four flows worth building
Flow Builder includes core actions for Slack: send a message to a channel or a person, create and archive channels, add users to a channel, pin messages, and send a message that launches a screen flow in Slack. Send Slack Message returns the message timestamp, which you can store and use to reply in a thread later. Pick two of the flows below to start.
1. Big deal won
Trigger: record-triggered flow on Opportunity, when Stage changes to Closed Won and Amount is above your threshold. Action: Send Slack Message to a #wins channel. Message: account, owner, amount band, product line and a link to the record. Keep the threshold high enough that it stays news, and let congratulations go into the thread.
2. Deal room on a strategic opportunity
Trigger: Opportunity created above a size threshold, or moved to a late stage. Action: create a Salesforce channel on the record (or Create Slack Channel), then add the account team with a separate Add Users action, because creating a channel does not invite anyone. Message: a pinned kickoff post with the close date, next step and the people involved. When the deal closes, a second flow posts the outcome and archives the channel.
3. Daily pipeline digest by DM
Trigger: schedule-triggered flow every weekday morning. Action: one direct message per rep. Message: deals closing this week, deals with no activity in 14 days, and stage changes since yesterday, each with a link. One digest replaces ten real-time pings, and personal numbers stay out of team channels.
4. Hot lead with a fallback
Trigger: a lead with a high score is assigned to a rep. Action: DM the owner right away; a scheduled path an hour later checks whether the lead was touched and, if not, posts to the team channel and tags the manager. Message: company, source, score and a link, never the phone number or email. Speed matters here, so this is the one alert that earns real-time delivery.
A fifth pattern for service teams: when a high-priority case has no update within your target time, post to the support leads’ channel and offer a swarm (below), instead of paging everyone.
Approvals in Slack, and their limits
With the Salesforce-built integration set up and Slack notifications on for approvals, requests from classic approval processes reach the approver in Slack with Approve and Reject buttons. That covers the bulk of simple discount and expense approvals.
- Comments and next approver. Requests that need comments, or where the approver must choose the next approver, send the user back to Salesforce.
- Four fields. A notification shows up to four fields, so choose them deliberately: amount, discount, margin, reason.
- Richer decisions. When approvers need more context or a structured answer, send the approver a screen flow that runs in Slack and collect the decision there.
- Cross-system approvals. If margin comes from the ERP and risk from a contract tool, Flow alone gets awkward. That is a typical reason for a custom Slack app.
Case swarming with Service Cloud for Slack
Swarming means pulling experts into a Slack channel to solve one hard case. With Service Cloud for Slack installed, an agent starts a swarm from the case in Salesforce or with the /service-swarm-start command in Slack. Experts join, work it out in the channel, and the agent finishes the swarm (Finish Swarming or /service-swarm-close), which marks the swarm closed in Salesforce. In a 2021 blog post, Slack reported that swarming in Slack improved the days-to-close rate of Salesforce’s own support team by 26%.
Two rules keep it healthy. Define who may start a swarm and on which cases, or every hard case becomes a fire drill. And keep customer personal data out of the swarm channel: experts need the problem and the product, not the customer’s phone number.
Agentforce and Slackbot in Slack
Slackbot became generally available in January 2026 for Business+ and Enterprise+ plans. Once Salesforce is connected, Slack says Slackbot can find information in connected orgs and, by default, create or update records, but only with data a person can see in Salesforce, and members are always asked to review and approve before a change is made. Admins can turn off access per org, limit which objects Slackbot may change, and restrict edits to fields on assigned layouts. Slack also lets admins add Salesforce MCP servers so Slackbot can take more actions in Salesforce, though Slack notes these can’t be connected while the Salesforce org uses IP address restrictions.
Agentforce agents in Slack are available on all Slack plans with a Salesforce Agentforce license. According to Slack, agents for Slack are built with the Agentforce Employee Agent type, member access follows Salesforce permissions, and members without a Salesforce account need a provisional Salesforce license. Start with read-only questions (“what changed on this account this week?”) and add actions once you trust the answers.
Chatter or Slack in new orgs
According to the Summer ’26 release notes, Chatter is off by default in new Enterprise, Unlimited and Developer Edition orgs created in Summer ’26 or later, and Salesforce channels are on by default for Lightning Experience in new Enterprise and Unlimited orgs. Existing orgs keep their settings. In older orgs, both often live side by side, and people stop knowing where a deal was discussed.
Pick one per team. If your sales and service teams already live in Slack, put record conversations in Salesforce channels and retire Chatter posts and Chatter-based alerts for those teams. If some users have no Slack account (field staff, partners in an Experience Cloud site), or you rely on Case Feed, which needs Chatter, Chatter may still be the right place for them. Write the decision down, so new flows don’t post to both.
Built by Gilzor
Results we’ve shipped




Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.
Who sees what: sharing and data exposure
This is the pitfall that reaches the security team. Salesforce sharing rules decide who sees a record in Salesforce. They do not decide who reads a message or a preview once it is in Slack.
- Alerts are plain text. A flow message with an amount, a discount or a customer contact is readable by every channel member, including people without a Salesforce license and anyone who joins later.
- Previews show to everyone in the conversation. Slack says so explicitly, and the preview is generated with the Salesforce permissions of the person who shared the link. If an Opportunity preview shows amount and discount, everyone in that channel sees them. Set previews to name only for sensitive objects.
- Record access follows Salesforce. Opening a record, editing it, the record tab in a Salesforce channel and Slackbot answers all use the mapped user’s Salesforce permissions and field-level security.
- Limited channels follow the record. Use Limited access on Salesforce channels for confidential deals, so only people with access to the record can see and join.
- Retention moves. A copy of the data now lives under Slack’s retention and eDiscovery settings, not Salesforce’s. Health, financial and other regulated personal data usually should not go there at all.
- External people. Slack says you can’t invite external people to Salesforce channels, and record previews don’t appear in channels with external people, but a flow can still post message text into a shared channel with a partner. Block shared channels as alert targets.
The fix: post links and safe summary fields, and let people click through to the record, where sharing rules apply. Keep a short list of fields that may never appear in a message, and review it with whoever owns your data policy.
Notification design: what to send where
The first month often goes the same way: every stage change posts, the channel scrolls all day, people mute it, and the one alert that mattered is missed. Design alerts like a product, not a log.
| Salesforce event | Slack destination | Direction | System of record | Fields to include |
|---|---|---|---|---|
| Opportunity Closed Won above threshold | #wins channel | Salesforce to Slack | Salesforce | Account, owner, amount band, link |
| Strategic opportunity | Salesforce channel on the record (Limited) | Both: edits checked against permissions | Salesforce | Record tab handles the details |
| Approval request | Approver DM | Both: decision written back | Salesforce (approval) | Up to four fields: amount, discount, margin, reason |
| Pipeline digest | Rep DM | Salesforce to Slack | Salesforce (reports) | Counts and links, no full deal lists in channels |
| Hot lead assigned | Owner DM, fallback team channel | Salesforce to Slack | Salesforce (lead) | Company, source, score, link; no phone or email |
| High-priority case stalled | Swarm channel | Both: swarm tracked on the case | Salesforce (case) | Case number, product, priority, link; no customer personal data |
- A threshold for every alert. Amount, priority, segment. If an alert fires more than a few times a day in one channel, raise the bar or turn it into a digest.
- Personal goes to DMs, team news to channels. A rep’s stalled deals are not the whole team’s business.
- One alert, one owner. Every message should say who is expected to act. Alerts nobody owns are noise.
- Thread the follow-ups. Store the timestamp from Send Slack Message and post updates as thread replies instead of new messages.
- Respect Slack’s pace. Slack’s API documentation says apps may post no more than one message per second per channel, with short bursts allowed. A bulk data load that fires a flow per record can hit that; exclude imports with an entry condition.
- Review monthly. Count alerts per channel, ask which ones people act on, and delete the rest.
Other pitfalls and fixes
| Pitfall | What happens | Fix |
|---|---|---|
| Users don’t map | Emails differ between Slack and Salesforce, so the Salesforce app shows nothing and actions fail | Clean emails or use SAML NameID; export the user mapping CSV before launch |
| Flow loops | An edit from Slack updates the record, which re-triggers the flow, which posts again | Entry conditions on the changed field only, plus a “notified” checkbox or timestamp |
| Duplicate posts | Two flows, or a flow and a Zap, fire on the same change | One owner per alert; keep a list of every flow that posts to Slack |
| Private channel posts fail | Posts to a private channel can fail when the Salesforce app is not a member of it | Check that the app is in every private channel you post into, and test in the sandbox |
| Alerts stop after offboarding | iPaaS connections or old app alerts tied to a person die when the account is deactivated | Run automation under an integration user, not a named admin |
| Features fail silently | Salesforce login IP restrictions block parts of the integration | Review IP restrictions before connecting, as Slack recommends |
| API limits | Polling iPaaS tools spend Salesforce API calls on every check | Prefer flows or event-based triggers; watch API usage in Setup |
| Channel sprawl | Every opportunity gets a Salesforce channel, most stay empty | Create deal rooms only above a threshold and archive them on close |
When a custom Slack app makes sense
Flow and the Salesforce-built integration cover most alerts, channels and simple approvals. Before building, check whether an app on the Slack Marketplace or AppExchange (now AgentExchange) already does the job. A custom app built with Slack’s Bolt framework (available for JavaScript, Python and Java) and the Salesforce APIs earns its cost when:
- Approvals need data from several systems, such as margin from the ERP and risk from a contract tool, in one interactive message.
- You need slash commands or shortcuts that run your own logic, such as “create a quote from this thread” with validation.
- Several Salesforce orgs, or Salesforce plus another CRM, must feed the same channels with the same rules.
- Compliance needs field-level redaction, an audit log of every message sent, or region-specific data handling.
A typical project includes a hosted Slack app (bot, interactive messages, modals, slash commands), OAuth to Salesforce with a dedicated integration user or per-user tokens, event handling with retries, and monitoring. Slack’s developer platform also offers Salesforce connector steps for its workflows (create, read, update or delete a record, run an autolaunched flow) as a lighter middle ground. Budget for upkeep too: Slack and Salesforce both change their APIs and app rules every year.
As a rough guide from our API integration cost breakdown, a simple one-way integration runs about $2,000–10,000, a two-way CRM sync $10,000–40,000, and complex multi-system work $40,000–150,000 or more, with 15–25% a year for maintenance. Most custom Slack apps fall in the first two bands. If the same project also feeds an ERP or a service desk, see the ServiceNow and MuleSoft guides, and the broader cost of data integration.
Go-live checklist
Tick what is already true. It shows how ready your Slack integration is for the whole team.
Salesforce Slack integration go-live
FAQ
How do I connect Salesforce to Slack?
Is the Salesforce Slack integration free?
What is the difference between Salesforce for Slack and the old Salesforce app in the Slack Marketplace?
Can I approve Salesforce approval requests in Slack?
Can people without a Salesforce license see Salesforce data in Slack?
Should I use Zapier or the native Salesforce Slack integration?
Where Gilzor fits
Gilzor builds and maintains Salesforce integrations (see Salesforce integration services), with engineering teams in Poland and Cyprus. Gilzor’s engineers can map which deals, cases and approvals belong in Slack, build the flows or a custom Slack app, and support it after launch. More Salesforce connections are covered in the Salesforce integration guide.
No sales pitch
Get a straight answer for your project
Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

CTO of Gilzor. Responsible for architecture and the engineering standards our teams work by.
LinkedIn →Gilzor · Web Development partner
Need a team for your web product?
Services
Web DevelopmentCustom websites and web apps — front-end, back-end, launch and support.→By company type
Selected projects






The team behind them





