Categories: Dynamics Marketing
*** NOTE: ALL INFORMATION IS ACCURATE AT DATE OF PUBLISHING ***

For my own website, I have a way for people to subscribe to different categories of blog posts. I give them a subscription page and the option to select which types of content to receive. I appreciate that not everyone is interested in all of the areas I cover, so they can select accordingly so that when a new blog post hits my RSS feed, an email goes out to only those who want that kind of content. ClickDimensions has an RSS Feed connector, essentially giving users the ability to create the same kind of experience. D365 Marketing does not, BUT now with Real-time Marketing I figured out a way that we can achieve this. I use WordPress and make sure each blog post has its own category, so I am approaching this from that perspective. Sorry, this is a long one, but there are a lot of important parts to get right to make it work. Read on to find out how!

Subscription Lists

The first thing we need to do is set up subscription lists from the Outbound Marketing area. These are basically marketing lists with a fancier name. For my example, I have set up a different subscription list for each category I have in WordPress. Make sure you keep the subscription list name the exact same wording as you have on your category in WordPress so there is a match (important later on for our customer journey).

Click to view in detail

We can see now that I have all of my subscription lists set up which matches the list of categories I use for my blog here.

Click to view in detail

Marketing Forms

Next, we need two different marketing forms created from within the Outbound Marketing area. If you’ve been using D365 Marketing for some time it’s likely you might already have these. One Marketing form is going to be created with the Form type of Subscription center, and the other with the Form type of Landing page. They will be very similar with just a few slight differences which I will point out. The landing page one will be prominent on your website and give people the ability to register and opt-in as a new Contact, so someone signing up to get your content for the first time. The subscription center one will be linked to from the bottom of each blog email that goes out and will give an existing Contact the option to manage their preferences and opt-out if required. Each form will include First Name, Last Name, and Email address. Then, all of the subscription lists created in the last step will need to be added to each form.

Click to view in detail

It should then look something like this on the form. You can rename the label for the subscription list boxes if you want, and add whatever text is appropriate for the forms.

Click to view in detail

For this one, I would also suggest setting double opt-in. More on this in another blog (coming soon), but make an email that you can use as a confirmation email so that when someone fills out a form their preferences are not updated and set on their record until they have clicked the link to confirm they wanted to opt-in. This will make sure a cookie is set in their browser (which tracks email opens etc. against their Contact record) unless of course, they are blocking all cookies.

Click to view in detail

On the form that has the type of Subscription center you will also need to add the Do not email me form field, which maps to the Do not allow Bulk Emails field on a Contact record. This gives the Contact the ability to opt-out if they want to stop getting content from you. The Prefill fields on the Summary tab will be set to Yes. For this one

Click to view in detail

The landing page type form can be identical but does not need the do not email form and the text on the button can be worded slightly differently from the subscription center form. The prefill fields on the Summary tab will be set to No.

Click to view in detail

Finally, to get the forms live on your website, I suggest using form hosting and add the script that is provided. This is generated once you have made the form live, then clicked on the form hosting tab that appears. Click New Form page and save the record. Go into it by clicking on it’s name in the grid, then copy the code and add it to your website (or ask your site administrator for help!). For me, this is the best and fastest way for getting your marketing forms on your site all while keeping your branding consistent. Do this with both forms, adding to two separate pages and making note of the urls. I would suggest the one that is the subscription center form you add to a page that you then exclude from being found on your site search and block from being found on search engines. The other page you can link somewhere on your website to encourage people to sign up and subscribe to your content.

Click to view in detail

Event Triggers

Next, we need to create an event trigger in Real-time Marketing. In the Event triggers area, click on New event. This is where we will set up the trigger that will gather up information about a new blog post from an RSS feed that we can then use in a marketing email and a journey. Give the trigger a title and a description.

Click to view in detail

At the bottom of the screen is where we will add the attributes. These are going to be the fields where we store information from the new blog post in an RSS feed. What you can get from the feed depends on your own website, but for me, I am going to store the post title, description, category, and URL. Move on to the next screen.

Click to view in detail

For the next screen, just ignore this and click Next. We are not doing anything with code here.

Click to view in detail

Finally, mark it as ready to use. Until this is done it cannot be used anywhere else within the system. You are now done with the Event trigger.

Click to view in detail

Real-time Email

