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 Form Submission
- 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
Sending Past Events
If you have migrated from another service or just created an account in our platform, and you have a history of
- offline orders,
- contact activity,
- subscriptions,
- or other events you want to use for advanced segmentation,
you can transfer the available data from your CRM or other data store to our system via the API resource Generate past events.
Important
Before importing events, enable segmentation for the types of events you want to download.
If your tariff plan does not include segmentation by events, please submit a request to sales@yespo.io
To assign events to contacts, pre-import the contact database to your account.
For example, you have a certain number of orders over the past year, and you want to build a segment with customers interested in a certain type of products or services, get statistics on the average check, or segment contacts by geodata (if applicable).
Convert these orders into a JSON format supported for API according to the specification, and send them to the system. You can send an array of up to 500 such events within one request. Specify the time of each event in the field occurred. Format of date: YYYY-MM-DD; format of date with the time: YYYY-MM-DDTHH:mm.
For example, you send an order of two mobile devices bought at a few years interval:
{
"events": [{
"eventTypeKey": "orderCreated",
"keyValue": "John@yourcompany.com",
"params": [{
"name": "email",
"value": "John@yourcompany.com"
}, {
"name": "externalOrderId",
"value": "9239234234234"
}, {
"name": "externalCustomerId",
"value": "d8b6a037-4b6d-11eb-a2f0-0050569b2dc99902"
}, {
"name": "totalCost",
"value": "258.0"
}, {
"name": "status",
"value": "INITIALIZED"
}, {
"name": "date",
"value": "2020-05-14T10:11:00"
}, {
"name": "currency",
"value": "UAH"
}, {
"name": "items",
"value": [{
"externalItemId": "200600",
"name": "Super Device",
"category": "devices",
"quantity": 1,
"cost": 990,
"url": "http://example.com/item/200600",
"imageUrl": "http://example.com/item/200600/image.png",
"description": "High quality"
}]
}],
"occurred": "2023-03-22T14:30"
},
{
"eventTypeKey": "orderCreated",
"keyValue": "Hanna@yourcompany.com",
"params": [{
"name": "email",
"value": "Hanna@yourcompany.com"
}, {
"name": "externalOrderId",
"value": "9239234235555"
}, {
"name": "externalCustomerId",
"value": "d8b6a578-4b6d-11eb-a2f0-0050569b2dc99902"
}, {
"name": "totalCost",
"value": "546.0"
}, {
"name": "status",
"value": "INITIALIZED"
}, {
"name": "date",
"value": "2020-05-14T11:11:00"
}, {
"name": "currency",
"value": "UAH"
}, {
"name": "items",
"value": [{
"externalItemId": "200601",
"name": "New Device",
"category": "devices",
"quantity": 1,
"cost": 990,
"url": "http://example.com/item/200601",
"imageUrl": "http://example.com/item/200601/image.png",
"description": "High quality"
}]
}],
"occurred": "2023-03-22T15:30"
}
]
}
Apart from basic fields with the name, price, and link to a product, you can send any related data that is available to build segments. For example, you can send the country and city of the buyer to use for segmentation by geolocation.
{
"name": "city",
"value": "Los Angeles"
},{
"name": "country",
"value": "USA"
}
Based on the available datasets you can build dynamic segment:
You can also delete old or irrelevant events. To do this, send a request to the same resource, but using the method type DELETE. Specify the time range to remove in the request body:
{
"from" : "2019-06-04T10:47",
"to" : "2020-01-04T13:33"
}
The method DELETE is inactive by default. To activate it, please contact our support team.