Campaign Triggers

Campaign triggers determine who enters your campaigns and when. This page describes different kinds of triggers and why you might use them.

How it works

A campaign trigger determines who enters your campaign and when. You can set up filters to narrow your trigger criteria. People need to meet your trigger and filter criteria to enter your campaign. You can also set your exit conditions to make people exit your campaign when they quit matching your trigger and filter criteria, ensuring that your campaign is relevant to your audience.

If you want to let people experience a campaign multiple times, you can set frequency settings, determining how often a person can trigger a campaign.

flowchart LR a{Does a person meet
trigger conditions?}-->|yes|c{Does person meet
filter conditions?} c-->|yes|d[person enters
campaign] a-.->|no|i[person doesn't
enter campaign] c-.->|no|i

What kinds of actions trigger a campaign?

Your campaign trigger determines who (or what) enters your campaign and when. Most triggers are based around people: people enter your campaign when they match certain criteria, and these people are the subject of your campaign—you’ll send them messages, set their attributes, and so on.

  • When a person moves in or out of a segment lets you create a segment or specify existing segmentsA segment is a group of people in your audience that you want to target with campaigns, messages, etc. You can join groups of people manually, or by attribues and event data. that people must be in (or not in) to trigger a campaign. You can set segment criteria based on your audience’s attributes, events, etc. This option is best for things like recurring NPS surveys, onboarding drip campaigns, inactivity reminders, and so on.

  • When a user performs an event helps you respond to a person’s activity in your app or website. They’re helpful for behavioral messages like abandoned cart reminders, responding to page views, etc.

  • When someone submits a form lets you take advantage of form responses to trigger campaigns. You can connect a form to your workspace or have a Facebook Lead Ad integration. Use this type of campaign to send messages to nurture new leads or respond to support requests.

  • A date attribute stored on a profile triggers a campaign on a specific or relative date based on an attributeA key-value pair that you associate with a person—like their name, the date they were created in your workspace, etc. Use attributes to target people and personalize messages. that people in your audience have. This kind of campaign is useful for recurring campaigns like birthdays, anniversaries, and subscription renewals.

Trigger your campaign with a webhook creates a special, webhook-triggered campaign based around data rather than people: the purpose of your campaign is to manipulate this data and associate it with people—like Zapier or Segment, but entirely within a campaign. Webhook campaigns help you perform one-to-many interactions with your audience, like notifying a group of people when you post a job, or a product becomes available that a cohort of your audience is interested in.

Select a campaign trigger
Select a campaign trigger

When a person moves in or out of a segment

We’ll prompt you to choose one or more segments that your audience is in or not in. If you haven’t created a segment yet, you can click Create a new data-driven segment to set conditions for a new segment.

Segments are based on audience criteria—attributesA key-value pair that you associate with a person—like their name, the date they were created in your workspace, etc. Use attributes to target people and personalize messages. your audience has, events they’ve performed, making this one of our more flexible campaign types.

Use the They Meet Conditions option to trigger a campaign
Use the They Meet Conditions option to trigger a campaign

You can set multiple segments using and or or conditions. Using and means that people need to match all the segments before they enter the campaign; Using or means that a person can be a member of any one segment to trigger your campaign.

 You can use JSON dot notation in condition logic

If you store attributes or event data in JSON objects or arrays, you can use JSON dot notation in your branch conditions to evaluate these properties. Use array[] to represent any item in an array or array[0] to represent the first item in the array. See Storing and using JSON for more information about dot notation in Customer.io.

Campaign frequency

By default, people will enter your campaign once. If your campaign does not use a Filter, you can let customers enter your campaign multiple times with the Frequency setting. When you enable Frequency settings, you’ll use one of these options to determine how often a person can re-enter your campaign:

  • Every re-match: people must stop matching the trigger and filter conditions before they can match the campaign conditions and trigger the campaign again.

    For example, if you’d like a customer to get a nudge if they’ve been inactive for two weeks, the trigger condition would be a segment which catches people who have not logged into your app for two weeks. When people enter that segment, they’re sent a message by your campaign. If this campaign is set to re-match, they will have to exit and then re-enter that segment (become active, then become inactive again) in order to trigger the campaign again.

  • At fixed intervals: people will repeat the campaign at a set interval, provided they still match the conditions when the interval elapses.

    A good example of this is a campaign reminding a user to update their payment information in your system to ensure they receive their next subscription box. As soon as a failed payment comes through, you can send them a reminder to update. An interval of seven days means that if they’ve still not updated it seven days later, they’ll enter the campaign again.

     This interval is measured beginning when a person enters the campaign

    Even if your campaign includes a delay, this the interval window begins when a person matches your campaign conditions.

