Overview
Note |
---|
The content personalization is an advanced feature. It is very powerful but it requires some development (building or configuring an API, and edit HTML messages using a special markup language…) |
Use cases
You should be interested in the “content personalization” feature if your “job to be done” includes at least one of these:
- Access to unlimited custom fields for content personalization, overcoming the current MailUp limit of 39 fields
- Simplify message building when the content is mostly available outside MailUp (i.e. avoiding useless data copy)
- Retrieve content in real time, just before sending, from an external service (e.g. for up-to-date product recommendations)
Getting started
Here is a short list of the steps to be followed:
- First build the external service
Start building a web service on your platform. This service has to be a public URL that accepts an unique user ID as a parameter (e.g. the email, the customer ID...). When called, it must return a JSON dataset containing user specific information.
Then reference your service on MailUp
You can extend MailUp settings with a reference to your service(s). The URL of any of these services is called endpoint. Several endpoints may be added, then you can link them to a specific MailUp message or to a list. This operation can be done through the web interface of your MailUp account or using the API methods described in this page
Finally create a message that requires the service and send it
Create an email message and add HTML blocks containing a special markup language called Liquid, whose tags use curly brackets and allow very powerful statements
Just before sending the email, MailUp queries the predefined endpoint for each campaign’s recipient. The returned values will replace the tags built with Liquid markup
- Fields are replaced in real time, so this is a perfect solution if you have a product recommendation engine that provides an URL for querying it
- Note: as the provider of the external service, you are supposed to know well the returned JSON object (field names, nested structures...) so that you know the names of the placeholders/tags you have to add to your messages
Do you need help?
If you need more details or you cannot manage to implement an API on your own, the MailUp Professional Services team can help you. Either with custom development tasks or for advisory.
title | Table of Contents |
---|
Technical details
Endpoint specification (request)
The external endpoint shall be called using HTTP GET and optional querystring parameters. Basic Authentication and custom authorization headers are supported
The endpoints’ signature should support one of the following formats:
Template | Description | Example |
---|---|---|
MY_ENDPOINT_URL/EMAIL | query by email | https://personalization.mysite.com/product/john@example.com |
MY_ENDPOINT_URL/RECIPIENT_FIELD | query by a MailUp personal field, like firstname or ClientID | https://personalization.mysite.com/product/ID000111222 |
MY_ENDPOINT_URL/EMAIL?FIELD1=value,FIELD2=value | more query parameters can be used |
Note: other formats may be supported, please ask if you need more
Get list of endpoints
Description | Retrieve the list of personalization endpoints configurations | |||||
---|---|---|---|---|---|---|
HTTP Method | GET | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) |
| |||||
Paging and filtering (example) | 5 items per page, get first page (count starts from zero)
Retrieve an orderd list of the endpoint(s) using the clause orderby="idEndpoint desc". Parameter names can be retreived from the response body. Please note that filter matching is case sensitive.
NB: no filtering querystring parameter provided! |
Get endpoint details by id
Description | Retrieve the personalization endpoint configuration details | |||||
---|---|---|---|---|---|---|
HTTP Method | GET | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) |
| |||||
Paging and filtering (example) | none |
Create an endpoint
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
Description | Create a personalization endpoint configuration | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HTTP Method | POST | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URL |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
JSON request (example) |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
JSON response (example) |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Paging and filtering (example) | none |
Update an endpoint
Description | Update a personalization endpoint configuration | |||||
---|---|---|---|---|---|---|
HTTP Method | PUT | |||||
URL |
| |||||
JSON request (example) |
| |||||
JSON response (example) |
| |||||
Paging and filtering (example) | none |
Get endpoints of a list
Description | Get personalization endpoints related to a list | |||||
---|---|---|---|---|---|---|
HTTP Method | GET | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) |
| |||||
Paging and filtering (example) | none |
Set endpoint to list
Description | Set a personalization endpoint to a list | |||||
---|---|---|---|---|---|---|
HTTP Method | POST | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) | none | |||||
Paging and filtering (example) | none |
Remove endpoint from list
Description | Remove a personalization endpoint reference from a list | |||||
---|---|---|---|---|---|---|
HTTP Method | DELETE | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) | none | |||||
Paging and filtering (example) | none |
Delete an endpoint
Description | Remove a personalization endpoint configuration | |||||
---|---|---|---|---|---|---|
HTTP Method | DELETE | |||||
URL |
| |||||
JSON request (example) | none | |||||
JSON response (example) | none | |||||
Paging and filtering (example) | none |