Intermediate~15 min setupCommunication & CRMVerified April 2026
Slack logo
Zoho CRM logo

How to Send Zoho CRM VIP Case Alerts to Slack with Power Automate

Automatically posts a Slack message to your support channel whenever a high-value or VIP account opens a new case in Zoho CRM, so your team can respond immediately.

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

Best for

Support teams already inside the Microsoft 365 ecosystem who need instant Slack alerts when enterprise or VIP accounts raise cases in Zoho CRM.

Not ideal for

Teams without a Microsoft 365 license — Make handles the same flow for free and with a simpler Zoho webhook setup.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 20-person SaaS support team handles 300+ cases a month, but their top 40 enterprise accounts expect a response within 15 minutes. Before this flow, a rep had to manually check Zoho CRM every hour and tag teammates in Slack by hand — critical cases sat unnoticed for 45–90 minutes. Now, the moment a VIP account opens a case, a formatted alert fires to #vip-support with the account name, case priority, and a direct link to the record.

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 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.

Zoho CRM account with admin access to Setup > Automation (required to create Webhook and Workflow Rules)
Microsoft 365 account with Power Automate access — the Per User plan or above is needed to use the HTTP trigger (it is not available on the free plan)
Slack account with permission to add apps to your workspace and post to the target support channel
Zoho CRM Cases module must be active and the Account Tier field must exist as a picklist with a 'VIP' option (or equivalent label you control)

Optional

A dedicated service account email for authorizing the Slack connection in Power Automate — avoids the flow breaking when a team member leaves

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Case SubjectSubject
Account NameAccount_Name
PriorityPriority
Case OwnerOwner
Case IDid
Account TierAccount_Tier
Case URL
2 optional fields▸ show
Case StatusStatus
DescriptionDescription

Step-by-Step Setup

1

Zoho CRM > Setup > Automation > Actions > Webhooks

Configure a Webhook in Zoho CRM for New Cases

Zoho CRM will push case data to Power Automate the instant a new case is created. To do this, you set up a Webhook inside Zoho's automation rules. Log into Zoho CRM, go to Setup > Automation > Actions > Webhooks, and click New Webhook. You will name it, paste the Power Automate trigger URL here in step 3, and configure it to fire on Case creation.

  1. 1Log into Zoho CRM and click the gear icon (Setup) in the top right
  2. 2In the left sidebar, expand 'Automation' and click 'Actions'
  3. 3Select 'Webhooks' from the submenu
  4. 4Click '+ New Webhook' in the top right
What you should see: A blank webhook configuration form appears with fields for Name, Post URL, and payload settings.
Common mistake — Zoho CRM webhooks are module-specific. Make sure you are inside the 'Cases' module context when you later attach this webhook to a workflow rule — if you accidentally target 'Contacts', the trigger will never fire.
2

make.powerautomate.com > + Create > Automated cloud flow

Create a New Automated Flow in Power Automate

Head to make.powerautomate.com and sign in with your Microsoft 365 account. Click '+ Create' in the left sidebar, then choose 'Automated cloud flow'. This flow type triggers on an external event — in this case, an incoming HTTP request from Zoho CRM. Name the flow something like 'Zoho VIP Case → Slack Alert' so it is easy to identify later.

  1. 1Go to make.powerautomate.com and sign in
  2. 2Click '+ Create' in the left sidebar
  3. 3Select 'Automated cloud flow'
  4. 4Enter a flow name such as 'Zoho VIP Case → Slack Alert'
  5. 5In the trigger search box, type 'HTTP' and select 'When a HTTP request is received' — then click Create
What you should see: The flow canvas opens with a single trigger block labeled 'When a HTTP request is received'. The POST URL field is empty until you save the flow for the first time.
Common mistake — Do not click 'Save' yet. The trigger URL only generates after you add at least one action. Save the flow after step 4 to get the URL.
3

Flow canvas > When a HTTP request is received > Use sample payload to generate schema

Define the JSON Schema for the Zoho Case Payload

Inside the 'When a HTTP request is received' trigger block, click 'Use sample payload to generate schema'. Paste in a sample JSON object that matches what Zoho will send. This tells Power Automate how to parse incoming fields like Case Subject, Account Name, Priority, and Case Owner so you can reference them in later steps as dynamic content.

  1. 1Click inside the 'When a HTTP request is received' trigger block
  2. 2Click 'Use sample payload to generate schema'
  3. 3Paste the sample JSON below into the dialog box
  4. 4Click 'Done' — Power Automate generates the schema automatically
What you should see: The 'Request Body JSON Schema' field populates automatically. You should see fields like caseSubject, accountName, priority, and caseOwner listed in the dynamic content panel when you click into later action fields.
Common mistake — If the schema is missing a field, that field will not appear as dynamic content anywhere in the flow. Test with a complete sample payload — including every field you plan to use in the Slack message — before moving on.
4