Now that the Event trigger is live, the next thing to create is an email in the Real-time Marketing area. Creating emails here is very similar to in Outbound Marketing but now when adding personalisation we get access to add in values from an event trigger. Set up your email and make sure you add in the Post Title, Post Description, and Post URL at a minimum. This is the email that will let someone know about your new blog post. Simply select from the Personalisation button like you would in Outbound Marketing, but look for the Event trigger section and then the new Event trigger you created.

Click to view in detail

After adding Post Title, you can highlight it, then click on the link option, and then look for the Post URL value from the trigger. This will mean the Contact can click on the post title and it will open up a browser to access it.

Click to view in detail

At the bottom, add in something like ‘Update or Manage your preferences’. Then highlight it and add in a URL, and put the URL from your website where you added your marketing form that is the type of Subscription Centre. The message designation (in Email Settings) has been set as transactional. I view this as I am sending it because someone has requested it, but you need to make your own decisions and check with laws in your area as to how you can handle this.

Click to view in detail

This is my final email template example. I’ve also included the category at the bottom of the email to make it clear to the email recipient why they are getting the email from you.

Click to view in detail

Power Automate Flow

In order to make the Event trigger run, we need to create a flow using Power Automate. The first initial step is a trigger from the RSS Feed connector when a feed item is published. Put in the URL for your RSS feed.

Click to view in detail

Next, I have three actions called Initialise Variable. This is to pass through values from the feed. I want to keep it all neat and clear. Give each variable a name and add the right value from the RSS feed step above. I’ve got Feed Title, Feed URL, and Feed Summary (which is the description in my email template). All three are the type of string.

Click to view in detail

Then I have two more Initialise Variable steps but this time I am not populating them with anything yet. One is for Category and the other for Marketing List. Both are the type of string.

Click to view in detail

Next, we need an Apply to each step. Add Feed categories into the output box. In theory, you could have more than one category on a blog post which is why this is needed. I only ever put one category on my blog posts which is why this whole process can work well. If you do more than one, sorry, you are on your own with the best/right approach! Now add an action called Set Variable. Pick the Category variable from the list, and then use Current item from the list of dynamics variables.

Click to view in detail

Remember when we set up the subscription lists? And we gave them the same name as categories in WordPress? Well, now we can do a List rows action to find the right marketing list that has the same name as the category on the new blog post from the RSS feed. Look for the table name of Marketing Lists and in the filter rows field, put (listname eq ”) and make sure you add your Category variable in between the single quotes.

Click to view in detail

In the next step, we are going to do another Apply to each. We want to put the marketing list id into the Marketing List variable. So look for value (which has come from the step above when you searched for the Marketing List), add that to the output box, then add a Set Variable action. Select Marketing List from the drop-down, and then put the Marketing List guid value that came from the step above. Now we can use this value in the next step without getting all tied up in Apply to each steps that confuse things.

Click to view in detail

Now we need another List rows action to find all of the Contacts who are a member of the Marketing List we found above. There are various ways you could set your query, and it doesn’t have to be exactly the same as below, but you need to use your Marketing List variable within it so you are only pulling Contacts who have subscribed to the Subscription List with the same name as the Category on the blog post in the RSS Feed.

Click to view in detail

Here is the FetchXML Query I used.

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="contact">
    <attribute name="fullname" />
    <attribute name="contactid" />
    <attribute name="emailaddress1" />
    <order attribute="fullname" descending="false" />
    <link-entity name="listmember" from="entityid" to="contactid" visible="false" intersect="true">
      <link-entity name="list" from="listid" to="listid" alias="ad">
        <filter type="and">
          <condition attribute="listid" operator="eq" value="{@{variables('Marketing List')}}" />
        </filter>
      </link-entity>
    </link-entity>
  </entity>
</fetch>

The final step will be another Apply to each, putting the value output from the last step above where you found the Contacts. For each contact we find, we are going to do a Perform an unbound action step. In the Action name, you should be able to find the name of the Event trigger you created earlier. This takes A WHILE for the list of actions to open, so be patient. Now you should be able to see where I have used the variables to populate the Category, Post description/summary, title and URL. For the signalingestiontimestamp and the signaltimestamp you can paste in @{utcNow()}. For the signaluserauthid and the profile id, search for Contact and use the value from the List rows step where you searched for the Contact records. Save the flow.

Click to view in detail

Real-time Journey

