Build no-code slack and salesforce automations with flow

Build No-Code Slack and Salesforce Automations With Flow

By

This blog is written by Jennifer Lee in collaboration with Jeremiah Peoples, Staff Developer Advocate at Slack.

As Salesforce Admins, we’re all about creating incredible user experiences and driving efficiency for our business. But one of the biggest blockers we can help solve is that dreaded swivel chair. It’s a modern work challenge. You know what I’m talking about. The swivel chair problem refers to workers constantly having to swivel between different applications, systems, and tools throughout their day to get work done.

Employees act as the glue between disconnected systems. According to Harvard Business Review, a single employee can switch apps over 3,600 times a day! This equates to a $2.1M productivity cost due to the swivel chair problem. That’s a hefty price to pay.

Consider a sales rep working a hot opportunity.

  • They start in Salesforce, our single source of truth, to check the Opportunity stage. That’s great! But then…
  • The customer has a technical question. The rep swivels to Slack and scrolls through a massive, noisy channel like #product-questions to find a similar issue. (Swivel 1)
  • They can’t find it, so they have to manually type out the customer’s name, the deal size, and the full question for the product team. Context is already being lost.
  • While waiting, they swivel to their email client to find the latest quote that was sent. (Swivel 2)
  • An hour later, an answer finally comes through on Slack. The rep swivels back to Salesforce to log the activity and update the Opportunity, copying and pasting the answer from Slack. (Swivel 3)

Notice the friction here? This constant context-switching creates significant productivity friction, increases cognitive load, and often leads to information silos and missed communications.

This is our moment to shine! We are the builders who can connect the systems.

The solution isn’t to force users to learn yet another system, but to meet them where they already work—and increasingly, that’s in Slack! Bring processes INTO Slack instead of forcing users OUT of Slack. When you start automating, Slack stops being just a place to talk about work. It becomes your work OS where work actually gets done, eliminating the mental overhead of switching between tools to find what you need.

Salesforce Flow + Slack Workflow Builder = Your integration advantage

With Salesforce Flow and Slack Workflow Builder, your systems can now talk to each other seamlessly. Salesforce (system of record) data flows directly into Slack channels where decisions happen. Approval workflows, data updates, and notifications happen in real time where your team lives—in Slack.

Stop asking your users to adapt to your tools. Make your tools adapt to your users. With Flow and Slack Workflow Builder, work happens where collaboration already lives. We build the streamlined experience that makes them successful, eliminating the swivel chair forever.

Check out the demo where we use Flow and Slack Workflow Builder to create a seamless two-way integration with no code, using this use case scenario.

Use case for Mochi Cupcakes where Priya spends all day in Slack but Salesforce is the system of record, and Kenji needs real-time alerts for large orders to manage his kitchen schedule. They are manually keeping both Salesforce and Slack in sync—swivel chair.

Priya gets a hot lead in Slack, Flow takes action in Salesforce

Your first step when creating a new Slack workflow is specifying the triggering event. There are several events to choose from, such as when an emoji reaction is used, on a schedule, or when a message is posted with keywords, just to name a few.

Slack events that start a Slack workflow.

Then, your Slack workflow can do all kinds of useful things, such as send and reply to messages, update channels, and collect information through forms. You can also take action in other systems using Workflow Builder connectors. Connectors let you add steps to your workflows that trigger actions in third-party services. We’ll use the Salesforce connector to run a flow in Salesforce.

Workflow step menu in Slack Workflow Builder.

In the demo, we created the ‘Log a New Mochi Deal’ workflow using Slack Workflow Builder.

Configured Slack Workflow for ‘Log a New Mochi Deal’.

Let’s do a deeper dive.

1. Our ‘Log a New Mochi Deal’ process starts when the user clicks the action button for the workflow.

2. As our first workflow step, we need to collect the information about the hot lead, so we’re going to create a form (think a simplified version of Google Forms). We’re collecting information needed to create the lead in Salesforce.

