Recipients — AddMany
Add or update one or more recipients, optionally providing demographic fields. Existing recipients will have their demographics
undated, but their unsubscribe status will not be changed so you don't need to fear re-subscribing someone based on this import. The demographics
array must have email address as a minimum, and any other demographics provided will update the values for an existing recipient. Empty
values do not override existing data. Recipients cannot be added or updated when using a Foreign Members table.
HTTP VERB
Post
URL
/API/Rest/Recipients/AddMany
ARGUMENTS
importType
|
(Optional) One of the values: AddOnly, AddAndUpdate, UpdateOnly. Default is AddAndUpdate.
|
topics
|
(Optional) An array of the topics that this recipients should be marked as subscribed to
|
culture
|
The culture of the recipient. Used to correctly parse the demographics.
|
document
|
(Optional) The name of a document in the system to send to the recipient as a welcome.
|
documentOptions
|
(Optional) One value from: NewRecipients, AllRecipients
|
fixedSegmentName
|
(Optional) The name of a fixed segment to create to store the recipients in the import
|
demographics
|
(optional)An array of arrays of values to be imported. The first row is the column headers. Each subsequent row must have the same number of columns. EmailAddress must be one of the columns.
|
To send a welcome document to the imported recipients, specify the culture, document, and documentOptions information. You
can choose to send the document to only newly added recipient, or to all recipient in this import. Provide a fixed segment name to keep a record
of the recipients imported from this operation.
Required permission
CreateEditMember
ERRORS
No Permission
Invalid importType option. Options are: AddOnly, AddAndUpdate, or UpdateOnly
Invalid documentAction. Options are: NewRecipients, AllRecipients, or UnConfirmedOnly
Invalid culture
Invalid topic selection:
Must provide recipient data and import columns
Unknown demographic column ''
One of the columns in the data must be the EmailAddress
Invalid document name
Cannot import recipients when using a foreign Members table.
Cannot append to any segment type except Fixed
Too many API calls
Database error
Unknown error
RETURNS
An array of results, one for each recipient in the import data. The data returned is the email address, the recipient ID in the system, and the status of the insert or update.
[{"emailAddress":"bob@aol.com","recipientId":67512,"importMessage":"Successfully updated."},
{"emailAddress":"fred.smith@aol.com","recipientId":67513,"importMessage":"Successfully added."}]
EXAMPLE
Add and update recipients.
string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US', 'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}";
string url = "http://example.com/api/rest/Recipients/AddMany";
try
{
System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = message.Length;
using (Stream webStream = request.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII))
requestWriter.Write(message);
System.Net.WebResponse webResponse = request.GetResponse();
using (Stream webStream = webResponse.GetResponseStream())
using (StreamReader responseReader = new StreamReader(webStream))
Console.Out.WriteLine(responseReader.ReadToEnd());
}
catch (Exception e)
{
System.Diagnostics.Debug.Fail(e.Message);
}
# encoding: utf-8
require 'rest-client'
require 'json'
url = 'http://www.acme.com/api/rest/Recipients/AddMany'
args = {'accountName'=>'acme', 'login'=>'ApiUser', 'password'=>'sdf3w4tw', 'importType'=>'AddAndUpdate', 'topics'=>['Weekly','Daily'], 'culture'=>'en-US', 'demographics'=>[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}
response = RestClient.post(url, args.to_json, :content_type => "application/json;charset=utf-8")
puts response
import requests
url = "http://www.example.com/api/rest/Recipients/AddMany";
args = {'accountName':'acme','login':'ApiUser', 'password':'f334f3fg3', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US', 'document':'', 'documentOptions':'', 'fixedSegmentName':'', 'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}
headers = {'Content-Type': 'application/json'}
resp = requests.post(url, json=args, headers=headers)
if resp.status_code == 200:
print resp.text
curl -X POST -H "Content-Type: application/json" -d "{'accountName':'acme','login':'ApiUser',
'password':'f334f3fg3', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US',
'document':'', 'documentOptions':'', 'fixedSegmentName':'',
'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}" http://www.example.com/API/Rest/Recipients/AddMany