Beginner~12 min setupCRM & CommunicationVerified April 2026
Salesforce logo
Slack logo

How to Send Weekly Pipeline Summaries from Salesforce to Slack with Make

Automatically posts formatted pipeline reports to your sales Slack channel every Monday with deal values, stage breakdowns, and closing opportunities.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Slack for Salesforce exists as a native integration, but it limited to record notifications without custom logic. This guide uses an automation platform for full control. View native option →

Best for

Sales teams who want consistent Monday morning pipeline visibility with custom formatting and stage-by-stage breakdowns.

Not ideal for

Teams needing real-time pipeline alerts or those with constantly changing Salesforce stage names that would break the aggregation logic.

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A 25-person B2B software company uses this to post pipeline summaries in #sales-team every Monday at 9 AM. Before automation, their sales manager spent 30 minutes each Monday pulling Salesforce reports, calculating stage totals, and typing updates into Slack. Now the team gets consistent visibility into their $2.3M pipeline with deals closing this week highlighted automatically.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Make

Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Salesforce admin access to query all opportunity records
Permission to post messages in your target Slack channel
Active Make account with at least 1,000 operations/month available
Sales opportunities with consistent stage names in Salesforce

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Opportunity NameName
AmountAmount
Stage NameStageName
Close DateCloseDate
2 optional fields▸ show
Account NameAccount.Name
Owner NameOwner.Name

Step-by-Step Setup

1

Scenarios > + > Schedule

Create New Scenario

Start a new Make scenario and add a Schedule trigger. This will run your pipeline summary every Monday morning at 9 AM.

  1. 1Click 'Create a new scenario' from your Make dashboard
  2. 2Click the clock icon to add a Schedule trigger
  3. 3Set schedule to 'Weekly' and select 'Monday'
  4. 4Set time to 9:00 AM in your timezone
What you should see: You should see a clock module with 'Every Monday at 9:00 AM' displayed below it.
2

Scenarios > Add Module > Salesforce > Search Records

Connect Salesforce

Add Salesforce and connect your account. You'll need admin permissions to access opportunity data across all users.

  1. 1Click the + button after the Schedule module
  2. 2Search for 'Salesforce' and select it
  3. 3Choose 'Search Records' from the action list
  4. 4Click 'Create a connection' and sign in to Salesforce
What you should see: Green 'Connected' status appears next to Salesforce with your org name.
Common mistake — Don't use 'Get Records' — it has a 2,000 record limit and will miss large pipelines.
3

Salesforce Module > Configuration

Configure Opportunity Query

Set up the search to grab all open opportunities. This pulls current pipeline data for your weekly summary.

  1. 1Select 'Opportunity' as the Record Type
  2. 2Set Maximum number of records to 5000
  3. 3In Search criteria, add: StageName != 'Closed Won' AND StageName != 'Closed Lost'
  4. 4Leave Order By empty for faster queries
What you should see: The module shows 'Search Opportunity records' with your filter criteria visible.
Common mistake — Don't filter by date ranges — you want ALL open opportunities for accurate pipeline totals.
4

Add Module > Tools > Text Aggregator

Add Text Aggregator

This module will process all opportunities and calculate totals. Without it, you'd get individual messages for each deal instead of one summary.

  1. 1Click + after the Salesforce module
  2. 2Search for 'Text Aggregator' and select it
  3. 3Set Source Module to the Salesforce module
  4. 4Leave Text field empty for now — we'll build the summary format next
What you should see: Text Aggregator module appears connected to Salesforce with 'Source module' showing your Salesforce search.
Common mistake — Don't skip the aggregator — Make will send hundreds of individual Slack messages without it.
5

Text Aggregator > Configuration

Build Summary Format

