Track contact progress in the customer journey

customerjourneyI would like to continue my set of articles about Dynamics Marketing, and today I want to tell you how you can track in which part of customer journey your contact is. I have several customers who asked about this feature, and we’ve found a quite simple and supported way to implement this functionality. In case you have similar requirements please use below solution to achieve it.

Requests to product group: Please provide the ability to report on where is the contact in the customer journey

The idea is to use custom tiles. As you know, you can create custom tiles for Dynamics Marketing customer journeys. Usually, you might need it if you want to integrate some custom channels into your marketing campaigns like sending SMS as an example. To learn more on how to create custom tiles, you can use the following article: Create a custom channel for the customer journey.

I’m not going to explain how to create custom tiles as this topic is very well described in the Microsoft documentation; however, I will provide some additional information which might be useful during implementation.

I would like to focus on how these custom tiles can help you with the defined issue. The idea of custom tiles is to provide you the possibility to integrate your logic into the customer journey process. During custom tile creation, you need to configure the entity which will be used during this custom tile execution. This works the same way as you configure your Segment tile as an example. You have to choose the segment which will be used for this particular segment tile right? Or if you want to send an e-mail, you need to define e-mail template in specific tile. So for our custom tile, we need to create our custom entity. This means that we can create some custom TrackCJStatus entity with different instances according to customer journeys and branches you have and choose different entity instances for different customer journeys branches. Later during the execution in your plugin, you can easily collect on which branch and stage in the customer journey your contact is.

Let’s review how custom tiles execution works and where you should register your plugin.


In the process above, you can see that once the customer journey workflow reaches your custom tile, it will create several system entities. The latest created object will be msdyncrm_customerjourneycustomchannelactivity. This entity should be used to register your custom plugin and will be generated with some values which can be used to identify where in the customer journey you are. The most important for you here is msdyncrm_entityid. This field provides you an id of your custom entity which you’ve chosen in the customer journey editor. This Id will be different for different branches as you’ve chosen different entity instances here. It is also quite easy to find appropriate contact as it also defined in this entity. As you see, by using standard functionality to extend the customer journey, we can easily track on which stage of the customer journey and on which branch we are. I hope you’ve got the idea and it will help you to resolve the issues you might have.

Leave a Reply

Your email address will not be published. Required fields are marked *