User profile best practices
User profiles is available in Accelerator version 26.2.3. Contact your Customer Success Manager (CSM) for more information.
Overview​
User profiles define the attribute dictionary available inside journey tiles. Designing them well affects journey reliability, evaluation performance, and the quality of segmentation and personalization in your messages. This article covers the decisions and trade-offs involved in building user profiles that serve your journeys effectively.
Separate audience data from user profile attributes​
The most common design mistake is putting customer attribute data into the audience query when it belongs in the user profile, or putting it in the user profile when it belongs in the audience.
Put in the audience query:
- Return the unique customer ID (RecipientId) of everyone who should enter the journey
- Use filtering criteria that determines entry eligibility — for example, opted-in consent status, subscription tier, or date of last purchase if that determines who qualifies
Put in the user profile:
- Attributes that will be used to make decisions or personalize messages inside the journey — for example, loyalty tier, city, preferred channel, or product category affinity
- Channel identifiers (email address, SMS address, mobile user IDs)
The audience is re-evaluated at every refresh cycle to determine who enters the journey. The user profile is joined to current members at evaluation time to provide their attributes. These are different questions — "who belongs in this journey?" and "what do we know about them?" — and keeping the data separated accordingly keeps both queries focused and performant.
Customers without a User Profile record to join will exit the Journey​
Any entering audience member or mid-journey customer missing a User Profile to join on at any tile will be exited from the journey. This can be useful to exit customers automatically for specific situations, such as a customer opting out of marketing consent mid-journey or removing all items from a cart during an abandoned cart program.
Align Recipient ID values between audience and user profile​
The Recipient ID in the user profile query must match the Recipient ID in the audience query exactly — same format, same casing, same identifier type. MessageGears joins profile rows to audience members using this value. If the values do not match, users evaluate in the journey without a profile row, which causes them to be counted as No profile in entry metrics and prevents them from being properly segmented or personalized.
Before activating a journey, use the entry preview in the journey entry configuration to check how many audience members are missing a profile match. A high "No profile" count indicates a Recipient ID alignment problem between the audience and user profile queries.
Keep profile queries lean​
We recommend limiting attributes to those your journey tiles may use. Every column returned by the user profile query is joined to journey members at each evaluation cycle. Returning 100 columns when your journey uses 15 increases the data volume processed without adding value in the canvas.
Before creating a user profile, map out which attributes each tile in your journey actually needs:
- Segment tiles: any attributes needed in branching and filtering rules
- Messaging tiles: Channel identifiers and any attributes used for FreeMarker personalization in the template
You can always edit the profile later to add more columns as journey needs evolve, but use extreme caution if you must remove columns as they may be used in active Journeys.
Map all channel identifiers you plan to use​
If a journey includes Email, Push, or SMS activation tiles, the corresponding channel identifiers must be mapped in the user profile. When a user reaches an activation tile and the required identifier is missing from their profile row, the message is not sent. The user still advances to the next tile, but the send counts as a Content error in tile analytics.
Content errors are silent from the recipient's perspective — the user progresses through the journey as if the send succeeded, but the message is never delivered. Map all channel identifiers you plan to use when creating the profile, even if not every journey that uses the profile will activate all channels.
| Activation tile | Required profile field |
|---|---|
| Email address | |
| SMS | SMS address or valid telephone number |
| Push | Mobile user ID (per app) |
Use multiple user profiles for distinct journey types​
One user profile can serve multiple journeys, but this only makes sense when those journeys share a similar attribute set and the same database connection. When journeys have meaningfully different data requirements, create separate profiles.
Scenarios where multiple profiles are appropriate:
- Journeys for different brands with distinct data models
- Journeys that target different customer segments with different available attributes — for example, a loyalty program journey where loyalty-tier data exists only for enrolled members
- Journeys that use different channel combinations and therefore require different channel identifier mappings
Scenarios where a single shared profile is appropriate:
- Multiple journeys for the same brand that target overlapping audiences and use the same channels
- Journeys where the attribute set is broad enough to serve multiple use cases without becoming unwieldy
Use the default designation deliberately​
The default user profile is automatically selected when a journey author configures a new journey entry. This is a convenience, not a requirement — authors can change the selection. Use the default designation for the profile that represents the most common or broadly applicable attribute set for your instance.
Avoid designating a very narrow or specialized profile as the default, as it will be silently pre-selected for journeys where it is not the right choice, and authors may not notice until the journey activates.
Plan before making profile updates in running journeys​
User profile queries can be edited after the profile is in use by active journeys. Changes take effect at the next evaluation cycle. Be deliberate about editing profiles that are actively used by running journeys:
- Adding columns is generally safe — new attributes become available in tiles at the next evaluation
- Removing columns that are used in segment rules or FreeMarker expressions in active journeys will cause those tiles to evaluate without the expected attribute, which may produce unexpected routing or personalization outcomes
We recommend reviewing the Journeys using it count on the user profile list page before making changes to an existing profile. If multiple active journeys use the profile, coordinate changes carefully.
When in doubt, create a separate User Profile and leave the existing one intact.