Creating a contact list
A contact list is a group of contacts you can send a campaign to, give vouchers or points, or leave out of an earn rule. There are three kinds: two are built from filters, and one holds exactly the contacts you put in it.
You can also use a filter list just to count: build the filters, see how many contacts match, and never send anything.
Dynamic, static or manual
The three kinds differ in one thing: what decides who's on the list, and when.
- A dynamic list follows a rule. Its filters keep being checked, so contacts join and leave as their data changes, and the list always shows who matches right now. Choose it whenever the group is defined by data, like everyone with more than 500 points. See When a dynamic list updates below for exactly when that happens.
- A static list is a moment in time. Its filters are applied once, when you click Close list, and the contacts who matched that day are the list from then on. Even when the same filters would select different people today, the list stays the same. That's what makes it useful: a fixed group you can look back on or reach later, like everyone who was in your top tier on 1 January. Until you close it, it has no members. Once it's closed it can't be reopened, so for a different selection you create a new list.
- A manual list has no filters. You add and remove contacts yourself, and it never changes on its own. Use it when the group is a set of people rather than a rule: your test addresses, a VIP group, the guests of one event.
So a static list and a manual list both stay put, for different reasons: a static list keeps the result its filters gave on one day, a manual list keeps whoever you put in it. A dynamic list moves with your contacts.
When a dynamic list updates
An active dynamic list is kept up to date in two ways: straight after something happens to a contact, and once every night.
Straight after a change
When something happens to a contact, we check that contact against every active dynamic list whose filters the change could affect, and add or remove them. You don't have to wait for the night. This happens when:
- a contact is created, or their details or custom attributes change
- a contact receives points or claims a reward
- a contact makes a prepaid transaction
- a contact reaches or drops a tier
- a contact's status changes
- a contact subscribes or unsubscribes
- an order is placed, updated or returned
- a booking or a visit is created or changed
- a voucher is redeemed, or a redemption is reversed
- a contact moves to another segment
- a contact submits a form, or a submission is approved or rejected
- a contact gets a wallet pass, or loses one
- a contact receives, opens or clicks an email the list filters on
The check runs in the background, so it can take a moment before the contact shows up in the list or disappears from it.
Two kinds of change arrive all at once rather than contact by contact, so the lists they affect are rebuilt in one go:
- Received on a campaign or recurring email. A send reaches its whole audience within minutes. The lists that filter on it are rebuilt about 30 minutes after the send has finished.
- Segment memberships. When your segments are recalculated at night, the lists that filter on Segment memberships are rebuilt straight after.
Every night
Between 00:00 and 02:00 in your account's timezone, every active dynamic list is rebuilt in full. That rebuild catches the changes nothing announces:
- Time passing. A date filter such as Is more than X days ago or Is this month, or a filter on age, can start or stop matching a contact without them doing anything. They join or leave the list at the next nightly rebuild, so up to a day later.
- Changes to another list. A filter on List memberships doesn't react the moment you add a contact to that other list or remove them from it. The next nightly rebuild picks it up.
So the longest a change can take to reach a dynamic list is until the next nightly rebuild. If you need the list up to date right now, click Synchronize to rebuild it immediately.
Anywhere else a filter checks who's on a list, such as Contact lists in an automation's If/Then branch or in a reward's visibility filters, it reads the list's members at that moment. It doesn't rebuild the list first.
Because the lists are rebuilt in that window, a recurring email, voucher issuance or points issuance whose audience comes from contact lists can't be scheduled between 00:00 and 02:00.
Creating a list with filters
- Go to CRM → Lists and click Add list.
- Give the list a name and choose Static or Dynamic under List type.
- Click Submit. You land on the list's page, with Active filters on the right of the Members tab.
- Click + Filter group. Under Filter type, choose what the filter is about, then what to filter on. A panel opens on the right where you set the conditions a contact has to meet. Every option is listed under What you can filter on below.
- Click Save filter in that panel. This saves the filter itself. The button only appears once every condition has a value.
- Close the panel with Close. Your filter now shows under Active filters.
- Build the list:
- On a dynamic list, click Activate.
- On a static list, click Close list. There's no separate save button for a static list: Close list is the step that fills it. A dialog shows the Expected number of members; click Start to build the list.
Building a list can take a while on a big database, up to an hour. You can't change the filters while it runs.
A dynamic list can be deactivated, changed and activated again at any time, so it's worth experimenting with different filters to get a feel for your database. A static list can't: once it's closed, it's final.
How filters and filter groups combine, and which operators each kind of attribute offers, is in Combining filters with And and Or, and choosing the right operator.
What you can filter on
Every filter starts with its Filter type:
- Contact looks at what's stored on the contact.
- Order, Booking, Visit, Voucher redemption, Form submission and Wallet Pass look at the contact's records. All the conditions in one of these filters have to hold for one and the same record: an order over 50 at your Amsterdam store, not a big order somewhere else and a small one in Amsterdam.
- Marketing looks at one campaign, automated email, recurring email or subscription that you pick.
Contact
- Select an attribute: any built-in or custom attribute, including Present in imports, List memberships and Segment memberships. Segment memberships offers the segments of your active segment schemes, shown as “scheme: segment”, so you can build a list of everyone who's currently “At Risk”.
- Select contacts: specific contacts you search for and pick.
- Relations: contacts in one of your Contact lists, or with an Associated business profile.
- Contact type: only there when you have more than 1 contact type.
Order
- Number of orders: how many orders match the rest of the filter. On its own, Number of orders equal to 0 finds contacts who never placed an order, and a new contact joins such a list straight after it's created. Together with a Location, it finds contacts who never ordered there.
- The order itself: Location, Total order amount, Applied items, Created at, the subtotal and discount, payment and order status, channel and reference.
- Under Related: Product, Voucher and Reward, for what was in the order and which voucher or reward was used on it. The conditions you add under one of these have to hold for one and the same product line or voucher.
Booking
Number of bookings, Location, Booking status, Starts at, Ends at, Checked in, Checked in at, Number of people, Prepaid amount, company name, source and Created at.
Booking dates can also look ahead. Starts at with Is exactly x days from now set to 2 gives you a list for a reminder 2 days before the visit.
Visit
Number of visits, Location, source, Starts at, Ends at and Created at. Number of visits of at least 5, with Location set to one store, finds contacts who visited that store 5 times or more.
Voucher redemption
Number of redemptions, Promotion, Location and Redeemed on. This counts every redemption, including a voucher scanned at the till without an order. Reversed redemptions don't count.
To filter on a voucher that was used on an order, use Order, then Related and Voucher instead.
Form submission
Number of submissions, Form, Status, Source and Submitted at. Form set to your sign-up form finds everyone who filled it in. Together with Number of submissions equal to 0, it finds the contacts who never did, and a new contact joins such a list straight after it's created.
Without a Status condition every submission counts, also the ones Waiting for approval and the Rejected ones. Add Status set to Complete to count only the submissions that went through. Submissions from before forms kept a status count as Complete.
Source offers the sources your submissions came in with. A submission has one when the form link it came through has a Source, which you add when you share the form.
Wallet Pass
Number of wallet passes, Type, Wallet Pass, Platform and Issued at. Type set to Loyalty card finds everyone who has your loyalty pass, the wallet pass with their identifier on it. The other types are Giftcard, Voucher and Stamp card. Wallet Pass picks one of your pass designs, such as the pass of one gift card program, and Platform is Apple Wallet or Google Wallet.
A contact has a pass from the moment they ask for it, by tapping an Apple Wallet or Google Wallet button, also before they've added it to their phone. A pass in Apple Wallet and the same pass in Google Wallet are 2 passes, so Number of wallet passes counts both.
Removing a pass from a phone doesn't always take it off the count. An Apple Wallet pass only drops off once Apple turns away an update for the last iPhone it was on, and Google Wallet never tells us a pass was removed. So read this filter as contacts who asked for the pass, not contacts who have it on their phone right now.
Marketing
Choose Subscription, Campaign, Automated email or Recurring email, then what to filter on. In the panel, you pick which one the filter is about.
- Campaign, Automated email and Recurring email offer Received, Opened and Clicked, each Is true or Is false, and Received at, Opened at and Clicked at for when it happened. Received means the email was delivered. Opened at and Clicked at are the latest open or click. A recurring email filter covers every time it was sent.
- You can pick a campaign that's scheduled or sent. A campaign that's still sending shows up once it's done, and a list on a scheduled campaign fills once it has gone out.
- Subscription offers Status: Confirmation pending, Subscribed or Unsubscribed, for the subscription you pick.
What you can't filter on
The answers in a form submission. A Form submission filter knows which form a contact filled in, not what they filled in. To filter on an answer, add a contact attribute to the form so the answer is saved on the contact, and filter on that attribute with a Contact filter.
Manual lists
Creating one
- Go to CRM → Lists and click Add list.
- Give the list a name and choose Manual under List type.
- Click Submit.
A manual list is active straight away. There's nothing to activate or close, and it starts empty.
Adding contacts
There are three ways in:
- From the list. Open the list and click Add contacts above its members. Search for contacts by email, select as many as you need and click Add contacts.
- From the contact. Open the contact, click the options button next to Assign points and choose Add to list. Pick the manual list and click Add to list. You can also do this on the contact's Lists page, with the Add to list button at the top right. Add to list only shows once your account has at least one manual list, and it only offers lists the contact isn't in yet.
- From an automation. Add the Add to list action to an automation and choose the manual list. Every contact who reaches that step is added.
Adding a contact who is already in the list does nothing.
Removing contacts
- From the list. Click the cross at the end of the contact's row on the Members tab.
- From the contact. On the contact's Lists page, click the cross next to the manual list.
Removing a contact from a list doesn't change anything else about them.
Letting the AI assistant build a list
The AI assistant can build a list from a description. Tell it who you mean, for example “everyone who ordered at least 3 times this year” or “put everyone with zero transactions in a new manual list”. The assistant works out the filters and shows you what it would build, and for a dynamic or manual list how many contacts match. It only creates the list once you say yes. It can also add a described group to a manual list you already have.
A dynamic list the assistant creates starts inactive, like one you create yourself. Ask the assistant to activate it, or click Activate.
For a manual list, the assistant adds the contacts that match at that moment, once. Contacts who match later aren't added, which is the difference with a dynamic list. A big group is added in the background: the list shows how far along it is, in the chat and on the list itself.
What a list keeps track of
Every list has an Activities tab. It shows who created, changed, activated, deactivated, closed or synchronized the list, who added, changed or removed a filter, and on a manual list who added or removed contacts and how many.
When two contacts are merged, the contact you keep stays in or joins the manual lists the other one was in.
The buttons on a list's page
The buttons at the top right depend on the list type and where the list is at.
Static list
- Close list: shown while the list is still open. Builds the list from its filters, once, and locks it.
- List is closed: a greyed-out button shown after closing. Nothing more can be changed. To get a different selection, create a new list.
- Options: holds Delete.
Dynamic list
- Activate: shown while the list is inactive. Builds the list and keeps it up to date from then on.
- Synchronize: shown while the list is active. Rebuilds the whole list right away instead of waiting for the nightly rebuild.
- Deactivate: shown while the list is active. Stops the updates so you can change the filters.
- While a list is being built, a greyed-out button shows how far along it is as a percentage.
- Options: holds Test (check whether one contact passes the filters), Run automation and Delete.
Manual list
- Add contacts: above the members, opens the search to add contacts.
- Options: holds Delete.
In the filter panel
- Save filter: saves a new filter. Only shown once every condition has a value.
- Update filter: saves your changes to a filter that already exists. Only shown once you've changed something.
- Close: closes the panel. Anything you didn't save is lost.
- Delete: removes a saved filter.
You can only add or change filters on a dynamic list that's inactive, or a static list that's still open. A manual list has no filters.
Adding specific contacts to a filter list
If you want a list of hand-picked contacts, make it a manual list. When you need a few particular contacts on top of what a dynamic or static list's filters select, add a filter that picks them out. You don't need to change any of the contact's attributes, and you don't need to touch the filters that are already on the list.
- Go to CRM → Lists and open the list.
- If it's an active dynamic list, click Deactivate first.
- Under Active filters, click + Filter group.
- Under Contact, choose Select contacts.
- Leave the operator on Any of the values, then search for the contact by name or email and select them. You can select more than 1 contact here.
- Click Save filter, then Close.
- On a dynamic list, click Activate. On a static list, click Close list and then Start. The list is built and the contacts are on it.
Filter groups are joined with Or: a contact is on the list when they match any one group. So the contacts your existing filters select stay on the list, and the contacts you picked join them.
To add another contact to a dynamic list later, deactivate it, open the same Select contacts filter, add them, click Update filter and activate again. To take a hand-picked contact off, remove them from that filter the same way.
On a static list, pick every contact before you click Close list. A closed static list can't be changed, so if you missed someone, create a new list.
A list of contacts you imported from a file
If you have a spreadsheet of contacts you want to mail, import them first, then build a list around that import:
- Import the contacts under Data → Imports.
- Create a dynamic list as above.
- In the filter group, use the contact attribute Present in imports and choose your import.
That gives you a list containing exactly the contacts from that file. If you later need to add someone who wasn't in the file, add them with a Select contacts filter group as described above, rather than importing them again.
A list of contacts who filled in a form
- Go to CRM → Lists, click Add list and create a Dynamic list.
- Click + Filter group, choose Form submission, then Form.
- In the panel, pick the form. To leave out submissions that are waiting for approval or were rejected, click Add condition, choose Status and set it to Complete.
- Click Save filter, then Close, and click Activate.
The list holds everyone who already filled in the form, and new contacts join it straight after they submit it, or after their submission is approved.
A list of contacts who have your wallet pass
- Go to CRM → Lists, click Add list and create a Dynamic list.
- Click + Filter group, choose Wallet Pass, then Type.
- In the panel, set Type to Loyalty card. To narrow it to one wallet, click Add condition, choose Platform and pick Apple Wallet or Google Wallet.
- Click Save filter, then Close, and click Activate.
The list holds everyone who already asked for your loyalty pass, and new contacts join it straight after they do. For everyone with any of your passes, choose Number of wallet passes instead of Type and set it to Is greater than or equal 1.
For the contacts who don't have the loyalty pass yet, keep Type set to Loyalty card, click Add condition, choose Number of wallet passes and set it to is equal to 0. Leave Match on All. New contacts join this list straight after they're created, and leave it once they ask for the pass.
A list of contacts who didn't open a campaign
Filter on the campaign itself with a Marketing filter:
- Go to CRM → Lists, click Add list and create a Dynamic list.
- Click + Filter group, choose Marketing, then Campaign, then Received.
- In the panel, pick the campaign under Select a campaign, and set Received to Is true.
- Click Add condition, choose Opened and set it to Is false. Leave Match on All.
- Click Save filter, then Close, and click Activate.
Keep the Received condition. Opened is false on its own also matches every contact the campaign was never sent to.
The list fills about 30 minutes after the campaign has finished sending, and contacts leave it as soon as they open the email. For contacts who opened but didn't click, use Opened is true and Clicked is false. The same works for an automated email or a recurring email.
This list is never exact, because inboxes don't always report an open. Contacts who read the email without loading its images count as not opened, so they get your email a second time. Contacts who use Apple Mail usually count as opened even when they didn't read it, so they're left out. To at least leave out everyone who clicked a link, click Add condition once more, choose Clicked and set it to Is false. Why opens are off is explained under How reliable opens are in Email campaign statistics.
Using a list
Once a dynamic list is active, a static list is closed, or a manual list has contacts in it, you can select it when sending an email campaign, setting up a recurring email, or issuing vouchers or points to a group.