Segments allow you to create audiences for emails, create reports to export or email out regularly, and investigate existing data in your account. 

ROI has the ability to import data from multiple systems and flat files, merge the data into tables, and apply custom business rules in the segment builder to create targeted segments based on existing data. Segments exist in real time based on form submissions into ROI, email activities such as email opens and clicks, website activities, social activities and data imports. If the data meets the segment criteria is will be returned in the query. 

The segment builder can be broken down into 7 sections:

  • Tables
  • Joins
  • Column order and aliases
  • Segment criteria
  • Sort order
  • Inclusions / Exclusions 
  • Update Count / Preview Results


Data imports into tables and therefore segments pull data from tables. When creating a segment the tables must be identified in Step 1 of the segment builder.  The table(s) chosen in the segment should be determined by the data fields you are trying to pull in your segment. The Contacts table is added to each segment by default, but you can add and remove tables depending on the data you are trying to pull. The system will automatically join system generated tables, but you must select the join for custom tables. You can edit the join table at any time. You can also specify custom "join" criteria between tables if needed. 

If you would like to include Company data in the segment, for example, then you must click Add Table and select the Company table.

Check the fields you would like included in the segment preview. By default, Email, First Name, Last Name and ID (ROI Contact ID) are checked in the Contacts table, but you can add or remove checks based on your preference. Check Column if you would like all fields checked at once.  Uncheck Column if you would like all checks removed.


When an additional table is chosen make sure the joins are correct. You must pick a unique identifier (also referred to as a "Unique ID") that lives on both tables when joining. When trying to understand joins, visualize two circles joined together. The join is where the circle intersects, which is why the data field the tables are joined on must have matching data. Unique IDs are the recommended and most reliable join fields, but email and many other fields are often utilized. Use the most unique field possible that both tables have in common. 

For Example, to join the Contacts table and the Companies table I assume there would be a Company ID on each. Utilizing the Join will pull any contact with a company according to segment criteria. Utilizing the Left Outer Join will pull any contact according to the segment criteria whether or not they have a company. Learn more about joins

Column order and aliases:

Utilize the Column Order and Aliases button to reorder columns and update naming convention. 

Be careful when aliasing columns...
1. Do not alias Contacts.ID if you are using the Segment in a Tactic for an Email Send or an Email ROI Segment.

2. Do not alias Contacts.Email if you are using the Segment in a Tactic for an Email Send.

In the below example the column order and aliases have been updated. 

Segment Criteria: 

When determining segment criteria think about the available data in the fields that exist on the table(s) you chose in Step 1.  

Table: Choose the table you would like to segment off of based on the tables available in Step 1. 

Column: Select the desired data field from the table. 

Operator: Select the appropriate operator. Learn more about segment operators


  • Equal To (=) 
  • Greater Than (>)
  • Less Than (<)
  • Not Equal To (!=) 
  • In
  • Not In
  • Contains
  • Doesn't Contain
  • Starts With
  • Ends With
  • Includes


Criteria is where you slice and dice data so that the query pulls targeted information based on the data available in your tables. In the example below only contacts with a city equal to San Diego are pulled in the the segment.

In the below segment the CompanyByStage table and Contacts table exist in Step 1. The criteria indicates that the contacts pulled must have a Stage Name equal to Initiate, an ROIEmailOptIn equal to true and the Email must not be blank.

Complex Criteria:

Keep in mind, there are many ways to write a segment and achieve the same results. If the And/OR  operators do not allow you to achieve the desired results you should utilize complex criteria. The example below uses the following complex criteria: (1 AND 2 AND 3) OR (1 AND 2 AND 4) OR (1 AND 2 AND 5)

(1 AND 2 AND 3) 

StageName contains "Customer", ClientSuccessType is not equal to "WBU AP" and the LeadStatus contains "Active"


(1 AND 2 AND 4) 

StageName contains "Customer", ClientSuccessType is not equal to "WBU AP" and the ROIUserType contains "Influencer"


(1 AND 2 AND 5)

StageName contains "Customer", ClientSuccessType is not equal to "WBU AP" and the ROIUserType contains "Technical Resource"

Show Distinct Values:

The Show Distinct Data Values check box provides insight into the unique values in a column such as city, industry, title, etc. Every contact that enters ROI receives a unique ROI ID, so the distinct feature isn't all that useful for insight into unique IDs, but it is very useful to better understand the unique cities in your account or the unique zip codes.  

In the example below the only value checked in the Contacts table is City because I only want to see the distinct cities, not the distinct cities associated to an email because every email should be distinct. The Show Distinct Values box is checked and the segment previews only with the unique cities that exist in the account. There are 761 unique cities in this account. 

Sort order:

You have the option to assign an ascending or descending sort order when previewing data available in your table(s). This feature is especially useful when creating reports to email or export. In the example below the last name of all contacts is sorted in descending order. 

Inclusions / Exclusions: 

Combine segments using the Inclusion feature and suppress contacts using the Exclusion feature. If you would like to merge additional segment already created in your current segment, click Add Inclusion and search the segment title. If you would like to make sure contacts are suppressed that exist in a separate segment then click Add Exclusion and search the title. 

Keep in mind that you can only nest one level deep, which means the inclusion or exclusion segments (considered "children" at ROI) associated with a parent segment can't include inclusion and exclusion segments ( considered "grandchildren" at ROI). Only the parent segment can include inclusions and exclusions. ROI won't allow you to choose segments with children as an inclusion or exclusion segment because that would be considered three levels deep (parent, children and grandchildren). ROI only nests one level deep (parents with children Segments --- not grandparents with children and grandchildren Segments).

When using inclusion and exclusion segments, the Contacts.ID Field must be checked on parent and children segments, and the field can not be aliased (Column order and aliases button in segment builder) as ROI uses Contacts.ID to match Contacts between parent and children segments.

Update Count / Preview Results:

As updates are made to your segment you will notice the count will likely change. Segments exist in real time based on form submissions into ROI, email activities such as email opens and clicks, website activities, social activities and data imports. If the data meets the segment criteria is will be returned in the query.

Don't forget to give your segment a unique name, description and select a folder if applicable in Step 5. 


After your segment is saved for the first time you can reenter and Export the data in a .csv to your email inbox.

Contact with additional questions.