BulkUpload

This document is used to transfer larger (> 1,000) subscriber lists to Informz for processing. The processing options are:

  • AddOrUpdateSubscribers
  • ReplaceAllSubscribers
  • RemoveSubscribers
  • ​UnsubscribeSubscribers
  • ResubscribeSubscribers

Upon the completion of the upload process, an email notification is sent to any email addresses listed in the StatusEmailRecipients node.

Request

<ActionRequest xmlns="http://partner.informz.net/aapi/2009/08/">
  <Password></Password>
  <Brand id="xxxx">\</Brand>
  <User></User>
  <Actions>
    <BulkUpload>
      <UploadDetails>
        <InterestDetails>
          <InterestAction>ResubscribeSubscribers</InterestAction>
        </InterestDetails>
        <StatusEmailRecipients>
          <Email>yournamehere@informz.com</Email>
        </StatusEmailRecipients>
      </UploadDetails>
      <FieldDefinitions>
        <FieldDefinition>
          <Name>Email</Name>
          <DataType>string</DataType>
          <ColumnIndex>1</ColumnIndex>
          <FieldType>Email</FieldType>
        </FieldDefinition>
      </FieldDefinitions>
      <Data></Data>
    </BulkUpload>
  </Actions>
</ActionRequest>

Request with Demographic

<ActionRequest xmlns="http://partner.informz.net/aapi/2009/08/">
 <Password></Password>
 <Brand id="9999">Test Brand </Brand>
 <User></User>
 <Actions>
  <BulkUpload>
   <UploadDetails>
    <InterestDetails>
     <!-- 0 to n interest names -->
     <InterestNames>
      <InterestName>Test Interest</InterestName>
     </InterestNames>
     <!-- choices are AddOrUpdateSubscribers, ReplaceAllSubscribers or RemoveSubscribers-->
     <InterestAction>AddOrUpdateSubscribers</InterestAction>
    </InterestDetails>
    <StatusEmailRecipients>
     <Email>yournamehere@informz.com</Email>
    </StatusEmailRecipients>
    <ColumnDelimiter>,</ColumnDelimiter>
    <HasFieldsEnclosedInQuotes>1</HasFieldsEnclosedInQuotes>
    <!-- special column indexes that used to be here replaced with FieldDefinition FieldType-->
   </UploadDetails>
   <FieldDefinitions>
    <FieldDefinition>
     <Name>Email</Name>
     <DataType>string</DataType>
     <ColumnIndex>1</ColumnIndex>
     <!-- choices are PersonalInfo (default), Email, ID, Source, NewsFormat (maybe Interest and Demographics later?) -->
     <FieldType>Email</FieldType>
    </FieldDefinition>
    <FieldDefinition>
     <Name>FirstName</Name>
     <DefaultValue>Valued Customer</DefaultValue>
     <ColumnIndex>2</ColumnIndex>
     <FieldType>PersonalInfo</FieldType>
    </FieldDefinition>
    <FieldDefinition>
     <Name>API_States</Name>
     <DefaultValue>NY</DefaultValue>
     <ColumnIndex>3</ColumnIndex>
     <FieldType>Demographic</FieldType>
     <DemographicType>State</DemographicType>
    </FieldDefinition>
   </FieldDefinitions>
   <Data><![CDATA
   heck@informz.com,Tim,NY
   vincent@informz.com,Jason,NY
   shaw@informz.com,"Paul",NY
         ]]></Data>
  </BulkUpload>
 </Actions>
</ActionRequest>

Details

