[SalesForce] Can we extract data of contacts that entered a journey and are not a part of email activity in Journey builder

-I am trying to extract data of contacts who entered the journey and who exit the journey as a reminder group and passed through wait by duration activity before flowing out of journey.
-These contacts are not a part of any activity like email.
-I am trying to query in data views and not able to find any table when this information is capture. Can anyone help with a query to identify these contacts.

enter image description here

Best Answer

The available data views for Journeys are only centered around Email interactions (which does make sense). There is nothing relating to other interactions inside of the Journey Builder process there. This means these are fairly useless for your use case.

Most Data Views are derived from the same place as the API endpoints that are available. So that is definitely a place to explore. This would require some knowledge of scripting, REST API, JSON parsing/handling and Automations. If this sounds like more technical than you are prepared to handle, then there is another option for future journies that you can use.

NonTechnical Answer: You can set up a Journey 'log' Data Extension using 'Update Contact' interactions along the way to correctly note where they are currently in the journey. But this is something that is required to be set up beforehand and requires added storage and steps into a journey on every single journey you want to track.

Technical Answer: Create a script activity that uses the REST API, filtering based off JourneyID, to grab the interactions that each person has taken inside that journey. This can also be handled off-platform if desired.

As a note, this has a max of a 30 day lookback, so it will not show anything beyond 30 days old. In order to get a complete picture, you will need to script an automation that is run in intervals to collect deltas of new activities to add to those that already are recorded.

Example REST API CALL:
URL: POST /interaction/v1/interactions/journeyhistory/search
Payload:

{
    "definitionIds": [
        "06d6f3f6-4532-4fb3-908c-xxxxxxxxxxxx"
    ],
    "start": "2019-10-23T12:29:11.882Z",
    "end": null,
    "extras": "all"
}

Example SSJS Function:

function journeyHistoryReturn(restBase,authToken,definitionID,start) {
    var url= restBase + '/interaction/v1/interactions/journeyhistory/search';
    var contentType = 'application/json';
    var payload = {
    "definitionIds": [
        definitionID
    ],
    "start": start,
    "end": null,
    "extras": "all"
};
    var headers = ['Authorization'];
    var headervalues = [authToken];

    var results = HTTP.Post(url, contentType, Stringify(payload), headers, headervalues);

    return results.Response;
}

*Note that this function will require you to already have gathered an authToken from your auth url prior to usage.

Related Topic