image.png
image.png

Changing frequency

Like other trigger settings, you can change your campaign’s frequency settings while your campaign is running.

  • Re-match to off: After the change, people will only enter the campaign once. Anyone who might have re-entered in the future will no longer do so.

  • Re-match to fixed interval: Only new people who match your settings will restart. This does not apply to people who have already been through the campaign.

  • Fixed interval to off: Any people who are scheduled to re-enter this campaign will not do so, but those who are already in the campaign will continue their journey.

  • Interval to re-match: People who are scheduled to re-start your campaign will not do so. They will need to stop matching the trigger conditions and re-match them to enter again. Those who are already in the campaign will continue their journey.

When a person performs an event

Event-triggered campaigns help you respond to your audience’s behavior in your app or on your website—like encouraging people to complete their purchase when they abandon your cart, or messaging people who visit a product page on your website to let them know when the product goes on sale.

When you use this kind of trigger, you can choose the event that you want to use to trigger your campaign. If you don’t see the event, you can type the event name in the box. If the event occurred recently, click View instances to see recent event examples.

You can narrow your trigger criteria based on properties in your event. If you have a particular event attribute you want to use as a filter—like if you only want to target people who bought a specific product—click Add event data filter and set the event properties you want to match for your trigger.

event-filter.gif
event-filter.gif

 You can use JSON dot notation in condition logic

If you store attributes or event data in JSON objects or arrays, you can use JSON dot notation in your branch conditions to evaluate these properties. Use array[] to represent any item in an array or array[0] to represent the first item in the array. See Storing and using JSON for more information about dot notation in Customer.io.

Event-triggered Frequency

By default, a person enters an event-based campaign every time they perform the trigger event. You can limit the campaign frequency if you don’t want to send your audience a campaign every time they perform your event.

Toggle frequency to limit how many times people can move through campaigns and set your frequency options.

  • Once ever: people will only enter the campaign the first time they perform the event. For example, if you’d like to congratulate someone the first time they complete a lesson in your eLearning app, you can use this setting. This way, you’ll ensure they don’t receive the email again once they’re a seasoned student and flying through lessons regularly.

  • Once within a time period: people will only receive the campaign once within a time period. For example, you want to send an email to someone when they receive notifications in your app. You only want them to receive the email once a day, regardless of how many application notifications they receive. Setting Frequency to “at most once within 24 hours” will ensure that, no matter how many new notifications people get, they will only get an email once.

    image.png
    image.png

When someone fills out a form on your website

You can connect forms—Facebook Lead Ads, Jotform, Typeform, your own custom web forms, etc—to your workspace. You can trigger a campaign when someone fills out your form. This can help you nurture new leads or respond to support requests.

When you select the When someone fills out a form on your website option, you can either connect a new form or select an existing form—if you’ve already added forms to your workspace.

trigger a campaign when people submit a form
trigger a campaign when people submit a form

Form-triggered filters

You can apply segment-based filters to determine additional properties a person should (or should not) have before they receive messages. For example, if your campaign is designed to nurture leads, you might filter out people who’ve already paid for your services.

Form-triggered campaign frequency

Much like event-triggered campaigns, a person enters your campaign every time they fill out your form by default. You can limit the campaign frequency if you don’t want to send your audience a campaign every time they fill out your form.

Toggle frequency to limit how often people move through your campaign.

  • Once ever: people will only enter the campaign the first time they fill out your form.
  • Once within a time period: people can only enter the campaign once within a time period, no matter how many times they fill out your form.

A date stored on a profile

This option lets you triggers a campaign based on a date-time attributeA key-value pair that you associate with a person—like their name, the date they were created in your workspace, etc. Use attributes to target people and personalize messages. that people in your audience have. The attribute must contain a date in either Unix timestamp or ISO 8601 format. If a person doesn’t have this attribute, or the attribute isn’t in the right format, they’ll never trigger the campaign.

You can trigger your campaign using a relative or static date based on this attribute:

  • Relative: Remind your audience to renew their subscription 14 days before their subscription anniversary.
  • Static: Wish your audience a happy birthday on their birthdate.

