Custom Fields Tutorial: Segmentation

Segmentation uses custom fields to extract subsets of subscribers from a single list. Applications for segmentation include:

  • A/B testing: Sending a different message to different groups to test response rates;
  • Special offers: Send a message to subscribers who have (or have not) bought a product or service;
  • Registration updates: Send a message to subscribers who have not completed your registration form;
  • Geographical targeting and event marketing: target subscribers in specific regions.
  • Seed lists: Sending messages to a select few subscribers prior to a full blast.

Are custom fields required for segmentation?

Actually, no…. the email address of your subscribers is a custom field! So you can use segmentation even if you don’t have special custom fields defined (so you can do some basic A/B testing and build seed lists this way). But you’ll get the most out of segmentation when you set up and use custom fields.

Where can I apply segmentation?

On manual “on demand” sends and “Newsflash” email blasts. You can’t use segmentation on scheduled automated updates. If you want to filter content from an RSS feed for specific subscribers, use tag filtering instead.

How do I use segmentation?

On the main Newsflash and On Demand pages you’ll see a segment option at the foot of the page; the default select is “All Subscribers.” If you have any segments saved (I’ll get to that shortly) you can pick a prepared segment and use that straight away. Or you can click the edit icon and make a new one.

What defines a subscriber segment?

You use a (relatively) simple approach to define a segment – it’s a just formula, if you like, or a line of very simple programming. When you use a segment, the custom fields for each subscriber in the list are grabbed from the database and inserted into the segmentation equation. If the fields match (more technically, if the segment expression evaluates to being true), then the subscriber is included in the mailing. Otherwise they’re skipped.

What are the rules for segment expressions?

Just like in math, text within parentheses is evaluated first. When making comparisons, literals should be enclosed within quotes. Text comparisons are not case sensitive, so the expressions FirstName="PHIL" and FirstName="Phil" and FirstName="phil" and FirstName="pHiL" are all the same. As you can probably guess, the way to refer to a custom field is simply to use its name without any quotes. In other words, a custom field is a variable that FeedBlitz assigns a value for each subscriber in your list.

When you test your custom fields, however, what you must be sure you’re doing is testing against the Database Value for the field. For simple text fields the value is whatever the user typed in, but for predefined choice fields the values might be be “M” and “F” for a gender selection, not “Male” and “Female”.

Simple segment examples

Seed Lists

Say you have three email addresses,, and that you want to be the seed (or test) list for your newsletter. Here’s the segment code:

email="" or email="" or email=""

Easy, right? Right.

Now, if you’re a C, C++ or JavaScript programmer, you probably want to write this instead:

email=="" || email=="" || email==""

Guess what – that works too!

And if you’re a database developer, guess what? This works as well:

email IN ("","","")

Now, naming individual email addresses like this is a drag if your seed list is more than a few addresses long. What you can do instead is define a hidden custom field called (say) SeedList and then set the value in the database for your seeds to be “1” The seed list expression then becomes very simple:


(or use whatever equivalent syntax you like). You can then manage your seed list by simply changing the value of the variable in the FeedBlitz database (how? On the subscriber pages, set “show custom fields on” and then click the relevant edit button).

A/B Testing

You can do some (very) simple A/B testing using two segments, like this:




Getting more sophisticated

Sending mail to people who have not registered

Let’s say you had a list in FeedBlitz, and then you added some custom fields. You want to personalize the newsletter, so you made the FirstName field required. For the purposes of this example let’s further assume that there is no default value.

In this case, anyone with a blank FirstName has not filled out the form (because the field is required, remember). So you can send mail to people who have not completed the form using this segment:


So you can now send then the link to the registration form. Similarly, you can send a thank you note or a special offer to folks who have completed the form using either of these expressions:




Complex Expressions

You can combine multiple expressions using logical operators. The following logical operators are available:

  • Logical AND: and, &&
  • Logical OR: or, ||
  • Equality: =, ==
  • Inequality: !=, <>
  • Other comparators: <, >, <=, >=

You can also do math in a segment expression, using the – ,+ , / (divide), * (multiply) and % (modulus) operators. You can also negate a value by preceding it with the – sign. If the field’s value is empty or not a number it is treated as being a zero when used in an arithmetic context.

So you can send a newsflash to all premium customers in Texas or Oklahoma like this:

(state=="TX" or state=="OK") and CustomerType="premium"

Multiple Choice Fields

One complexity is that FeedBlitz allows some fields (multiple choice lists and checkbox fields) to have multiple values. A customer may have bought multiple products from your list, for example, or they may play multiple sports.

So let’s say you ask them what sports they play and they can choose from soccer, baseball, basketball, tennis, rugby or other; you allow them to pick multiple values using checkboxes because many people play multiple sports. How, then, does this work when testing for a match as in:


when you want to select everyone who plays soccer?

Actually, it’s pretty simple. If any of the choices match then the expression is true and the subscriber selected. So if someone has picked soccer AND tennis, then they’re in.

So what about this?


The expression is true if we consider the subscriber’s tennis preference, but false if we consider that they also chose soccer. And that’s what FeedBlitz will decide: false. If any of the values matches then an equality is true and, conversely, an inequality is false. That’s logically consistent, in that if you combine sports=="soccer" and its opposite, sports!="soccer" then you get all the subscribers exactly once.

Previewing Segments

You can look at the subscribers a segment picks by clicking the “Preview Selected Subscribers…” button. Be patient if you do this – may subscribers will have to be loaded and then the expressions must be evaluated – it can take a while. Talking of which, when you ship a mail using a segment expression it’s probably going to take about as long to run as a full mailing without a segment, even if only a very small number of subscribers match your criteria. This is because every subscriber has to be loaded up and tested no matter what, and unless your list is large, the amount of time interacting with the FeedBlitz database to work through your whole list is going to be greater than the time spent actually mailing the recipients.

Saving segments

If you think you’re going to reuse a segment, you can save it for use later against the same list. To edit a saved segment, load it up, change the expression and then save it using the same name; your changes will overwrite the prior version. Quite the time saver when you have the segmentation working the way you want.

And so to personalization…

Next we’re going to look at personalization – customizing the updates you send a subscriber based on what you know about them. I’ll run from the basics through to conditional expressions to control both content and layout. A quick heads up though; you can only personalize newsletters using a custom template. So if you haven’t customized your emails yet, head on over to the Newsletter Center and the Graphic Design section (look for the icon on the left) to get the basics in place first.