Beginner~12 min setupCommunication & CRMVerified April 2026
Slack logo
Copper logo

How to Send Copper Lead Alerts to Slack with Make

When a lead is created or reassigned in Copper, Make fires a Slack DM or channel message to the assigned sales rep within seconds.

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

Best for

Sales teams using Copper as their CRM who need reps to respond to hot leads within minutes, not hours.

Not ideal for

Teams reassigning hundreds of leads per day — at that volume, a daily digest in Slack is less noisy and more actionable.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person B2B SaaS sales team routes inbound leads by territory inside Copper. Before this automation, reps discovered new assignments by checking Copper manually — sometimes 3–4 hours after the lead came in. Now each rep gets a Slack DM with the lead's name, company, source, and a direct Copper link the moment the record is assigned to them.

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.

Copper account with API access enabled and an API key generated under Settings > Integrations > API Keys
Copper user role with permission to configure webhooks (Admin or Super Admin role required)
Slack workspace where you have permission to add apps and send messages via OAuth bot
Make account with at least one active scenario slot (Free tier works for testing; Core plan recommended for production)
All sales reps in Copper must have email addresses that exactly match their Slack account emails for the user lookup to resolve correctly

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Lead Namename
Assignee Emailassignee_id
Lead IDid
6 optional fields▸ show
Assignee Nameassignee_name
Company Namecompany_name
Lead Sourcesource_id
Lead Statusstatus
Phone Numberphone_numbers
Email Addressemail

Step-by-Step Setup

1

make.com > Scenarios > Create a new scenario

Create a new scenario in Make

Log into Make at make.com and click 'Create a new scenario' in the top right. You'll land on a blank canvas with a large '+' circle in the center — that's where you add your trigger module. This scenario will have two modules total: a Copper trigger and a Slack action. Name your scenario something like 'Copper Lead Assignment → Slack' using the pencil icon at the top so it's identifiable later.

  1. 1Log into make.com and navigate to Scenarios in the left sidebar
  2. 2Click the blue 'Create a new scenario' button in the top right
  3. 3Click the pencil icon next to 'New scenario' and rename it 'Copper Lead Assignment → Slack'
  4. 4Click the large '+' circle in the canvas center to open the module picker
What you should see: You should see the module search dialog open over a blank scenario canvas with your new scenario name visible at the top.
Common mistake — Don't use an existing scenario and bolt this onto it. Copper webhooks can be flaky if the scenario has complex routing already — keep this one dedicated.
2

Scenario Canvas > + > Search 'Copper' > Watch Leads

Add the Copper 'Watch Leads' trigger

In the module picker, type 'Copper' and select it from the list. Make will show you the available Copper modules — choose 'Watch Leads' as the trigger. This module uses a webhook under the hood; Make will auto-generate a webhook URL that you'll register in Copper in the next step. You'll be prompted to create or select a Copper connection — click 'Add' to create a new one.

  1. 1Type 'Copper' in the module search box
  2. 2Click 'Copper' in the results list
  3. 3Select 'Watch Leads' from the Copper module list
  4. 4Click 'Add' next to the Connection field to authenticate with Copper
What you should see: The Watch Leads module configuration panel opens, and a new connection prompt appears asking for your Copper API key and email.
Common mistake — Copper's Make integration triggers on both lead creation AND updates — you'll filter for assignment changes in step 5. Don't skip that filter or you'll spam reps every time any field on a lead is edited.
Make
+
click +
search apps
Slack
SL
Slack
Add the Copper 'Watch Leads'…
Slack
SL
module added
3

Copper > Settings > Integrations > API Keys

Authenticate Make with Copper

In the connection dialog, enter your Copper email address and your Copper API key. Find your API key in Copper under Settings > Integrations > API Keys — it's a long alphanumeric string. Give the connection a clear name like 'Copper Production' so you can reuse it across other scenarios. Click Save after entering both fields.

  1. 1Open Copper in a new tab and go to Settings > Integrations > API Keys
  2. 2Copy your API key (generate one if none exists)
  3. 3Return to Make and paste the API key into the API Key field
  4. 4Enter the email address associated with your Copper account
  5. 5Click 'Save' to establish the connection
What you should see: The connection dropdown in the Watch Leads module should now show 'Copper Production' selected with a green indicator confirming it's valid.
Common mistake — Copper API keys are tied to a specific user account. If you use a personal account key and that person leaves the company, the scenario breaks. Use a dedicated admin or service account email instead.
4

Copper > Settings > Integrations > API > Webhooks > Add Webhook

Register the Make webhook URL in Copper

After saving the connection, Make displays a webhook URL for the Watch Leads trigger. Copy that URL. Go to Copper > Settings > Integrations > API > Webhooks and create a new webhook. Paste the Make URL as the endpoint and select the 'Lead' resource. Check both 'new' and 'update' event types so the scenario fires on creation and reassignment. Save the webhook in Copper.

  1. 1Copy the webhook URL shown in Make's Watch Leads module panel
  2. 2Open Copper and navigate to Settings > Integrations > API > Webhooks
  3. 3Click 'Add Webhook'
  4. 4Paste the Make URL into the Endpoint URL field
  5. 5Select 'Lead' as the resource type, check 'new' and 'update' events, then click Save
