

How to Send Zoho CRM Follow-Up Reminders to Slack with Make
Polls Zoho CRM on a schedule, finds tasks or activities due today, and posts a direct Slack reminder to the assigned sales rep.
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-50 reps who live in Slack and want due-task reminders without logging into Zoho CRM every morning.
Not ideal for
Teams needing sub-minute latency — polling runs every 15 minutes at minimum, so instant push alerts need a different approach.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person SaaS sales team was missing 20-30% of scheduled follow-up calls because reps relied on Zoho CRM's built-in email reminders, which got buried. After setting this up, Make checks Zoho every 15 minutes for tasks due within the next 2 hours and posts a DM to the assigned rep's Slack account. Missed follow-ups dropped to near zero in the first week.
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Task Subject | Subject | |
| Due Date | Due_Date | |
| Task Owner Email | Owner.email | |
| Task Status | Status | |
| Task ID | id | |
4 optional fields▸ show
| Contact Name | Contact_Name.name |
| Task Priority | Priority |
| Related Deal or Account | What_Id.name |
| Task Description | Description |
Step-by-Step Setup
make.com > Scenarios > + Create a new scenario
Create a new Make scenario
Log into Make at make.com and click 'Create a new scenario' in the top right. You'll land on the visual canvas — a dark grid where you'll connect modules. Don't use a template here; start blank so you control the schedule and filters precisely.
- 1Log into make.com
- 2Click '+ Create a new scenario' in the top right corner
- 3Click 'Skip' if prompted to pick a template
- 4Click the large '+' circle in the center of the blank canvas
Canvas > + > Zoho CRM > Search Records
Add the Zoho CRM 'Search Records' module
Search for 'Zoho CRM' in the module search box and select it. Choose the 'Search Records' action — not 'Watch Records,' which is webhook-based and won't work for scheduled polling of due tasks. This module will run your query against the Tasks module in Zoho CRM each time the scenario fires.
- 1Type 'Zoho CRM' in the module search box
- 2Select 'Zoho CRM' from the results
- 3Scroll to the 'Actions' section and select 'Search Records'
- 4Click 'Add' when prompted to create a new connection
Zoho CRM Module > Connection > + Add > OAuth Flow
Authenticate Make with Zoho CRM
Click 'Add' inside the connection dialog. Make will redirect you to Zoho's OAuth screen. Log in with your Zoho admin account and grant access. After approving, you'll be returned to Make with the connection active. You need at least a Zoho CRM user with 'Tasks' module read access — a standard Sales rep profile works.
- 1Select your Zoho datacenter from the dropdown (e.g., 'United States')
- 2Click 'Save' to open the Zoho OAuth page
- 3Log in with your Zoho admin credentials
- 4Click 'Accept' on the permissions screen
- 5Confirm you're returned to Make with the connection name shown
Search Records Module > Module (dropdown) > Tasks > Criteria
Configure the Search Records query for due tasks
Set 'Module' to 'Tasks.' In the Criteria section, you'll build a filter that finds tasks due today or overdue. Use two criteria: 'Due Date' is 'less than or equal to' today's date, and 'Status' is 'Not Started' or 'In Progress.' Make's Zoho module uses Zoho's COQL-style criteria — pick fields from the dropdowns rather than typing raw COQL. Set 'Maximum Number of Records' to 50 to stay within a single API call.
- 1Set 'Module' dropdown to 'Tasks'
- 2In Criteria, click 'Add Criterion'
- 3Set Field to 'Due Date', Operator to 'less than or equal to', Value to '{{formatDate(now; "YYYY-MM-DD")}}'
- 4Click 'Add Criterion' again
- 5Set Field to 'Status', Operator to 'not equal to', Value to 'Completed'
- 6Set 'Maximum Number of Records' to 50
Canvas > + after Search Records > Flow Control > Iterator
Add an Iterator to process tasks one at a time
The Search Records module returns an array of tasks. You need an Iterator module to split that array so each task becomes its own bundle — one Slack message per task. Click the '+' after the Search Records module and add 'Flow Control > Iterator.' Map the Array field to the output array from the Search Records module.
- 1Click '+' on the right side of the Zoho CRM Search Records module
- 2Search for 'Flow Control' and select it
- 3Choose 'Iterator'
- 4In the 'Array' field, click inside and select '1. Search Records: Records[]' from the mapping panel
Canvas > Arrow between Iterator and next module > Wrench icon > Add Filter
Add a Filter to skip already-notified tasks (optional but recommended)
Click the small wrench icon on the arrow between the Iterator and the next module to add a Filter. Set a condition to check that the task's Due Date is not more than 2 days overdue — this prevents re-notifying reps about very old tasks that are likely already handled or abandoned. Set the condition: 'Due Date' greater than or equal to '{{formatDate(addDays(now; -2); "YYYY-MM-DD")}}'.
- 1Right-click the arrow line between Iterator and the next module
- 2Select 'Add a filter'
- 3Set Label to 'Recent tasks only'
- 4Set Condition: Field = 'Due Date' (from Iterator bundle), Operator = 'Greater than or equal to (date)', Value = '{{formatDate(addDays(now; -2); "YYYY-MM-DD")}}'
- 5Click 'OK'
Canvas > + after Filter > Slack > Look Up a User by Email
Resolve the assigned rep's Slack user ID
Zoho CRM stores the task owner as a name string (e.g., 'Sarah Kim'), but Slack's API requires a user ID (e.g., 'U04ABCDEF') to send a DM. Add a Slack 'Look Up a User by Email' module after the filter. Map the email to the task owner's email from the Zoho bundle. This converts the Zoho user record into a Slack user ID you can use in the next step.
- 1Click '+' after the filter
- 2Search for 'Slack' and select it
- 3Choose 'Look Up a User by Email'
- 4Connect your Slack workspace (OAuth flow — approve in your browser)
- 5Map the 'Email' field to '{{1.Owner.Email}}' from the Zoho bundle
Canvas > + after Slack Lookup > Slack > Send a Message
Add the Slack 'Send a Message' module
Add a Slack 'Send a Message' module after the lookup. Set 'Channel ID or Name' to the User ID returned from the previous Slack lookup module — this sends a DM directly to the rep. Compose the message text using mapped fields from the Zoho task bundle: task subject, related contact or deal name, due date, and a direct link to the CRM record.
- 1Click '+' after the Slack lookup module
- 2Select 'Slack' and choose 'Send a Message'
- 3Set 'Channel ID or Name' to '{{7.user.id}}' (the User ID from the lookup module)
- 4In the 'Text' field, compose: ':alarm_clock: *Follow-up due:* {{2.Subject}}\n*Contact:* {{2.Contact_Name.name}}\n*Due:* {{formatDate(2.Due_Date; "MMM D, YYYY")}}\n*Priority:* {{2.Priority}}\n<https://crm.zoho.com/crm/org{{2.Owner.id}}/tab/Tasks/{{2.id}}|Open in Zoho CRM>'
- 5Leave 'As User' toggled off unless your Slack plan supports bot posting as a user
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Scenario Canvas > Clock icon (bottom left) > Scheduling
Set the scenario schedule
Click the clock icon in the bottom left of the scenario canvas to open the scheduling panel. Set the scenario to run every 15 minutes during business hours. Make doesn't have a native 'business hours only' toggle, so set the interval to 15 minutes and accept that it will also fire on weekends — or use Make's scheduling with a filter on the current time at the start of the scenario to suppress off-hours runs.
- 1Click the clock icon in the bottom-left corner of the canvas
- 2Set 'Run scenario' to 'At regular intervals'
- 3Set interval to '15' minutes
- 4Click 'OK'
- 5Optionally, return to step 1 in the scenario and add a Router with a time-of-day filter: {{hour(now)}} >= 8 AND {{hour(now)}} <= 18
Scenario Canvas > Run once (bottom left) > Module bubbles
Run a live test and verify the Slack message
Click 'Run once' in the bottom left to trigger a manual test run. Watch the bubbles on each module light up — green means data passed through, orange means filtered out, red means an error. Click any bubble to inspect the bundle data at that stage. Confirm your Slack DM arrived with the correct task name, contact, date, and working CRM link.
- 1Click 'Run once' in the bottom toolbar
- 2Watch each module bubble for green (success) or red (error) indicators
- 3Click the Zoho CRM bubble to confirm tasks were returned
- 4Click the Slack 'Send a Message' bubble to confirm the message payload
- 5Check your Slack DMs to verify the message arrived and the Zoho link resolves correctly
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Scenario Canvas > ON/OFF toggle (bottom left) > Scenarios > History
Activate the scenario
Toggle the scenario from 'OFF' to 'ON' using the switch in the bottom left of the canvas. Make will now run this scenario automatically on the 15-minute schedule. Monitor the first 2-3 automatic runs in the Scenario History tab (left sidebar > Scenarios > History) to confirm it's firing correctly and no errors appear.
- 1Click the toggle switch in the bottom-left of the canvas from OFF to ON
- 2Confirm the scenario status bar shows 'Active' and a next-run timestamp
- 3Navigate to Scenarios in the left sidebar
- 4Click 'History' to watch the first automated run complete
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 wants visual debugging without writing code. Make's canvas lets you click any module bubble after a test run and see exactly what Zoho returned and what Slack received — that's critical when troubleshooting why rep Sarah got a reminder but Marcus didn't. Make also handles the Iterator pattern natively (splitting a batch of Zoho tasks into individual Slack messages) without any code. The one case where you'd pick something else: if your team already runs n8n self-hosted and wants to avoid another SaaS subscription. n8n handles this workflow identically and the self-hosted version has no operation limits.
Real cost math: each scenario run hits 1 operation for the Zoho poll + 1 per task returned + 1 per Slack lookup + 1 per Slack message sent. A team with 10 reps averaging 5 due tasks per poll = 52 operations per run. At 15-minute intervals, 8 hours/day, 5 days/week, that's roughly 2,000 runs/month = 104,000 operations/month. Make's Core plan ($9/month) includes 10,000 operations — you'd need the Pro plan ($16/month, 40,000 ops) or Teams ($29/month, 150,000 ops). Zapier's equivalent would run $49/month (Professional) for the same volume. Make wins on price here by $20-33/month.
Zapier has one edge: their 'Schedule by Zapier' trigger lets you set business-hours-only schedules with a checkbox UI — no filter formula needed. That's 5 minutes vs. 20 minutes of setup. n8n's Cron node gives you full cron syntax (e.g., run only Mon-Fri 8am-6pm in one expression) and zero operation limits on self-hosted. Power Automate has native Zoho CRM connectors in its Premium tier but the connector lags — it doesn't expose the Tasks module search with date-range criteria cleanly, so you'd need custom HTTP calls anyway. Pipedream handles this well with its scheduled source + Node.js, and the free tier is generous, but it requires code for the Slack message formatting that Make handles visually. Make is still the right call for non-coding teams that need operational visibility and predictable costs.
Three things you'll hit after go-live. First: Zoho's API rate limit is 5,000 calls/day per org on the Standard plan. If multiple Make scenarios also hit the Zoho API (e.g., a separate lead sync), you can exhaust that limit mid-day and get 429 errors — monitor Zoho's API usage dashboard under Setup > Developer Space > API Dashboard. Second: Zoho's 'Owner' field on Tasks sometimes returns only the owner's ID rather than their full user object, depending on which Zoho plan you're on. If your email lookup fails because {{2.Owner.email}} is empty, add a second Zoho CRM 'Get a User' module between the search and the Slack lookup, passing the owner ID to retrieve the full user record including email. Third: Slack DMs from a bot account show as coming from your Make app name — reps sometimes ignore or filter these. Rename your Slack app to something human like 'CRM Reminders' in the Slack API dashboard at api.slack.com/apps to improve open rates.
Ideas for what to build next
- →Add a morning digest instead of per-task DMs — Modify the scenario to run once at 8am and bundle all of a rep's due tasks into a single Slack message using Make's Array Aggregator module. This reduces notification noise for reps with 5+ tasks due daily.
- →Post to a shared #sales-followups channel with rep mentions — Instead of DMs, route reminders to a shared channel and mention the rep with @{{slackUserId}}. Sales managers get visibility into what's due without asking reps to report manually.
- →Update Zoho task status when a rep reacts to the Slack message — Add a second Make scenario triggered by a Slack emoji reaction (e.g., :white_check_mark:) on the reminder message and use the Zoho CRM 'Update a Record' module to mark the task as Completed — no CRM login needed.
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