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.