Dynamics 365 Admin Centre for Omnichannel

I’ll freely admit that the title for this post is a bit of a mouthful! I’ll also admit that I used the British spelling of ‘centre’, rather than what it actually is. You’ll have to excuse my grammar 😉

This post is about something that we all knew was coming. The old Admin Centre is no longer – and we shall miss it! It was inevitable that it would be moved over to the new Power Platform interface, as so many other things have already. Therefore I thought it would be good to do a quick article about where it is now, how to access it, etc.

After all, it is vitally important when needing to carry out the initial configuration for Omnichannel, or to check for upgrades to the Omnichannel installed solution!

Let us, however, cast our mind back to the very familiar layout shown below. We’ve spent so many years here that it seems quite sudden. But though you may be gone, you will not be forgotten!

Manage Omnichannel application

Right – now onto the new version of it! So this actually took me a few minutes of digging around as to how to find it & get to it.

The first thing I tried was looking in the environment settings, but alas, I didn’t find it there. So I continued digging around.

Wishing you spare you the exact itinerary of everywhere that I looked into, I’ve decided just to show you it! I can hear the sighs of relief at this point…

What we need to do is navigate to the Power Platform Admin Centre, at https://admin.powerplatform.microsoft.com/. Once there, we expand Resources on the left hand side, and select ‘Dynamics 365 apps’. Note that you do NOT have to select a specific environment first to be able to do this./

Now we can see a list of all apps installed. Nicely we’re able to scroll, which we couldn’t do in the old interface! That’s actually really helpful, and avoids needing to navigate to a different page. If we scroll down, we can see the entry for Omnichannel:

Click on ‘Manage’, and we get the following lovely popup:

Click OK to this, and we get taken to the (familiar) interface for configuring the initial items for Omnichannel:

Here we can go about the usual items, such as checking each environment to see if there are any updates available, or configure the main channels.

Nicely, Microsoft has actually updated (some of) their documentation, which is obviously very good. I’m now going to have to go and check through previous articles of mine, and update as necessary!

Canvas App record set Regarding field

For the last few days, I’ve been working on an app. Not just any app – it’s a canvas app! (It actually happens to be a COVID-19 related app, for local authorities to use to contact vulnerable people & check they’re OK etc).

Now, my background isn’t canvas apps – it’s the model-driven app approach. I’ve been doing this for years – after all, my experience goes back to Microsoft CRM 3.0! So that’s all really nice & easy for me (even with some of the more modern ‘tweaks’ that have been brought in). Canvas apps, on the other hand, are very different from what I’m used to, and are taking quite a bit of getting used to.

See, the following example is easy in a traditional model-driven app:

Create a contact, save various attributes to the contact record. Then create a task, and set the Task Regarding field to the contact that you’ve just created

Looking at that, my mind says ‘easy-peasy’!. I create the fields required for the contact entity (& task entity as well, if needed). I then add them to the entity form/s (creating or modifying the form view/s as well). Finally, I create a Business Process Flow for users on the contact entity, and append the task creation to it. Simple, and done – not much time needed to be spent.

But when needing to do this as a canvas app, things change around QUITE a bit. I can’t create that business process flow, and I have multiple screens to have all of the information on.

Now, if I could add the ‘Regarding’ field to the edit form grid, and apply formatting to it, I could hopefully then just submit & save the grid. However, that unfortunately doesn’t work. I can add the field, but when I do so, I get the following:

So that doesn’t work. Hmmm – how then should I go around doing it?

I did (obviously!!) take a look online. Here I came across this wonderful article all about polymorphic lookups (https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/working-with-references). Having read, & re-read through it, I’m STILL not understanding what exactly I should be doing by this!

So I was stumped. Thankfully we have an amazing community, and on reaching out to someone within it (thanks Eric!), I was helped out. I therefore thought to write this post up, so that it can help others as well.

There are two parts to this, for my specific scenario:

  • Saving the contact record down. This is a matter of using (in my case) the command ‘SubmitForm.ContactInformation’ on my contact form screen. I can then also set a variable if I want to, to refer to the Contact record GUID (hey – I’m trying to be cool here & show that I can!)
  • Finding a different way to save my task record. I accomplished this using the Patch statement – this thankfully wasn’t too difficult for me to grasp how it worked.

So, how did I go about using the Patch statement? Well, the function is referenced here – https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-patch. With Eric’s help, I soon started to see how to do it.

What I did was add the following line in my Patch statement when I was wanting to save the task: ‘Regarding:ContactForm.LastSubmit’ (‘ContactForm was the name of the form for the contact information). What this did was write into the record the GUID for the contact record that I last saved.

An alternative to this would be to use a variable instead, and set it there.

Thankfully this all worked. I’m now able to create Task records and set their Regarding field value to the Contact that I set up before them – which is the exact thing that I was trying to do!

I hope that this has been helpful – leave a note in the comments if you’ve found another way of doing this.