In this series of blog posts, I’m looking at the ways to enable an asynchronous conversation between Dynamics/Power Apps users and portals users. The two most common techniques I see use Entity/Web Form Metadata – either the Notes or Timeline metadata option. This post covers the original way – using notes.
Notes (schema name of annotation) has been an out-of-the-box entity in Dynamics for a long time (at least since I started working with the platform over 10 years ago). It allows users in Dynamics/Power Apps to add unlimited notes to a record. Notes are comprised of a title, a description (main note text), and an optional file attachment.
When enabled on Power Apps Portals, users can be allowed to view, create, edit, and delete note records, as well as upload files.
Microsoft provides step-by-step documentation that covers how to enable notes on your Entity/Web Forms:
I’m not going to rehash those instructions, but I’ll provide a few comments:
The biggest stumbling block I see with notes is that people miss the fact that users in Dynamics/Power Apps need to include the following text in order for a note to appear on the portal: *WEB*.
This allows you to distinguish between notes you want visible to portal users, and notes that are for internal purposes only. By requiring that this unique bit of text appear in a note before it is seen on the portal, you all but eliminate the possibility that internal notes are inadvertently displayed to the public.
Users on the Portal do not see the *WEB* text (except as notes below in the *WEB* Case Sensitivity Issues section). Notes created by users on the Portal automatically have this text included to ensure that they are visible on the Portal.
The system needs to keep track of which Portal user created the note so that everyone can see who entered the note, and so it can allow editing (if enabled). However, since the Note entity does allow for much/any customization, there is no direct relationship to the portal user’s contact record. Instead, the Name and ID of the contact record is stored as part of the note’s title:
This means that the Portals code relies on string parsing to verify note authorship, which is not ideal as it can be brittle.
One quirk with the *WEB* system is what happens if a Dynamics/Power Apps user uses *web* (lowercase) instead of *WEB*. In this situation, the note will appear on the portal, but the *web* text will be visible. This is because the code that looks for *WEB* is case insensitive, but the case that removes it for display purposes is case sensitive. Therefore, for the best user experience, ensure that Dynamics/Power Apps users use the uppercase version.
In my next post, I’ll take a deeper dive into the Timeline metadata option.
I’d like to acknowledge the individuals who have provided invaluable assistance to this series of posts, including providing their comments, insights, experiences and review: