This method creates and automatically starts an import process for the contacts listed in the xmlDoc parameter. You can use this method instead of calling a sequence of NewImportProcess and StartProcess methods. StartImportProcesses can also be used to update fields of an existing contact. Please note that, while updating, empty parameters are handled as "do not update this field", not as "overwrite with an empty value".
...
Code Block | ||||
---|---|---|---|---|
| ||||
<ws:listsIDs>1;2</ws:listsIDs> <ws:listsGUIDs>66af9900-7dd7-4cca-9125-beadaf3a3a59;0e591119-xxxx-yyyy-zzzz-6ac75384b564</ws:listsGUIDs> <ws:groupsIDs>;</ws:groupsIDs> |
Add recipients to multiple lists (one group per list)
In this example, we specify both the listsIDs
and the listsGUIDs
parameters. Each of the parameters must have the same number of elements (separated by semi-colons). In this case, we are specifying group 22 for list 1, and group 13 for list 2.
Code Block | ||||
---|---|---|---|---|
| ||||
<ws:listsIDs>1;2</ws:listsIDs> <ws:listsGUIDs>66af9900-7dd7-4cca-9125-beadaf3a3a59;0e591119-xxxx-yyyy-zzzz-6ac75384b564</ws:listsGUIDs> <ws:groupsIDs>22;13</ws:groupsIDs> |
...
The XML structure for each recipient needs to be consistent for all subscribers, and include empty tags for required values that are empty. When specifying the phone number for a recipient, the structure of your XML must match the mobileInputType
parameter, where either the entire phone number is represented in a single attribute, or the prefix and number are represented in separate attributes.
For example, if the mobileInputType
parameter is set to 1
,use the following XML structure:
Code Block | ||
---|---|---|
| ||
<!--Option 1: number and prefix in a single field (use mobileInputType=1)--> <subscriber email="user@myprovider.com" Prefix="" Number="+0018889624587" Name=""> |
If the mobileInputType
parameter is set to 2
, use the following XML structure:
Code Block | ||
---|---|---|
| ||
<!--Option 2: number and prefix in separate fields (use mobileInputType=2)--> <subscriber email="user@myprovider.com" Prefix="+001" Number="8889624587" Name=""> |
In case you also need to specify personal data fields an example is provided below
Note |
---|
Personal data fields shall be specified in progressive order and you shall also include empty fields. It is also recommended to use the same data structure (i.e. the same number of fields for each record, even if some fields are empty) for all subscribers. In case of update of an existing subscriber empty fields are handled as "don't change this field", if you want to clear a field you should specify a space character between double quotes: " " |
Code Block | ||||
---|---|---|---|---|
| ||||
<subscribers> <subscriber email="mike@example.com" Prefix="" Number="" Name=""> <campo1>Mike</campo1> <campo2>Brown</campo2> <campo3>Example Company</campo3> <campo4>Los Angeles</campo4> <campo5> </campo5> <campo6>90125</campo6> <campo7>CA</campo7> <campo8>US</campo8> <campo9>555 Some Street</campo9> <campo10></campo10> <campo11>555-123-1234</campo11> </subscriber> <!-- repeat for each recipient to import --> </subscribers> |
You can use 0
and 1
in place of true
and false for boolean parameter values.
Note | ||
---|---|---|
| ||
All field values are handled as strings, character '|' (pipe) is not allowed and may lead to "-402" error codes |
SOAP Examples
An example SOAP request to StartImportProcesses
:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?php class MailUpWsImport { protected $ns = "http://ws.mailupnet.it/"; //replace <console host name> with the host name of your console protected $WSDLUrl = "http://<console host name>/services/WSMailUpImport.asmx?WSDL"; protected $headers = array("User" => "user", "Password" => "password"); protected $rCode; private $soapClient; private $xmlResponse; protected $domResult; function __construct() { $this->header = new SOAPHeader($this->ns, "Authentication", $this->headers); $this->soapClient = new SoapClient($this->WSDLUrl,array("trace" => 1,"exceptions" => 0)); $this->soapClient->__setSoapHeaders($this->header); } function __destruct() { unset($this->soapClient); } //... public function startImportProcesses($processData) { try { echo $processData."<br/><br/>"; $this->soapClient->StartImportProcesses($processData); } catch (SoapFault $soapFault) { var_dump($soapFault); } } //... } $WsImport = new MailUpWsImport(); $xmlData = <<<EOT <subscribers><subscriber email="test@example.com" Prefix="+39" Number="3351234567" Name="Test"> <campo1>Luigi</campo1><campo2>Rossi</campo2><campo3>Rossi consulting</campo3><campo4>Parma2</campo4><campo5>PR</campo5> <campo6>43102</campo6><campo7></campo7><campo8>ITA</campo8><campo9>Via Garibaldi, 1</campo9><campo10>0521123456</campo10> <campo11>0521123457</campo11></subscriber></subscribers> EOT; $startImportProcessData = array( "listsIDs" => "4", "listsGUIDs" => "3c5cb08c-f0b5-4bd6-9c2a-b687ecdac8b4", "xmlDoc" => $xmlData, "groupsIDs" => "22", "importType" => "3", "mobileInputType" => "2", "asPending" => '0', "ConfirmEmail" => "0", "asOptOut" => "0", "forceOptIn" => "0", "replaceGroups" => "0" ); $WsImport->startImportProcesses($startImportProcessData); ?> |
C#
Code Block | ||
---|---|---|
| ||
WSMailUpImport toTest = new WSMailUpImport(); Authentication auth = new Authentication(); auth.User = tbLoginUserImport.Text; auth.Password = tbLoginPasswordImport.Text; auth.encType = string.Empty; toTest.AuthenticationValue = auth; string xmlString = "<subscribers><subscriber email=\"mike@example.com\" Prefix=\"\" Number=\"\" Name=\"\"><campo1>Mike</campo1><campo2>Brown</campo2><campo3>Example Company</campo3><campo4>Los Angeles</campo4><campo5></campo5><campo6>90125</campo6><campo7>CA</campo7><campo8>US</campo8><campo9>555 Some Street</campo9><campo10></campo10><campo11>555-123-1234</campo11></subscriber></subscribers>"; string myListId = "8"; string myListGuid = "CC9C4CBD-567B-4248-B56F-7C8364F11C5"; string myGroupsIDs = "45"; int importType = 3; int mobileInputType = 2; bool asPending = false; bool ConfirmEmail = false; bool asOptOut = false; bool forceOptIn = false; bool replaceGroups = false; string retVal = toTest.StartImportProcesses(myListId ,myListGuid, xmlString, myGroupsIDs, importType, mobileInputType, asPending , ConfirmEmail, asOptOut, forceOptIn, replaceGroups); |
...