Granular Tracking Controls in Customer Insights – Journeys: A Privacy-First Must for Regulated Organizations

Granular Tracking Controls in Customer Insights – Journeys: A Privacy-First Must for Regulated Organizations

Organizations operating under strict privacy, consent, and compliance frameworks—especially in regulated industries like finance, insurance, and healthcare—often need to treat different tracking mechanisms differently.

That’s where a growing limitation in Customer Insights – Journeys becomes clear: today, tracking is largely governed by a single global toggle that controls multiple behaviors at once.

The challenge with “all-or-nothing” tracking

In many real-world compliance setups, the various tracking mechanisms don’t carry the same legal risk or consent requirements. Yet, they’re currently bundled together:

  • Email open tracking (pixel-based)
  • Link click tracking
  • Web tracking
  • Form prefill
  • UTM parameter appending

This creates a common compliance trap:

If an organization decides that one mechanism—most often email open tracking via pixels—doesn’t meet its legal interpretation, consent posture, or internal policy, then the only option is to disable tracking broadly. The result? You lose everything, even the parts that are perfectly acceptable and already aligned with policy.

That’s not just inconvenient—it can become operationally blocking.

What should change: independent feature switches per tracking mechanism

A better approach is straightforward: introduce separate switches so administrators can enable/disable each mechanism individually:

  • Email open tracking (hidden pixel)
  • Link click tracking
  • Web tracking
  • Form prefill
  • UTM parameter appending

To avoid UI clutter, less frequently used or advanced settings could be managed through OrgDBOrgSettings—keeping the admin experience clean while still enabling expert-level configuration where needed.

Why this matters

1) Compliance flexibility
Legal interpretations vary across jurisdictions, industries, and even internal governance policies. Granular controls let organizations implement their consent model—without hacks or unnecessary trade-offs.

2) Risk reduction
Disable only what’s considered non-compliant (e.g., pixel-based open tracking) rather than wiping out all measurable engagement signals.

3) Customer trust
Consent boundaries become enforceable in a precise way. That reduces the risk of “accidental overreach” and helps maintain credibility with customers and regulators.

4) Operational feasibility
Marketing and customer communication teams can continue using permitted tracking mechanisms—without being forced into the dark because one method is not allowed.

The impact on Customer Insights – Journeys

Granular tracking controls would materially strengthen Customer Insights – Journeys as a platform for privacy-sensitive, highly regulated environments. It’s the kind of capability that makes the product more adaptable, more transparent, and more aligned with modern consent expectations.

In short: it lets organizations comply with their specific interpretations of consent while still benefiting from the features that support marketing effectiveness and customer understanding.

The pixel tracking for open emails is also not very usable due to how email clients like Outlook (only downloads images on user approval) and iCloud (always downloads all images) are skewing the statistics. Hence the negative operation impact of disabling this tracking can often be very limited.


Help make it happen: vote for the idea

If you work in an environment where privacy and compliance matter (and that’s increasingly everyone), this is worth supporting.

Go to the Dynamics 365 Ideas page and upvote this entry:
https://experience.dynamics.com/ideas/idea/?ideaid=ccee4452-8409-f111-83da-6045bd7fd286

A few votes can be the difference between “nice idea” and “committed to roadmap.”

Breaking down form script in Customer Insight Journeys

Breaking down form script in Customer Insight Journeys

When creating a form in Customer Insight Journeys (real time) one option is to embedd it in an existing page. A customer asked me if it was possible to get this script from the API some how. Turns out that you don’t have to. It has a logical build-up and you can generate it yourself with a script.

First of all, let’s have a look at the generated script;

<div
        data-form-id='2e2b50a9-0000-0000-9079-0022489ca998'
        data-form-api-url='https://public-eur.mkt.dynamics.com/api/v1.0/orgs/4e5c8ea2-0000-0000-ac66-a30471bdf4fa/landingpageforms'
        data-cached-form-url='https://assets-eur.mkt.dynamics.com/4e5c8ea2-0000-0000-ac66-a30471bdf4fa/digitalassets/forms/2e2b50a9-0000-0000-9079-0022489ca998' >
</div>
<script src = 'https://cxppusa1formui01cdnsa01-endpoint.azureedge.net/eur/FormLoader/FormLoader.bundle.js' ></script>

I have highlighted two different guids (I have changed them so they are not the actual guids).

The first one; 2e2b50a9-0000-0000-9079-0022489ca998 this is the Form id. It is the exact Id of the form that you have created. Easy to confirm by checking the id-parameter in the querystring for the form. This can easily be queried from the WebAPI from the table msdynmkt_marketingform.

Second guid; 4e5c8ea2-0000-0000-ac66-a30471bdf4fa is the instance id of the dataverse instance. This can be found in the Power Platform Admin Center under “Organization Id”. This is hence the same for all forms that are from the same instance.

The rest of the script is the same. Hence you can generate this quite simply with a script if you have these two values. I don’t know if the library referenced might risk being changed during updates or similar. Hence I would recommend using it with the same reference as seen above, but it might also be possible to download it and host it yourself. This is not something I have tried.

A colleague of mine, Thomas Passad, also mentioned that some CMS:s, like Optimizly, cannot handle the script being reference directly and that it had to be placed in some general footer or similar.

With this knowledge I think it is possible for you to handle this script in a more dynamic fashion but make sure to check that it hasn’t changed every month or so, as it might cause issues if there is a change and you havn’t taken that into consideration.