Flow canvas > + New step > Control > Condition

Add a Condition to Filter for VIP Accounts Only

Not every case should trigger an alert. Click '+ New step', search for 'Condition', and select the 'Condition' control action. Set the left-hand value to the 'accountTier' field from the Zoho payload (dynamic content). Set the operator to 'is equal to' and the right-hand value to 'VIP'. Cases that do not match this condition will exit through the 'No' branch and no Slack message will be sent.

  1. 1Click '+ New step' below the trigger
  2. 2Search for 'Condition' and select it under the Control category
  3. 3Click the left-hand 'Choose a value' field and select 'accountTier' from dynamic content
  4. 4Set the operator dropdown to 'is equal to'
  5. 5Type 'VIP' in the right-hand value field
What you should see: The canvas splits into a 'Yes' branch and a 'No' branch. The 'No' branch can be left empty — Power Automate will simply end the run for non-VIP cases.
Common mistake — The value comparison is case-sensitive in Power Automate expressions. If Zoho sends 'vip' in lowercase but you typed 'VIP', the condition will never match. Check your Zoho CRM picklist values and match them exactly, or use the expression toLower(triggerBody()?['accountTier']) on the left side.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Zoho CRM
ZO
notified
5

Flow canvas > Save > When a HTTP request is received > HTTP POST URL

Save the Flow and Copy the Trigger URL

Now that the trigger has a downstream action (the Condition block counts), you can save the flow and retrieve the HTTP POST URL. Click 'Save' in the top right. After saving, click back into the 'When a HTTP request is received' trigger block — the HTTP POST URL field now shows a long URL. Copy it.

  1. 1Click 'Save' in the top right of the flow canvas
  2. 2Click back into the 'When a HTTP request is received' trigger block
  3. 3Click the copy icon next to the HTTP POST URL field
  4. 4Paste this URL into a temporary note — you will need it in the next step
What you should see: The URL looks like https://prod-xx.westus.logic.azure.com/workflows/.... It is unique to this flow and does not change unless you delete and recreate the trigger.
Common mistake — Copy the webhook URL carefully — it expires if you regenerate it, and any scenarios using the old URL will silently stop working.
Power Automate
+
click +
search apps
Slack
SL
Slack
Save the Flow and Copy the T…
Slack
SL
module added
6

Zoho CRM > Setup > Automation > Actions > Webhooks > [Your Webhook]

Paste the Trigger URL into the Zoho Webhook

Go back to the Zoho CRM webhook form you opened in step 1. Paste the Power Automate HTTP POST URL into the 'URL to Notify' field. Set the Method to POST and the content type to JSON. In the 'Parameters' section, add the case fields you want to forward: Case Subject, Account Name, Priority, Case Owner, Case ID, Account Tier, and Case URL.

  1. 1Return to the Zoho CRM webhook form
  2. 2Paste the Power Automate URL into 'URL to Notify'
  3. 3Set Method to 'POST'
  4. 4Under Parameters, add each field: caseSubject, accountName, priority, caseOwner, caseId, accountTier, caseUrl
  5. 5Click 'Save'
What you should see: Zoho saves the webhook and shows it in the Webhooks list with a status of Active.
Common mistake — Zoho's parameter name field is freeform text — whatever you type here becomes the JSON key Power Automate receives. Use camelCase (e.g., 'caseSubject', not 'Case Subject') or the schema you built in step 3 will not match and your dynamic content fields will break.
7

Zoho CRM > Setup > Automation > Workflow Rules > + Create Rule

Attach the Webhook to a Zoho CRM Workflow Rule

The webhook alone does nothing until it is attached to a workflow rule that fires on case creation. In Zoho CRM, go to Setup > Automation > Workflow Rules and click '+ Create Rule'. Set the module to Cases, the trigger to 'Record Action > Create', and add a filter for Account Tier equals VIP. In the Actions section, add the webhook you just created.

  1. 1Go to Setup > Automation > Workflow Rules
  2. 2Click '+ Create Rule'
  3. 3Set Module to 'Cases' and name the rule 'VIP Case Webhook'
  4. 4Set Trigger to 'Record Action' and select 'Create'
  5. 5Under Conditions, add: Account Tier | is | VIP
  6. 6Under Actions, click 'Webhooks' and select your webhook
  7. 7Click 'Save and Activate'
What you should see: The rule appears in the Workflow Rules list with a green Active badge. From this point, any new case where the account tier is VIP will POST to your Power Automate flow within seconds.
Common mistake — You can also filter by VIP in both Zoho (here) and Power Automate (step 4) — that's intentional double-filtering. The Zoho filter reduces unnecessary HTTP calls; the Power Automate condition is your safety net if the Zoho filter is ever misconfigured.
8

Flow canvas > Condition > Yes branch > + Add an action > Slack > Post message (V2)

Add the Slack Connection in Power Automate

Back in your Power Automate flow canvas, click inside the 'Yes' branch of the Condition block and click '+ Add an action'. Search for 'Slack' and select 'Post message (V2)'. If you have not connected Slack before, Power Automate will prompt you to sign in and authorize the Slack bot. Authorize it with an account that has access to your support channel.

  1. 1Click '+ Add an action' inside the Yes branch
  2. 2Search for 'Slack' in the action search bar
  3. 3Select 'Post message (V2)'
  4. 4Click 'Sign in' when prompted and authorize with your Slack account
  5. 5After authorization, you should see a green checkmark and your workspace name
What you should see: The Slack action block appears with a green connection indicator showing your workspace name. The Channel Name and Message Text fields are now editable.
Common mistake — Power Automate's Slack connector posts as the authorized user, not a bot. If that person leaves the company and the connection breaks, the flow will fail silently. Use a dedicated service account (e.g., [email protected]) to authorize this connection.
9

Flow canvas > Slack > Post message (V2) > Channel Name + Message Text

Configure the Slack Message with Case Details

Set the Channel Name field to your support Slack channel (e.g., #vip-support). In the Message Text field, build a formatted alert using dynamic content from the Zoho payload. Include the account name, case subject, priority, assigned owner, and a direct link to the case in Zoho CRM. Slack supports basic markdown — use *bold* for the account name and priority to make the alert scannable.

  1. 1Set Channel Name to your support channel, e.g. 'vip-support'
  2. 2Click the Message Text field
  3. 3Build the message using dynamic content tokens — example format below
  4. 4Use the expression editor if you need to combine static text with dynamic fields
What you should see: The Message Text field shows a mix of static text and blue dynamic content tokens representing the Zoho fields. The preview will not render until a live test fires.
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.
10

make.powerautomate.com > My flows > [Flow Name] > Run history

Test the Flow End-to-End with a Real Case

Create a test case in Zoho CRM manually — use an account with Account Tier set to VIP and fill in a subject like 'TEST — Power Automate Integration Check'. Within 5–15 seconds, the webhook should fire, hit Power Automate, pass the VIP condition, and post a Slack message. In Power Automate, click 'My flows', open your flow, and scroll down to 'Run history' to confirm the run succeeded.

  1. 1In Zoho CRM, create a new Case with Account Tier = VIP
  2. 2Wait 10–15 seconds, then check your Slack #vip-support channel
  3. 3Go to make.powerautomate.com > My flows and open your flow
  4. 4Click the most recent entry in 'Run history'
  5. 5Verify each step shows a green checkmark — expand any red step for error details
What you should see: Run history shows a successful run with green checkmarks on all steps. Your Slack channel shows a formatted message with the correct account name, case subject, priority, and case link.
Common mistake — If the Slack message appears but fields are blank, the JSON key names from Zoho do not match the schema you defined in step 3. Open the run history, click the trigger step, and compare the actual incoming JSON keys to your schema — fix any mismatches in the webhook parameter names in Zoho.
Power Automate
▶ Test flow
executed
Slack
Zoho CRM
Zoho CRM
🔔 notification
received
11

make.powerautomate.com > My flows

Turn On the Flow and Remove the Test Case

If the test passed, your flow is already live — Automated cloud flows turn on immediately after saving. Confirm the flow status shows 'On' in make.powerautomate.com > My flows. Delete or update the test case in Zoho CRM so it does not skew your support metrics. Notify your support team that the alert system is active.

  1. 1Go to make.powerautomate.com > My flows
  2. 2Confirm your flow shows a green 'On' status badge
  3. 3Return to Zoho CRM and delete or close the test case you created
  4. 4Post a note in #vip-support letting the team know the bot is live
What you should see: Flow status is 'On'. No test case remains open in Zoho CRM. Your team is aware that real VIP alerts will now appear in Slack automatically.

Paste this expression into the Message Text field of the Slack action using Power Automate's expression editor (click the function icon 'fx' next to the field). It truncates the case description to 200 characters, uppercases the priority for visual emphasis, and falls back gracefully if the description field is empty — avoiding a blank or broken Slack message.

JavaScript — Code Step// Power Automate expressions for the Slack Message Text field
▸ Show code
// Power Automate expressions for the Slack Message Text field
// Use these in the expression editor (fx) or compose them as a string
// 1. Truncate case description to 200 characters with ellipsis

... expand to see full code

// Power Automate expressions for the Slack Message Text field
// Use these in the expression editor (fx) or compose them as a string

// 1. Truncate case description to 200 characters with ellipsis
if(
  greater(length(triggerBody()?['description']), 200),
  concat(substring(triggerBody()?['description'], 0, 200), '...'),
  coalesce(triggerBody()?['description'], 'No description provided.')
)

// 2. Uppercase priority for visual emphasis in Slack
toUpper(triggerBody()?['priority'])

// 3. Full composed Slack message string (paste into Message Text via expression editor)
concat(
  '🚨 *VIP Case Alert* — ', triggerBody()?['accountName'], '
',
  '*Subject:* ', triggerBody()?['caseSubject'], '
',
  '*Priority:* ', toUpper(triggerBody()?['priority']),
  ' | *Owner:* ', triggerBody()?['caseOwner'], '
',
  '*Link:* ', triggerBody()?['caseUrl'], '
',
  '_"',
  if(
    greater(length(coalesce(triggerBody()?['description'], '')), 200),
    concat(substring(triggerBody()?['description'], 0, 200), '...'),
    coalesce(triggerBody()?['description'], 'No description provided.')
  ),
  '"_'
)

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

Use Power Automate for this if your team lives in Microsoft 365 and already has Power Automate licenses through that subscription. You get the HTTP trigger, the Slack connector, and Zoho CRM connector all in one place without paying for a separate automation tool. It also makes sense if your IT department requires all integrations to go through Microsoft's tenant governance — Power Automate gives admins visibility and DLP controls that Zapier or Make do not. Where you would skip Power Automate: if your team has no Microsoft 365 subscription, you will pay $15/user/month just for the plan that includes the HTTP trigger. Make does this exact flow for free on their starter plan.

Cost

Cost math: this flow runs once per VIP case created. At 100 VIP cases/month, you use 100 Power Automate runs. The Microsoft 365 Business Standard plan includes 6,000 Power Platform requests/user/month — so at that volume, this flow costs you $0 on top of your existing license. If you are on the standalone Power Automate Per User plan at $15/month, you get 40,000 runs/month, making the effective cost under $0.001 per case alert. Make's free tier covers 1,000 operations/month and this flow uses 3–4 operations per run, so you would hit the ceiling at around 250 VIP cases/month before needing Make's $9/month Core plan. For most teams, Power Automate wins on cost if the Microsoft license is already in place.

Tradeoffs

Here is how the competitors stack up for this specific use case. Make has a native Zoho CRM module with a 'Watch Records' trigger that uses polling (every 15 minutes on free, every 1 minute on paid) — no webhook configuration required, which is meaningfully simpler to set up. Zapier has a 'New Case' trigger for Zoho CRM that also polls, and the UI is faster to configure than Power Automate's flow canvas, but Zapier charges per task and at 100 cases/month you are looking at $19.99/month on the Starter plan. n8n requires self-hosting or a cloud plan and the Zoho CRM node needs API credentials configured manually — more setup, but you own the infrastructure. Pipedream's Zoho CRM source supports webhooks natively with less configuration than Power Automate. Power Automate is still the right call when Microsoft 365 is already the company standard, governance matters, or you want to fan the alert out to both Slack and Microsoft Teams in the same flow with minimal extra work.

Three things you will hit after go-live. First, Zoho's webhook payload does not include a direct hyperlink field by default — you have to construct the case URL manually using your org ID and case ID, and if your org ID is wrong, every link in Slack will 404. Get your org ID from Zoho Setup > Company Settings before building the webhook. Second, Power Automate's Slack connector posts as the authenticated user, not a bot — your Slack admins may flag this as a security concern since the integration token is tied to a real person's account. Use a dedicated service account to avoid this. Third, if your Zoho CRM instance uses custom field API names (common when Account Tier was added as a custom field), the field name in the webhook payload will have a suffix like Account_Tier__c or use an internal ID — not the display label. Always click 'Test' on the Zoho webhook and inspect the raw JSON before building your Power Automate schema.

Ideas for what to build next

  • Add a Slack Thread Reply When the Case is ResolvedBuild a second flow triggered by Zoho CRM case status changes. When a VIP case status moves to 'Closed', post a threaded reply in Slack on the original alert message using the case ID as the thread timestamp key.
  • Escalate Unacknowledged Cases After 15 MinutesAdd a Delay action after the Slack post, then check if the Zoho case still has no owner activity using the Zoho CRM 'Get a record' action. If unacknowledged, post a second Slack message tagging the support manager directly.
  • Log All VIP Case Alerts to a SharePoint List for ReportingAfter the Slack Post action in the Yes branch, add a 'Create item' action using the SharePoint connector. Log the account name, case ID, timestamp, and priority — this gives your support team a running audit trail without needing to export from Zoho.

Related guides

Was this guide helpful?
Slack + Zoho CRM overviewPower Automate profile →