Slack to Salesforce Integration

Share this article...

Slack is one of the most popular chat platforms for businesses around the globe. As the world’s #1 CRM platform, integrating Salesforce with Slack may feel like a good move, and yet, you would be right to ask why… Last year, I was asking the same question. Salesforce acquired Slack in 2021, causing a stir in the industry, and I became even more curious.

While the Salesforce App for Slack has been around for years, Marc Benioff teased us with Salesforce’s big post-acquisition plans: “We’re going to rebuild all of our technology, once again, to become Slack-first”. What we’re seeing now is the original connector being surpassed by tighter, use case-specific integrations.

Slack-First Customer 360 ties together all of Slack’s connectivity with Salesforce:

  • Salesforce App for Slack
  • Slack-First Sales: Pre-built for Sales Cloud (Digital Deal Rooms, Daily Briefs).
  • Slack-First Service: Pre-built for Service Cloud (Swarming, Expert Finder).
  • Slack-First Marketing: Pre-built for Marketing Cloud (Datorama Insights, Workflow Notifications).
  • Slack-First Analytics: For Tableau (Notifications, Watchlist Digests).

Note: Certain pre-built solutions are generally available, whereas others are in customer pilot.

Let’s focus on the Salesforce App for Slack first.

Salesforce App for Slack

The Salesforce App for Slack 2.0 is a connector, a prebuilt integration, that lets Slack users grab information from Salesforce and surface it directly in Slack. The update includes improvements ‘under the hood’ for Sales Cloud, and also introduces Service Cloud compatibility.

This is a free app that can be downloaded from the Slack App Directory and requires a “Companion app” from the Salesforce AppExchange (managed package) – also free.

Here’s what you can expect:

  • Get notified instantly by leveraging alerts about Salesforce records changes directly in Slack.
  • Ensure the team you collaborate with always has the latest updates on an Account, Opportunity, or other objects on a dedicated Slack channel.
  • Know when records are assigned to you from Slack, along with Salesforce in-app notifications or emails.

Before trying these features out, make sure you connect with a Salesforce org within the Slack App – be it a production instance or a sandbox.

Let’s dive into what can be achieved with the Salesforce App for Slack, as well as how to set them up.

1. Search Salesforce From Slack

One of the most common Slack commands is definitely the forward slash, which (amongst other Slack specific actions) can access features from apps installed in the Workspace.

The Salesforce search option is no different, following a simple syntax: /salesforce [search term]. This syntax allows you to search for any searchable standard or any custom object records directly in the connected Salesforce org, without having to leave the Slack channel or direct message.

The search functionality can be leveraged by both users and Salesforce administrators. This is useful, as conversations could lead to that one Salesforce record you need to open to either action or troubleshoot, depending on your role. Out of the box, the search in Slack will return records from the six main standard objects:

  1. Accounts
  2. Opportunities
  3. Leads
  4. Contacts
  5. Cases
  6. Tasks

Custom objects can be configured from Salesforce through the Slack settings (from the managed package that was just installed) – we’ll get to this part later.

While searching for any kind of term, all of the results will be displayed and categorized by Object. Also, in case the term you searched for couldn’t be found, the message will redirect you to your org’s homepage to use the actual Salesforce search.

Even better, this functionality is also available on the go! The same command can be used directly from the Slack mobile app for you to access key information without being tied to your laptop.

While searching for a specific record (a Contact in this example), if there are multiple records that match the search term, each will be displayed with the option to View Record underneath – just choose the one you want.

For each record, key fields will be displayed (which can be customized for Custom Objects). If these key fields are not enough, there is also the option to click the hyperlinked Record Name (John Test in this case) to be redirected straight to the Salesforce record in a new browser tab.

No matter what part of the org you are from, there’s definitely something to search for in Salesforce. For example, a support rep might need to search for a Case Number, whilst a Sales Rep will most likely search for an Opportunity Name (and they can immediately update the Next Step).

Even if actions are not available yet for the majority of records which will be searched, and the option to go directly in Salesforce by clicking on the Record Name remains there, saving the user some time.

Basically, as long as your Salesforce permissions grant you at least view access to a searchable record, you will be able to get the key information quickly from Slack.

Make sure to also check out the video example below for a glimpse into how easy the process really is.

2. Share a Salesforce Record in Slack

The search command is definitely useful if you’re searching for a record purely to check data or to actually work on it in Salesforce, but what if you’d like a colleague to take a look as well?

On top of the searching capability, records can be easily shared in private conversations or channels for streamlined collaboration.

Once you have decided on the record you’d like to share (and chosen it from the list), the high level information of the record will be displayed for you to double check. Once this is done, you can click on Share to proceed with choosing the recipient. Clicking it once again will send the message to either the channel or the private conversation.

3. Attach Slack Messages to Salesforce Records

Attaching a message to a Salesforce record is another useful thing you can do directly from Slack to Salesforce. This is good if you want to make a quick note about a particular record but don’t want to leave Slack, or if someone has sent you a message and you want to add it as a reference on the record for others to view.

The first step towards making use of this functionality is adding the Slack Message Viewer custom component (to the Lightning Record Pages of the objects it should be used on) to confirm the messages sent to Salesforce actually arrived.

After going back to Slack and finding the message that should be displayed in Salesforce, click on More Actions (the three dots that appear while hovering over the message) and choose the Add to Salesforce action.

The only thing left to do is to choose the Salesforce record (in the pop-up that appears on screen) and click Add.

To ensure everything works as intended, let’s hop into the Salesforce Opportunity record and confirm that the message is exactly where it should be:

How to Integrate Salesforce with Slack

Here is a summary of the steps required to connect Salesforce with Slack:

  1. Install the Salesforce App for Slack from the Slack App Directory.
  2. Install the “companion app” from the Salesforce AppExchange.
  3. Configure Slack Setup.

Step 1: Install the Salesforce App for Slack

You can install the Salesforce App for Slack directly from the Slack App Directory.

Note: ensure you have the correct workspace selected in the workspace switcher (dropdown) at the top of the screen:

Alternatively, you can click on “Apps” in the left sidebar. Can’t see it? Click “More” instead. You are now accessing the Slack App Directory:

Remember that you will need to approve how Slack can see/use Salesforce data.  

Step 2: Install the “Companion App” to Salesforce 

You may remember that, earlier in the guide, I mentioned the need to install two parts to access the complete functionality the connector offers. 

You can install the “companion app” Salesforce for Slack from the Salesforce app management page, or directly from the Salesforce AppExchange – in other words, the managed package.

Click the “Get it now” button and log in to your Salesforce org/sandbox.

Once installed, you will receive an email and be redirected to the “Installed Packages” page in Salesforce Setup. However, this isn’t where you will configure Slack to work with Salesforce… 

Step 3: Configure Slack Setup

From the Salesforce App Launcher (waffle icon), search for “Slack Setup”.

This is a guided setup for System Connections, enabling Custom Objects, Custom Alerts to send to Slack, Org Configuration (how and where Slack lives in your org), and Automation Configuration i.e. Message Destinations to be used with the “Send to Slack” invocable method in Flow/Process Builder.

Use Salesforce Custom Objects With Slack 

If you want to interact with custom object records from Slack, it’s important that you don’t skip this step. After selecting your object, add Subscribed Fields. These are the fields users will see when they click the “view record” button in Slack. You can add up to nine Subscribed Fields, so this really is designed as more of a highlights view.

(Remember that users can navigate straight to the Salesforce record by clicking on the hyperlinked record name.)

Here at, we rely heavily on a custom object called “Content”. This tracks where each piece of content is in the pipeline, who the key points of contact are, and more. This can be any other custom object you have in your Salesforce org.

Read the guidance in the Salesforce interface to decide whether a manual or automatic activation is most appropriate for you. I chose the automatic activation option as our org is relatively low in complexity. 

Configure Custom Alerts

I wonder how admins will approach this part… Will they collect user feedback? Replicate what they may have had in Chatter/Workflow Rules/other email alerts? Or add some alerts, and then see how people react…  

There are many common “run of the mill” use cases that admins can implement (some included in the section “use cases”).

Once you’ve selected the object, you will need to decide whether this alert will apply at the:

  • Object level: An alert that is sent when any record of the selected object type meets the specified criteria.
  • Record level: An alert that is sent when an individual record of the selected object type meets the specified criteria.

