Discussions
Eloqua Bulk Contact Export - Subscription info

We've got a request from our business to provide an export of all contact's subscription information (email group level). Purpose: they want to import it in their BI solution to analyze certain scenarios.
What's the best way of retrieving this info from Eloqua in bulk? Anybody ever attempted such thing?
Answers
-
Simon - have you looked into the Bulk API? I haven't used the API for email groups, but the documentation is here: REST API for Oracle Eloqua Marketing Cloud Service - Retrieve an email group
~Kevin
-
Hi Simon,
I have the same question as you do.
It seems that it is not possible to get subscription information using BULK API. However, REST API has an endpoint /data/contact/<contactId>/email/groups/subscription that you could use as a last resort (depending on the number of contacts you have). If you called this endpoint asynchronously with different contactId you would get contact subscription information pretty quickly.
-
One way to retrieve email group subscriptions via the Bulk API would be creating shared filters, then using the EXISTS operator with the shared filter id in the Bulk API export definition filter.
First you'd need to create Shared Filters using the "Subscribed To Groups" filter criteria for each email group.
To retrieve the shared filter id, you'd use the Retrieve a list of contact filters endpoint, where you'd also be able to search by name.
Request:
GET /api/bulk/2.0/contacts/filters?q=name=Subscribed*
Response:
{ "items": [ { "name": "Subscribed - Newsletter", "count": 0, "statement": "{{ContactFilter[100072]}}", "uri": "/contacts/filters/100072", "createdBy": "Lou.Patrick", "createdAt": "2017-08-17T22:50:24.8700000Z", "updatedBy": "Lou.Patrick", "updatedAt": "2017-08-17T22:50:24.8700000Z" } ], "totalResults": 1, "limit": 1000, "offset": 0, "count": 1, "hasMore": false}
Next you'd create the export definition to retrieve the contacts subscribed to the email group:
POST /api/bulk/2.0/contacts/exports{ "name": "Contact Export - Subscribed to Newsletter", "fields": { "EmailAddress": "{{Contact.Field(C_EmailAddress)}}" }, "filter": "EXISTS('{{ContactFilter[100072]}}')"}
Then you'd just sync, and retrieve the contacts that are subscribed to the email group indicated by the filter, then repeat for each email group.
For more information about the EXISTS operator see:
- Eloqua Expression Language ("Existence Operators" section)
- Filtering (There are few examples of EXISTS operators being used)
-
The older API documentation including the developer changelog seems to be unavailable since last weekend. All links return a 404.
Will this be reestablished, @Lou Patrick?
Post edited by Unknown User on -
It's not just me , I also couldn't get the documentation anymore since this week.
-
That's how we are currently dealing with it, indeed. Shared filters with a name prefix, then run exports of all contacts per filter.
-
Hi Lou - Any ideas on how to also get the Email Group Subscription Date returned via the API? We not only want to retrieve the Email Group status for contacts in bulk, but also the Subscription or Unsubscription Date/Time associated with it. Thoughts?
SR
-
Hi Lou - Any ideas on how to also get the Email Group Subscription Date returned via the API? We not only want to retrieve the Email Group status for contacts in bulk, but also the Subscription or Unsubscription Date/Time associated with it. Thoughts?
SR
-
Currently there is not a way to retrieve the date/times. I'd suggest voting up this idea, which would enable retrieving date/times for email group subscriptions.