0

I have a non-sendable data extension 'News' that gets updated via API. This DE contains records that have no relationship to my subscribers. This DE also contains no date fields.

Whenever a new record gets added into 'News' DE, I want to fire off an email and a push notification to a separate subscriber data extension, which will be updated daily via query activity.

Is it possible to do this using Journey Builder, using a decision split somehow? I've also thought about merging the two DEs using a Union query, and thus creating my entry extension. However, subscribers will be added at a rate faster than news, and I don't want to trigger an email when a new subscriber is added, only when a new 'News' row gets added.

What is the best way to go about doing this? Thanks!

  • 1
    Are you wanting to refer to the single new News DE event to contacts in your email/notification? Are you happy for the email/notification to be sent as part of an Automation (batch) every hour, or so? The process that's populating the News DE, could it perform a different API call, other than adding a DE record? – Macca Aug 13 '17 at 9:18
  • I would like to refer to the single new News DE event to contacts in your email, yes. I think I'll need to add a data field to this News DE with a default value of current date. And refer to this in a decision split that only sends out notifications if date is today (ie. a new record was added), and then run the journey/automation hourly or daily. As for your point regarding API - that's what I'm looking into but so far, don't think I can count on using API for this. Thanks for your reply. – Kat_43364 Aug 14 '17 at 2:05
  • So, did you settle on any way forward? – Macca Aug 16 '17 at 13:39
  • Thank you for the detailed solution, Macca, apologies for the delayed response. I modified it slightly, but your solution definitely works. Appreciate your help here! – Kat_43364 Aug 25 '17 at 16:45
1

Your challenge is going to be what you actually need to do from your external application is orchestrate a number of operations in Marketing Cloud that cannot be initiated by simply adding a row to a Data Extension. The principal operations you would need to complete would be:

  1. Add News Event data to a Data Extension
  2. Perform a Query Activity to join all your contacts subscribed to updates to the new News Event that inserts to your Journey Builder Event Entry Data Extension
  3. Fire these new events into your Journey Builder Interaction using Automation Studio

There are probably a number of possible solutions, but I would contend that the simplest one would be to schedule an Automation that’s scheduled to run periodically throughout the day.

Although you could conceive of other more 'realtime' solutions, they would likely involve more complexity. For example, you could build a landing page in Cloud Pages that acted as an API for your client application that carries out much of the actions required; add to DE, run a query, fire an automation... There would be other considerations like securing the page so that only your application could access it or dealing with concurrent calls where more than one news event arrived in quick succession... It would be somewhat more complex than the Automation approach outlined below.

Scheduled Automation

1. News Event Updates Add a “Date Added” field to your News Events Data Extension. Data type should be Date, it should be nullable (not required) and should default to the current date and time. Add a “Status” field to the same Data Extension. This field should have a data type of “Text(10)”, be nullable and have a default value of “Added”.

enter image description here

2. Event Entry Data Extension Create an Event Entry Data Extension in Contact Builder or in the Email Application. This Data Extension should be Sendable. It should ideally contain all the fields you need for personalisation of your messaging, including the unique identifier for your News Event. The Data Extension should have NO primary key.

enter image description here

3. Journey Injection Query Activity Create a new Query Activity that selects all your subscribed contacts joined to all newly added News Events. You’ll need to add your own specifics, but the pseudo code would look something like this:

SELECT
    c.SubscriberKey
    ,c.Email AS EmailAddress
    ,c.FirstName
    ,e.EventID
FROM
    Customers c INNER JOIN
    NewsEvents e
        ON  e.DataAdded > GETDATE() -1 AND
            e.Status = 'Added'

The "Data Action" for the Query Activity should be "Append" and the target Data Extension should be your Event Entry Data Extension.

4. News Event Update Query Activity Create a new Query Activity that will run following the one in step 3. It will mark News Event that's found its way into the Event Entry Data Extension so that articles/news events are not processed on successive runs. This query has an update type of "Update" and would look something like this:

SELECT DISTINCT
    ee.EventID,
    e.Title,
    'Processed' AS Status
FROM
    NewsEventEntry ee INNER JOIN
    NewsEvents e
        ON  e.EventID = ee.EventID
WHERE
    e.Status = 'Added'

5. Journey Builder Interaction Create a new Journey Builder Interaction with the entry source set to your Event Entry Data Extension.

6. Automation Studio Configuration Edit the Automation created by your Journey Builder Interaction (Step 5). Add your two queries created in steps 3 and 4 before the system generated Journey Entry Audience activity, save and reschedule the Automation:

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.