0

I am trying to retrieve specific Subscriber details using an API request. The details are:

<Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Header>
        <fueloauth>{{Token}}</fueloauth>
    </Header>
    <Body>
        <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
         <RetrieveRequest>
            <ObjectType>Subscriber</ObjectType>
            <Properties>ID</Properties>
            <Properties>CreatedDate</Properties>
            <Properties>Client.ID</Properties>
            <Properties>EmailAddress</Properties>
            <Properties>SubscriberKey</Properties>
            <Properties>Status</Properties>
            <Properties>UnsubscribedDate</Properties>
            <Properties>EmailTypePreference</Properties>
            <Filter xsi:type="SimpleFilterPart" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
               <Property>ID</Property>
               <SimpleOperator>equals</SimpleOperator>
               <Value>{{myID}}</Value>
            </Filter>
         </RetrieveRequest>
      </RetrieveRequestMsg>
    </Body>
</Envelope>

If I remove the filter, I get what I assume is all Subscribers, so I know the format of the request works. But when I do filter all I get is an OK. The IDs I need to filter on are being provided to me by in one of two ways:

  1. The much preferred method: a merge field for the Subscriber ID is added onto an URL in an email I receive.

  2. Alternatively, Subscriber details are regularly added to a Data Extension using automation studio, which I then I'm able to successfully get its contents via an API request. The query used in automation studio is:

SELECT
     j.JobID
    ,j.EmailName
    ,s.subscriberID
    ,s.SubscriberKey
    ,CONVERT(varchar, s.EventDate, 103) as 'EventDate'
FROM [_Job] j
INNER JOIN  [_Sent] s ON  j.jobID = s.jobID
WHERE
s.EventDate > dateadd(d,-30,getdate())

Neither approach seems to give me IDs I'm able to filter on. Is there a different approach here I should be taking? Unfortunately I have no access via the SFMC front end - I'd have to pass instructions on -, only via API requests.

I've looked in:

2
  • How does the Subscriber ID value you get look? Only contain numbers there? Is there any characters?
    – Duc Le
    May 9, 2023 at 13:45
  • @DucLe they look like 10 digit numbers
    – dlp_dev
    May 9, 2023 at 14:35

1 Answer 1

0

s.subscriberID field from the data extension should give {{myID}} which is filterable in SOAP API retrieve call.

I assume that you don't see any records through automation studio and if this is right, there are chances that you are running the query in automation studio from a wrong business unit. Did you try adding Ent. Prefix to the data views like the query below:

SELECT j.JobID ,j.EmailName ,s.subscriberID ,s.SubscriberKey ,CONVERT(varchar, s.EventDate, 103) as 'EventDate' FROM Ent.[_Job] j INNER JOIN Ent.[_Sent] s ON j.jobID = s.jobID WHERE s.EventDate > dateadd(d,-30,getdate())

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .