Skip to main content

Profile Data in Marketing Automation Nodes

This article explains four types of profile data you can use in your flows

Updated over a week ago

Profile data is the foundation of every personalised Marketing Automation flow. It determines who enters a flow, which path they follow, and what content they receive. This article explains the four types of profile data you can use in your flows — Attributes, TAGs, Events, and Segments — and shows you step-by-step how to configure each one.

Overview: Profile data types and where they're used

When you configure a Listen node, Check Profile node, or Wait for Event node, you choose what type of profile data the node should evaluate. Here's a quick comparison of the four types and when to use each.

Data type

What it is

Best for

Available in these nodes

Attributes

Static or slowly changing profile properties — e.g. first name, email, date of birth, country, shoe size

Scheduled triggers (birthday, renewal date), personalised branching (by country, language, membership status)

Listen, Check Profile, Wait for Event, Update Profile

TAGs

Labels applied to profiles — e.g. "VIP", "Lead", "Churned"

Scheduled triggers based on tags, branching based on profile classification, applying/removing tags within the flow

Listen, Check Profile, Update Profile

Events

Actions a profile performs — e.g. page view, form submission, email open, purchase

Real-time triggers (profile visits a page, submits a form), behaviour-based branching

Listen, Check Profile, Wait for Event

Segments

Dynamic groups of profiles defined by rules in the Segment Builder

Narrowing who can enter a flow, branching by complex multi-attribute criteria

Listen, Check Profile

💡 Tip — Which nodes use profile data? Three nodes are your primary tools for working with profile data: the Listen node (who enters the flow), the Check Profile node (who goes down which branch), and the Wait for Event node (hold until the profile does something). The Update Profile node can also write data back — adding tags or changing attribute values.


Use Attributes in a flow

Attributes are profile properties stored in your data model — things like name, email address, date of birth, country, or any custom attribute you've created. You can use attributes to trigger flows on a schedule (e.g. on a profile's birthday) or to create personalised branching (e.g. different paths for different countries).

The configuration options depend on the attribute type. Here's how each one works:

Date Attribute

Date attributes let you trigger a flow based on a specific date stored on the profile — perfect for birthday flows, renewal reminders, or anniversary campaigns.

Step-by-step: Set up a birthday flow trigger

  1. Open the Listen node and select Attributes.

  2. Choose the Date of birth attribute (or your equivalent date attribute) from the dropdown.

  3. Choose the timing. Date attributes offer three timing options. See table overview below.

  4. For birthday flows, choose whether profiles should enter every year or only on milestone birthdays (e.g. 30th, 40th, 50th). Set the schedule — choose daily, weekly, or monthly evaluation — and set the time of day the flow should start.

Option

What it does

Example

On the date

Triggers the flow on the exact date stored in the attribute

"On birthday" — profiles enter on their birthday

Before the date

Triggers a set number of days/weeks/months before the date

Send a renewal reminder 30 days before a contract expiry date

After the date

Triggers a set number of days/weeks/months after the date

Follow up 7 days after a profile's sign-up date

💡 Good to know: Date-based triggers are evaluated on a schedule (daily/weekly/monthly), not in real time. This means a profile won't enter the flow the instant their birthday attribute is updated — they'll enter at the scheduled evaluation time on their birthday.

Text Attribute

Text attributes include things like first name, email address, country, company name, or any custom text field. Use them to filter or branch flows based on specific values.

Step-by-step: Branch a flow by country

  1. Add a Check Profile node to your flow and select Attributes.

  2. Choose the text attribute from the dropdown — e.g. Country.

  3. Select a match type and enter the value to match.

Match types for text attributes:

Match type

What it checks

Example

Equals

Exact match

First name equals "Johanna" (case sensitive)

Not equals

Does not match

Country not equals "Sweden" — routes non-Swedish profiles down a different branch (case sensitive)

Contains

Value includes the text

Email contains "@companyname.com" — identifies corporate email addresses (case sensitive)

