[SalesForce] How to update an existing Marketing Cloud Subscriber using the SOAP APi

I am trying to figure out how to use the SOAP API to update an existing Marketing Cloud subscriber's email address. I've tried different permutations of the below request (with Create and Update action) and although the response is successful, it does not update the record.

In the example below, my All Subscribers list as the id 52.

Please can someone check?

<SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Header>
        <fueloauth
            xmlns="http://exacttarget.com">77fMQroSJGVTIvmiOCxCuNWF
        </fueloauth>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <ns1:UpdateRequest>
            <Options>
                <SaveOptions>
                    <SaveOption>
                        <PropertyName>*</PropertyName>
                        <SaveAction>UpdateAdd</SaveAction>
                    </SaveOption>
                </SaveOptions>
            </Options>
            <ns1:Objects xsi:type="ns1:Subscriber">
                <ns1:Attributes>
                    <ns1:Name>EmailAddress</ns1:Name>
                    <ns1:Value>simon@sausage.com</ns1:Value>
                </ns1:Attributes>
                <ns1:SubscriberKey>1234</ns1:SubscriberKey>
                <ns1:Lists>
                    <PartnerKey xsi:nil="true"/>
                    <ObjectID xsi:nil="true"/>
                    <ns1:ID>52</ns1:ID>
                </ns1:Lists>
            </ns1:Objects>
        </ns1:UpdateRequest>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Best Answer

I was able to get it to work with this SOAP envelope -- without specifying the Lists:

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope>
   <s:Header>
      <!-- REMOVED -->
   </s:Header>
   <s:Body>
      <UpdateRequest>
         <Options>
            <Client>
               <ID><!-- MID GOES HERE --></ID>
            </Client>
            <SaveOptions>
               <SaveOption>
                  <PropertyName>*</PropertyName>
                  <SaveAction>UpdateOnly</SaveAction>
               </SaveOption>
            </SaveOptions>
         </Options>
         <Objects xsi:type="Subscriber">
            <Client>
               <ID><!-- MID GOES HERE --></ID>
            </Client>
            <PartnerKey xsi:nil="true" />
            <ObjectID xsi:nil="true" />
            <EmailAddress>spriggsa@digitalev.com</EmailAddress>
            <Attributes>
               <Name>Email Address</Name>
               <Value>spriggsa@digitalev.com</Value>
            </Attributes>
            <SubscriberKey>aspriggs@degdigital.com</SubscriberKey>
         </Objects>
      </UpdateRequest>
   </s:Body>
</s:Envelope>
Related Topic