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

How to Send Copper Lead Alerts to Slack with Zapier

Automatically sends a Slack direct message or channel post to the assigned sales rep whenever a new lead is created or reassigned in Copper.

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

Best for

Small to mid-size sales teams using Copper as their primary CRM who need reps notified in Slack the moment a lead lands in their queue.

Not ideal for

Teams reassigning leads in bulk — Zapier polls every 1-15 minutes and at high reassignment volume you'll burn tasks fast; use Make instead.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person B2B SaaS sales team uses this to ping reps in Slack the moment a new inbound lead gets assigned in Copper. Before this, reps checked Copper manually two or three times a day and routinely missed hot leads for 3-4 hours. Now the average first-touch response dropped from 4 hours to under 20 minutes.

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

Before You Start

Make sure you have everything ready.

Copper account with API access enabled — find your API key under Settings > Integrations > API Key
Copper user account must have permission to read leads — 'Read Leads' scope is required
Slack workspace where you have permission to install apps and send DMs on behalf of users or a bot account
Zapier account — Free tier works but polls every 15 minutes; Starter plan ($19.99/mo) polls every 5 minutes
All assigned sales reps must have Slack accounts with the same email address stored in Copper — mismatched emails cause silent DM failures

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Lead Namename
Assignee Emailassignee_id
Lead Emailemail
5 optional fields▸ show
Lead Phonephone_numbers
Company Namecompany_name
Lead Sourcesource_id
Lead Statusstatus
Created Atdate_created

Step-by-Step Setup

1

zapier.com > Dashboard > Create Zap

Create a new Zap in Zapier

Log into zapier.com and click the orange 'Create Zap' button in the left sidebar. You'll land on the Zap editor canvas. The editor has two panes: Trigger on the left and Action on the right. Give your Zap a name at the top — something like 'Copper Lead Assigned → Slack Alert' — so it's easy to find later.

  1. 1Log into zapier.com
  2. 2Click 'Create Zap' in the left sidebar
  3. 3Click the name field at the top of the editor and type 'Copper Lead Assigned → Slack Alert'
  4. 4Click the Trigger box to begin configuring it
What you should see: You should see the Zap editor open with an empty Trigger step and a prompt to choose an app.
Common mistake — Zapier auto-saves your Zap as a draft but won't activate it until you toggle it on at the final step. Don't confuse 'saved' with 'live'.
2

Zap Editor > Trigger > Choose App > Copper > New Lead

Set Copper as the trigger app

In the Trigger step, click 'Choose App' and type 'Copper' in the search box. Select the Copper app from the results — it shows the Copper logo and says 'Copper CRM'. Then click 'Choose Trigger Event' and select 'New Lead' from the dropdown. This trigger fires whenever a lead is created in Copper. Zapier polls Copper every 5-15 minutes depending on your plan.

  1. 1Click 'Choose App' inside the Trigger step
  2. 2Type 'Copper' in the search field
  3. 3Select 'Copper CRM' from the results
  4. 4Click 'Choose Event'
  5. 5Select 'New Lead' from the event list
What you should see: The Trigger step should now show the Copper logo and 'New Lead' as the selected event.
Common mistake — Copper doesn't have a native 'Lead Reassigned' trigger in Zapier — only 'New Lead'. For reassignment alerts specifically, you'll need to add a second Zap using the 'Updated Lead' trigger and filter for the assignee field changing.
Zapier
+
click +
search apps
Slack
SL
Slack
Set Copper as the trigger app
Slack
SL
module added
3

Copper > Settings > Integrations > API Key

Connect your Copper account

Click 'Sign in to Copper' in the account connection panel. A popup window will open asking for your Copper email address and API key. Find your API key in Copper under Settings > Integrations > API Key. Copy it and paste it into Zapier's popup along with your Copper login email. Click 'Yes, Continue' to authorize.

  1. 1Click 'Sign in to Copper' in the Zapier trigger panel
  2. 2Open a new tab and go to Copper > Settings > Integrations > API Key
  3. 3Copy your API key
  4. 4Return to Zapier and paste the API key and your Copper email into the popup
  5. 5Click 'Yes, Continue' to confirm
