Blog, Howto, Ultimate Workflow Toolkit

HowTo send record Url pointing to specific Model Driven Apps

Model Driven Apps were released as a part of 8.2 release (and were called just Apps that time). It’s really cool feature that allows you to build role-tailored applications that have functionality required for specific role. What is available through UI unfortunately is not available through workflows – there is no possibility to define specific Model Driven App when you embed URL (for example in email to be sent) and record will be opened in “default” application. In this post I will show how you can implement opening of record in specific Model Driven Application.

Get Proper Application Id

The easiest way to get application id is to open that application in browser and check Url. You should see “appid” query string parameter and Id of that application.

Copy and save appid={guid of your application} somewhere for further usage.


Now you can work on your workflow. Before you added a url anywhere add “UWT: String Operations: Join” to your workflow:

Once step appeared in your workflow click “Set Properties”, in windows that appeared add “Record Url (Dynamic)” into input “In 1” and “&appid={Guid of your application}” into input “In 2”, rest of inputs leave blank:

Click “Save & Close”. Now you can use output of this step. For example inside “Send Email” step:

And here is the result – generated email:

Ultimate Workflow Toolkit

Yes, I know that Flow will replace Workflows in future. But it will happen in future. ATM Flow can’t do what Workflows + UWT can. I encourage you to use my toolkit (I use it in every project where it makes sense to use it instead of developing something custom).

Latest version of UWT is available by this Url. If you have issues using it/not sure if toolkit can implement your scenario get in touch with me using this Blog – I read comments daily and try to answer questions as fast as I can. If you found a bug or you have a suggestion how I can improve toolkit – create an issue on GitHub’s project.


  1. Hello, Is there a way to change the join variable name to different one? Also, if i’m using it multiple times in a single workflow, it shows up multiple time with the name “join” creating confusion. Please assist

  2. Hello ANDREW,

    This blog helped me a lot but I am facing an issue with this one when I use the template to send an email then the result value is not appearing in dropdown inside “Send Email Using Template” Step. Can you please help me with this one.

    1. Amit,
      I believe in this case here is what you can do:
      1. Create a separated field that will be stored in entity and using realtime workflow populate it with composed url. After that you can use that url inside your template. Feel free to update conversation if you have issues.

  3. Hello, this is not working for me. The link in the email does not open the record in UCI, but a new page. Could you please also post the screenshot of the opened record?

    1. George,
      I’m really curious what will screenshot of opened record give you?
      I (usually) don’t post things I haven’t tried personally and this post is not an exception – it works the way it was described.
      Can you please provide url you get in your email?

      1. Andrew,
        I was meaning that I would like to see what type of application you are opening the record with. Personally I wanted to test with Unified Interface, but it does not work. I must be doing something wrong, if I try this solution again I will tell you the url.
        Thank you

      2. Andrew,
        I have retried, inside another workflow, and now it is working perfectly! Thank you.

        1. An information that could be useful for somebody: if you want to open a record in UCI, you can use &forceUCI=1 instead of &appId=… as second parameter of UWT:string operations.

        2. George,
          I’m glad that you were able to achieve your goal.

  4. Hello Andrew,
    I have just noticed that when clicking on the email link, the page opens in UCI, but without the left menu. This is due to the fact that in the url there is a “+” after the guid of the application. For example: d350fac8-257e-e811-a97b-000d3a2ac3d0+.
    Do you know how I can solve this problem?

    1. George,
      How did that plus appear there? Did you add it or it was done by the platform?

  5. Unfortunately, that is not enough if you using it on the on-premise environment. For Dynamics 365 on-premise need to also add &etn={entityName} parameter

  6. Hi Andrew – If I want to use the UWT I would just install the managed solution into D365. There are no specials instructions? Thx!

  7. Not getting the UWT: String Operations as an option while configuring a workflow. How to get that please?

  8. Hello Andrew – thanks for this article and your utility. I have followed the steps above in this article, but although the workflow is being run by a System Administrator, I get an error when running the workflow “You do not have {0} permission to access {1} records. Contact your blah blah blah …” When I scroll down the workflow to see where this “permission” issue is, the step where I’m adding the UWT Step is highlighted as the issue. Have you heard of this issue before? All I did was install the managed solution – I have not made any configuration changes, and I have not created a UWT Config record. I thought maybe I should have done that, but I don’t see that mentioned in the documentation. Thanks…

    1. Owen,
      Can you please post the log here? I will try to help. Also you should create that config record. It’s easy – open solution – Configuration Page and click “Save” button.

      1. Thanks, Andrew – we have created the configuration record, and we presently do not get a permissions error when our workflow runs. But I think we are unclear about how to make use of the output of the Join operation. In your example you post {Result(Generate URL for Specific Operation)} but how do we generate that URL using the Join operation in the step? Can the output of the step be a custom text field attribute?

  9. We appreciate your continued help, Andrew. Yes, we understand that we can use the Dynamic URL. That is the first step in your instructions. The second step is to add the App ID in the second line of the UWT step. However, we are not understanding how to build the Result (output) into a new URL. If this were a custom workflow assembly, I suppose we would be using a custom attribute to store that newly generated URL. We are trying to understand how to use the {Record Url (Dynamic)} + &appid={Guid of your application} as output for a newly constructed URL, which we would place into the body like you have in your post The New Link{Result(Generate Url for Specific Operation)}. We are just not quite understanding how to create the part that goes into {Result()}. Thanks.

    1. Tell me where do you plan to use that Url? Is it email?
      If yes – when you will build the content of email – use Result output of “Join” operation from the “Form Assistance” on the right side of the form.
      Feel free to update thread if you have issues.


      1. Once again, thanks very much, Andrew. Your response completely helped us. We now have the Result and we understand how to use it. The only issue we have is the same as someone in this thread also had, which is that Dynamics 365 appends some useless characters at the end of the Result (in our case it’s specifically %e2%80%89) which breaks the link. However, we will figure out how to remove/prevent this, and we will post our results here for others. Thanks again for your utility and your help as well. Best Regards … Owen

  10. OK – I was able to remove those extraneous characters. For Dynamics 365 Customer Engagement in building an email, and adding a link, we can’t just insert HTML into the body without getting strange characters added – instead, we must use the small “Hyperlink” button in the Email interface, which then prompts for the URL and the Text. The URL is the Result, of course, and the Text is what the link we will be named. This results in a perfectly formed URL that works very well. Thanks again!

  11. I blog quite often and I truly thank you for your content. This great article has really peaked my interest.
    I am going to bookmark your website and keep checking for new information about once a week.
    I subscribed to your RSS feed as well.

    1. Pek,
      I’m not sure what do you mean by “adding the output to email message”.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.