Node Type Req'd? Unique? Description
<UploadDetails>
String True NA Details of the file format used in the BulkUpload
<UploadDetails>   <InterestDetails>      <InterestNames>        <InterestName>
String True The interest(s) that all of these subscribers will be assigned to or removed from depending upon the UploadAction used. You can use multiple InterestNames
<UploadDetails>   <InterestDetails>     <InterestAction>
String True NA Choices: AddOrUpdateSubscribers, ReplaceAllSubscribers, RemoveSubscribers
<UploadDetails> <StatusEmailRecipients>
String True True The email(s) addresses to send the status message regarding the bulk upload once it is complete. Use <Email/> in the tag if you do not wish to include a value
<UploadDetails> <ColumnDelimiter>
String True NA The column delimiter character used in the file.
<UploadDetails> <HasFieldsEnclosedInQuotes>
Bit True NA Are values enclosed in quotation marks? This can be applied to any or all incoming columns. Even if this element is set to True, quotations are not required in the data itself.
<UploadDetails> <RemovePersonalInfoIfBlank>
Bit False NA Should existing personalization values inside Informz be blanked out for personalization values included in this upload? Assumes False or NO will NOT
<UploadDetails> <ColumnIndex>
Integer False True The column where the unique record identifier from the partner application resides.
<FieldDefinitions>
NA True NA Details of each field in the incoming file. Not all columns in the incoming file have to be used by Informz. Columns are ignored if they are not identified in the FieldDefinitions.
<FieldDefinition>  
<Name>
String True True The corresponding personalization field in Informz. If the field does not exist it will be created. The name ‘Email’ is a reserved name to indicate the column that contains the email address. Only one column can be defined as ‘Email’.
<FieldDefinition>  
<DataType>
String True False Choices: String, Integer, Float, Date
<FieldDefinition> <DefaultValue>
String True False A default value to use if the column is blank.
<FieldDefinition> <ColumnIndex>
Integer True False Which column contains the defined value. First column is column 1.
<FieldDefinition>  
<FieldType>
String True NA If left blank, the default value is PersonalInfo, other possible values are Email, ID, Source, NewsFormat and Demographic.
<FieldDefinition>  <DemographicType>
String True NA Available demographic types. Possible values: Standard, State and Country. Default is Standard type.
<FieldDefinition>
<IsMultiple >
String True NA For default is false. Possible values true and false.

Notes

  1. Email address must be the first entry in the Data Record, ID is the second entry.
  2. If when using ReplaceAll no "replacement" subscribers are included all subscribers are removed from the interest.
  3. It is presumed that there will not be a header row in the file.
  4. Data in the <Data> tag needs to be "XML-safe". This can be done either by using CDATA sections as shown in the example above or by HTML encoding the text.
  5. Leading and trailing blanks will be trimmed from the field.
  6. Field definitions are ignored when using the RemoveSubscribers Interest Action.
  7. The only fields updated are those defined in FieldDefinitions.
  8. If the ColumnDelimiter tag isn't included, the delimiter will default to a Tab.
  9. Incoming email addresses are converted to all lowercase.
  10. The BulkUpload request supports characters in the ANSI character set.
  11. Do not use the same interest in both the <InterestDetails> and <Data> nodes, as this will produce duplicate interests in the Subscriber Details pop-up.
  12. Demographic field:
    1. When new demographic is created the proper target groups is created also.
    2. Default demographic type is – Standard.
    3. When you choose State or Country type along with custom demographics the set of available states or countries will be created too.
    4. Field name is responding to Demographic category name.
    5. Setting the type is important only if you want to create new demographic category. If you want to extend existing one DO NOT use State or Country types.
  13. To explicitly include a Tab column delimiter use the format below:     
        <ColumnDelimiter><![CDATA[      ]]></ColumnDelimiter>

Response

The response to a BulkUpload indicates the success or failure of the action:

<?xml version="1.0" encoding="utf-8"?>
<ActionResponse xmlns="http://partner.informz.net/aapi/2009/08/">
  <Brand id="xxxx"></Brand>
  <User></User>
  <Responses>
    <BulkUpload>
      <UploadID></UploadID>
      <ActionStatus>
        <Status>success</Status>
        <Message>Data submitted.</Message>
      </ActionStatus>
    </BulkUpload>
  </Responses>
</ActionResponse>