Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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…)
It is a paid feature that is disabled by default on MailUp accounts. Please contact your sales reference person if you wish to try it out.

 

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:

  1. First build the external service
    1. 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.

  2. Then reference your service on MailUp

    1. 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

  3. Finally create a message that requires the service and send it

    1. 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

    2. 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

    3. 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 
    4. 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.

 

Panel
titleTable of Contents

Table of Contents

 


Get list of endpoints

DescriptionRetrieve the list of personalization endpoints configurations

HTTP Method

GET
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints
JSON request (example)none
JSON response (example)
Expand
Code Block
{
    "IsPaginated": true,
    "Items": [
        {
            "CreationDate": "2017-12-04 16:51:34Z",
            "IdEndpoint": 25,
            "Label": "pippo",
            "Url": "http://pippo.pluto/"
        },
		...
        {
            "CreationDate": "2017-12-01 11:20:19Z",
            "IdEndpoint": 11,
            "Label": "My personalization",
            "Url": "https://www.mailup.com/personalization"
        }
    ],
    "PageNumber": 0,
    "PageSize": 20,
    "Skipped": 0,
    "TotalElementsCount": 11
}
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

DescriptionRetrieve the personalization endpoint configuration details

HTTP Method

GET
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/{id_endpoint}
JSON request (example)none
JSON response (example)
Expand
Code Block
{
    "CreationDate": "2017-12-01 11:20:19Z",
    "IdEndpoint": 11,
    "Label": "My personalization",
    "Url": "https://www.mailup.com/personalization",
    "Credentials": {
        "Password": "****",
        "Username": "test"
    },
    "Headers": [],
    "Parameters": [
        {
            "Field": "[field1]",
            "FieldTestValue": "Giancarlo",
            "Name": "name"
        }
    ],
    "Recipient": {
        "Field": "[email]",
        "FieldTestValue": "test@example.com"
    },
    "UpdateDate": "2017-12-01 11:25:37Z"
}
Paging and filtering (example)none

Create an endpoint

Expand
titleWhat to know before start creating endpoints...
Does your service need a Basic authentication?Provide Username and Password using Credentials field.
Does your service need specific headers?Provide key-value data using Headers field.
Does your service get the recipient using email or mobile number from the url?

You can use Recipient field, providing one of theses placeholders:

  • [email]
  • [mobilenumber]
  • [fieldX] where X represent the dynamic content field unique identifier
Does your service get the recipient using data from the querystring?

You can use Parameters field, providing one of these placeholders:

  • [email]
  • [mobilenumber]
  • [idconsole]
  • [idlist]
  • [idnl]
  • [fieldX] where X represent the dynamic content field unique identifier
DescriptionCreate a personalization endpoint configuration

HTTP Method

POST
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints
JSON request (example)
Expand
titleHow to create an endpoint...
Code Block
titleRequest body
{
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization"
}
Code Block
titleHTTP Request:
 GET https://www.mailup.com/personalization