3. We want to keep track of these new Mochi leads, so we added a workflow step to ‘Add an item to a list’. We chose to add the step using a list we’d already created, but you can also create a new one from scratch. The neat thing about creating a list is that it automatically maps the values from the form to your list fields. With the {} icons, you can add variables from information gathered in previous steps in the workflow, similar to how you’d use merge fields or flow variables in Salesforce.
Add an item to a list workflow step in Slack Workflow Builder.4. Now that we have the information on the hot lead, we need to create the respective records in Salesforce (eliminating the swivel chair), using a Salesforce autolaunched flow (which we prebuilt and activated in Salesforce). Map the values in Slack to input variables in your flow.

Configured ‘Run a Flow’ workflow step with variable mapping configured.

5. Next, we want to post a message in the Slack channel where the workflow was kicked off. Insert variables in the Slack message, like you would use merge fields in Salesforce. Add a little bit of fun by including a few emojis in your message.

‘Send a message to a channel’ workflow step in Slack Workflow Builder. 6. As our last step in the workflow, we direct message (DM) the person who started the workflow. Notice that we inserted the opportunity link, which is an output variable from our flow.

‘Send a Message’ workflow step in Slack Workflow Builder.

Let’s eliminate the swivel chair from Slack to Salesforce to make manual updates to keep the two systems in sync. Automate this with Flow!

Salesforce is the system of record for leads, so we’re using our handy dandy friend Flow to (1) create the account, (2) create the associated contact, (3) retrieve the opportunity owner’s Salesforce user ID, and (4) create the related opportunity record. Pretty straightforward autolaunched flow. Note: You can only run active autolaunched flows from a Slack workflow.
Configured flow to create the account, contact, and opportunity records in Salesforce.

Priya updates Salesforce data without leaving Slack, Flow sends comms to Slack

Have you heard about Salesforce channels in Slack? Salesforce channels are dedicated spaces that connect directly to your Salesforce org, allowing teams to collaborate on records, get automated notifications, and take actions on Salesforce data without leaving Slack. In our demo, we created a Salesforce channel for our opportunity, ‘Innovate Corp – 50 Dozen Mochi Cupcakes’. From the Opportunity details tab, any updates made are reflected in the opportunity record in Salesforce—eliminating the need to swivel to Salesforce to make record updates.

Update to an opportunity record in Slack.

When actions happen to records in Salesforce, use Flow to automatically send communications to Slack users. No swiveling needed. This record-triggered flow looks out for certain events (in this case, for an opportunity that just closed won and is over $500) to send communications to certain teams in Slack. Note: You can only use the Send a Slack Message action in the asynchronous path.

Flow that sends two messages to two different audiences in Slack.

1. We need to send the opportunity record URL to Slack so the first step under the async path is to consolidate the URL and add it to a variable.

Formula resource used to create the opportunity link URL.

2. We need to retrieve the opportunity user’s Slack user ID from a custom field on the User record. Note: At the time of this blog post, there are no declarative means to retrieve a user’s Slack ID.

Custom field on the User record to hold the user’s Slack ID.3. We send a celebratory message to the Sales Wins channel on the new closed deal. You need to specify (1) the Slack app, (2) the Slack workspace, how to (3) execute the action as, (4) the Slack conversation ID (this is the Slack channel ID), and (5) the Slack message.

Send Slack Message Action to send a celebratory message to the Sales-Wins channel.

Slight tangent. I’m sure you noticed the hard-coded Slack channel ID in the screenshot. 😮 Please don’t come after me. Yes, best practice is to use a custom label, custom setting, or custom metadata type to house this ID and call it in our flow. I know, I wrote the blog about this. Now, the reason why I didn’t do it here is because once the Slack channel ID is created, it’s not subject to change.

Here’s the text template for the Sales Wins channel. I’m dynamically pulling in the user’s Slack ID, account name, and opportunity amount.

Text template for the Sales Wins channel Slack message.

We send a detailed operational message to a private Baking Orders channel letting Kenji and team know of the large order hitting their kitchen using another Send Slack Message action.

Send Slack Message Action to send an operations message to the Baking Orders channel.

Here’s the text template for the message to the Baking Orders Slack channel. I’m dynamically pulling in the account name, number of dozens of Mochi Cupcakes, the delivery date, and a link to the opportunity record.

