Uncategorized

Exit RTM Journeys using Exit Criteria – Part 2 using Segments

In the earlier blog, we have seen how we can use Custom Triggers in the exit criteria so that the customers can exit the journey in between when the trigger is activated.

Today we will see how we can do it using Segments. In the Exit Criteria in Journey we have another option as below –

“Exit by segments” — So once the contact gets added to the selected segment then it should exit the current Journey.- this is the expected behavior. As we are considering the same journey flow as we had in part 1 so I will directly jump into the Segment creation part which we will select in the Exit criteria.

Exit Segment #1

As per this, the contacts will get added in this Segment when Is Exit Journey = Yes.

So first in our journey the Contacts will flow till it encounters the 15 min wait time, then we will update the Is Exit Journey column of 3 contacts as Yes as below –

Now the 3 contacts will be added in the segment “Exit Segment#1” as you can see below-

Now in our Journey after execution of wait block it will look like below-

4 contacts will move ahead and 3 contacts are exited as it gets added to the “Exit Segment #1” segment.

In this way we can make use of Segments to exit from the Journeys based on respective segments.

Hope this helps!

Happy D365 Marketing!!

Uncategorized

Use Dataverse Table Create/Update operations in Custom Trigger to add wait in the Real Time Journeys!

In the last blog we saw how we can use Custom Triggers to wait in the RTM Journeys and send the data to Azure Service Bus and then executing the “WaitTrigger” using OrganizationService Request move ahead in the Yes branch. Today we will look into another approach where instead of executing the WaitTrigger through code how we can use Dataverse table to serve the purpose.

So first create the custom trigger following below steps –

  1. Go to Dynamics 365 Marketing App — Real Time Marketing Area — Triggers — Click on New Trigger. You will get 2 options-

2. Give name to the trigger suppose “IsAssigned” and select the first option “When a record related to a customer(Contact or lead)” is created or updated, and click Create.

3. Here we need to select the table having lookup of Contact or Lead. In our case we will select Assignment Table as we have lookup of Contact on it. The next thing to select is “When is the trigger activated?” As you can see we can select Create record, existing update or even any of the both. For our scenario we will select “An existing record was updated”

4. After that we will select the attribute on update of which we want the trigger to fire in the options” Which attribute updates should activate the trigger?” which displays the attributes of the selected table. Then click on Ready to Use.

5. After that we will move to the RTM Journey and add the option Respond to Action and select the Wait for – A trigger is activated and Choose the above trigger “IsAssigned”. After that add the condition which it should satisfy like Is Assigned = Yes in our case.

6. Now when the journey is live it will wait for the respective action to get completed i.e. within the time limit specified in the wait condition, in our case it will wait till the IsAssigned trigger is activated. And once the related “Assignment” record is updated the respective customer will flow in the Yes branch as below –

Above example we have given using Contact level audience, same can be achieved even for the Lead level records.

Hence to conclude, this was an alternate approach where using the contact/lead related table itself in the Custom Trigger we can have the wait condition achieved in the RTM Journeys !!

Happy D365 Marketing !!

Uncategorized

Tip – Working with Custom Triggers, Azure Service Bus in D365 Marketing!!

Custom Triggers in Real Time Marketing helps us to achieve different Integrations with multiple system and the contacts in D365 Marketing. There by helping to facilitate the Journeys through various channels and systems. Today I will explain here one of the use case which I recently came across.

I had a requirement where I had to assign the available Offers(Table) to the contacts entering the Journey. And on successful assignation of Offers we had to continue the journey to send the related offers through Email.

So here I decided to have one custom trigger “Grant Offer” to be called in Journey as below –

And then when the custom trigger gets called pass the data to Azure Service Bus through Endpoint Integration with D365 Marketing.

Reference for Azure Integration and registering Service End using Plugin Registration Tool- https://learn.microsoft.com/en-us/power-apps/developer/data-platform/walkthrough-configure-azure-sas-integration?view=op-9-1

So basically as explained in the blog we had registered Plugin Step on the Service Endpoint with the message set to “msdynmkt_grantoffer_XXXXX” which is nothing but the Custom Trigger which we had created in RTM(Real Time Marketing).

It was ok till this point, the real challenge was with the further requirement where we had to wait till the Offer records are updated with the contact lookup entering the journey. As we were sending the value of this offer record in the Email so we had added a wait condition for 5 minutes as below –

This was ok till the count of Contacts entering the journey was less like 50-100. Actual problem started when the record count in journey increased. I mean lot of messages were posted to the queue and the processing time was more than 5 mins. So what happened is the contacts started receiving Empty Offer values in the email as the wait time of 5 minutes was completed for that particular contact and it was still not processed by the ASB (Azure Service Bus) listening application.

Increasing the Wait Time to 1 hour or such would have caused all the contacts in the journey to wait till the specified time. So this was not efficient and expected as every contact was forced to wait for 1 hour till it completes the processing.

After checking the available options, I found that we can use a custom trigger to achieve this. There is an option “Respond to an action” which can give us way to use another trigger as shown below –

After adding the above step we get below screen to configure the setting –

After selecting the “A trigger is activated” option in Wait for condition and selecting the new trigger “Wait till Offer Granted”, I got the option to select the attribute “IsAssigned” which I had created as parameter for the “Wait till Offer Granted” trigger. So I configured the condition as shown below

As you can see here there is Time Limit selected as 5 hours so it means at the max it will wait till 5 hours and then it will proceed to “No” branch.

Further, the most important change I had to add was the logic to call this new trigger “Wait till Offer Granted” from my ASB listener application, just after the Offer record was updated with contact lookup, just how we usually execute any OrganizationRequest in CRM C# application.

Also, one more highlighting part here is the bindingid attribute which I had used while calling the wait trigger by passing the value of parent journey id i.e. of “Offer Send Journey”. This makes sure that the “Wait Till Offer Granted” trigger only activates for the related parent journey and not any other journey where the same wait trigger is used.

And then guess what moment the trigger was called for particular contact in the journey it worked like charm! The contacts just started flowing in the Yes branch and I was able to manage my logic using another Custom Trigger. The Wait limit of 5 hours was just used to make sure my ASB listener will complete the process for the contacts flowing in the journey.

Hope this approach helps you next time you try to incorporate WAITS in your Journeys in RTM.

Cheers!!