The last piece that needs setting up is actually the quickest and smallest bit to set up. In the Real-time Marketing area, create a new Journey. Give the journey a name and set it as Event-based. Then on the right side, pick the Event trigger that was created earlier. Make sure it is set to repeat immediately which means a Contact can go through it over and over again for each new blog post you publish that goes into the RSS Feed. Set the start date and click Create.

Click to view in detail

After it’s been created with the Event trigger as the starting point, it only needs one other step, and that’s to send an email. Pick the RSS Feed Subscribers email that was created from the Marketing Email step.

Click to view in detail

Final Email & Subscription Page

Now when a new blog is published, it hits the RSS Feed which in turn triggers the flow in Power Automate to begin. The flow then reaches the end of the flow where it performs an unbound action for each Contact who has subscribed to that particular blog category and that puts them into the Journey. The Contact is then sent an email that is customised with all of the details about the blog post. You can see below the first name, post title and URL, post description, and post category included in the email.

Click to view in detail

If the Contact clicks on the Manage your preferences here link, which will take them to the page on my website with the Marketing form of form type Subscription centre, the form will be pre-filled. Remember, this is only the case if they allow cookies on their browser. It will also show everything they are currently subscribed to. That way they can pick and choose to add/remove or unsubscribe altogether if they choose.

Click to view in detail

Phew! This was LONG! Lots of steps, but this creates a great process where your emails can be going out automatically, and your Contacts and add and remove themselves from the various subscription lists you have set up. Fantastic! Just how it should be.

You can watch a video on this here.


Check out the latest post:
D365 Account & Contact Management Using Power Automate


This is just 1 of 357 articles. You can browse through all of them by going to the main blog page, or navigate through different categories to find more content you are interested in. You can also subscribe and get new blog posts emailed to you directly.


6 thoughts on “D365 Real-time Marketing, RSS Feeds & Subscription Centres

  1. Thank you Megan for your awesome content! I have been learning to build my very first Real-Time Marketing trigger, and you blog posts and your A-Z for Real-Time Marketing have been super useful. I would have NEVER gotten this far without them. Thank you!

    I have one question though concerning the “Perform an unbound action”-step. It seems to have a a new field called msdynmkt_bindingid at the very bottom of the list. Do you happen to know what we are supposed to put in that field or can it be left blank? I suspect you can leave it blank since it was so also in your example screenshot above, but just double-checking πŸ™‚

    1. Hi Tiina, you are very welcome! So happy my content has been useful and helped you learn and create more in the D365 Marketing App. For that field you can leave it blank. I will likely have a blog post in the future that shows what you could do with it, but for now you can take a look at this post within the Microsoft documentation. In brief, it allows you to start a trigger and pass the bindingid to make sure it stops the right journey that a Contact is going through. So consider someone going through a Journey about an Opportunity, and you have another trigger that fires when an Opportunity is closed? You could use that second Trigger as an Exit mechanism, and based on the binding ID being the same in a journey it would know to stop that instance of the Journey. Hope that makes sense! https://docs.microsoft.com/en-ca/dynamics365/marketing/real-time-marketing-correlate-triggers

  2. This is really good and helpful!
    How about if you want do send a confirmation-email with all the subscription lists (themes) the contact has chosen? For a new subscriber or when a contact make changes in the subscription center?
    I can’t find a solution for this. I thought you might have a good answer πŸ˜‰

    1. Hi Marie, I don’t have a good answer in terms of a blog to direct you to. But you would need to add double opt in on your marketing form you use for your Subscription center. When you set that, you will then need to determine the confirmation email to use. The confirmation email will need to be a Confirmation request content type. You will need to include the personalisation of {{FormDoiSubmission.ConfirmationUrl}}. You can also use {{FormDoiSubmission.SubscriptionListNames}} which should then show a bulleted list of what was subscribed to. Here is the page in the Microsoft documentation that refers to this: https://docs.microsoft.com/en-us/dynamics365/marketing/form-double-opt-in Hope that helps!

  3. Hi Megan

    Is it possible to create an e-mail with more then one article in the mailing
    So the mail woulde be
    ##RSS ITEM title ##
    ## RSS ITEM tekst ##
    readmore
    and then the next content block:

    ##RSS ITEM title ##
    ## RSS ITEM tekst ##
    readmore

    1. Hi Jet, I’ve not tried it, did you? I don’t know if it’s possible. Give it a go and share your results!

Leave a Reply

Your email address will not be published.