Text template for the Baking Orders channel Slack message.

Kenji reacts to the large order Slack message, triggering a Slack workflow, and updates Salesforce with Flow

In Slack, you can set up workflows that trigger when a user reacts to a message with an emoji. In our demo, when Kenji befittingly (1) uses the chef’s kiss reactji in the Baking Orders channel, the workflow (2) replies to the message in a thread noting that Kenji acknowledged the order and continues to, (3) asks for the opportunity link URL, and (4) invokes a flow to then make updates to the opportunity record in Salesforce.

A Slack workflow triggered by a reactji.

When adding the workflow step ‘Reply to a message in thread’, you can configure interactive buttons. With buttons, users can continue with the workflow, branch to another step, or open links.

Configured the Continue button as an interactive button in the Reply to a message in thread workflow step.

When we look at the Run a Flow workflow step in our Acknowledge Order workflow, we’re passing the user who reacted to the message and the opportunity URL as inputs to the autolaunched flow.

Configured ‘Run a Flow’ workflow step in the Acknowledge Order Slack workflow.This autolaunched flow triggered by the Slack workflow is pretty cool, if I might say. It uses the power of Agentforce! The flow (1) invokes an agent to parse the opportunity record ID from Kenji’s pasted URL, (2) we assign the opportunity ID to a variable, and (3) we update the Order Status field on the opportunity that Kenji has acknowledged the order and it’s in progress.

Autolaunched flow triggered by the Slack workflow Acknowledge Order.Doing a deeper dive into the AI agent action, you’ll see that we ask the agent to update the opportunity order status using the opportunity URL Kenji pasted.

AI Agent action that invokes an agent to update the opportunity order status field.Our Order Transposer Agent topic ‘Opportunity Status Updates’ has one key instruction about extracting the 18-character opportunity ID from the URL.

Instruction from the Order Transposer Agent.You might be wondering, “Wait, that Salesforce URL is unstructured data. How are you able to use that in Flow without some crazy sorcery?!” I’m happy you asked. Flow builders now have the ability to configure structured output in an AI agent action. As shown in the demo, you can create structured outputs for use in Flow. Pro-tip: Descriptions here are king! Describe your output so your AI agent knows what’s what.

Structured output for the OpportunityId in an AI agent action.

And there you have it—our two-way integration between Salesforce and Slack where Salesforce is the system of record and our users stay where they work, in Slack, to do everything they need. No swivel dance needed.

How do I get started?

I hope you’re excited and inspired by the demo, and ready to embark on your Slack and Salesforce automation journey.

Here are five steps to get started.

  1. Get your Salesforce org, either with a Salesforce DE org or Trailhead org.
  2. Get your Slack environment (Register here).
  3. Connect Salesforce and Slack (Get connected).
  4. Start simple:
    • Build a simple Salesforce-only process using Flow.
    • Build a simple Slack-only process using Slack Workflow Builder.
  5. Combine and conquer!
    • Connect the two with a Slack workflow triggering a flow and a flow taking action in Slack.

We can’t wait to see all the cool integration automations you build!

Jennifer and Jeremiah presenting ‘Automate Across Salesforce and Slack’ in the Admin Theater at Dreamforce ’25.]

Resources

Dreamforce 2025 product highlights for admins

The Dreamforce 2025 Product Announcements You Can’t Miss

Wow! Dreamforce 2025 was one for the books. From connecting and learning together to building the Agentic Enterprise, the event was packed with inspiration and innovation — including some game-changing announcements in the Admin Keynote. This year’s keynote took us to Coral Cloud Resorts, a fictional luxury resort featured in Trailhead challenges and Agentforce NOW workshops […]

READ MORE
Introducing Setup Powered by Agentforce

Introducing Setup Powered by Agentforce: Your New Admin Superpower

Hello, Awesome Admins! I’m excited to tell you about how we’re improving Setup with the power of Agentforce (pilot at Dreamforce 2025). This will make your life easier by helping with key tasks like managing users, creating objects and fields, troubleshooting user access issues, summarizing Help & Training, and navigating you to the right Setup […]

READ MORE