# Flag VIP client emails in Zoho Mail and alert your team

> Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.

- Workflow type: code
- Services: Zoho Mail, Google Sheets, Slack Bot
- Categories: Sales, Operations
- Published: 2026-08-10

## What it does

- Watches your Zoho Mail inbox and checks every new message against a watchlist you keep in Google Sheets.
- Recognizes both a specific person's address and a whole company domain, so anyone writing from a key account is caught.
- Adds a VIP label to the message in Zoho Mail so it stands out in your inbox.
- Posts the sender, company, account owner, subject line, and a short preview to your account team's Slack channel, then logs the email on a tracking tab so you can review response times later.

## What you'll need

- A Zoho Mail account for the inbox you want watched.
- A Google Sheet with two tabs: one listing your VIP addresses and domains alongside the company and the account owner, and one empty tab for the log.
- A Slack workspace and the channel your account team follows.

## Prompt

Whenever a new email arrives in Zoho Mail, check the sender against a watchlist of VIP contacts I keep in Google Sheets. If it matches, label the message, alert my account team in Slack, and log it. This should be fully deterministic: a spreadsheet lookup and a string comparison, with no AI judgement involved, so it is cheap enough to run on every inbound message.

My watchlist lives on a tab called Watchlist with a header row and three columns. Column A is the match value, which is either a full email address such as dana.reeve@acme.com or a bare company domain such as acme.com. Column B is the company name. Column C is the name of the account owner who covers that company. Read this range with the Google Sheets Get Values operation.

Match the incoming sender against the list case-insensitively. Trim whitespace and lowercase both the sender address and every watchlist value before comparing. If a watchlist value contains an @ sign, treat it as a full address and require an exact match on the sender address. Otherwise treat it as a domain and compare it against the portion of the sender address after the @ sign, ignoring a leading @ if someone typed one into the sheet. Prefer a full address match over a domain match when both are present, so a person-specific row wins over the company-wide row. If nothing matches, stop immediately and do nothing at all: no label, no Slack message, no log row.

On a match, gather what you need about the message. Zoho Mail endpoints are account scoped, so resolve the mail account id once and reuse it for every following call. Use Zoho Mail Get Email Details for the sender address, the subject line, and the received timestamp, and Zoho Mail Get Email Content for the body. Strip the HTML down to plain text and take the first 200 characters as a preview, adding an ellipsis if it was truncated.

Apply a VIP label to the message with Zoho Mail Update Emails (Batch). Zoho Mail can only apply labels that already exist, so first call List Labels and look for one named VIP, comparing case-insensitively. If it is not there, create it with Create Label and use the id that comes back. When it does already exist, reuse that label id rather than creating a duplicate.

Post an alert to my account team channel with the Slack Bot Send a Message operation. The message should contain the sender address, the matched company from column B, the named account owner from column C, the subject line, and the short body preview. Format it so the account owner's name and the company are easy to scan at a glance.

Finally, append a row to a tab called Log using the Google Sheets Append Values operation, recording the timestamp the email was received, the sender address, the subject line, and the matched account owner, in that column order. This log is what I will use later to review how quickly we respond to our most important senders.

If the Slack post or the log append fails, make sure the label was still applied, and surface the error rather than silently swallowing it.

## How to customize

- Rename the label from VIP to something like Key Account or Priority.
- Point the alert at a different Slack channel, or use a private channel for a specific account team.
- Adjust how much of the email preview gets included, or add extra columns such as region or renewal date to the watchlist and the alert.

## Example output

VIP email received

From: dana.reeve@acme.com (Acme Corp)
Account owner: Priya Nair
Subject: Renewal paperwork and Q3 expansion

Preview: Hi team, ahead of Thursday's call I wanted to share the revised headcount numbers for the expansion, along with the signed order form our legal team finally cleared this morning...

## FAQ

### What happens if the sender is not on my watchlist?

Nothing at all. The workflow checks the address, finds no match, and stops there. Ordinary mail is left completely untouched, so you only hear about the senders you chose to flag.

### Can I watch a whole company instead of one person?

Yes. Put just the domain, such as acme.com, in your watchlist and every email from anyone at that company is treated as VIP. You can mix full addresses and bare domains on the same list.

### Does capitalization in the spreadsheet matter?

No. Matching ignores upper and lower case, so Sales@Acme.com on your list still matches an email that arrives from sales@acme.com.

### Do I need to create the VIP label in Zoho Mail first?

No. The workflow looks at the labels already in your account and creates the VIP label the first time it needs it, then reuses it from then on.

### Does this use AI to decide which emails are important?

No. It is a straightforward spreadsheet lookup and an exact address match, so the result is predictable every time and cheap enough to run on every incoming email.

Use this prompt in General Input: https://www.generalinput.com/prompts/flag-vip-client-emails-in-zoho-mail-and-alert-your-team