What you should see: Copper shows the new webhook in your list with a status of Active. Back in Make, the Watch Leads module will show 'Waiting for data' until the first lead event fires.
Common mistake — Copy the webhook URL carefully — it expires if you regenerate it, and any scenarios using the old URL will silently stop working.
5

Scenario Canvas > Click connector line between modules > Set up a filter

Add a filter to catch only assignment events

Click the small wrench icon between the trigger and your next module (you'll add this after setting up the filter). Actually, first click the trigger module's output, then click the small filter bubble that appears on the connector line. Since Copper sends all lead updates through this webhook, you need to filter for records where 'Assignee ID' is present and not empty. This prevents the scenario from running when unrelated fields like phone number or notes are updated.

  1. 1Hover over the arrow line between the Copper trigger and the next module slot
  2. 2Click the filter icon (wrench/funnel) that appears on the line
  3. 3Set Condition: 'Assignee ID' > 'Exists' (is not empty)
  4. 4Click 'OK' to save the filter
What you should see: A small filter badge appears on the connector line between the two modules. The scenario will now only continue when the lead has an assignee.
Common mistake — Make's filter 'Exists' check alone won't distinguish a new assignment from a reassignment. If you only want to catch reassignments (not new leads), add a second condition checking that the event type equals 'update'.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Copper
CO
notified
6

Scenario Canvas > + > Slack > Look Up a User by Email

Look up the assigned rep's Slack user ID

Copper gives you the assigned user's name and email in the webhook payload, but Slack needs a user ID (like U04XXXXXXX) to send a DM. Add a Slack module between the filter and the final Slack message module: choose 'Look Up a User by Email'. Map the Copper field 'Assignee Email' into the Email input of this module. This returns the Slack user object including their user ID, which you'll use in the next step to address the DM correctly.

  1. 1Click the '+' after the filter on the canvas
  2. 2Search for 'Slack' and select it
  3. 3Choose 'Look Up a User by Email' from the Slack module list
  4. 4Connect your Slack workspace (OAuth prompt will appear)
  5. 5Map the 'Assignee Email' field from the Copper trigger into the Email input
What you should see: The Slack module shows the Email field mapped with a blue pill containing '{{1.assignee.email}}' or similar from the Copper trigger output.
Common mistake — This lookup fails if the assignee's Copper email doesn't exactly match their Slack account email. Mismatches (e.g., name change, alias) will cause a silent failure — the scenario runs but the message never sends.
7

Scenario Canvas > + > Slack > Send a Message

Add the Slack 'Send a Message' module

Add a second Slack module and choose 'Send a Message'. Set the Channel field to the User ID output from the previous Lookup step — this routes the message as a DM directly to the assigned rep. In the Text field, compose your message using a mix of Copper trigger fields and plain text. Keep it short: name, company, source, and a link back to the lead in Copper are all the rep needs to take immediate action.

  1. 1Click '+' after the Slack Lookup module
  2. 2Select 'Slack' > 'Send a Message'
  3. 3In the Channel field, map '{{User ID}}' from the Lookup module output
  4. 4In the Text field, build the message body using Copper lead fields (see field mapping section)
  5. 5Leave 'As User' toggled on so the message appears from the Make bot, not a generic webhook
What you should see: The Text field shows a multi-line message template with mapped variables highlighted in blue. The Channel field shows the dynamic User ID variable, not a hardcoded channel name.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
8

Slack Send a Message module > Text field

Map the Slack message fields

Build the Slack message text using Copper's trigger output variables. A good template looks like: '🎯 New lead assigned to you: *{{Lead Name}}* at {{Company Name}}. Source: {{Lead Source}}. View in Copper: {{Lead URL}}'. You can use Slack's mrkdwn formatting (asterisks for bold, backticks for code) directly in the Make text field. Add the Copper lead URL by constructing it manually: 'https://app.copper.com/companies/leads/{{Lead ID}}'.

  1. 1Click inside the Text field of the Send a Message module
  2. 2Type your message template and click the variable picker icon to insert Copper fields
  3. 3Insert: Lead Name, Company Name, Lead Source, Assignee Name from the Copper trigger
  4. 4Manually construct the Copper URL: 'https://app.copper.com/companies/leads/' then map the Lead ID variable
  5. 5Preview the message by clicking 'Run once' in the bottom toolbar
What you should see: The Text field shows a readable message template with all variables resolved. Running the scenario once should produce a Slack DM with real lead data filled in.
Common mistake — Copper does not return a direct lead URL in the webhook payload. You must construct it manually using the lead ID. If you skip this, reps get the notification but have to search Copper manually to find the record.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
9

Scenario Canvas > Run once (bottom toolbar) > Check execution bubbles

Test the scenario end-to-end

Click 'Run once' at the bottom of the Make canvas to put the scenario in listening mode. Then go to Copper and either create a new lead and assign it, or open an existing lead and reassign it to a rep. Make should detect the webhook event within 5–10 seconds. Check the scenario execution log — each module bubble should show a green checkmark with a number indicating how many records were processed.

  1. 1Click 'Run once' in the Make scenario toolbar at the bottom
  2. 2Switch to Copper and create a new lead, set the Assignee field to a rep who has a Slack account
  3. 3Return to Make within 30 seconds and watch the module bubbles
  4. 4Click any green bubble to inspect the data that passed through that module
  5. 5Check Slack to confirm the DM arrived in the assigned rep's inbox
What you should see: All three modules (Copper trigger, Slack Lookup, Slack Send Message) show green checkmarks. The assigned rep receives a Slack DM with the correct lead name, company, and Copper link.
Common mistake — If you test using a lead assigned to yourself and you're also the Make scenario owner, the Slack DM might land in your Slackbot thread rather than a direct message. Test with a different rep's assignment to confirm DM routing works correctly.
Make
▶ Run once
executed
Slack
Copper
Copper
🔔 notification
received
10

Scenario Canvas > Toggle switch (bottom left) > ON

Turn on scheduling and activate the scenario

Since this scenario is webhook-driven, it doesn't run on a schedule — it fires instantly on each Copper event. Toggle the scenario from OFF to ON using the blue switch at the bottom left of the canvas. The scenario will now run 24/7, firing every time Copper sends a lead event to the registered webhook URL. You don't need to set an interval.

  1. 1Click the toggle switch at the bottom left of the scenario canvas
  2. 2Confirm the activation dialog if Make prompts one
  3. 3Verify the scenario status shows 'ON' in green
  4. 4Check the Scenario History tab to confirm the first real execution logged correctly
What you should see: The toggle shows green and the scenario status changes to 'ON'. The scenario history tab begins populating with real executions as leads are created or reassigned in Copper.

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 your team needs real-time DMs (not batched digests), you want visual scenario editing without writing code, and you already use Make for other CRM workflows. The visual canvas makes it easy to inspect exactly what Copper sends in the webhook payload — you can click any module bubble in test mode and see the raw JSON. If your team is already deep in Zapier and only needs this one workflow, the switching cost probably isn't worth it — Zapier's Copper + Slack Zap gets this done in under 10 minutes with no learning curve.

Cost

The cost math is straightforward. Each lead assignment event uses 3 Make operations: the Copper webhook trigger, the Slack user lookup, and the Slack message send. At 150 lead assignments per month, that's 450 operations. Make's free tier includes 1,000 operations/month, so this workflow runs free up to roughly 330 assignments/month. Compare that to Zapier's free tier, which caps at 100 Zap runs/month total — you'd hit the Zapier limit at 100 assignments and need their $19.99/month Starter plan. Make wins on cost here by a meaningful margin for active sales teams.

Tradeoffs

Zapier is faster to set up — their Copper trigger is pre-built and the Slack action requires zero configuration beyond picking a channel. n8n lets you self-host and add complex JavaScript transformations (like checking the previous assignee against a lookup table to confirm it actually changed), which Make can't do natively. Power Automate has the edge if your company uses Microsoft Teams instead of Slack — its native Teams connector is tighter than any third-party option. Pipedream gives you more control over the HTTP layer if Copper's webhook payload needs heavy transformation before hitting Slack. Make is still the right call here because the Copper + Slack module pairing is well-maintained, the visual debugger makes troubleshooting fast, and the operation pricing is fair for this volume.

Three things will bite you after setup. First, Copper's webhook payload includes a source_id integer for the lead source, not the human-readable label like 'Website' — you'll need to map those IDs manually or make a second Copper API call to resolve them. Second, if a Copper lead is created and assigned in the same action, you may receive two webhook events in quick succession — one for 'new' and one for 'update' — which triggers two Slack DMs to the same rep for the same lead. Add a deduplication check using Make's data store to suppress the duplicate. Third, Copper rate-limits API requests to 600 per minute across all integrations — if you have multiple Make scenarios hitting the Copper API simultaneously, they can queue up and delay webhook deliveries by 30–60 seconds during busy periods.

Ideas for what to build next

  • Add a fallback for unmatched Slack usersWhen the Slack User ID lookup fails (email mismatch), add an error handler route that posts to a #sales-ops channel instead, so no lead assignment falls through the cracks silently.
  • Post a summary to a shared #new-leads channelAdd a second Slack Send Message module that posts every new lead to a team-visible channel like #new-leads — gives sales managers real-time pipeline visibility without requiring them to check Copper.
  • Create a lead in Copper from a Slack slash commandBuild the reverse flow: a Slack slash command like /new-lead triggers a Make scenario that creates a Copper lead record — useful when reps take calls and want to log a lead without leaving Slack.

Related guides

Was this guide helpful?
Slack + Copper overviewMake profile →