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
API Methods for Adding Contacts
Main methods of adding/updating contacts:
- Subscribe contact (Method type: POST)
This method is used to embed subscription form into the website. It creates new contacts and updates existing ones. It also creates events in the system to launch workflows. New contacts are created with "not confirmed", status and require double opt-in. More.
- Add/update contacts (Method type: POST)
This method is used to import or update contacts. It has all the features of contact management through API. It allows to add/update one contact or a bulk of contacts, as well as move contacts from one segment to another. Created contacts are already confirmed, that is why this method is not used with subscription forms. It is not designed to launch workflows. More.
Useful methods for specific tasks:
- Add contact (Method type: POST)
This method is used to add or update one contact. More. - Update contact (Method type: PUT)
This method is used to update one contact. It doesn’t allow creating new contacts. To update a contact using this method you need to know contact id in our system. More. - Add/update contacts from external file (Method type: POST)
This method is used to add/update contacts from an external file. You can upload a file with contacts to your server and launch import from this file using this method. Link to file is submitted in the request. Our system downloads the file and imports contacts from it. More. - Attach contact to static segment (Method type: POST)
This method is used to add contacts to segments of the List type. More. - Delete from static segment (Method type: POST)
This method is used to delete contacts from segments of the List type. More.
Additional details:
- Other methods used for contact creation.
Some API methods don’t allow creating contacts. They are designed for other tasks. However, in some cases use of such methods results in contact creation. More. - How can I find out how contact was created? More.
Subscribe Contact
Method type: POST. Method description.
This method is used to add and update contacts. It is aimed at embedding subscription forms and has the following features:
- new contacts are created with unconfirmed email addresses
- one contact can be added in one request
- contacts are created with maximum speed and are not delayed
- it allows to create events to launch workflows
- if the email address or phone number are already in the contact list, a new contact is not created, instead existing contact is updated
Please note!
The configuration of confirmation procedure of contact’s email is a must. You can find instructions here: Subscription form configuration.
Workflows launch
Method Subscribe contact is used to create events. You can configure and launch workflow automatically for contacts sent with this method. Two types of events are created:
- subscribeFromApi - event title for new contacts
- subscribeUpdateFromApi - event title for existing contacts in the system
Every event type can launch its own workflow. So you can configure different workflows for new contacts and contacts created earlier. In addition to that, if you have several subscription forms, you can configure creation of other events to launch other workflows. To do this use optional parameter formType in the request body. Its value is added after the name of event type (hyphenated). For example, if you send "formType": "abc", the event will look like:
- subscribeFromApi-abc - for new contacts
- subscribeUpdateFromApi-abc - for existing contacts
See below example of a request with this parameter.
Each event contains 2 parameters:
- ContactId - numerical contact id in our system
- EmailAddress - email address. If only telephone numbers are sent, this parameter is not available
These parameters can be used in workflows like this: ${name_parameter}. For example, ${EmailAddress}.
Event key is contact id in our system.
If the request is submitted successfully, such events will appear in Event log:
Example of request body
Not all the elements are obligatory. Use those, which you need. Format and description of all fields are available here.
{
"contact": {
"channels": [{
"type": "email",
"value": "mail@example.com"
}, {
"type": "sms",
"value": "380942583691"
}],
"firstName": "John",
"lastName": "Smith",
"address": {
"town": "London",
"region": "West",
"address": "First str. 1",
"postcode": "12345"
},
"fields": [{
"id": "12345",
"value": "..."
}]
},
"groups": ["Subscribers"],
"formType": "abc"
}
URL for sending request: /api/v1/contact/subscribe
Add/Update Contacts
Method type: POST. Method description.
This method allows to add/update one contact or a bulk of contacts. In fact, it substitutes manual import of contacts from a file. It works for synchronization of your CRM contact list with our platform. It has the following features:
- It allows to add/update from 1 to 3000 contacts in one request.
- Created contacts are already confirmed, same as when imported.
- It allows to add contacts to segments or delete them from segments.
- Contacts are added/updated not instantly, it may take a few minutes.
- It allows to create an event to launch a workflow for new contacts.
- The response returns asyncSessionId. You can use this asyncSessionId parameter in the Get contact import status method to get import status and ID of contacts.
Please note!
New contacts submitted using this method are created with confirmed email addresses. It is assumed that these contacts have been already verified with double opt-in in the other system. Sending campaigns to contacts whose emails were not verified with double opt-in is spamming.
Example of request body
Not all the elements are obligatory. Use those, which you need. Format and description of all fields are available here.
{
"contacts": [{
"channels": [{
"type": "email",
"value": "mail@example.com"
}, {
"type": "sms",
"value": "380942583691"
}],
"firstName": "John",
"lastName": "Smith",
"address": {
"town": "London",
"region": "West",
"address": "First str. 1",
"postcode": "12345"
},
"fields": [{
"id": 12345,
"value": "..."
}]
}],
"dedupeOn": "email",
"customFieldsIDs": [12345],
"groupNames": ["Customers"],
"groupNamesExclude": ["Subscribers"],
"restoreDeleted": false,
"eventKeyForNewContacts": "newContact"
}
For the required fields externalCustomerId and dedupeOn, the priority for the search is the following:
- externalCustomerId
- dedupeOn
The arrays groupNames and groupNamesExclude are used to add contacts to segments and to delete contacts from segments respectively.
Parameter dedupeOn shows how contact uniqueness is checked. Receiving request the system searches contacts in contact list by specified feature (in this case be an email address). If the contact is found, it is updated. If it is not found, the new contact is created.
URL for sending request: /api/v1/contacts
If your API request is correct, the response returns the HTTP 200 success status code.
Important
Since the methods can process up to 3,000 contacts, some of them may not be added or updated. The list of contacts that can not be added/updated is returned in response 200 in the failedContacts field (see the response example in the API doc). Check the response details to find out the cause.
Workflow launch
This method allows to create events only for new contacts. To create events add parameter eventKeyForNewContacts to request body. Value must be a line with Latin symbols and figures with no spaces. Value is used as event type key and its title.
For each new contact the system creates an event with the following parameters:
- contactId - numerical contact id in our system
- EmailAddress - email address (if not sent, the line will be empty)
- SMS - phone number (if not sent, the line will be empty)
Email address is used as event key. If it is not sent, a phone number is used.
Add Contact
Method type: POST. Method description.
This API method is used to create a new contact. Features:
- if a contact with the same email address or phone number already exists, it will be updated
- one contact is created at a time
- created contacts are already confirmed. It doesn’t allow configuring double opt-in
- events are not created. The workflow cannot be launched.
URL for sending request: /api/v1/contacts
Update Contact
Method type: PUT. Method description.
This method is used to update one contact. Features:
- it doesn’t allow creating contacts. It is designed to update existing contacts
- it allows to update one contact at a time
- contact identification is possible only by id
- events are not created. The workflow cannot be launched.
URL for sending request: /api/v1/contact/{id}
{id} needs to be substituted with numeric contact identifier in our system. It can be obtained with method for contact search by email or by other parameters Search contacts.
Use of identifiers may be inconvenient. So you can update contacts by email or phone number with method Search contacts.
Add/Update Contacts from External Files
Method type: POST. Method description.
It allows to add or update contacts from external file. You can upload a file with contacts to your server and launch contact import from it with this method. Our system downloads the file and imports contacts from it. This method has the same features as method Search contacts except the fact that contact data are not sent in the request. They are saved in a separate file.
Method features:
- сontacts are submitted not in request body, but in a separate file
- сreated contacts are already confirmed, like when imported
- it allows to add a contact to segments and delete it from segments
- contacts are added/updated not instantly, it may take a few minutes
- it allows to create an event to launch a workflow to new contacts
Thr file must be saved in CSV format with encoding UTF-8. File requirements and request body format are available here.
The file should be saved at Http-resource. URL of the file is indicated in request body in parameter link. Specify login and password in URL to get access to the file.
URL for sending request: /api/v1/contacts/upload
Attach contact to static segment
Method type: POST. Method description.
This method adds contacts by contactId or externalCustomerId to a segment of the List type (use only one contact identifier in the request). The maximum number of contacts in one request is 500.
URL for sending request: /api/v1/group/{id}/contacts/attach
{id} needs to be substituted with a numeric segment identifier in our system.
File requirements and request body format are available here.
Delete from static segment
Method type: POST. Method description.
This method deletes contacts by contactId or externalCustomerId from a segment of the List type (use only one contact identifier in the request). The maximum number of contacts in one request is 500.
If you do not specify IDs, all contacts will be removed from the segment.
URL for sending request: /api/v1/group/{id}/contacts/detach
{id} needs to be substituted with a numeric segment identifier in our system.
File requirements and request body format are available here.
Other API Methods Which May Result in Contact Creation
There are several API methods with other purposes, but in some cases, the use of these methods results in contact creation. In such cases created contacts are already confirmed, but aren’t included in any segments.
Methods for sending messages (email/SMS).
If a message is sent to a user not from contact list, such contact is created at the moment of sending. Only communication channel (email address or phone number) is sent to this new contact. No other fields are completed. It is not included in any segments. Events are not created.
- send email message
- send SMS message
- /v1/message/{id}/send
- send prepared message
Method of submitting orders.
When an order is added to our system, the system verifies whether there is a contact with a specified email address or phone number in the contact list. If not, it is created. Some order data, such as email address, phone number, name/surname are sent to this new contact. Please note that if the contact already exists in contact list, it won’t be updated. Name/surname from the order won’t be added.
This method allows to create events in the system. So you can do some additional operations launching workflow to the contact who has made an order. For example, you can add it to a segment.
Contact creation/update with event and workflow.
You can send event through API to launch the workflow for contact creation or update. To do this there are specific blocks in workflow. You need to submit contact’s email address and a line with the required format in event parameters to complete contact’s fields.
How to Find a Contact Creation Source
You can always check which method was used to create a contact
To do this go to Contacts → All contacts and press View button against required contact.
A new window with contact information will open.
You will see required information in the field Source.
Source names for different methods
Main methods:
- Subscribe contact (subscription form)
- Search contacts (contact import)
- Search contacts (API)
- Add/update contacts from external files (contact import)
Methods of sending email/SMS messages:
- Send email message (single message)
- Send SMS message (single message)
- /v1/message/{id}/send (single message)
- Send prepared message (single message)
Method of sending orders:
- Add orders (Integration of orders for RFM)