Skip to main content

Conditions Reference

A condition decides whether a rule should run on an email. This is the complete list of fields you can match on, exactly as they appear in the rule builder, grouped the same way the builder groups them. Each field shows the operators it allows and — where the field is a fixed choice — the exact values you can pick.

Combine conditions with AND / OR / NOT and nested groups (see Combining conditions at the end).

Reading the operator column

Most fields offer the "does not" variant of each operator too (Does Not Equal, Does Not Contain, and so on). Those are listed where they apply.


Basic fields

The everyday email properties — who sent it, what it says, and your relationship with the sender.

Sender and recipient

FieldMatches onOperators
From (Email)Sender's email address only, e.g. notifications@github.comequals · does not equal · contains · does not contain · matches regex · does not match regex
From (Name)Sender's display name only, e.g. Peter Krzyzekequals · does not equal · contains · does not contain · starts with · does not start with · matches regex · does not match regex
From (Full)The full sender header — name and email togethercontains · does not contain · starts with · does not start with · matches regex · does not match regex
To (Email)A recipient's email address onlyequals · does not equal · contains · does not contain · matches regex · does not match regex
To (Name)A recipient's display name onlyequals · does not equal · contains · does not contain · starts with · does not start with · matches regex · does not match regex
To (Full)The full recipient header — name and email togethercontains · does not contain · starts with · does not start with · matches regex · does not match regex
From (Email) vs From (Full)

Use From (Email) to match a precise address and ignore the display name. Use From (Full) when the part you care about is in the display name, such as "vercel[bot]".

Content

FieldMatches onOperators
SubjectThe subject lineequals · does not equal · contains · does not contain · starts with · does not start with · matches regex · does not match regex
BodyThe email's text contentcontains · does not contain · matches regex · does not match regex
Has AttachmentWhether the email includes file attachmentsis true · is false

Status and labels

FieldMatches onOperators
Is UnreadWhether the email is unreadis true · is false
Has Gmail LabelWhether the email has a specific Gmail label (you pick the label)equals · does not equal

Sender relationship

FieldMatches onOperators
Sender HistoryHow well you know this sender (see values below)equals · does not equal
Is Known ContactWhether the sender exists in your contactsis true · is false
Trust StatusThe sender's trust level in your contacts (see values below)equals · does not equal

Sender History values:

First-time sender (cold) Have exchanged before (warm) Regular contact (established) Unknown (unknown)

Trust Status values:

Trusted contact (allowlist) Blocked sender (denylist) Not specified (normal)

→ More on relationships: Contacts


Content (sender volume)

How much a particular sender emails you — useful for spotting noisy senders.

FieldMatches onOperators
Sender Daily VolumeEmails received from this sender per dayequals · does not equal · greater than · less than
Sender Weekly VolumeEmails received from this sender per weekequals · does not equal · greater than · less than
Sender Monthly VolumeEmails received from this sender per monthequals · does not equal · greater than · less than
Total Email HistoryTotal emails ever exchanged with this senderequals · does not equal · greater than · less than

Time-based fields

Match on when an email arrived — perfect for "only during work hours" or "weekends only" automations.

FieldMatches onOperators
Email Age (Hours)How many hours ago the email arrivedequals · does not equal · greater than · less than
Email Age (Days)How many days ago the email arrivedequals · does not equal · greater than · less than
Received Time of DayThe clock time it was received (HH:MM)before · after · between
Received DayWhich day(s) it arrived (see values below)is

Received Day values:

Weekdays (Mon–Fri) Weekend (Sat–Sun) MondaySunday (any single day)


AI analysis

These fields read MailPrism's AI analysis of the email and expose the result as a condition. They require AI features to be turned on, and some spend AI credits each time they run.

FieldMatches onOperators
AI CategoryThe AI-detected type of email (see values below)equals · does not equal
AI UrgencyThe AI-detected urgency level (see values below)equals · does not equal
AI SentimentThe AI-detected emotional tone (see values below)equals · does not equal
AI: Response PriorityThe AI's suggested response urgency (see values below)equals · does not equal
AI: Email Needs ResponseThe AI thinks the email needs a reply from you (uses AI credits)is true · is false
AI: Requires External ActionThe AI detects an action outside email — sign in, approve, update payment, etc. (uses AI credits)is true · is false
AI: Sender Expects ReplyThe AI thinks the sender is expecting a reply (uses AI credits)is true · is false
AI: Is Automated EmailThe email is machine-generated with no human sender (receipts, alerts)is true · is false
AI: Thread StateThe AI's single tracking state for the conversation (uses AI credits; needs AI thread tracking)equals · does not equal
AI: Thread State ConfidenceHow confident the AI is in that state, from 0.0 to 1.0greater than · less than · equals

AI Category values:

Urgent Important Personal Work Financial/Billing Newsletter Promotional Cold Email Spam Social Notification Transactional System Other

AI Urgency values: High Medium Low

AI Sentiment values: Positive Neutral Negative

AI: Response Priority values: Urgent High Normal Low

AI: Thread State values: Needs Action Awaiting Reply Pending (FYI/Monitor) Resolved (Complete)

→ Learn what each signal means: AI features


Response tracking

Match on the state of the whole conversation, not just one message — and on label changes that happen to it. See Response tracking.

Conversation state

FieldMatches onOperators
Response StatusThe current tracking state of the thread (see values below)equals · does not equal
Last SenderWho sent the most recent message (see values below)equals · does not equal
Time Awaiting ReplyHours you've been waiting for a replyequals · does not equal · greater than · less than
Total Messages in ThreadTotal messages in the thread, all participantsequals · does not equal · greater than · less than
Your Messages in ThreadHow many messages you have sent in the threadequals · does not equal · greater than · less than
Time Since Last MessageHours since the last message in the threadequals · does not equal · greater than · less than

Response Status values: Needs Response Awaiting Reply Resolved Snoozed Not Tracked

Last Sender values: User (Me) External Party

Recipient position

FieldMatches onOperators
I'm in TO RecipientsYou are in the To field — a strong signal that action is neededis true · is false
I'm in CC RecipientsYou are in the Cc field — usually just FYIis true · is false

Label changes

These trigger on the moment a label is added or removed, which makes them great for chaining automations off another rule's labelling.

FieldMatches onOperators
Gmail Label AddedA specific Gmail label was just added (you pick the label)equals · does not equal
Gmail Label RemovedA specific Gmail label was just removed (you pick the label)equals · does not equal
System Label AddedA configured system label was added (see values below)equals
System Label RemovedA configured system label was removed (see values below)equals
Tracking Label AddedA specific tracking label was just assigned (you pick it)equals · does not equal
Tracking Label RemovedA specific tracking label was just removed (you pick it)equals · does not equal
Has Tracking LabelThe email currently has a specific tracking label (you pick it)equals · does not equal
Tracking Label ModeThe tracking label's mode (see values below)equals · does not equal

System Label values (add and remove): Needs Response / Action Required Awaiting Reply Resolved

Tracking Label Mode values: Active Passive

Thread updates

FieldMatches onOperators
Thread Has New MessageThe thread just received a new messageis true · is false
New Message DirectionWhether the new message was inbound or outbound (see values below)equals · does not equal

New Message Direction values: Inbound (from others) Outbound (sent by me)


Operators by type

The operators a field offers depend on what kind of value it holds. The tables above already list each field's exact set — this is the quick summary.

Value typeOperators
Textequals · contains · starts with · ends with · matches regex — plus the "does not" version of each
Yes / Nois true · is false
Number / Durationequals · does not equal · greater than · less than
Time of daybefore · after · between
Dayis
Regex for power users

matches regex unlocks precise patterns — for example, match invoice numbers with INV-\d{5}, or any subdomain of a company with .*@.*\.company\.com. Matching is case-insensitive, and extremely long or unsafe patterns are rejected for performance.


Combining conditions

A rule's conditions are joined by one of three modes, and you can nest them into groups for precise logic.

  • AND ("all") — every condition must match.

  • OR ("any") — any one condition is enough.

  • NOT — the rule matches only when none of the conditions are true.

  • Groups — nest conditions to express exactly what you mean, for example:

    (Sender History is cold AND AI Category is Cold Email) OR (Subject contains "unsubscribe")

Groups can be nested several levels deep, and each level shows a different color in the builder so the structure stays readable.

What's next