What you should see: The Trigger step should show a green checkmark and your Copper email address listed under 'Account'.
Zapier settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

Zap Editor > Trigger > Test Trigger

Test the Copper trigger

Click 'Test Trigger' to pull in a sample lead record from Copper. Zapier will fetch the three most recently created leads. You'll see a list of fields including lead name, email, phone, assigned user ID, and status. Click on one record to expand it and review the available fields — you'll map these in the Slack action step. If no leads appear, create a test lead in Copper first.

  1. 1Click 'Test Trigger'
  2. 2Review the list of returned lead records
  3. 3Click on the most recent record to expand the field list
  4. 4Confirm that 'Assignee' or 'Assigned To' fields are present
What you should see: You should see at least one lead record with fields like 'Name', 'Email', 'Assignee Email', 'Status', and 'Created At' populated with real data.
Common mistake — The assignee field in Copper returns an internal user ID by default in some API responses — not a readable name. Check whether your test record shows an email address or just a numeric ID. If it's an ID, you'll need a lookup step (see Step 6).
Zapier
▶ Turn on & test
executed
Slack
Copper
Copper
🔔 notification
received
5

Zap Editor > Action > Choose App > Slack > Send Direct Message

Add a Slack action step

Click the '+' button below the Trigger step to add an Action. Search for 'Slack' and select it. For the event, choose 'Send Direct Message' if you want to alert the specific assigned rep, or 'Send Channel Message' if your team monitors a shared #leads channel. Direct message is recommended here — it creates personal accountability and cuts notification noise for the rest of the team.

  1. 1Click the '+' button below the Trigger step
  2. 2Type 'Slack' in the app search field
  3. 3Select 'Slack' from the results
  4. 4Click 'Choose Event'
  5. 5Select 'Send Direct Message' (or 'Send Channel Message' for shared channel)
What you should see: The Action step should show the Slack logo and your selected message event.
6

Zap Editor > Action > Sign in to Slack > Authorize

Connect your Slack workspace

Click 'Sign in to Slack'. A browser popup opens asking you to authorize Zapier for your Slack workspace. Select the correct workspace from the dropdown if you belong to multiple. Click 'Allow'. You only need to do this once — future Zaps reuse the same connection. Make sure the Slack account you connect has permission to send DMs to other workspace members.

  1. 1Click 'Sign in to Slack'
  2. 2Select the correct Slack workspace from the dropdown
  3. 3Click 'Allow' on the Zapier permissions screen
  4. 4Return to the Zap editor
What you should see: The Action step should show a green checkmark and your Slack workspace name listed under 'Account'.
Common mistake — If you connect a personal Slack account instead of an admin account, Zapier may not be able to DM users it hasn't interacted with before. Use a dedicated bot or admin account to avoid 'cannot_find_user' errors.
7

Zap Editor > Action > Configure > To Username

Configure the Slack message recipient

In the 'To Username' field for the DM, you need to map the assignee's Slack username or email. Click the field and select the dynamic field from your Copper trigger data — look for 'Assignee Email' or 'Assigned User Email'. Slack accepts email addresses to resolve users when sending DMs through the API. If Copper only returns an assignee ID, insert a Zapier 'Lookup' step before this action to resolve the ID to an email using Copper's user list.

  1. 1Click the 'To Username' field
  2. 2Click the insert data icon (lightning bolt)
  3. 3Search for and select 'Assignee Email' from the Copper trigger fields
  4. 4Confirm the mapped email address appears in the field preview
What you should see: The 'To Username' field should show a dynamic token like '{Assignee Email}' pulled from the Copper trigger step.
Common mistake — Slack's DM API matches users by their registered Slack email. If your reps registered Slack with a personal Gmail but Copper stores their work email, the DM will fail silently. Confirm both emails match for every rep before going live.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
8

