On this page:
Manage single recipients (subscribe, unsubscribe, update)
MailUp provides several ways to add a new subscriber and manage either data fields or subscription status.
Synchronize recipients between your application and MailUp (i.e. bulk import and/or export)
You may need to transfer a set of recipients, eventually with their personal data, from your application to MailUp; or viceversa. Solutions that work well with a single recipient may not be suitable for big numbers of recipients, in this case bulk solutions are needed.
When defining your synchronization strategy you must take care about how unsubscription is made. In particular, you should be aware that, when importing subscribers that are already present and unsubscribed in specified MailUp list, subscription status is not changed, except for the cases in which you deliberately set an API option that forces subscription.
- If unsubscription is managed by MailUp with the "Unsubscribe" link in email footer (that's the default case) forcing subscription should be consider only when an unsubscribed recipient asks to be subscribed again
- If unsubscription is managed by an external system (i.e the "Unsubscribe" link in email footer leads to an external site) then the external application is the "master" and you should consider to force subscription whenever you import recipients.
Several possible solutions are available
Manage suppression lists (i.e. "do not email" lists of recipients)
You can contact MailUp support and ask configuration of an FTP based integration with a batch process that is configured to run hourly. This process has to be set to import in a new group (group name = file name) the recipents that are listed in the file to be imported. Then, when you access to MailUp admin console, you can schedule your campaign to be sent to "all subscribers except for the recipients that belong to a certain group". It should be easy for you to identify the right group because it has the name of the imported file plus a timestamp.
Send transactional and other personalized emails
Sending messages through MailUp from an external application allows you to take advantage of:
- The high reputation and scalability of the MailUp sending infrastructure
- Automatic bounce and feedback loop management
- Ability to include dynamic tags and dynamic content
- Ability to check the send status via API
MailUp can manage the whole process automatically:
- Messages are sent very quickly, thanks to a robust and scalable infrastructure that guarantees immediate sending (except in case of grey listing on destination servers).
- There are no bandwidth restrictions and a dedicated channel is used for sending these messages (no queue-related delay).
- Automatic processes can be activated following actions that users might have performed.
- NOTE: this channel cannot be used to send bulk email messages, but rather only for transactional emails. There are limitations in place that prevent system abuse (see API use policy).
Bulk email messages
This section describes the different ways through which MailUp can be used to send email messages to groups and lists of users without accessing the administration console. The methods described above can be used to send individual, personalized messages, such as transactional emails. However, if the goal is to send large amounts of messages or DEMs, the best practice to follow is described below.
Some possible scenarios are presented here - with the indication of the web services to be used - as examples of common scenarios. This is in no way an exhaustive overview of all the possible scenarios.
Please note that these cases do not talk about authentication. Please refer to the related documentation for details on authentication.
Case 1: email message and recipients exist in the MailUp admin console
You may want to send a message to a group of users and both the message and the recipients list are already available in the MailUp console.
- If the message has to be sent to all the recipients in a list the suggested method is WS_MailUpSend.SendNewsletter. Parameters "send_to = ALL" , list ID, message ID and time and date of sending must be specified. Message and list IDs can be found at the page Settings > Codes Tables in the MailUp console, or using GetLists() and GetNewsletters() methods.
- If the recipients are just some groups in a list, when calling the SendNewsletter() method the group IDs must be specified as well.
- If the users share data that can be extracted using one of the MailUp filters (personal data, activity and geolocation filters, available in the Marketing+ package) when calling the SendNewsletter() method the filter to be applied must be indicated as well. Filters can be used in addition or as an alternative to groups. The great advantage of using them lies in the fact that all the users matching a certain condition are automatically included in the filter results, whereas a user must be inserted into a group for group membership.
It is imperative that you do not use SendSingleNewsletter() in place of SendNewsletter(): the first one has to be used only for transactional emails, as described above. Use of SendSingleNewsletter() for the purpose of sending bulk email messages will trigger a send block on your account and may lead to account termination.
Case 2: not all recipients exist in the MailUp admin console
Similar to Example 1, but in this case a group of recipients has to be imported as well. Some of these recipients might be already subscribed in MailUp due to a previous signup to a newsletter, some others might be new subscribers. Here below some alternative solutions are listed:
- Through WS_MailUpImport methods a new temporary group is created (CreateGroup(groupName)) and a group of recipients is imported to it (StartImportProcess(groupID, recipients,…)). This operation may last several minutes, depending on how large the group is, and it can be monitored using GetProcessDetails(). Once the import is finished, SendNewsletter(groupID) method can be used to perform the sending. At the end of the process the group which was created for the purpose must be deleted using DeleteGroup().
- The procedure described here above is less effective when there are large amounts of data to be imported, so it may be useful to use an alternative procedure that provides for a "bulk" import from a file following an input via web service. SendMessageNL(fileName, listId, messageId, timeDateSending,…) method allows to schedule a sending for the desired time and date, then asynchronously executes the following operations:
- Creation of a temporary group named "Automatic NN", where NN is a progressive number
- Import to this group of the recipients indicated in the file
- Sending of the message at the scheduled time and date
SendMessageNL is often the best option for a fast bulk import and sending but users should be aware of some known limitations
Case 3: creating and sending a message via the MailUp API
In some cases it may be necessary to import into MailUp a message created using an external system. The CreateNewsletters() method allows the creation of a new message where the parameter to be passed is the body of the message (html, text or URL that points to the html file).
It is also possible to use the SendNewsletterFast() method, which conveys to a single call the information that can be drawn from the calls to CreateNewsletters() and SendNewsletter() methods.
It is imperative that you do not use SendSingleNewsletter() in place of SendNewsletter(): the first one has to be used only for transactional emails, as described above. Use of SendSingleNewsletter() for the purpose of sending bulk email messages will trigger a send block on your account and may lead to account termination.
Please take care when using methods that creates a new message on MailUp admin console (i.e. each call to CreateNewsletters and SendNewsletterFast, but also calls to SendSingleNewsletter when content is not based on existing message ID).
The greater is the number of messages and the higher is the load on MailUp admin console, leading to slowering access time to web pages and response time of web services. Please use alternative solutions
provided in this page or contact us if you have to make more than ten actions of this type per day
Case 4: cloning a message to track separate mailings
Most customers need to track campaign results. When the same message is sent more than once (three different times, to three different groups), statistics are accumulated and pertain to all mailings, not the three individual mailings. To get around this issue, you can make a copy of a message by cloning it using the CloneMessage() method: once the copy has been created, the sending can be performed as described above as this is treated as a completely new mailing for a completely separate message (even if the actual message being sent is identical to another one).
Case 5: massive sending of personalized messages via Web Services
If you are in need to send a high number of personalized messages through the API, please contact us. We can create custom MailUp configurations for you that will address your needs. For example, we worked with a Web site that needed to send hundreds of thousands of personalized alerts on a daily basis, and needed to do so through the MailUp API.
Send email/SMS campaigns from your application (e.g. CRM or CMS)
To manage your campaign with MailUp you need to import (subscribe) the recipients first. Refer to section above to discover how to move recipients from your an external application to MailUp. Campaign messages can be created using API or you can use messages that were previously created through admin console account.
Since email statistics are aggregated by message, be aware that when you reuse a previously sent message then it is likely that you will not be able to split the aggregated statistics. You can make a copy of the message instead of reusing it.
Send transactional SMS
As for the email channel, the term "transactional SMS" is usually used to distinguish messages that do not belong to "Promotional" or "Bulk" categories.
Extract or display statistics
Email statistics are mainly the number and the details about opens and clicks, usually grouped by message. About SMS we can only know the delivery status and, in case of error, the error code.