Beginner~12 min setupCommunication & CRMVerified April 2026
Slack logo
Zoho CRM logo

How to Send Zoho CRM Leads to Slack with Make

When a new lead is created in Zoho CRM, Make instantly posts a formatted notification to a designated Slack channel with the lead's name, company, source, and assigned owner.

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

Best for

Sales teams of 5-30 reps who need instant Slack alerts when leads hit Zoho CRM so they can assign and respond within minutes.

Not ideal for

Teams getting 1,000+ leads per day — at that volume, a digest (batched hourly summary) is less noisy and cheaper to operate.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 12-person SaaS sales team routes all inbound demo requests into Zoho CRM from their website form. Before this automation, reps checked Zoho manually two or three times a day and leads sat uncontacted for up to four hours. Now a Slack message fires in #new-leads within 30 seconds of the record being created, and response time dropped 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

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.

Zoho CRM account with API access enabled — requires Standard plan or higher; free Zoho CRM does not support API calls
Zoho CRM user account with 'Leads' module read permissions — the connecting account must be able to view all leads, not just assigned ones
Slack workspace with permission to add apps — if your workspace restricts app installs, you need Slack admin approval before the OAuth flow will work
A dedicated Slack channel already created for lead notifications (e.g., #new-leads) with the Make bot invited to it
Make account — the free plan works for low volume but limits scheduling to 15-minute intervals; Core plan ($9/month) enables 1-minute intervals

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Lead Full NameFull_Name
CompanyCompany
EmailEmail
Lead SourceLead_Source
Lead OwnerOwner
Created TimeCreated_Time
4 optional fields▸ show
PhonePhone
Lead StatusLead_Status
Annual RevenueAnnual_Revenue
Description / Lead NotesDescription

Step-by-Step Setup

1

make.com > Scenarios > Create a new scenario

Create a new Make scenario

Log in at make.com and click the blue 'Create a new scenario' button in the top right of your Scenarios dashboard. You'll land on the visual canvas with a single empty module in the center. This is where you'll chain together the Zoho CRM trigger and the Slack action. Give the scenario a name immediately — click the default title text at the top and type something like 'Zoho CRM → Slack Lead Notifications' so you can find it later.

  1. 1Click the blue 'Create a new scenario' button in the top right
  2. 2Click the empty circle module on the canvas to open the app picker
  3. 3Type 'Zoho CRM' in the search bar
  4. 4Click the Zoho CRM app icon to select it
What you should see: The Zoho CRM app panel opens on the right side with a list of available triggers and actions.
Common mistake — Make defaults to your last-used region. If your Zoho account is on a non-US data center (EU, AU, IN), you'll need to set the correct region when connecting — doing it after the fact means re-authenticating.
2

Zoho CRM Module > Watch Records > Leads

Configure the Zoho CRM trigger

From the Zoho CRM module list, select 'Watch Records' — this is the trigger that fires when a new record is created or updated in any Zoho CRM module. In the trigger configuration panel, set the Module dropdown to 'Leads'. Set the Trigger field to 'Created Time' so the scenario fires only on new leads, not edits. You can leave the Max number of records field at 1 for single-record processing.

  1. 1Select 'Watch Records' from the trigger list
  2. 2Click 'Add' next to the Connection field to authenticate Zoho CRM
  3. 3Set the Module field to 'Leads'
  4. 4Set Trigger to 'Created Time'
  5. 5Set Max number of records to '1'
What you should see: The module shows 'Leads' in the Module field and 'Created Time' in the Trigger field. The connection shows a green dot next to your Zoho account name.
Common mistake — The 'Watch Records' trigger uses Make's internal webhook bridge, not a native Zoho webhook. Zoho CRM must have API access enabled on your plan — the free Zoho CRM plan does not support API calls and will return a 403 error at run time.
Make
+
click +
search apps
Slack
SL
Slack
Configure the Zoho CRM trigger
Slack
SL
module added
3

Zoho CRM Module > Connection > Add

Connect your Zoho CRM account

Click 'Add' next to the Connection field if you haven't already. Make will prompt you to choose your Zoho data center region from a dropdown — pick the one that matches where your Zoho account was created (US, EU, AU, IN, or JP). Click 'Continue' and you'll be redirected to a Zoho OAuth authorization page. Log in with your Zoho admin credentials and click 'Accept' to grant Make read access to your CRM records.

  1. 1Click 'Add' next to the Connection field
  2. 2Select your Zoho data center region from the dropdown
  3. 3Click 'Continue' to open the Zoho OAuth page
  4. 4Log in with your Zoho admin credentials
  5. 5Click 'Accept' to authorize Make
What you should see: Make returns you to the scenario canvas and the Connection field shows your Zoho account email with a green connected indicator.
Common mistake — If you connect with a non-admin Zoho account, the trigger will authenticate successfully but fail silently on records that the user doesn't have permission to view — particularly leads owned by other reps.
Make settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
4

Zoho CRM Trigger > Choose where to start

Set the trigger start point

After saving the trigger configuration, Make will ask 'From which record do you want to start?' Click 'Choose where to start' and select 'From now on'. This tells Make to ignore all existing leads in Zoho and only fire on leads created after you activate the scenario. If you pick 'All' or select a specific date in the past, Make will process every historical lead and spam your Slack channel.

  1. 1Click 'OK' to save the trigger configuration
  2. 2Click 'Choose where to start' in the dialog that appears
  3. 3Select 'From now on'
  4. 4Click 'OK' to confirm
What you should see: The dialog closes and the Zoho CRM module shows a small clock icon indicating it is watching for new records from the current point forward.
5

Canvas > + icon > Slack > Create a Message

Add the Slack module

Click the small '+' icon on the right edge of the Zoho CRM module to add the next step in the chain. The app picker opens again. Search for 'Slack' and select it. From the list of Slack actions, choose 'Create a Message'. This action posts a message to any public or private Slack channel your bot has been added to. You'll configure the channel and message content in the next steps.

  1. 1Click the '+' icon on the right edge of the Zoho CRM module
  2. 2Type 'Slack' in the app search bar
  3. 3Click the Slack app icon
  4. 4Select 'Create a Message' from the action list
What you should see: A Slack module appears connected to the Zoho CRM module on the canvas, and the Slack configuration panel opens on the right.
6

Slack Module > Connection > Add

Connect your Slack workspace

Click 'Add' next to the Connection field in the Slack module. Make will redirect you to Slack's OAuth page. Select the workspace you want to post notifications to and click 'Allow'. Make will request the chat:write and channels:read scopes — both are required. After authorizing, you'll return to the canvas and the Connection field will show your Slack workspace name.

  1. 1Click 'Add' next to the Connection field in the Slack module
  2. 2Select your Slack workspace from the dropdown on the Slack OAuth page
  3. 3Click 'Allow' to grant Make the required permissions
  4. 4Confirm you are returned to the Make canvas with the connection active
What you should see: The Connection field displays your Slack workspace name with a green indicator. The Channel ID field below becomes active and searchable.
Common mistake — Make's Slack integration posts as a bot user named 'Make'. If your Slack workspace has a restriction on adding apps, you need Slack admin approval before the OAuth flow will complete.
7

Slack Module > Channel ID > search and select

Select the target Slack channel

In the Slack module configuration, click the Channel ID field. Make will load a searchable list of all channels your bot has access to. Type the name of your target channel — for example, #new-leads or #sales-alerts — and select it from the dropdown. If the channel doesn't appear, your Slack bot hasn't been invited to it yet: go to Slack, open the channel, type /invite @Make, and then return to refresh the list.

  1. 1Click the Channel ID field
  2. 2Type the name of your target channel
  3. 3Select the correct channel from the dropdown list
  4. 4If missing, go to Slack, run /invite @Make in the channel, then re-open the dropdown
What you should see: The Channel ID field shows your selected channel name, such as '#new-leads', with its internal Slack channel ID populated automatically.
Common mistake — Private channels will only appear in the list if the Make bot has been explicitly invited. Selecting a channel ID manually by typing it raw will fail — always use the dropdown to ensure the correct internal ID is used.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
8

Slack Module > Text field

Build the Slack message

Click into the Text field and build your notification message using Zoho CRM field variables from the left-side data panel. Click the field name in the panel to insert it at your cursor position. A complete message should include lead name, company, lead source, phone, email, and assigned owner. Use Slack's mrkdwn formatting — wrap field labels in asterisks for bold, and separate fields with newlines using Shift+Enter. See the pro tip for a formula-based approach that handles blank fields gracefully.

  1. 1Click into the Text field
  2. 2Type '*New Lead:* ' then click 'Full Name' from the Zoho CRM data panel to insert the variable
  3. 3Press Shift+Enter to add a new line
  4. 4Continue adding fields: Company, Lead Source, Email, Phone, Lead Owner
  5. 5Wrap each label in asterisks for bold formatting, e.g. '*Company:* '
What you should see: The Text field shows a mix of static label text and orange variable tokens representing Zoho CRM field values. A sample message preview appears below the field.
Common mistake — Slack's mrkdwn formatting only works in the Text field when the 'Parse' setting is left at its default. If you change Parse to 'Full', Slack will escape your asterisks and the bold formatting will break.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
9

Canvas > Run once button (bottom left)

Test the scenario with a live lead

Click 'Run once' at the bottom left of the canvas to manually trigger the scenario in test mode. Then go to Zoho CRM and create a test lead with realistic data — use a real-looking name, company, and email address, not '[email protected]'. Return to Make within 60 seconds. The scenario should have executed, and you'll see green checkmarks on both modules showing how many records were processed. Click the Zoho CRM module bubble to inspect the raw data it received.

  1. 1Click 'Run once' at the bottom left of the canvas
  2. 2Switch to Zoho CRM in a new tab and create a new lead record
  3. 3Return to Make within 60 seconds
  4. 4Click the green number bubble on the Zoho CRM module to inspect the output data
  5. 5Check your Slack channel for the notification message
What you should see: Both modules show green checkmarks. The Zoho CRM module bubble shows '1 bundle'. Your Slack channel has a new message with the lead's details formatted as configured.
Common mistake — Make's 'Run once' mode has a 5-minute listening window. If you take longer than 5 minutes to create the test lead in Zoho, Make will time out and show 'No results found' — just click Run once again and create the lead faster.
Make
▶ Run once
executed
Slack
Zoho CRM
Zoho CRM
🔔 notification
received
10

Zoho CRM module bubble > Output data panel

Fix field mapping issues from test output

After the test run, click the bubble on the Zoho CRM module and examine every field the trigger returned. Cross-reference this against your Slack message. Common issues: Lead Owner returns a numeric ID instead of a name, Lead Source returns an internal code instead of a display label, and phone numbers include country codes that may need reformatting. If Lead Owner is showing an ID, add a Zoho CRM 'Get a Record' module between the trigger and Slack to look up the owner's name by ID.

  1. 1Click the bubble on the Zoho CRM trigger module
  2. 2Scroll through the output fields in the data inspector panel
  3. 3Check that Full Name, Company, Lead Source, and Email show readable values
  4. 4If Lead Owner shows a numeric ID, add a 'Get a Record' module to resolve it
  5. 5Re-test after any mapping corrections
What you should see: Every field in the Slack message shows a human-readable value — no numeric IDs, no null tokens, no raw API codes.
Common mistake — Zoho CRM's Lead Source field returns the internal picklist key (e.g., 'Web_Site') not the display label ('Website'). You can either remap this using Make's if() formula or accept the raw key — but make sure your team knows which format to expect.
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
11

Canvas > Scheduling toggle (bottom left) > Immediately

Activate the scenario

Once the test run looks correct in Slack, click the toggle switch at the bottom left of the canvas to turn the scenario ON. The toggle turns blue. Set the scheduling interval — for real-time behavior, click the clock icon next to the toggle and set it to 'Immediately' (this means Make checks for new Zoho records as frequently as your plan allows, typically every 1-15 minutes depending on your Make tier). Your scenario is now live.

  1. 1Click the toggle switch at the bottom left to activate the scenario
  2. 2Click the clock icon next to the toggle
  3. 3Select 'Immediately' from the scheduling options
  4. 4Click 'Save' to lock in the schedule
  5. 5Confirm the toggle is blue and the status shows 'Active'
What you should see: The scenario status changes to 'Active' and the scheduling indicator shows 'Immediately'. The scenario will now run automatically whenever new leads appear in Zoho CRM.
Common mistake — Make's 'Immediately' scheduling on the free plan still has a 15-minute polling interval, not true instant triggering. If sub-minute notifications are critical, you'll need Make's Core plan or higher, which supports 1-minute intervals.

Paste this formula into the Slack module's Text field to handle blank fields gracefully and format the Created Time into a readable date. In Make's Text field, click the formula icon (fx) and enter this expression — it uses if() to substitute 'Not provided' when a field is empty and formatDate() to convert Zoho's ISO timestamp.

JavaScript — Custom Function{{if(1.Full_Name; 1.Full_Name; 'Unknown Lead')}}
▸ Show code
{{if(1.Full_Name; 1.Full_Name; 'Unknown Lead')}}
*New Lead Notification*
━━━━━━━━━━━━━━━━━━━━

... expand to see full code

{{if(1.Full_Name; 1.Full_Name; 'Unknown Lead')}}

*New Lead Notification*
━━━━━━━━━━━━━━━━━━━━
*Name:* {{if(1.Full_Name; 1.Full_Name; 'Not provided')}}
*Company:* {{if(1.Company; 1.Company; 'Not provided')}}
*Email:* {{if(1.Email; 1.Email; 'Not provided')}}
*Phone:* {{if(1.Phone; 1.Phone; 'Not provided')}}
*Source:* {{if(1.Lead_Source; replace(1.Lead_Source; '_'; ' '); 'Unknown')}}
*Owner:* {{if(2.Full_Name; 2.Full_Name; 'Unassigned')}}
*Status:* {{if(1.Lead_Status; 1.Lead_Status; 'Not Contacted')}}
*Created:* {{formatDate(1.Created_Time; 'MMM D, YYYY h:mm A'; 'America/New_York')}}
━━━━━━━━━━━━━━━━━━━━

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 wants real-time-ish notifications without writing a single line of code, and you're comfortable with a 1-minute polling delay instead of a true instant push. Make's visual canvas makes it easy to add conditional logic later — routing leads to different Slack channels by source or territory takes about 10 minutes to add with a Router module. The one scenario where you'd skip Make: if your team is already on Zapier and this is literally the only automation you need. The Zapier setup is marginally faster for this exact workflow and you avoid learning a new tool.

Cost

The cost math is straightforward. Each scenario run consumes 2 Make operations — one for the Zoho CRM trigger poll and one for the Slack message. If you get 300 new leads per month, that's 600 operations per month. Make's free plan includes 1,000 operations per month, so you're covered up to about 500 leads/month for free. At 1,000 leads/month you'd use 2,000 operations and need the Core plan at $9/month for 10,000 operations. Zapier's equivalent (Zap with 2 steps) costs $19.99/month on the Starter plan for 750 tasks — Make is meaningfully cheaper at this volume.

Tradeoffs

Zapier has a genuine edge here: its Zoho CRM 'New Lead' trigger is instant via webhook, not polling. That means a Slack notification in under 5 seconds versus Make's 1-minute minimum. If speed is the primary concern, that difference matters. n8n gives you more control over message formatting with JavaScript in a Code node, and self-hosted n8n has no per-operation cost — worth it if you have a developer and 1,000+ leads/month. Power Automate integrates better if your company runs on Microsoft 365 and wants notifications in Teams instead of Slack. Pipedream handles this with a real webhook and clean async code, but it requires someone comfortable with Node.js. Make is still the right call if you want visual logic, no code, and the occasional conditional branch — just accept the 1-minute delay.

Three things you'll run into after setup. First, Zoho CRM's Lead Source field returns underscore-separated keys like 'Web_Site' and 'Cold_Call' — your Slack messages will look sloppy until you add a replace() formula to swap underscores for spaces. Second, if your Zoho account has any automation rules that touch leads on creation (like auto-assignment workflows), Make will sometimes see the lead twice within the same minute and fire two Slack notifications — add a filter checking that Created Time and Modified Time are within 60 seconds of each other to prevent duplicates. Third, Make's Zoho CRM connection will silently expire if the connected Zoho user's password changes or their API token is revoked — check your scenario logs weekly for authentication errors because Make won't email you unless you configure error alert notifications manually.

Ideas for what to build next

  • Route leads to different channels by sourceAdd a Make Router module after the Zoho CRM trigger. Create separate paths for each Lead Source value — for example, 'Web' leads go to #inbound-leads and 'Cold Call' leads go to #outbound-sales. Each path posts to a different Slack channel with messaging tailored to that source.
  • Add a daily digest for missed or uncontacted leadsBuild a second Make scenario that runs on a schedule (e.g., every morning at 8 AM), searches Zoho CRM for leads created in the last 24 hours with status 'Not Contacted', and posts a summary list to Slack. This catches any leads that didn't trigger a real-time notification and gives the team a daily safety net.
  • Update Zoho CRM lead status when a rep reacts to the Slack messageAdd a Slack trigger module that watches for a specific emoji reaction (e.g., 👀) on messages in #new-leads. When a rep reacts, use a Zoho CRM 'Update a Record' module to set the lead's status to 'Attempted to Contact' and assign it to the reacting user — closing the loop without leaving Slack.

Related guides

Was this guide helpful?
Slack + Zoho CRM overviewMake profile →