First steps
User Data
- Responsive Email Editor Review
- Designing your email
- Creating Synchronized Modules
- Setting Up Responsive Email Design
- Setting Up Smart Containers
- Creating a Gmail Promotions Annotation
- Adding The Rollover Effect
- Adding Anchor Links
- Module Library
- Adding a Table to an Email
- Adding Custom Fonts
- Creating CTA Button
- Working with Images
- Creating Timer
- Using AI in the Email Editor
- Messenger Protocol Support in Email Clients and Platforms
Omnichannel
- Setting Up Widgets for Your Site
- Widgets Gamification
- Widget Calling
- Setting Up Locations for the Widget Calling Rules
- Storing data from widgets to contact fields
- Using Annoyance Safeguard
- Actions After Subscription
- Replacing Double Opt-In System Workflow
- Creating Pop-ups via Google Tag Manager or WordPress
- Sending Yespo Widget Events to Google Analytics
- Using A/B Tests for Widgets
- Collecting Contact Information Using Request Forms
Automation
- Building and Editing Workflows
- Configuring Workflow Start/Stop Conditions
- Start Block
- Popular Blocks
- Message Blocks
- Using One from Many Message Block
- Contact Blocks
- Conditions Blocks
- Other Blocks
- Message to Segment Blocks
- Time Blocks
- Advanced Workflow Block Parameters
- Setting Up Allowed Send Time
- Using Workflow Launch History
- Webhook Workflows
- Workflow Troubleshooting
- Double Opt-In
- Welcome Сampaign
- Welcome Series Segmented by Category
- Launching a Workflow After a Contact Import
- Regular Workflow for a Segment
- Birthday Campaign
- Linking Workflow to the Button
- Using Variables from Order in Workflow
- Collecting Order Feedback
- Customer Reactivation
- Sending Extra Campaigns
- Sending Reminders at the Time Specified by the User
- Sending Campaign to Those Who Did Not Open the Previous One
- Using A/B Tests In Workflows
Personalization
Analytics
- Email Campaign Report
- Web Push Campaign Report
- Viber Campaign Report
- Mobile Push Campaign Report
- App Inbox Campaign Report
- Telegram Campaign Report
- In-App Report
- Widget Report
- Triggered Campaign Report
- AMP Campaign Report
- SMS Campaign Report
- Multilingual Campaign Report
- Setting up UTM Tags
- Revenue from Campaigns
- Tracking Campaign Performance in Google Analytics 4
- Message Analytics
Multilanguage Campaigns
Events and Behaviour Tracking
Recommendations
API
Security and Compliance
User Profile Variables and Velocity Features
Personalize your marketing communications with data from your users’ profiles in Yespo. Optimize personalization with Velocity features.
Using profile variables
The simplest and most widely used example of message personalization is to automatically replace the %FIRSTNAME% variable with the user's name.
Also, you can substitute any other data from the user profile in the same way:
- %NICKNAME%
- %CITY%
- %PROMOCODE%
- %BONUSES%
You can see the list of these variables in the message editor (it includes standard contact fields and additional fields that you can create in your account).
To see all user fields available in your account, go to your profile > Settings > Additional fields. Additional fields can contain any contact data you send to Yespo through API.
More on using user profile variables >
Optimizing user profile variables usage with Velocity features
The use of user profile variables has some potential issues. For example, you may need to show different message blocks depending on users’ data. Or to hide certain blocks unless all data is available. To do this, use velocity features. Let’s see an example of using velocity with data from user profile.
Use case: personalizing message depending on location data
Task
We have an additional data field in users’ profiles — PERSONAL.LOCATION. We need to show different email blocks depending on on data in this field:
- If PERSONAL.LOCATION = Maldives — show block with description of this location and don’t show block with Tuscany description.
- If PERSONAL.LOCATION = Tuscany — show block with description of this location and don’t show block with Maldives description.
- If PERSONAL.LOCATION ≠ Maldives or Tuscany — don't show any of these blocks.
Solution
1. Click on the first structure in the email where you want to show dynamic content (Tuscany) and open the Code editor.
2. Find the first tr tag in the selected email structure code.
3. Declare a personalization variable(s) that will be used in the email above tr tag. In our case this is
<!--%PERSONAL.LOCATION%-->
4. Add conditional statements that are responsible for displaying this structure to the structure code. Use the following statement format:
<!--#if($data.get('parameter name')=='value1')-->
In our case it will be the following statement:
<!--#if($data.get('PERSONAL.LOCATION')=='Tuscany')-->
5. Click on the second structure in the email where you want to show dynamic content (Maldives). The corresponding structure code will be opened in the Code editor.
6. Find the first tr tag in the selected email structure code.
7. Add conditional statements that are responsible for displaying this structure to the structure code above tr tag. Use the following statement format:
<!--##elseif($data.get('parameter name')=='value2')-->
In our case it will be the following statement:
<!--#elseif($data.get('PERSONAL.LOCATION')=='Maldives')-->
8. Add <!--#end--> statement after structure /tr closing tag.
Results
That’s how users with different PERSONAL.LOCATION parameters will see the message after sending:
1) User with Tuscany parameter:
2) User with Maldives parameter:
3) User with empty PERSONAL.LOCATION parameter: