0

My business partners want an Anniversary journey (based on when a consumer came into our Welcome journey).

The welcome journey is based on campaign data from SF since we do have the MC connector.

However, when the welcome journey was set up, the team did not bring in any kind of “create date” to mark the date someone entered the welcome campaign.

The underlying DE created by the journey does not have a primary key on it. However, they do have subscriberkey which is really unique. It's just not marked as a primary key.

I don't want to create a new DE as I don't want to disrupt the welcome journey. I just want to make the welcome journey DE usable for an anniversary journey.

I was able to add a CreateDate field to the underlying DE and make it start populating with current date.

I thought I might create an SJSS script to populate create date for all the other records in the DE.

However, without a primary key, I’m not sure I can do so. Can I?

2

First, the best practice is to never use a data extension for multiple journeys. It can be done, but really can cause headaches later because of dependencies. Here's my recommendation:

  • Create a new entry data extension just for the anniversary journey and key it however you feel is necessary.
  • Create an automation with a query that copies over data from the welcome journey on a daily basis with criteria for the Created Date field so you're only pulling over new records from the previous day.
  • You can can also back fill the Created Date via the query for those that do not have such date currently

This way you separate the data, have full control of the data manipulation, and can run the anniversary journey with little worry about any issues from the welcome journey.

1

As to best practices, etc. I cannot say this is the BEST option to take, but you should be able to update via the Rows.Update SSJS as long as you have an identifier.

For example, if you have a date that is attached to each of the Subscriber keys, you can use the following SSJS to update:

var dE = DataExtension.Init("my_DE");
var update = dE.Rows.Update({"EntryDate":yourDateVar}, ["SubscriberKey"], [yourSubKeyVar]);

Now you would need to define the DE var, Date var and SubKey var prior to the above script, and judging from the fact you need multiple, I would look at utilizing a for loop around it to iterate through each.

That being said, depending on the volume of records you need to update - you may need to pay attention to the time out policy (30 mins) and adjust accordingly.

If you have a 'group' flag or something that you can update multiple at once, it would be much better for processing.

e.g.

var dE = DataExtension.Init("my_DE");
var update = dE.Rows.Update({"EntryDate":yourDateVar}, ["Group"], [1]);

Which would update all those with a value of 1 in Group with that date - increasing the payload per action, reducing the total processing and frequency of processing.

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.