Zap Editor > Action > Configure > Message Text

Write the Slack message text

In the 'Message Text' field, compose the alert using dynamic data from Copper. Click the lightning bolt icon to insert tokens. A clear message includes the lead's name, company, email, phone, and the source. Keep it under 300 characters so it renders cleanly on mobile. Use line breaks to separate fields — Zapier supports newline characters in message text.

  1. 1Click inside the 'Message Text' field
  2. 2Type '🔔 New lead assigned to you:' as the opening line
  3. 3Press Enter and insert the 'Name' token from Copper
  4. 4Add company, email, phone, and source fields on separate lines using the lightning bolt insert
  5. 5Add a final line with a direct Copper link if available
What you should see: The message preview should show a formatted block with real values substituted for each token, e.g. '🔔 New lead assigned to you: James Whitfield | Acme Corp | [email protected]'.
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}}
9

Zap Editor > Action > Test Action

Test the full Zap

Click 'Test Action' at the bottom of the Slack configuration panel. Zapier will send a real Slack DM using the sample Copper data from Step 4. Open Slack on your phone or desktop and confirm the message arrived in the correct person's DMs. Check that all dynamic fields resolved correctly — no blank spots or raw IDs showing up in the message.

  1. 1Click 'Test Action'
  2. 2Open Slack and navigate to the target user's DMs
  3. 3Confirm the message arrived with correct lead data
  4. 4Check that no fields show as blank or show a raw Copper ID
What you should see: A Slack DM should arrive within 30 seconds with the full lead details formatted correctly. Zapier's editor will show 'Test was successful' with a green checkmark.
Common mistake — Zapier sends the test to the actual Slack user, not a sandbox. Give the assigned rep a heads-up before testing so they don't act on test data.
10

Zap Editor > Publish Zap > Toggle On

Turn on the Zap

Click 'Publish Zap' in the top-right corner of the editor. Zapier will ask you to confirm the trigger and action one more time. After confirming, toggle the Zap to 'On'. Zapier will immediately begin polling Copper for new leads on your plan's polling interval — every 5 minutes on Starter, every 15 minutes on Free. You'll see the Zap listed as 'On' in your Zap dashboard.

  1. 1Click 'Publish Zap' in the top-right corner
  2. 2Review the summary screen
  3. 3Click 'Publish & Turn On'
  4. 4Confirm the Zap shows 'On' status in your dashboard
What you should see: The Zap dashboard shows your new Zap with a green 'On' indicator and the last run time updates within 5-15 minutes of your first real lead being created in Copper.

This Code by Zapier step formats the raw Copper 'date_created' Unix timestamp into a readable string and constructs a clean, pre-formatted Slack message block so you don't juggle 8 separate dynamic field tokens in the message composer. Paste this into a 'Code by Zapier' step (JavaScript) inserted between the Copper trigger and the Slack action. Map the output variable 'slackMessage' into your Slack 'Message Text' field.

JavaScript — Code Step// Code by Zapier — JavaScript
▸ Show code
// Code by Zapier — JavaScript
// Formats Copper lead data into a clean Slack alert message
// Insert this step BETWEEN the Copper trigger and Slack action

... expand to see full code

// Code by Zapier — JavaScript
// Formats Copper lead data into a clean Slack alert message
// Insert this step BETWEEN the Copper trigger and Slack action
// Map inputData fields from your Copper trigger step

const leadName = inputData.leadName || 'Unknown Lead';
const companyName = inputData.companyName || 'No Company';
const leadEmail = inputData.leadEmail || 'No email provided';
const leadPhone = inputData.leadPhone || 'No phone provided';
const leadSource = inputData.leadSource || 'Unknown source';
const assigneeEmail = inputData.assigneeEmail || '';
const rawTimestamp = inputData.dateCreated; // Unix timestamp in seconds from Copper