Org Configuration

Now it’s time to decide how and where Slack lives in your org. 

  • Slack Actions: Add the Quick Actions “Send to Slack” and “Slack Alerts” to page layouts. Clicking the “Add Actions to Layouts” button will add both Actions, and if you need to add/remove them, you can use the Global Actions Manager in Salesforce Setup.
  • Slack Message Viewer Component: A Lightning component that can be added to Lightning Pages. Click the “Add Component to Pages” button.

Automation Configuration

Message Destinations are used with the “Send to Slack” invocable method in Process Builder/Flow. In other words, they tell Flow/Process Builder where to send the message in Slack.

I created one for our “content-publish” channel in Slack. Each Message Destination has an auto-generated ID. Click on the copy icon if you plan to create automation (Flow/Process Builder now).

Send to Slack with Salesforce Flow

After creating Message Destinations (previous step), you can use these in Salesforce Flow or Process Builder to send messages to Slack at a specific time/when conditions are met.

I will focus on using Slack with Salesforce Flow. Although Process Builder will be retired, Salesforce does provide an example within the Integrate Salesforce with Slack Trailhead project – I will touch on using Slack with Process Builder at the end of this section.

Step 1: Decide the criteria for your flow

In this example, the use case is that a notification should be sent to a Slack channel every time an Opportunity is Closed Won. 

Step 2 : Add a Slack: Post Message Flow Action

One of the key elements of the Slack post action is the Message Destination Id, on top of the Label, API Name and Record Id. 

Within the Slack Setup in Salesforce, I have created one specifically for this and related it to the Slack channel messages will be posted on – the ID can be copied as soon as the destination is configured. 

Now that we have the Message Destination ID at hand, we can proceed with setting up the flow. 

Step 3 : Test Your Flow 

Since the flow is already active, the last thing left to do is to move the Opportunity into the Closed Won stage. You’ll then receive the Slack message on the #won-opps channel. 

Keep Using the Send to Slack and Slack Alerts Lightning Actions

Even if automations are possible, this doesn’t mean that the Lightning Actions included with the Slack managed package are no longer useful. They can still be used for individual records, allowing users to easily collaborate as needed.

Similar to the sharing option in Slack, the Send to Salesforce action allows a record to be shared in Slack with either a person or channel instantly, from Salesforce. 

Here’s what it looks like in Slack:

Slack Alerts can also be configured directly from the Salesforce record, with a few differences between the standard and custom objects. In the example below you can see the alert page for a Content Record (1) and for an Opportunity Record (2). 

You can use this as a way to inform people in Slack of a change on the record. This is a great way to quickly create “on the fly” notifications for specific records.

There are various other ways to set up objects and record level alerts – see the Slack documentation for more details. 


Overall, using the Slack integration gives your users a fast and efficient way to pull Salesforce information and add notes to records – all while working directly in Slack. 

The upgrade now includes support for both Sales and Service users, as well as the ability to send messages between the two applications, with the option to set up alerts for notifications about records in Slack. All of this functionality can save your users time and clicks, allowing them to stay in one place to complete their work more effectively.

Make sure you also check out the dedicated Salesforce App for Slack module and add another shiny badge to your Trailblazer profile!