Create the pipeline summary template with totals and stage breakdowns. This formats your data into a readable Slack message.

  1. 1Click in the Text field of the Text Aggregator
  2. 2Add this template: 📊 *Weekly Pipeline Summary - {{formatDate(now; 'MMM DD')}*\n\n💰 *Total Pipeline:* ${{sum(Amount)}}\n\n*By Stage:*\n{{Name}}: ${{Amount}} ({{CloseDate}})\n
  3. 3Set Row separator to empty
  4. 4Enable Group by and select 'StageName'
What you should see: The Text field shows your template with Salesforce field mappings highlighted in blue.
Common mistake — Use double curly braces {{}} for variables — single braces won't map Salesforce fields correctly.
Message template
🔔 New Lead: {{1.FirstName}} {{1.LastName}}
Email: {{1.Email}}
Company: {{1.Company}}
Status: {{1.LeadStatus}}
6

Text Aggregator > Text Field

Add Pipeline Calculations

Insert formulas to calculate total pipeline value and count deals by stage. This gives your team the key metrics they need.

  1. 1After the Total Pipeline line, add: *Deals by Stage:*\n
  2. 2Add stage counts: {{size(bundle)}} deals\n
  3. 3Insert closing this week filter: *Closing This Week:*\n{{if(parseDate(CloseDate) <= addDays(now; 7); Name + ' - $' + Amount; '')}}
  4. 4Add line breaks with \n between sections
What you should see: Your template now shows pipeline total, stage counts, and this week's closing deals sections.
Common mistake — Test date formulas carefully — Salesforce date formats can break the parseDate function if timezones don't match.
7

Add Module > Slack > Create a Message

Connect Slack

Add Slack to post your formatted summary. You'll need permission to post in the target channel.

  1. 1Click + after the Text Aggregator
  2. 2Search for 'Slack' and select it
  3. 3Choose 'Create a Message' action
  4. 4Click 'Create a connection' and authorize Make in your Slack workspace
What you should see: Slack module appears with 'Connected' status and your workspace name displayed.
8

Slack Module > Configuration

Configure Slack Message

Set the target channel and map your formatted summary. This determines where your team sees the weekly pipeline update.

  1. 1Select your #sales channel from the Channel dropdown
  2. 2In Text field, map the 'Text' output from Text Aggregator
  3. 3Set Username to 'Pipeline Bot'
  4. 4Enable 'Parse' for proper formatting
What you should see: Slack module shows #sales selected and the aggregated text mapped as message content.
Common mistake — Enable Parse or your formatting will show as plain text — no bold, italics, or line breaks.
Message template
🔔 New Lead: {{1.FirstName}} {{1.LastName}}
Email: {{1.Email}}
Company: {{1.Company}}
Status: {{1.LeadStatus}}
9

Module > Right Click > Add Error Handler

Add Error Handling

Set up error handling for API failures. Salesforce timeouts or Slack rate limits can break your automation without this.

  1. 1Right-click the Salesforce module
  2. 2Select 'Add error handler' > 'Resume'
  3. 3Configure Resume to continue with empty data
  4. 4Repeat for the Slack module
What you should see: Small error handler icons appear on both Salesforce and Slack modules.
Common mistake — Use Resume, not Ignore — Ignore will hide failures completely and you won't know when reports stop working.
10

Scenario > Run Once

Test the Scenario

Run a test to verify data pulls correctly and Slack receives a properly formatted message. This catches mapping errors before going live.

  1. 1Click 'Run once' at the bottom of the scenario
  2. 2Watch each module execute and check for green checkmarks
  3. 3Verify the pipeline summary appears in your Slack channel
  4. 4Check that dollar amounts and deal counts look accurate
What you should see: All modules show green checkmarks and your Slack channel displays a formatted pipeline summary with real data.
Common mistake — If the test shows $0 pipeline, check your opportunity filter — you might be excluding all open deals.
Make
▶ Run once
executed
Salesforce
Slack
Slack
🔔 notification
received
11

Scenario > Toggle > Save

Activate Scheduling

Turn on the scenario to run automatically every Monday. Your sales team will now get consistent pipeline visibility without manual work.

  1. 1Click the 'OFF' toggle in the top left to 'ON'
  2. 2Verify the schedule shows 'Next execution: Monday 9:00 AM'
  3. 3Save the scenario with a clear name like 'Weekly Sales Pipeline to Slack'
  4. 4Add team members as collaborators if needed
What you should see: Toggle shows 'ON' in green and next execution date is displayed below the scenario name.
Common mistake — Don't test scheduling by changing to 'Every minute' — you'll spam your channel and burn through operations quickly.

Drop this into a Make custom function.

JavaScript — Custom Function{{if(parseDate(CloseDate; 'YYYY-MM-DD') >= now AND parseDate(CloseDate; 'YYYY-MM-DD') <= addDays(now; 7); '🔥 ' + Name + ' - $' + formatNumber(Amount); '')}}
▸ Show code
{{if(parseDate(CloseDate; 'YYYY-MM-DD') >= now AND parseDate(CloseDate; 'YYYY-MM-DD') <= addDays(now; 7); '🔥 ' + Name + ' - $' + formatNumber(Amount); '')}}

... expand to see full code

{{if(parseDate(CloseDate; 'YYYY-MM-DD') >= now AND parseDate(CloseDate; 'YYYY-MM-DD') <= addDays(now; 7); '🔥 ' + Name + ' - $' + formatNumber(Amount); '')}}

Scaling Beyond 500+ opportunities+ Records

If your volume exceeds 500+ opportunities records, apply these adjustments.

1

Split by Region

Create separate scenarios for different sales regions or teams to avoid Salesforce query timeouts. Each scenario handles 200-300 opportunities maximum for reliable execution.

2

Add Pagination

Use Make's iterator module to handle large result sets in chunks of 200 records. This prevents API timeouts and reduces memory usage during aggregation processing.

3

Cache Results

Store aggregated results in a Google Sheet or database module first, then reference cached data for Slack posting. This separates data processing from notification delivery for better reliability.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy Make for this workflow

Use Make for this if you need flexible pipeline calculations and custom Slack formatting. Make's Text Aggregator handles complex grouping better than Zapier's basic formatters, and you can build sophisticated formulas for stage analysis. The visual builder makes it easy to add conditional logic for deals closing this week. Skip Make only if you need real-time updates — the scheduled approach means pipeline changes won't appear until next Monday.

Cost

This workflow uses about 50 operations per run — 1 for scheduling, 5-10 for Salesforce queries depending on record volume, 35-40 for text aggregation processing, and 1 for Slack posting. At weekly frequency, that's 200 operations monthly, fitting comfortably in Make's free tier of 1,000 ops/month. Zapier would need their $20/month plan since their free tier caps at 100 tasks, and N8n self-hosted requires server maintenance that costs more than Make's $9/month starter plan.

Tradeoffs

Zapier beats Make on Salesforce connection reliability — their OAuth rarely expires compared to Make's quarterly reconnection prompts. N8n offers better date/time manipulation functions out of the box, while Make requires custom formulas for timezone handling. But Make wins on aggregation capabilities and Slack formatting options. Zapier's formatter can't group by stage names efficiently, and N8n's Slack node doesn't handle threaded conversations well if you want to add follow-up context.

Salesforce's SOQL query limits will bite you at 200+ opportunities — the default 2-minute timeout kills large pipeline pulls, forcing you to add pagination logic. Make's error handling doesn't automatically retry rate limit errors, so busy Monday mornings when multiple automations run can cause failures. The Text Aggregator module struggles with null values in Amount fields, showing 'NaN' instead of $0 unless you add null-checking formulas. Test with your actual data volume, not Make's sample records.

Ideas for what to build next

  • Add Deal AlertsCreate a separate scenario that posts to Slack whenever a large deal moves to the final stage or goes overdue.
  • Build Win/Loss TrackingSet up weekly closed deal summaries showing wins, losses, and win rates by rep or region for complete sales visibility.
  • Create Pipeline TrendsLog weekly pipeline totals to Google Sheets to track growth trends and identify seasonal patterns in your sales data.

Related guides

Was this guide helpful?
Salesforce + Slack overviewMake profile →