// Convert Unix timestamp to readable date
const createdDate = rawTimestamp
  ? new Date(rawTimestamp * 1000).toLocaleString('en-US', {
      month: 'short',
      day: 'numeric',
      hour: 'numeric',
      minute: '2-digit',
      hour12: true
    })
  : 'Unknown time';

// Build the formatted Slack message
const slackMessage = [
  `🔔 *New lead assigned to you:*`,
  `*${leadName}* | ${companyName}`,
  `📧 ${leadEmail}`,
  `📞 ${leadPhone}`,
  `🔗 Source: ${leadSource}`,
  `🕐 Created: ${createdDate}`
].join('\n');

output = [{ slackMessage, assigneeEmail }];

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 Zapier for this workflow

Use Zapier for this if your sales team is non-technical, already uses Zapier for other workflows, and can tolerate a 5-15 minute alert delay. Setup genuinely takes under 30 minutes. The Copper and Slack apps are both stable in Zapier's library, the trigger works reliably, and you don't need to write a single line of code. The one scenario where you'd skip Zapier: if your team reassigns leads frequently throughout the day and immediate notification is the whole point. A 15-minute lag on a hot inbound lead is a real business problem, not just an inconvenience.

Cost

The cost math is straightforward. Each lead creation fires one Zap task. One task = one Slack message. At 200 new leads per month, you're at 200 tasks — comfortably inside Zapier's Free tier (100 tasks) only if you're a very small team; realistically you'll need Starter at $19.99/month for 750 tasks. At 500 leads/month, Starter still covers you. At 1,000+ leads/month, you're looking at the Professional plan at $49/month. Make handles this same workflow for free up to 1,000 operations/month on its free tier — that's a $19.99-$49/month difference for the same outcome.

Tradeoffs

Make fires this workflow faster because it supports Copper webhooks via the HTTP/Webhook module, cutting latency from 5-15 minutes to under 60 seconds. n8n gives you the most control over the Slack message format — you can build full Block Kit payloads with buttons natively in the node, which Zapier's Slack action doesn't support without Code by Zapier. Power Automate has a Copper connector but it's through a third-party premium connector that costs extra and has documented reliability issues — skip it for this use case. Pipedream lets you write the entire workflow in Node.js and deploy in under 10 minutes if you're comfortable with code, and Copper's REST API is clean enough that the trigger setup is trivial. Zapier still wins here if your team has zero coding tolerance and you're already paying for a Zapier subscription — the marginal cost is zero and the setup is the fastest of any platform.

Three things you'll hit after setup. First: the assignee field. Copper's API returns a numeric user ID for assignees in some response formats — your Slack message will show '5829341' instead of a name until you add a lookup step. Test with real data before going live, not just the canned sample. Second: email mismatches. Reps who signed up for Slack with a personal Gmail but have their work email in Copper will cause silent DM failures — Zapier won't surface this as a hard error, it just won't deliver. Audit both systems before launch. Third: the reassignment gap. If your workflow involves reassigning leads between reps — not just creating and assigning — you need a second Zap with the 'Updated Lead' trigger. A lot of teams build this, go live, and only discover three weeks later that reassignment alerts were never being sent.

Ideas for what to build next

  • Build a Lead Reassignment Alert ZapCreate a second Zap using Copper's 'Updated Lead' trigger filtered to fire only when the assignee field changes — this covers the full assignment lifecycle, not just new leads.
  • Add a Slack Button to Log First ContactUpgrade the Slack message to an interactive Block Kit message with a 'Mark as Contacted' button that writes back to Copper via a separate Zapier webhook Zap, giving you response tracking without leaving Slack.
  • Build a Daily Unworked Lead DigestCreate a scheduled Zap that queries Copper for leads assigned more than 24 hours ago with no activity and sends each rep a morning Slack summary — catches leads that fell through the cracks despite the initial alert.

Related guides

Was this guide helpful?
Slack + Copper overviewZapier profile →