44 thoughts on “Slack to Salesforce Integration

  1. For those looking for a true integration between Salesforce & Slack, Troops ( is the only real option. Can easily log calls, update records, and search records for a way that is really intuitive for Slack users. The Troops workflow builder is also awesome – doesn’t require any technical knowledge… a power user can put together workflow for deal alerts, overdue tasks, etc within minutes.

  2. The current Slack AppExchange offering is good but will become more feature rich during their next release which is intended to include custom notifications and the use of invocable actions with process builder. This was demo’d at Dreamforce during one of their sessions that I attended.

  3. We’ve tried it but there are some significant flaws: admin visibility being one of them. For example, I cannot see what has already been setup to be sent between #slack and Salesforce… so in my small test of (3) people we have duplicate alerts and I cant see why.

    You also cannot control what users are (or are not) allowed to sync between the two. For example, you may not want them to sync Opportunities (just an example) but there’s not administrative way to control the integration – its all or nothing.

    1. Hi Joy Ann, thanks for your comment. Wow yes, that is quite significant. I wonder if this is on Slack’s roadmap, I will try to find out myself.

  4. Is there any way to update values from Slack to Salesforce case detail page field. For example, If i update a field value in Slack channel , that updated value should be populated in the respective field in Salesforce. Is that possible?

  5. We tested the integration a couple of times and the feedback from users was not positive. The search functionality relies on the user knowing the Case subject or number, which means they have to have both SF & Slack open and jump between systems.

    Equally if there is a message thread we can’t easily reflect the whole thread in Salesforce.

    In my view Slack needs to replace Chatter, else it is “another” system for users to have to check.

    1. Hello James,

      Appreciate you sharing your thoughts!

      While both you and I are aware some features are not yet supported and that it might be a need for clear guidelines when it comes to user enablement (as in what they can and cannot do or search for), chances are that a lot of the features will be improved by Salesforce over time in future releases – perhaps Slack might even get to replace Chatter at some point, we’ll have to wait and see.

  6. Slack does not support rich text field, so if you try to push this type of field it will bring over the html tags

  7. Love this article and it came at the perfect time for me! I got a flow set up to send a message to a new Slack channel I created for closed deals notifications. I ran a debug on it and everything went perfectly, but when deals get closed nothing is actually coming to the Slack channel, any thoughts on what could be going on?

    1. Hello Ryan,

      Happy to hear you enjoyed the article! Would you mind sharing a bit more detail about your flow, such as the criteria you used in the beginning? The flow usually works perfectly in debug mode one the correct path for the record, but there are situations in which the entry criteria is tricky *(for example when using is changed)

      Also, did it send out the notification when you tested it out but doesn’t work when users close deals, or it didn’t work at all?

  8. When sending slack messages via Flow, how is the user that the slack message appears to come from controlled? I’d like to set it to a specific user but have not been able to pinpoint how it is set. My current theories are the user that created or activated the flow or the user who created the Message Destination ID.

    1. Hello Rebecca,

      As far as I could find through the documentation and testing out, there isn’t a way to control the user sending out the Slack message at this point in time, as what I was looking forward to doing was for the Salesforce App to post the message and not an actual person. Hopefully this will become a possibility soon.

  9. The “Message Destination”, for use with PB/Flow, currently requires a Slack User as the “poster”… In the screenshots of the article, might notice “Andreea” as the poster… There is no way to assign the Slack App’s “Bot” to post, for PB/Flow automations

    1. Hello Kyle,

      Agreed, I did try to dig and find a workaround but sadly there doesn’t seem to be one so far. In case I find a way or this becomes available as part of a release, will update the article.

    2. Thanks Andreea for the great article. Question, do Slack users have to have a Salesforce license to access Salesforce records? The use case is that we have certain employees that don’t have a salesforce license but have a slack license. We want these employees to create notes with the company they are working with through Slack and these notes would show up in Salesforce in the Slack – Related messages component. Please let me know. Thank you.

      1. Hello Shola,

        Happy you enjoyed the article! The first step towards using the integration as highlighted in the documentation ( is to connect the Slack and Salesforce Accounts – this means that yes, users would need a license in order to be able to make use of the functionalities.

        You might find that there is the possibility to have a generic user set up and share the username and password for that one user with the people who do not have a Salesforce license given that SSO in the org is not enforced, but this of course is not by any means a best practice and could compromise security.

        My recommendation is for each user who needs to use this to have their own license as well as permissions granularly controlled based on their need/ tasks in Salesforce – this is the best way to go about it and not expose the org to any risk even though it implies the license cost.

  10. This inability to control the “sender” of the message is a serious flaw. I have tried everything including authorizing the connection as a generic user, building my flows as that user, and setting up my destinations as that user. Nothing works. At this point I’m guessing it is using whatever user installed the Salesforce for Slack app. Slack can’t seem to provide a solution either.

  11. Slack was working perfectly fine and was set up for multiple automated notifications to various channels.
    However recently, someone while using send to slack, logged in with his slack and now the old notifications have stopped working. Earlier the slack messages were going out in the name of salesforce , but now they were being sent from the latest user who used ‘send to slack’. But that user doesn’t have permission to post to channels I think, and thus channel notifications have stopped working. In slack side salesforce app, it shows multiple tokens, but only salesforce token used the full access and permission to post to channels, these new users cant. Even when I removed those token, the app is not working.

    What is the correct way to reset it without uninstalling?

  12. Hi Andreea and Community,

    A little time has passed and I have the hope that there is a solution to the issue of “Send as …”.

    I have set up various channels where posts come in. By the fact that the posts come in as my user get ihc itself nothing of it. There must be a solution for this, right?

    1. Hello Thomas,

      As far as I’m aware, controlling send as is not yet a possibility within the integration. I’ll go through the documentation and test this one again to note if there is any notable update.

    2. Thomas and Andrea,

      I have figured out a way to send to send slacks as the flow user but it is not easy and not practical. Since it send as the user who set up the “Configure Message Destinations”, you would have to, 1 by 1, give your user admin privileges > log in as them > create a “Configure Message Destinations” under their name > remove their admin privileges > then use the flow to find that specific Destination Id based on the user that initiates the flow. This is not easy to do or maintain in the long run, but is a way to accomplish this goal.

  13. Hey Andreea,

    In regards to the Custom Object Configuration, how do you configure the order of the fields subscribed. The fields that are subscribed are in the order of that list of fields. When the slack notification triggers, those fields displayed are exactly the same way as the list.

    1. Hello Alejandro,

      When setting up the fields for the Custom Object this is something I wished for as well and tried to obtain, but indeed the only order currently available to select the fields in is the alphabetical one that appears when editing the fields for one of the Custom Objects in the Slack Setup from Salesforce.

    1. Hello Kumar,

      Sadly, I couldn’t find a possibility to replace that user as of now. I will take another look in case anything changed, and will let you know if this is a possibility of if I can find any workaround.

      1. Actually, When adminstrator leave the Organization, we need to re-authenticate/re-configure the Flow/PB to post the message to Slack

        1. Especially to avoid this situation, what I would do is to have a dedicated user (for example Slack Automation or something along these lines) which can be used to configure the automations. As expected, the downside of this approach is consuming a Salesforce license.

  14. Am I right in saying that this is the older version of the Slack – Salesforce integration? I believe the newer integration can be configured from Salesforce Setup?

    1. Hello Kanav,

      You are right, this is a post about the legacy app, and we will make sure to adapt it to include the newer updates soon. Thank you!

  15. This is a great article! Detailed and helpful.
    We’ve configured a flow that creates a Slack channel at a given point in the opportunity lifecycle and we want it to invite specific users to this new channel who are on the opportunity. We’ve followed all the documentation out there for inviting users but all the flow does successfully is create the channel. Have you had any success with something similar to this?

  16. Hi Andreea,
    I am using a scheduled flow and want to send slack direct messages to opportunity owner as a reminder when the opp record stayed in a specific stage for more than a couple of days. However, I couldnt find a way to send slack direct messages to the related opportunity owner through flow. Any ideas on how to go through with this request?

    1. Hi Isil,

      You have to create a message destination and add the id to the flow action to send notification.


  17. Is there a way to count the messages in the related messages window?

    Use Case: A client wants to have an automated count that will trigger a status on a record that shows (red, green, yellow) based on how many messages are going back and forth in the thread. (eg: a high message count would trigger green because there’s a high volume of activity on that account)

  18. Hi Isil,

    You have to create a message destination and add the id to the flow action to send notification.


  19. hello,
    we have many users in our salesforce partner community. Can this be integrated for such users ? That would be game changer.
    I didn’t read anything about it so just wondering if anyone had tested ?

    1. Hello,

      At this time, Sales Cloud for Slack supports the creation of Leads, Contacts, Accounts, Opportunities and Custom Objects. I just took another look, and Tasks are not an option still when attempting to create a Salesforce record from a private message or channel in Slack. Please refer to the documentation as well, as it only mentioned these few standard objects, and there is another section for the custom objects :

      Thank you!

  20. Really nice article! I’ve got this connected an working, including custom objects. One thing I haven’t been able to find in Salesforce, or in this article – is there a way to change the subscribed fields for standard objects? I’d love to remove the address on accounts and add a few custom fields we use regularly.


Add Comment