Alert Slack on large Salesforce opportunities using Flow Builder
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.
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
- Click Save, then Activate
- Create a test Opportunity with Amount set to $60,000
- Verify the Slack message appears in your channel
- Create a second test Opportunity under $50K and confirm no alert fires
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.