Starts with

Value begins with the text

Phone number starts with "+46" — identifies Swedish numbers

Ends with

Value ends with the text

Email ends with ".se" — identifies Swedish email domains (case sensitive)

Regex

Matches a regular expression pattern

Advanced pattern matching — e.g. validating a format. Requires technical knowledge; consult your development team if needed.

Number Attribute

Number attributes include things like age, order count, loyalty points, shoe size, or any custom number field. Use them for value-based comparisons.

Match types for number attributes:

Match type

What it checks

Example

Equals

Exact match

Order count equals 10 — trigger a loyalty milestone

Not equals

Does not match

Loyalty tier not equals 0 — filter out non-members

Less than

Value is lower than

Score less than 50 — route low-scoring leads to a nurture path

Less than or equal to

Value is lower than or exactly

Age less than or equal to 25 — target younger demographics

Greater than

Value is higher than

Purchase value greater than 500 — trigger a VIP follow-up

Greater than or equal to

Value is higher than or exactly

Points greater than or equal to 1000 — qualify for a reward email

💡 Tip: Number with decimal attributes work exactly the same way — useful for currencies, weights, or precise measurements.

True/False Attribute

True/False (boolean) attributes are simple on/off flags — e.g. "Is member", "Has completed onboarding", "Opted in to loyalty programme".

Configuration is straightforward: choose True or False, and only profiles matching that value will qualify.

Use case: Member vs. non-member welcome flow

After the Listen node, add a Check Profile node checking "Is member" = True/False. Members receive a personalised welcome with loyalty benefits; non-members receive an invitation to join.


Use Tags in a flow

