

How to Share Close Prospects to Slack with Make
When a Close opportunity reaches a target stage, Make pulls the deal details, company info, and conversation history, then posts a structured research brief to a Slack channel so your team can contribute insights before the call.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Inside sales teams of 5-20 reps who prep for enterprise or mid-market calls collaboratively and need deal context surfaced in Slack before meetings.
Not ideal for
Teams with high-volume transactional pipelines — posting every new lead to Slack will create noise fast; use a stage filter or move to a digest approach instead.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person SaaS sales team uses this to post a research brief into #deal-research whenever a Close opportunity moves to 'Qualified' stage. Before this automation, reps emailed the team manually or pinged people in DMs — context was scattered and easy to miss. Now the Slack post includes deal value, company size, recent call notes, and a direct link to the Close opportunity, and teammates reply in-thread with LinkedIn intel or past connection notes before the call.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Opportunity Name | opportunity.name | |
| Opportunity Value | opportunity.value | |
| Opportunity Stage | opportunity.status_label | |
| Lead (Company) Name | lead.display_name | |
| Assigned User | opportunity.assigned_to_name | |
| Recent Activity Type | activity.type | |
| Activity Note / Summary | activity.note | |
| Close Opportunity URL | opportunity.id | |
3 optional fields▸ show
| Lead URL / Website | lead.url |
| Expected Close Date | opportunity.date_won |
| Activity Date | activity.date_created |
Step-by-Step Setup
make.com > Scenarios > Create a new scenario
Create a new scenario in Make
Log in to Make at make.com and click 'Create a new scenario' in the top-right corner. You'll land on the visual canvas with a single empty circle — that's your trigger slot. Click the circle to open the app search modal. This is where you'll configure Close as the data source that kicks off the workflow.
- 1Click 'Create a new scenario' in the top-right corner
- 2Click the large empty circle in the center of the canvas
- 3Type 'Close' in the search bar
- 4Select the 'Close' app from the results
Close Module > Watch Opportunities > Connection > Add
Configure the Close 'Watch Opportunities' trigger
From the Close module list, select 'Watch Opportunities' as your trigger. This polls the Close API on a schedule you define and returns opportunities that have changed since the last run. You'll need to connect your Close account by clicking 'Add' next to the connection field and entering your Close API key. Find your API key in Close under Settings > API Keys.
- 1Select 'Watch Opportunities' from the Close trigger list
- 2Click 'Add' next to the Connection field
- 3Paste your Close API key into the API Key field
- 4Click 'Save' to authenticate
- 5Set the polling interval to '15 minutes' in the Schedule field
Close Trigger Module > Filters > Status
Filter by opportunity stage
You don't want to flood Slack with every opportunity update — only post when a deal reaches a specific stage like 'Qualified' or 'Demo Scheduled'. In the 'Watch Opportunities' module, set the Status filter to the target stage name exactly as it appears in Close. Stage names are case-sensitive in the Close API, so 'qualified' will return zero results if your Close pipeline uses 'Qualified'.
- 1In the trigger module, locate the 'Status' filter field
- 2Type the exact stage name as it appears in your Close pipeline (e.g. 'Qualified')
- 3Set 'Limit' to 10 to avoid processing too many records per run
- 4Click 'OK' to save the module configuration
Canvas > + > Close > Get Lead
Add a Close 'Get Lead' action to fetch company details
The Watch Opportunities trigger returns opportunity-level data but not the full company profile attached to the lead. Click the '+' button to the right of the trigger module and add a Close 'Get Lead' action. Map the Lead ID from the trigger output into this module. This pulls company name, website, employee count, and any custom fields you've added to leads in Close.
- 1Click the '+' icon to the right of the trigger module
- 2Search for 'Close' and select 'Get Lead'
- 3In the 'Lead ID' field, click the field and select '1. Lead ID' from the trigger output
- 4Click 'OK' to save
Canvas > + > Close > List Activities
Add a Close 'List Activities' action for conversation history
To give your team context about past interactions, fetch recent call and email activity from Close. Add another Close action module and select 'List Activities'. Filter by Lead ID and set the type to 'Call' and 'Email'. Set the limit to 5 so you're only surfacing the most recent touchpoints — posting 50 activities in a Slack message is unreadable.
- 1Click the '+' icon after the Get Lead module
- 2Select 'Close' then 'List Activities'
- 3Map 'Lead ID' from the trigger output into the Lead ID field
- 4Set 'Type' filter to 'call,email'
- 5Set 'Limit' to 5
Canvas > + > Tools > Text Aggregator
Add a text aggregator to format conversation history
The List Activities module returns an array of activity objects. To paste them into a Slack message, you need to flatten that array into readable text. Add a 'Text Aggregator' module from Make's built-in tools. Set the source module to 'List Activities', and in the Text field, build a line like: • {{date}} — {{type}}: {{note}}. The aggregator loops over each activity and joins them with a newline character.
- 1Click '+' after the List Activities module
- 2Search for 'Text Aggregator' under Tools
- 3Set 'Source Module' to your List Activities module
- 4In the 'Text' field, type:
• {{formatDate(date_created; 'MMM D')}} — {{type}}: {{note}} - 5Set 'Row separator' to a newline character by pressing Shift+Enter inside the field
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > + > Slack > Create a Message > Connection > Add
Connect your Slack account and add the 'Create a Message' action
Click '+' after the Text Aggregator and add the Slack module 'Create a Message'. Connect your Slack workspace by clicking 'Add' next to the connection field — this triggers an OAuth flow in a new browser tab. After authorizing, return to Make and select the destination channel from the dropdown. Use a dedicated channel like #deal-research rather than a general channel.
- 1Click '+' and search for 'Slack'
- 2Select 'Create a Message'
- 3Click 'Add' next to the Connection field
- 4Complete the Slack OAuth flow in the popup window
- 5Select your target channel (e.g. #deal-research) from the Channel dropdown
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Slack Module > Create a Message > Text field
Build the Slack message with deal context
In the 'Text' field of the Slack Create a Message module, compose the research brief using data mapped from previous modules. Use Slack's mrkdwn formatting for readability. Structure the message with the deal name at the top as a bold header, then company details, deal value, and the aggregated conversation history below. End with a direct link to the Close opportunity so teammates can click through.
- 1Click into the 'Text' field of the Slack module
- 2Paste or build the message template (see field mapping section for exact fields)
- 3Map 'Opportunity Name' from the Close trigger output into the header
- 4Map 'Text' from the Text Aggregator module into the conversation history section
- 5Map the Close opportunity URL using the format:
https://app.close.com/opportunities/{{opportunity_id}}/
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > + > Flow Control > Router
Add a router to skip already-posted opportunities
Without deduplication, the scenario will re-post the same opportunity to Slack every 15 minutes as long as it stays in the trigger stage. Add a Router module before the Slack step, then add a filter on the first route that checks whether a Make data store has already recorded this opportunity ID. If the ID exists in the data store, the route terminates silently. If it doesn't, the route continues to Slack.
- 1Right-click the line between the Text Aggregator and Slack modules and insert a Router
- 2Click the filter icon (wrench) on Route 1
- 3Set the condition: 'Opportunity ID' > 'Does not exist in' > select your Make Data Store
- 4Add a 'Data Store: Add/Replace a Record' module at the end of Route 1 to save the opportunity ID after posting
Scenario Canvas > Run once (bottom toolbar)
Run a test execution and verify the Slack message
Click 'Run once' in the bottom-left of the Make canvas to execute the scenario against live data. Make will highlight each module in sequence as it runs and show a speech-bubble badge with the record count processed. After it completes, check your #deal-research Slack channel for the posted message. Verify that all fields populated correctly — especially the conversation history and the Close opportunity link.
- 1Click 'Run once' in the bottom-left toolbar
- 2Watch each module light up in sequence — click any module to inspect its output bundle
- 3Open Slack and navigate to your target channel
- 4Confirm the message shows company name, deal value, and at least one recent activity
- 5Click the Close opportunity link in the message to verify it resolves correctly
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Scenario Canvas > Toggle (bottom-left) > Scheduling
Activate the scenario and set the polling schedule
Once the test passes, click the toggle at the bottom of the canvas to activate the scenario. Make will prompt you to set a scheduling interval if you haven't already — 15 minutes is the right balance between freshness and operation count. Confirm the scenario is listed as 'Active' on the Scenarios dashboard. The scenario will now run automatically every 15 minutes and post new qualifying opportunities to Slack.
- 1Click the grey toggle at the bottom-left of the canvas to activate
- 2In the scheduling modal, set interval to '15 minutes'
- 3Click 'Save'
- 4Navigate to the Scenarios dashboard and confirm the scenario shows 'Active' status
Paste this formula into Make's Text Aggregator 'Text' field to format each activity line with a readable date, type label in caps, and a null-safe note. It handles all five activity types Close returns and produces consistent output regardless of missing fields.
JavaScript — Custom Function// Make formula for Text Aggregator — formats Close activities into readable Slack lines▸ Show code
// Make formula for Text Aggregator — formats Close activities into readable Slack lines
// Paste into the 'Text' field of the Tools > Text Aggregator module
• {{formatDate(date_created; 'MMM D, YYYY')}} — {{upper(type)}}: {{ifempty(note; ifempty(subject; 'No details recorded'))}}... expand to see full code
// Make formula for Text Aggregator — formats Close activities into readable Slack lines
// Paste into the 'Text' field of the Tools > Text Aggregator module
• {{formatDate(date_created; 'MMM D, YYYY')}} — {{upper(type)}}: {{ifempty(note; ifempty(subject; 'No details recorded'))}}
// For the full Slack message body, use this in the Slack 'Create a Message' Text field:
// Replace MODULE_ID with the actual output reference numbers from your scenario
*🔍 Research Request: {{1.name}}*
*Company:* {{3.display_name}}{{if(3.url; " | " + 3.url; "")}}
*Deal Value:* {{formatNumber(1.value; 2; '.'; ',')}} {{1.value_currency}}
*Stage:* {{1.status_label}}
*Owner:* {{ifempty(1.assigned_to_name; 'Unassigned')}}
*Expected Close:* {{ifempty(formatDate(1.date_won; 'MMM D, YYYY'); 'Not set')}}
*Recent Activity (last 5 interactions):*
{{6.text}}
<https://app.close.com/opportunities/{{1.id}}/|View in Close> | Reply in thread with any intel 👇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
Use Make for this if your team needs conditional routing — for example, posting $50k+ deals to one channel and smaller deals to another — because Make's Router module handles that in under 5 minutes without writing any code. Make is also the right call if you want to enrich the prospect brief mid-scenario (add a Clearbit or Apollo module between Close and Slack) and need to control exactly when that enrichment fires. The one scenario where you'd skip Make: if your team already lives in Zapier and no one wants to learn a new tool. Zapier's Close + Slack integration covers the basics and your reps will actually use it.
The math on Make's Core plan ($9/month): this scenario uses roughly 9 operations per qualifying deal. At 15-minute polling intervals with 100 new qualifying deals per month, you're spending about 900 operations on actual deal processing, plus roughly 2,880 polling calls per month (96/day × 30 days) that return nothing. Total: ~3,780 operations/month, well inside Core's 10,000 limit. If you're on Make's Free plan (1,000 ops/month), the polling alone consumes nearly 3× your monthly allowance — upgrade before going live. Zapier would cost $19.99/month minimum (Starter) for the same workflow and counts every polling check as a task, making it more expensive at scale.
Zapier's Close integration has a native 'New/Updated Opportunity' trigger that's easier to configure and doesn't require you to think about polling mechanics — if setup time matters more than flexibility, that's real. n8n gives you full JavaScript in the workflow so you can manipulate activity arrays, deduplicate natively in code, and skip the Data Store module entirely — better for teams with a developer. Power Automate has no native Close connector, so you'd be hitting the Close REST API directly through an HTTP action, which adds 45 minutes of setup and requires reading API docs. Pipedream's Close integration is solid and the code-first approach makes the Slack message template cleaner to maintain. Make wins here specifically because the visual canvas makes it easy for non-technical sales ops people to maintain and modify the scenario without breaking it.
Three things you'll hit after launch: First, Close's API rate limit is 40 requests per second, which you'll never breach with this workflow — but if you're running multiple Make scenarios against Close simultaneously, aggregate your calls. Second, the assigned_to_name field returns null for opportunities assigned to deleted users. Add an ifempty() wrapper or you'll get blank owner fields in Slack with no error to debug. Third, Close truncates activity notes longer than 10,000 characters in the API response. If your team writes detailed call notes, the conversation history in Slack may be cut off mid-sentence — cap the note field in the Text Aggregator using substring(note; 1; 500) to keep Slack messages scannable and avoid the confusion.
Ideas for what to build next
- →Add a Slack reaction collector to push team notes back to Close — Set up a second Make scenario that watches for replies in the #deal-research thread and appends them as Close activity notes. This closes the loop so research collected in Slack lands in the CRM record before the call.
- →Enrich the prospect brief with LinkedIn or Clearbit company data — Add a Clearbit or LinkedIn module between the Close 'Get Lead' step and the Slack post to pull employee count, funding stage, and tech stack. A 3-minute enrichment call can change how your rep opens the conversation.
- →Build a daily digest instead of per-opportunity posts — Replace the 15-minute trigger with a scheduled daily run at 7am that batches all deals entering the target stage overnight into one Slack message. Reduces channel noise significantly for teams with 10+ deals moving per day.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup