Conditions for Segments and Automations
This document explains the conditions used for creating segments and automation workflows in SendSquared.
Overview
When creating segments or automation workflows, you'll use conditions to target specific contacts based on their properties, activities, or relationships. These conditions are organized by type and provide various operators for precise targeting.
Condition Types
The following condition types are available when building your segments or automation workflows. Each table below represents a different condition type with its available fields, operators, and value types.
Property (Contact) Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
contacts.first_name | Contact First Name | equal, notEqual, like, notLike | string |
contacts.last_name | Contact Last Name | equal, notEqual, like, notLike | string |
contacts.address_1 | Contact Address 1 | equal, notEqual, like, notLike | string |
contacts.address_2 | Contact Address 2 | equal, notEqual, like, notLike | string |
contacts.locality | Contact Locality | equal, notEqual, like, notLike | string |
contacts.region | Contact Region | equal, notEqual, like, notLike | string |
contacts.postal | Contact Postal | equal, notEqual, like, notLike | string |
contacts.country | Contact Country | equal, notEqual, like, notLike | string |
contacts.source | Contact Source | equal, notEqual, like, notLike | string |
contacts.source_of_business | Contact Source of Business | equal, notEqual, like, notLike | string |
contacts.company_name | Contact Company Name | equal, notEqual, like, notLike | string |
contacts.external_source | Contact External Source | equal, notEqual, like, notLike | string |
contacts.home_phone | Contact Home Phone | equal, notEqual, like, notLike | string |
contacts.mobile_phone | Contact Mobile Phone | equal, notEqual, like, notLike | string |
contacts.dont_send_email | Do Not Email This Contact | isNull, isNotNull | null |
contacts.last_inbound_call_at | Contact Last Inbound Call | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_inbound_answered_call_at | Contact Last Answered Inbound Call | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_outbound_call_at | Contact Last Outbound Call | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_outbound_answered_call_at | Contact Last Answered Outbound Call | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_sent_email | Contact Last Received Email | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_received_email | Contact Last Sent Email | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_open_email | Contact Last Open Email | equal, greater, greaterOrEqual, less, lessOrEqual, isNull, isNotNull | datetime, datetimeRelative |
contacts.last_sent_sms | Contact Last Sent SMS | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_received_sms | Contact Last Received Sms | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_sent_airbnb | Contact Last Sent Airbnb | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.last_received_airbnb | Contact Last Received Airbnb | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.birthday | Contact Birthday | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
contacts.anniversary | Contact Anniversary | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
Reservation Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
reservations.connector_id | Is Connector | equal, notEqual | integer |
reservations.adults | Reservation Adults | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.children | Reservation Children | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.pets | Reservation Pets | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.total_occupants | Reservation Total Occupants | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.total_revenue | Reservation Total Revenue | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.room_revenue | Reservation Room Revenue | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.extra_revenue | Reservation Extra Revenue | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.source | Reservation Source | equal, notEqual, like, notLike | string |
reservations.external_source | Reservation PMS Source | equal, notEqual, like, notLike | string |
reservations.source_of_business | Reservation Source of Business | equal, notEqual, like, notLike | string |
reservations.market_code | Reservation Market Code | equal, notEqual, like, notLike | string |
reservations.arrival_date | Reservation Arrival At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
reservations.departure_date | Reservation Departure At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
reservations.nights | Reservation Nights | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.cancelled_at | Reservation Cancelled | isNull, isNotNull | null |
reservations.last_updated_at | Reservation Modified | isNull, isNotNull | null |
reservations.contract_date | Reservation Contract Date | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
reservations.created_at | Reservation Created At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime |
reservations.modified_at | Reservation Modified At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime |
reservations.reservation_number | Reservation Number | equal, notEqual, like, notLike | string |
reservations.reservation_type | Reservation Type | equal, notEqual, like, notLike | string |
reservations.status | Reservation Status | equal, notEqual, like, notLike | string |
reservations.taxes | Reservation Taxes | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.deposit | Reservation Deposit | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.has_future | Has Future Reservation | equal | boolean |
reservations.total_reservations | Total Lifetime Reservations | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
reservations.confirmation_code | Confirmation Code | equal, notEqual, like, notLike | string |
Unit Conditions (Part of Reservation)
Field | Label | Operators | Value Type |
---|---|---|---|
units.pms_id | Unit Id | equal, notEqual, like, notLike | string |
units.unit_code | Unit Code | equal, notEqual, like, notLike | string |
units.unit_type | Unit Type | equal, notEqual, like, notLike | string |
units.name | Unit Name | equal, notEqual, like, notLike | string |
units.door_code | Static Door Code | equal, notEqual, like, notLike, isNull, isNotNull | string |
reservation_units.door_code | Per Reservation Door Code | equal, notEqual, like, notLike, isNull, isNotNull | string |
units.description | Unit Description | equal, notEqual, like, notLike | string |
units.long_description | Unit Long Description | equal, notEqual, like, notLike | string |
units.address_1 | Unit Address 1 | equal, notEqual, like, notLike | string |
units.address_2 | Unit Address 2 | equal, notEqual, like, notLike | string |
units.locality | Unit Locality | equal, notEqual, like, notLike | string |
units.region | Unit Region | equal, notEqual, like, notLike | string |
units.postal | Unit Postal | equal, notEqual, like, notLike | string |
units.country | Unit Country | equal, notEqual, like, notLike | string |
units.locale | Unit Locale | equal, notEqual, like, notLike | string |
units.occupancy | Unit Occupancy | equal, greater, greaterOrEqual, less, lessOrEqual | integer |
units.created_at | Unit Created At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime |
units.modified_at | Unit Modfied At | equal, greater, greaterOrEqual, less, lessOrEqual | datetime |
units.wifi_ssid | Unit WiFi SSID | equal, notEqual, like, notLike | string |
units.wifi_code | Unit WiFi Code | equal, notEqual, like, notLike | string |
units.gate_code | Static Gate Code | equal, notEqual, like, notLike | string |
reservation_units.gate_code | Per Reservation Gate Code | equal, notEqual, like, notLike, isNull, isNotNull | string |
units.pool_code | Static Pool Code | equal, notEqual, like, notLike | string |
reservation_units.pool_code | Per Reservation Pool Code | equal, notEqual, like, notLike, isNull, isNotNull | string |
units.property_code | Unit Property Code | equal, notEqual, like, notLike | string |
units.property_url | Unit Property URL | equal, notEqual, like, notLike | string |
Campaign Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
campaigns.id | Campaign Name | equal, notEqual | integer |
campaigns.fire_at | Campaign Send Time | equal, greater, greaterOrEqual, less, lessOrEqual | datetime |
Cart Abandon Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
campaigns.booked_at | Booked At | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull | datetime |
cart_abandons.pms_id | Pms Unit Id | equal, notEqual, like, notLike | string |
cart_abandons.date_of_arrival | Date of Arrival | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | datetime |
cart_abandons.date_of_departure | Date of Departure | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | datetime |
cart_abandons.property_name | Property Name | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | string |
cart_abandons.direct_price | Direct Price | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | number |
cart_abandons.vrbo_price | VRBO price | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | number |
cart_abandons.airbnb_price | Airbnb price | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | number |
cart_abandons.bookingcom_price | Booking.com price | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | number |
cart_abandons.abandonment_date | Abandonment Date | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | datetime, datetimeRelative |
cart_abandons.total_saving | Total Saving | equal, greater, greaterOrEqual, less, lessOrEqual, isNotNull, isNull, notEqual | datetime, datetimeRelative |
Contact Email Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
contact_emails.email_address | Email Address | equal, notEqual, like, notLike | string |
contact_emails.is_primary | Is Primary Email | equal | boolean |
contact_emails.validated_at | Email Validated | isNull, isNotNull | null |
contact.refused_email_at | Last Refused Email | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
Segment Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
segment | Segment | in, notIn | integer |
Tag Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
tag_associations.tag_id | In Tag | equal, notEqual, in, notIn | integer |
Lead Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
leads.lead_status_id | Lead Status | equal, notEqual, in, notIn | integer |
leads.subject | Lead Subject | like, notLike, equal, notEqual | string |
leads.lead_type_id | Lead Type | equal, notEqual, in, notIn | integer |
leads.estimated_value | Lead Estimated Value | equal, notEqual, in, notIn | integer |
leads.quantity_1 | Lead Quantity 1 | equal, notEqual, in, notIn | integer |
leads.quantity_2 | Lead Quantity 2 | equal, notEqual, in, notIn | integer |
leads.quantity_3 | Lead Quantity 3 | equal, notEqual, in, notIn | integer |
leads.lost_reason_id | Lost Reason | equal, notEqual, in, notIn | integer |
leads.source_id | Lead Source | equal, notEqual | integer |
leads.interest_start_at | Lead Arrival Date | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
leads.interest_end_at | Lead Departure Date | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
SMS Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
sms_messages.content | SMS contains | like, notLike | string |
sms_messages.to_number | SMS To | equal, notEqual | string |
sms_messages.from_number | SMS From | equal, notEqual | string |
sms_messages.from_service_id | SMS Service Id | equal, notEqual | string |
sms_messages.brand_id | SMS Brand | equal, notEqual | integer |
sms_messages.created_at | SMS Created Time | equal, greater, greaterOrEqual, less, lessOrEqual | time |
SMS Opt Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
sms_opt_ins.opt_in_at | SMS Opt In | isNull, isNotNull | integer |
sms_opt_ins.opt_out_at | SMS Opt Out | isNull, isNotNull | integer |
Airbnb Conditions
Field | Label | Operators | Value Type |
---|---|---|---|
airbnb_message_threads.first_name | Airbnb First Name | equal, notEqual, like, notLike | string |
airbnb_message_threads.last_name | Airbnb Last Name | equal, notEqual, like, notLike | string |
airbnb_message_threads.last_sent_at | Last Sent Airbnb message | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
airbnb_message_threads.last_received_at | Last Received Airbnb message | equal, greater, greaterOrEqual, less, lessOrEqual | datetime, datetimeRelative |
airbnb_message_threads.account_id | Airbnb Host Account Id | equal, notEqual | number |
Operators
The following operators are available when building conditions:
Operator | Description | Example |
---|---|---|
Equal | Exact match | First Name equal to "John" |
Not Equal | Does not match | First Name not equal to "John" |
In | Matches any value in a list | Unit Code in ["A101", "B202", "C303"] |
Not In | Doesn't match any value in a list | Unit Code not in ["A101", "B202", "C303"] |
Greater | Greater than | Total Revenue greater than 1000 |
Greater or Equal | Greater than or equal to | Nights greater or equal to 7 |
Less | Less than | Occupants less than 4 |
Less or Equal | Less than or equal to | Children less or equal to 2 |
Like | Contains text | Email Address like "@gmail.com" |
Not Like | Does not contain text | Last Name not like "test" |
Is Null | No value exists | Cancelled At is null |
Is Not Null | Any value exists | Door Code is not null |
Value Types
Conditions accept different value types depending on the field:
Basic Value Types
- String - Text values
- Integer - Whole numbers
- Number - Decimal values
- Boolean - True/False values
- Null - No value
Date/Time Value Types
- Datetime - Specific date and time
- Datetime Relative - Relative time (e.g., "today", "last week")
- Date - Calendar date only
- Time - Time of day only
- Date Range - Span between two dates
Selector Value Types
These are special types that use drop-down menus to select from available options:
- Brand - Company brands
- Segment - Existing segments
- Tag - Available tags
- Connector - PMS connectors
- Lead Status - Available lead statuses
- Lead Source - Available lead sources
- Lead Type - Available lead types
- Lost Reason - Available lost reasons
- Campaign - Available campaigns
- Phone Number - Available SMS numbers
Logic Types
When combining multiple conditions, you can use two types of logic:
AND Logic
- Used when contacts must meet ALL conditions
- Example: "Find contacts arriving after April 1st AND before April 30th"
OR Logic
- Used when contacts can meet ANY of the conditions
- Example: "Find contacts in postal code 12345 OR postal code 67890"
Logic Blocks
- Conditions in the same block are connected with the same logic type
- Different blocks are connected with AND logic
- Organize related conditions in the same block for clarity
Best Practices
- Start with clear objectives: Know what you're trying to accomplish before building conditions
- Use descriptive naming: Create clear, consistent names for your segments and automations
- Test your conditions: Preview your segment to ensure it's targeting the right contacts
- Build progressively: Start with simple conditions and add complexity as needed
- Document your logic: Keep notes on why conditions were created for future reference
- Review regularly: Periodically evaluate if your segments and automations need updating
Understanding these conditions will help you create powerful, targeted segments and automation workflows that drive engagement and conversions across your marketing campaigns.