Alert Slack on large Salesforce opportunities using Flow Builder

low complexityCost: $0 (included)

Prerequisites

Prerequisites
  • Salesforce org with Flow Builder access (Enterprise edition or higher)
  • Slack app installed from AppExchange, or a Slack Incoming Webhook URL
  • System Administrator or Flow-enabled profile

Step 1: Create a Record-Triggered Flow

In Salesforce Setup, navigate to Flows and click New Flow. Select Record-Triggered Flow.

  • Object: Opportunity
  • Trigger: A record is created
  • Entry conditions: Amount greater than or equal to 50000

Entry conditions handle the filtering natively — no separate Decision element is needed for a simple threshold check.

Entry conditions vs. Decision elements

For a single threshold, entry conditions are simpler and more performant. Use a Decision element only when you need multiple branches (e.g., different channels for different deal sizes).

Step 2: Get the Account name

Add a Get Records element to fetch the related Account:

  • Object: Account
  • Filter: Id equals {'{'}$Record.AccountId{'}'}
  • Store: Automatically store all fields

This gives you Account.Name to include in the Slack message.

Step 3: Send the Slack message

Option A: Native Slack action (AppExchange app)

If you have the Salesforce for Slack app installed, add a Send Slack Message action:

  • Channel: #executive-deals
  • Message: Use merge fields for Opportunity.Name, Amount, Owner.Name, and the Account name from Step 2

Option B: HTTP Callout to Slack Webhook

For richer formatting, use an HTTP Callout action (or Apex Invocable) to send Block Kit JSON to a Slack Incoming Webhook:

  • URL: Your Slack Incoming Webhook URL
  • Method: POST
  • Body:
{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":dart: *New Large Opportunity Created*\n*{!Opportunity.Name}*\nAmount: *${!Opportunity.Amount}*\nStage: {!Opportunity.StageName}\nOwner: {!Opportunity.Owner.Name}\nAccount: {!Account.Name}"
      }
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "<https://your-org.lightning.force.com/lightning/r/Opportunity/{!Opportunity.Id}/view|View in Salesforce>"
        }
      ]
    }
  ]
}

Replace your-org with your Salesforce domain.

Step 4: Activate the Flow

  1. Click Save, then Activate
  2. Create a test Opportunity with Amount set to $60,000
  3. Verify the Slack message appears in your channel
  4. Create a second test Opportunity under $50K and confirm no alert fires
Multi-currency orgs need ConvertedAmount

If your org has multi-currency enabled, the Amount field stores the value in the record's currency. For consistent USD threshold comparisons, use the ConvertedAmount field in your entry conditions instead.

Cost

Record-Triggered Flows are included in all Salesforce Enterprise, Unlimited, and Developer editions at no additional cost.

Need help implementing this?

We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.