TAGs are labels you apply to profiles — like "VIP", "Churned", "Newsletter subscriber", or "Event attendee". Unlike attributes, TAGs don't have a value — a profile either has the TAG or doesn't. TAGs are useful for classification-based logic in your flows. You can use TAGs in two ways:

  • Listen or Check Profile: Evaluate whether a profile has (or doesn't have) specific TAGs.

  • Update Profile: Apply or remove TAGs as profiles move through the flow.

💡 Tip: You can always create segments with TAGs to fine tune further and combine include and exclude for exact targeting.

Step-by-step: Trigger a flow based on a TAG

  1. Open the Listen node (or Check Profile node) and select TAGs.

  2. Choose whether you're looking for profiles that are tagged or are not tagged.

  3. If selecting multiple TAGs, decide whether profiles must match All TAGs (AND logic) or Any TAG (OR logic).

  4. Select one or more TAGs from the dropdown, or create a new tag directly.

  5. If using tags in a Listen node, set the schedule (daily, weekly, or monthly) and the time of day for evaluation.

Option

Logic

Example

All

Profile must have every selected TAG

Profile must be tagged both "VIP" AND "Newsletter subscriber"

Any

Profile must have at least one selected TAG

Profile must be tagged "VIP" OR "Newsletter subscriber"

💡 Good to know: TAG-based Listen node triggers are evaluated on a schedule — just like attribute-based triggers. The platform checks which profiles match the TAG criteria at the scheduled time and enters them into the flow.

Use case: Automated VIP recognition

Listen for profiles tagged "VIP" (daily schedule). When they enter, send a personalised VIP welcome email and use an Update Profile node to apply a "VIP welcomed" TAG — preventing duplicate sends on the next evaluation by adding a Check Profile node that verifies the profile is not tagged "VIP welcomed".


Use Events in a flow

Events are actions a profile performs — visiting a page, submitting a form, clicking a link, making a purchase, or any custom event you send via the API (or Zapier). Unlike attributes and tags, events are real-time: the flow triggers the moment the event is collected.

Events are available in the Listen node, Check Profile node, and Wait for Event node.

💡 Tip: Looking to use custom events sent from your website, app, or CRM? See Use Custom Events in Marketing Automation for the full setup guide. For a complete list of available events and their data fields, see About Events.

Step-by-step: Trigger a flow when a profile visits a specific page

  1. Open the Listen node and select Events.

  2. Navigate the event categories. For website behaviour, choose Website InteractionsAuto collect (these are events automatically collected by the Apsis One tracking script on your site).

  3. Select the event type — e.g. Page view.

  4. Expand the Activity dropdown and select an activity from the list.

  5. Use Match to narrow the trigger to a specific data point from the event. For a page view, you might match on URL to target a specific page.

  6. Select the Match type to define how the value should be compared (e.g. "equals", "contains").

  7. Enter the value to match — e.g. the URL of your pricing page.

Event match with frequency and time frame

You can add extra precision to event-based conditions by specifying how many times the event must have occurred and within what time frame.

Under the event configuration, set the number of times the profile must have performed the event (e.g. "at least 3 times"). Tick Within a time frame and set the period — e.g. "within the last 7 days".

💡 Good to know: The frequency and time frame options are especially powerful in a Check Profile node. For example, you can branch your flow to check whether a profile has opened at least one email in the past 30 days — routing engaged and disengaged profiles down different paths.

Common event categories at a glance

Category

Examples

Typical use

Website Interactions → Auto collect

Page view, link click

Trigger flows based on browsing behaviour (requires tracking script)

Form & Page interactions

Form submitted, page viewed

Welcome flows, lead capture follow-ups

Response data

Email opened, email clicked, unsubscribed

Re-engagement flows, engagement scoring, webhook unsubscribe forwarding

Subscription

Opt-in, opt-out

Welcome series, preference change flows

Custom events

Purchase completed, booking confirmed, trial started

Any event you send via the API from your website, app, or CRM


Use Segments in a flow

Segments are dynamic groups of profiles defined by rules in the Segment Builder. In Marketing Automation, you can use segments in two places: as a filter in the Listen node (to restrict who can enter the flow) and as a condition in the Check Profile node (to branch the flow).

Step-by-step: Add a segment filter to a Listen node

  1. Open the Listen node and look for the Segment option.

  2. Click Add Segment and select an existing segment, or create a new one.

When a segment is attached to a Listen node, a profile must both trigger the event and be a member of the segment to enter the flow. This is useful for limiting a flow to a specific audience — e.g. only profiles in the "Swedish customers" segment can enter.

Step-by-step: Branch a flow with a segment in Check Profile

  1. Add a Check Profile node to your flow.

  2. Select Segments and choose the segment to evaluate.

    1. Profiles who are members of the segment follow the Yes branch;

    2. Profiles who aren't follow the No branch.

⚠️ Important — Segment size limit: The maximum number of profiles in a segment used in Marketing Automation is 500,000 profiles. If your segment exceeds this limit, the node may not evaluate all profiles correctly. Consider narrowing your segment criteria or splitting the flow.

💡 Good to know: If you edit a segment after selecting it in a node, the node automatically uses the latest version — but the transition can take up to 10 minutes. During this window, the node continues using the previous segment definition.

Use case: Localised content paths

After the Listen node, add a Check Profile node with a "Swedish customers" segment. Profiles who match receive a Swedish-language email; profiles who don't receive the English version. You could chain multiple Check Profile nodes with different country segments for full localisation.


Advanced options

Combining data types in a single flow

You're not limited to one data type per flow. In fact, the most effective flows combine multiple types. For example:

  • Listen node: Trigger on an event (form submission).

  • Check Profile node 1: Branch on an attribute (country = Sweden).

  • Check Profile node 2: Branch on a tag (is tagged "VIP").

  • Update Profile node: Apply a tag ("Completed onboarding flow").

Each node independently evaluates its own data type — they don't need to match.

Using profile data in Email and SMS content

Beyond flow logic, you can also use profile data to personalise the content of emails and SMS sent from your flow. Within the email editor, insert personalisation tags that pull attribute values (e.g. first name, company) or event data (e.g. product name from a custom event) directly into the message. See Use Custom Events in Marketing Automation for how to insert event data into email content.

Event versions

Events can have multiple versions if the event schema changes over time. When configuring a node, you may be prompted to select a specific event version. In most cases, use the latest version. For more detail, see About Events.


Technical deep dive: How profile data is evaluated

Understanding when and how profile data is evaluated helps you avoid common pitfalls.

Real-time vs. scheduled evaluation

Data type

Evaluation timing

What this means in practice

Events

Real-time

The flow triggers the moment the event is collected. No delay.

Attributes (in Listen node)

Scheduled (daily/weekly/monthly)

The platform evaluates all profiles matching the attribute condition at the scheduled time. If a profile's attribute changes between evaluations, the change won't be picked up until the next scheduled run.

TAGs (in Listen node)

Scheduled (daily/weekly/monthly)

Same as attributes — evaluated on a schedule.

Segments (in Listen node)

Scheduled (daily/weekly/monthly)

Same as attributes and TAGs — evaluated on a schedule.

Attributes / TAGs / Segments (in Check Profile node)

At the moment the profile reaches the node

The profile is evaluated when it arrives at the Check Profile node — not on a schedule. This means the data is as current as possible at the point of evaluation.

Events (in Wait for Event node)

Real-time while waiting

The node holds the profile and listens in real time for the event to occur within the configured window.

What happens when data is missing?

If a profile reaches a Check Profile node and the evaluated attribute has no value (is empty/null), the profile follows the No branch. The platform treats "no data" as "does not match".

In a Listen node, profiles with an empty attribute are silently skipped during scheduled evaluation — they won't enter the flow.

⚠️ Important: If you're building a flow that depends on an attribute or TAG, make sure your profile data is populated before activating. Profiles with missing data will be filtered out or routed to the No branch — which may not be the behaviour you want. Consider adding a Check Profile node specifically to catch "empty" attribute values and route them to a fallback path.


Use cases: Profile data in action

Birthday campaign (Date Attribute)

Trigger: Listen node → Attribute → Date of birth → On birthday → Every year, evaluated daily at 08:00.

Flow: Listen → Email ("Happy birthday! Here's your personal offer") → End Flow.

Why it works: Automated, personalised, and requires zero manual effort after setup. Runs year after year.

Engagement-based branching (Events + Check Profile)

Trigger: Listen node → Event → Subscription opt-in.

Flow: Listen → Time (7 days) → Check Profile → Event: "Email engagement registered" at least 1 time within 7 days → Yes: Email ("Glad you're engaged!") → End Flow / No: SMS ("Don't miss our latest update") → End Flow.

Why it works: Adapts the journey based on actual behaviour — engaged profiles get email, disengaged profiles get a different channel.

TAG-based segmented nurture (TAGs+ Update Profile)

Trigger: Listen node → Event → Form submitted (whitepaper download).

Flow: Listen → Update Profile (add TAG "Downloaded whitepaper") → Time (3 days) → Check Profile → TAG: "Is tagged VIP" → Yes: Email ("Exclusive follow-up for VIPs") → End Flow / No: Email ("Thanks for downloading — here's more") → End Flow.

Why it works: Combines event-triggered entry with tag-based branching and in-flow tagging for future reference.

Multi-condition lead nurturing and qualification path (Attributes + Events + Segments)

Trigger: Listen node → Event → Custom event "trial_started".

Flow: Listen → Time (5 days) → Check Profile → Segment: "High-value leads" → Yes: Notification node (alert sales team) → Email ("Your dedicated account manager") → End Flow / No: Check Profile → Event: "Logged in" at least 3 times within 5 days → Yes: Email ("Power user tips") → End Flow / No: Email ("Need help getting started?") → End Flow.

Why it works: Layers multiple data types to create a nuanced journey that adapts to both profile classification and real-time behaviour.



What's next?

Did this answer your question?