When you set up a date-triggered campaign, there are four things you need to choose. When you pick your date-time attribute, you’ll see a preview panel that lets you test your choices with people from your workspace.

  1. Determine how frequently people enter your campaign. These values are all based on your date attribute.

    • Only once, on this date: A person triggers the campaign based on the entire date, including month, day, and year. This date must be in the future.
    • Every month: A person can trigger the campaign once per month on the day of the month in their date attribute. The month and year are ignored.

      For example, if the date attribute is June 5th, 1977, the campaign will trigger every month on the 5th. If the current month doesn’t include that day (e.g. there is no September 31st) then Customer.io will send on the last day of the month.

    • Every year: A person triggers the campaign once per year on the month and day in their date attribute. The year is ignored. For example, if the date attribute is June 5th, 1977, the campaign will trigger once per year on June 5th.
  2. Set whether to trigger your campaign on the exact date, or at an offset before or after.

    • on: Trigger the campaign on the recurrence date
    • before: Numbers of days prior to the recurrence date to trigger the campaign
    • after: number of days after the reccurence date to trigger the campaign

  3. Pick your audience’s date-time attribute. Customer.io schedules your campaign based on the date value in this attribute, but we don’t use the time. You’ll pick the time in the next step.

     Attributes updated on the same day as the campaign

    When you set the Person’s attribute value on the same day specified as the trigger, if it is set before the specified trigger time for the campaign, it will fire on that same day since the date in the attribute match the criteria and the trigger time has not passed yet.

    Let’s say today is July 1st, 2020 and you update a Person’s value for the trigger attribute to July 1st. If the time specifed in the trigger condition has already passed, the Person will not trigger this campaign today. For the campaign to be triggered, the attribute value must be set before the specified trigger time for the campaign. For example, if the campaign is supposed to trigger at 1pm on the date, then the campaign will not trigger if the attribute is updated at 2pm on the same date.

  4. Pick the time of day that you want to trigger this campaign. We won’t use the time stored in the date attribute. But, if you store your audience’s timezone as an attribute, you can select the user's time zone to trigger your campaign in your audience’s time zone.

Nested Date Attributes

When picking the date attribute that will trigger your campaign, you can also type in nested date-time attributes, such as appointments.follow_up_date or account_details.renewal_date. Unfortunately, we cannot preview the number of people that will receive a message when you use a nested attribute. Instead, we’ll show you how many people have the parent attribute (i.e. appointments or account_details).

Trigger your campaign from a webhook

Most campaigns are triggered by people, and people are the subjects of the campaign—you set their attributes, send them messages, etc. Webhook-triggered campaigns are different: they’re triggered by data, and data (that may or may not be related to people in your audience) is the subject of the campaign.

In general, you’ll use these campaigns to manipulate incoming data and associate it with people in your audience. For example, if people are interested in a product that’s out of stock, you might use a webhook to notify Customer.io when that item is back in stock. In your campaign, you can send an event to everybody who was interested in the product, triggering a campaign to let these people know that their product is back in stock!

When you set up a campaign and select the Trigger your campaign from a webhook option, you’ll get a webhook URL. You’ll provide this URL to the service that you want to collect data from.

the webhook-triggered campaign trigger exposes a webhook URL
the webhook-triggered campaign trigger exposes a webhook URL

Your campaign runs whenever this URL is called. The data from your external service can take any shape. You’ll manipulate the data and associate it people as a part of your campaign. This lets you perform Zapier-like transformations on your data without having to build an integration.

Right now, you can’t filter or otherwise limit webhook-triggered campaign triggers within Customer.io. You’ll have to make sure that your external service is set up to call your webhook-triggered campaign’s webhook URL with a relatively uniform data set and only when you want it to call the URL.

Because webhook-triggered campaigns aren’t associated with people—at least not directly—they don’t have many of the options that you’ll see in other types of campaigns. They have a much more streamlined workflow: data comes in, you convert it to the format you want, and the campaign ends. You won’t set a Conversion goal, Frequency, etc.

Why can’t I change my campaign trigger?

Your trigger affects other settings throughout your campaign, like the actions available in your workflow, the types of liquidA syntax that supports variables, letting you personalize messages for your audience. For example, if you want to reference a person’s first name, you might use the variable {{customer.first_name}}. variables you can use, and so on.

After you pass the trigger step, we “create” a campaign based on your trigger type with all the related settings, liquid scopes, and campaign actions. We don’t allow you to change your trigger type after this point, because it would almost certainly break subsequent settings and workflow actions in your campaign—many of which are specific to the trigger.

If you want to change triggers, you’ll need to create a new campaign. If you’ve already filled out a campaign workflow, you can copy workflow items to your new campaign!

Copied to clipboard!
Is this page helpful?