Expand
titleHow to create an endpoint with credentials...
Code Block
titleRequest body:
{
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Credentials": {
		"Username": "test",
		"Password": "test"
	}
}
Code Block
titleHTTP Request:
GET https://www.mailup.com/personalization
Authentication: Basic dGVzdDp0ZXN0
Expand
titleHow to create an endpoint with recipient definition...
Code Block
titleRecipient's email definition request body:
 {
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Credentials": {
		"Username": "test",
		"Password": "test"
	},
	"Recipient": {
		"Field":"[email]",
		"FieldTestValue":"test@example.com"
	}
}
Code Block
titleHTTP Request:
GET https://www.mailup.com/personalization/[email]
Authentication: Basic dGVzdDp0ZXN0
Code Block
titleRecipient's phone number definition request body:
{
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Credentials": {
		"Username": "test",
		"Password": "test"
	},
	"Recipient": {
		"Field":"[mobilenumber]",
		"FieldTestValue":"1234567890"
	}
}
Code Block
titleHTTP Request:
GET https://www.mailup.com/personalization/[mobilenumber]
Authentication: Basic dGVzdDp0ZXN0
Expand
titleHow to create an endpoint with headers...
Code Block
titleRequest body:
{
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Credentials": {
		"Username": "test",
		"Password": "test"
	},
	"Recipient": {
		"Field":"[email]",
		"FieldTestValue":"test@example.com"
	},
	"Headers": [{
		"Key": "From",
		"Value": "personalization@example.com"
	}]
}
Code Block
titleHTTP Request:
GET https://www.mailup.com/personalization/[email]
Authentication: Basic dGVzdDp0ZXN0
From: personalization@example.com
Expand
titleHow to create an endpoint with querystring parameters...
Code Block
titleRequest body:
 {
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Credentials": {
		"Username": "test",
		"Password": "test"
	},
	"Recipient": {
		"Field":"[email]",
		"FieldTestValue":"test@example.com"
	},
	"Headers": [{
		"Key": "From",
		"Value": "personalization@example.com"
	}],
	"Parameters": [{
		"Name": "idconsole",
		"Field": "[idconsole]",
		"FieldTestValue": "1234"
	},{
		"Name": "const",
		"Field": "1234",
		"FieldTestValue": "1234"
	}]
}
Code Block
titleHTTP Request:
GET https://www.mailup.com/personalization/[email]?idconsole=[idconsole]&const=1234
Authentication: Basic dGVzdDp0ZXN0
From: personalization@example.com
JSON response (example)
Expand
Code Block
{
    "CreationDate": "2017-12-03 11:20:19Z",
    "IdEndpoint": 12,
    "Label": "My personalization",
    "Url": "https://www.mailup.com/personalization",
    "Credentials": {
        "Password": "",
        "Username": ""
    },
    "Headers": [],
    "Parameters": [
        {
            "Name":"IdNl",
			"Field":"[idnl]",
			"FieldTestValue":"123"
        }
    ],
    "Recipient": {
        "Field":"[email]",
		"FieldTestValue": "test@example.com"
    },
    "UpdateDate": "2017-12-03 11:25:37Z"
}
Paging and filtering (example)none

Update an endpoint

DescriptionUpdate a personalization endpoint configuration

HTTP Method

PUT
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/{id_endpoint}
JSON request (example)
Expand
Code Block
{
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Recipient": {
		"Field":"[email]",
		"FieldTestValue": "test@example.com"
	},
	"Parameters": [{
		"Name":"IdNl",
		"Field":"[idnl]",
		"FieldTestValue":"123"
	}, {
		"Name":"IdConsole",
		"Field":"[idconsole]",
		"FieldTestValue":"987"
	}],
	"Headers": [{
		"Key": "From",
		"Value": "marketing@example.com"
	}],
	"Credentials": {
        "Password": "test",
        "Username": "test"
    },
    "UpdateDate": "2017-12-03 11:25:37Z"
}
JSON response (example)
Expand
Code Block
{
	"CreationDate": "2017-12-03 11:20:19Z",
    "IdEndpoint": 12,
	"Label":"Test",
	"Url": "https://www.mailup.com/personalization",
	"Recipient": {
		"Field":"[email]",
		"FieldTestValue": "test@example.com"
	},
	"Parameters": [{
		"Name":"IdNl",
		"Field":"[idnl]",
		"FieldTestValue":"123"
	}, {
		"Name":"IdConsole",
		"Field":"[idconsole]",
		"FieldTestValue":"987"
	}],
	"Headers": [{
		"Key": "From",
		"Value": "marketing@example.com"
	}],
	"Credentials": {
        "Password": "test",
        "Username": "test"
    },
    "UpdateDate": "2017-12-04 17:15:20Z"
}
Paging and filtering (example)none

Get endpoints of a list

DescriptionGet personalization endpoints related to a list

HTTP Method

GET
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/List/{id_list}
JSON request (example)

none

JSON response (example)
Expand
Code Block
[
    {
        "CreationDate": "2017-12-04 11:58:39Z",
        "IdEndpoint": 23,
        "Label": "Test",
        "Url": "https://www.mailup.com/personalization"
    }
]
Paging and filtering (example)none

Set endpoint to list

DescriptionSet a personalization endpoint to a list

HTTP Method

POST
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/{id_endpoint}/List/{id_list}
JSON request (example)

none

JSON response (example)

none

Paging and filtering (example)none

Remove endpoint from list

DescriptionRemove a personalization endpoint reference from a list

HTTP Method

DELETE
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/{id_endpoint}/List/{id_list}
JSON request (example)

none

JSON response (example)

none

Paging and filtering (example)none

Delete an endpoint

DescriptionRemove a personalization endpoint configuration

HTTP Method

DELETE
URL
Code Block
languagexml
https://services.mailup.com/API/v1.1/Rest/ConsoleService.svc/Console/Personalization/Endpoints/{id_endpoint}
JSON request (example)

none

JSON response (example)

none

Paging and filtering (example)none