

How to Send Zoho CRM Lead Alerts to Slack with Power Automate
Automatically posts a Slack channel message whenever a new lead is created in Zoho CRM, giving sales teams an instant heads-up to act fast.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Microsoft-stack sales teams already using Power Automate who want Slack alerts the moment a new Zoho CRM lead lands without writing code.
Not ideal for
Teams needing sub-60-second notification latency — Power Automate polls Zoho CRM on a minimum 1-minute interval, so use Make or n8n with webhooks for true real-time.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person SaaS sales team runs paid ads that dump leads into Zoho CRM around the clock. Before this flow, reps refreshed Zoho manually two or three times a day and routinely let fresh inbound leads sit for hours. After setting up the flow, every new lead fires a message into #new-leads within 1-3 minutes with the lead's name, company, phone, and source — and reps claim it within seconds using a Slack thread reply.
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 Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Full Name | Full_Name | |
| Company | Company | |
Email | ||
| Record ID | id | |
5 optional fields▸ show
| Phone | Phone |
| Lead Source | Lead_Source |
| Lead Owner | Owner/name |
| Lead Status | Lead_Status |
| Created Time | Created_Time |
Step-by-Step Setup
make.powerautomate.com > My flows > + New flow > Automated cloud flow
Open Power Automate and create a new Automated cloud flow
Go to make.powerautomate.com and sign in. In the left sidebar click 'My flows', then click '+ New flow' at the top left of the page. From the dropdown select 'Automated cloud flow'. A dialog box appears asking you to name the flow and choose a trigger — type 'New Lead Notifications - Zoho to Slack' in the name field. You will pick the trigger in the next step, so click 'Skip' for now.
- 1Navigate to make.powerautomate.com and sign in
- 2Click 'My flows' in the left sidebar
- 3Click '+ New flow' in the top left
- 4Select 'Automated cloud flow' from the dropdown
- 5Enter 'New Lead Notifications - Zoho to Slack' as the flow name and click 'Skip'
Flow canvas > Trigger block > Search: 'Zoho CRM' > When a record is created
Add the Zoho CRM 'When a record is created' trigger
In the trigger block, click inside the search box and type 'Zoho CRM'. Select 'Zoho CRM' from the connector list — the icon is an orange Z. From the list of triggers, click 'When a record is created'. Power Automate will immediately prompt you to sign in to Zoho CRM to create a Connection if one does not already exist.
- 1Click inside the empty trigger block on the canvas
- 2Type 'Zoho CRM' in the connector search bar
- 3Click the orange Zoho CRM connector icon
- 4Click 'When a record is created' from the trigger list
Flow canvas > Zoho CRM trigger > Sign in > Zoho OAuth popup
Authenticate your Zoho CRM connection
Click 'Sign in' in the trigger block. A browser popup opens pointing to Zoho's OAuth page. Enter your Zoho CRM admin credentials and click 'Accept' to grant Power Automate read access. After accepting, the popup closes and you return to the flow canvas. You will see your email address listed as the active Connection in the trigger block.
- 1Click 'Sign in' inside the Zoho CRM trigger block
- 2Enter your Zoho CRM admin email and password in the popup
- 3Click 'Accept' on the Zoho permissions screen
- 4Confirm the popup closes and your email appears in the Connection field
Flow canvas > Zoho CRM trigger > Module Name dropdown > Leads
Configure the Zoho CRM trigger to watch Leads
In the 'Module Name' dropdown inside the trigger block, scroll down and select 'Leads'. This tells Power Automate to fire the flow each time a new lead record is created in Zoho CRM. Power Automate polls Zoho CRM on a 1-minute minimum interval for new records matching this module. No additional filter is needed here unless you want to scope to a specific lead source — that comes later.
- 1Click the 'Module Name' dropdown in the Zoho CRM trigger block
- 2Scroll down and select 'Leads' from the module list
- 3Leave all other trigger fields at their defaults
Flow canvas > + New step > Search: 'Slack' > Post message (V2)
Add a Slack connection and action
Below the trigger block, click '+ New step'. In the action search bar type 'Slack'. Select the 'Slack' connector from the list. From the list of actions, click 'Post message (V2)'. Power Automate will prompt you to create a Slack Connection if one does not exist. Click 'Sign in to Slack', authorize the app in the Slack OAuth browser popup, and select the workspace where you want notifications to appear.
- 1Click '+ New step' below the Zoho CRM trigger block
- 2Type 'Slack' in the action search bar
- 3Click the Slack connector
- 4Click 'Post message (V2)' from the action list
- 5Click 'Sign in to Slack' and authorize Power Automate in the Slack OAuth popup
Flow canvas > Slack action > Channel Name dropdown
Set the target Slack channel
In the Slack action block, click the 'Channel Name' dropdown. Power Automate loads all channels your authenticated Slack user has access to. Scroll or type to find the channel where lead alerts should post — for example #new-leads or #sales. Select it from the list. The channel ID populates automatically behind the scenes.
- 1Click the 'Channel Name' dropdown in the Slack action block
- 2Type the channel name or scroll to find it
- 3Click the correct channel to select it
Flow canvas > Slack action > Message Text > Dynamic content panel
Build the Slack message using Zoho CRM dynamic fields
Click inside the 'Message Text' field in the Slack action block. Type the static label text first, then click the lightning bolt icon (or click inside the field and press the dynamic content button that appears) to insert Zoho CRM fields. Build a message that includes lead name, company, phone, email, and lead source. Each field you insert appears as a blue token in the message box.
- 1Click inside the 'Message Text' field
- 2Type: '🔔 New Lead: '
- 3Click the dynamic content icon and select 'Full Name' from the Zoho CRM trigger outputs
- 4Press Enter and type 'Company: ', then insert 'Company' from dynamic content
- 5Continue adding: 'Phone: ' + Phone, 'Email: ' + Email, 'Source: ' + Lead Source
Flow canvas > + New step > Control > Condition
Add a condition to skip duplicate notifications
Because Power Automate polls Zoho CRM on an interval, there is a small chance the same record gets picked up twice in back-to-back poll cycles. Add a safeguard by clicking '+ New step' and selecting 'Control' then 'Condition'. Set the left value to the Zoho CRM 'ID' field (a unique record identifier), the operator to 'is not equal to', and the right value to empty string. This ensures the flow only proceeds when a valid record ID exists — a blank ID indicates a poll with no real new record.
- 1Click '+ New step' below the Slack action
- 2Search for 'Control' and select it
- 3Click 'Condition'
- 4In the left value field, insert the Zoho CRM 'ID' dynamic content token
- 5Set operator to 'is not equal to' and leave the right value blank
Flow canvas > Save > Test > Manually > Test
Test the flow with a real Zoho CRM lead
Click 'Save' in the top right of the canvas. Once saved, click 'Test' in the top right and select 'Manually' then 'Test'. Power Automate will wait for a trigger event. Go to Zoho CRM and manually create a new lead with a test name like 'Test Lead - Power Automate'. Wait up to 2 minutes for the poll cycle to fire. When the flow detects the new lead, the test run completes and you can inspect each step's input and output.
- 1Click 'Save' in the top right corner of the canvas
- 2Click 'Test' in the top right corner
- 3Select 'Manually' and click 'Test'
- 4Switch to Zoho CRM and create a new lead named 'Test Lead - Power Automate'
- 5Return to Power Automate and wait up to 2 minutes for the run to complete
My flows > [Flow name] > Run history
Review the run history and turn the flow on
After a successful test, click the back arrow to return to the flow detail page. You will see a 'Run history' section showing the test run with a green 'Succeeded' status. Click the run row to inspect the full input/output of every step — this is useful for confirming all Zoho CRM fields mapped correctly into the Slack message. If everything looks correct, make sure the flow status shows 'On' at the top of the page. Power Automate turns Automated cloud flows on by default after saving.
- 1Click the back arrow from the canvas to return to the flow detail page
- 2Scroll down to 'Run history' and click the test run row
- 3Verify all steps show green checkmarks and confirm field values look correct
- 4Return to the flow detail page and confirm the flow status toggle reads 'On'
Paste this into the Message Text field using the Expression editor (click the 'fx' button in the Slack action's Message Text field). This single expression builds the full formatted Slack message with null-safe fallbacks for optional fields and a clickable deep link to the Zoho CRM lead record — no separate Compose steps needed.
JavaScript — Code Stepconcat(▸ Show code
concat( '🔔 *New Lead: ', triggerOutputs()?['body/Full_Name'], '*', ' ',
... expand to see full code
concat( '🔔 *New Lead: ', triggerOutputs()?['body/Full_Name'], '*', ' ', '*Company:* ', if(empty(triggerOutputs()?['body/Company']), '_Not provided_', triggerOutputs()?['body/Company']), ' ', '*Email:* ', triggerOutputs()?['body/Email'], ' ', '*Phone:* ', if(empty(triggerOutputs()?['body/Phone']), '_Not provided_', triggerOutputs()?['body/Phone']), ' ', '*Source:* ', if(empty(triggerOutputs()?['body/Lead_Source']), '_Unknown_', triggerOutputs()?['body/Lead_Source']), ' ', '*Owner:* ', triggerOutputs()?['body/Owner/name'], ' ', '*Status:* ', triggerOutputs()?['body/Lead_Status'], ' ', '*Created:* ', triggerOutputs()?['body/Created_Time'], ' ', '*CRM Link:* <https://crm.zoho.com/crm/org/tab/Leads/', triggerOutputs()?['body/id'], '|Open in Zoho CRM>' )
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 Power Automate for this if your team already lives in the Microsoft 365 ecosystem and has Per User licenses that cover premium connectors. The setup is genuinely straightforward — no JSON payloads, no webhook endpoints to configure — and if your IT team manages connections centrally, Power Automate's admin governance tools make it easier to hand off than Zapier or Make. The one scenario where you'd pick something else immediately: if your Zoho leads come in via bulk CSV import. Power Automate's polling trigger misses those. Use Make with a Zoho webhook in that case.
The cost math is simple. The Zoho CRM connector is premium, so you need a Power Automate Per User plan at $15/user/month. Each lead creates exactly 1 flow run. At 200 leads/month, that's 200 runs — a rounding error against the 40,000 run/month limit on Per User. The Slack connector is standard so no extra cost there. Compare that to Zapier, where 200 tasks/month sits comfortably on the free tier, or Make, where 200 operations/month is free. If you don't already have a Power Automate Per User license, Zapier is cheaper by $15/month for this specific use case alone.
Here is how the competition stacks up for this exact workflow. Zapier has a native Zoho CRM 'New Lead' trigger that is simpler to configure and fires in about 2 minutes — comparable to Power Automate's polling speed, and the setup takes 5 minutes versus Power Automate's 20. Make supports Zoho CRM webhooks, which means genuinely instant notifications under 10 seconds — Power Automate cannot match that without a custom HTTP trigger workaround. n8n gives you full control over the Slack message format using JavaScript transforms, which beats Power Automate's expression editor for complex conditional formatting. Power Automate is still the right call when your org's IT policy requires all integrations to go through Microsoft-managed connectors, or when you need audit logging baked into the platform.
Three things you will hit after setup. First, the Lead Owner field returns a nested JSON object — if you drop the raw dynamic token into the Slack message, reps will see raw JSON in the channel. Use the expression triggerOutputs()?['body/Owner/name'] to extract just the name. Second, Zoho CRM occasionally throttles API polling responses during peak hours, which causes the trigger to skip a poll cycle. You'll see a gap in run history with no failure — just a missed trigger. Third, if your Zoho org is on the EU or AU data center (.eu or .in domain), the Power Automate Zoho CRM connector defaults to the US endpoint and will fail to authenticate silently. There is no built-in data center selector in the connector — you need a custom connector or you switch to Zapier which handles multi-region Zoho accounts cleanly.
Ideas for what to build next
- →Add Lead Assignment Routing by Source — Extend the flow with a Switch condition that reads the Lead Source field and posts to different Slack channels — #google-leads, #referral-leads — or @mentions a specific rep based on territory rules.
- →Log Notifications to a SharePoint List for Deduplication — Add a SharePoint 'Create item' action after the Slack post that writes the Zoho lead ID to a SharePoint list. Add a prior 'Get items' action to check if the ID already exists before posting, giving you a reliable deduplication layer.
- →Build a Daily Lead Digest Instead of Per-Lead Pings — Create a second Scheduled cloud flow that runs every morning at 8am, queries Zoho CRM for all leads created in the last 24 hours, and posts a single summary message to Slack — useful for high-volume days when per-lead pings create noise.
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