Dynamics 365 – Rich text editor

Thanks to my good friend Rasmus he pointed out that wave 2 is announcing a PCF component for rich text editing. I had to try it out see what it actually was.

After adding the multiple lines field to the form, I added a few examples. Regular Text, Color Text, link to a site, and image via Copy/Paste

Definitely cool to see that we now can store Ritch Text with images in CRM. First copy/paste images to Emails, and then copy/paste images to regular forms. Getting more and more flexible every day!:)

How is it stored?

First off I thought it might store the data of image directly in the multiple lines of text as Base64, but to my surprise it doesn’t.

Is it storing the image in Azure Blob storage? Would love to learn more about this 🙂

<div data-wrapper="true" style="font-size:14px;font-family:'Segoe UI','Helvetica Neue',sans-serif;"> 

<div>Regular text</div>

<div><span style="background-color:#27ae60;">Color Text</span></div>

<div><a href="https://crmkeeper.com">Link</a></div>

<div>&nbsp;</div>

<div>Image</div> <div><img height="131" loading="lazy" src="/api/data/v9.0/msdyn_richtextfiles(23cdb641-d10c-eb11-a813-000d3ab395a9)/msdyn_imageblob/$value?size=full" width="157"></div> </div>

Microsoft MVP ❤

After 13 years of Dynamics 365 (CRM) I can finally say that I am a Microsoft MVP🎉🎊🎈

I had no idea this would mean so much to me, but it really really does!! The amount of work behind this title is just overwhelming, making me respect the existing MVP’s even more. I am so proud to be a part of a unique community where sharing the knowledge is the most important thing you do. A community where you are awarded with praise for lifting others up and making them better.

This is not by any means a solo effort, and is only possible because other people have given of their free time to make me understand how I can contribute.

Malin Martnes
While working together at Point Taken you taught me all I needed to know regarding platform and exposure. You were the first one that pushed me into speaking, and you have been pushing me ever since. Thank you!

Mark Christie
Thank you for pointing me in the right direction when I needed help, and opening new doors for me. I am also glad to have you as a friend.

Chris Huntingford
Thank you for being the most inspiring personality I have ever met. After our first encounter in Oslo, you made me believe that anything was possible. You lift everyone spirits up, and make everyone feel that they are part of something special.

Mark Smith
I attended many of your cohorts, and you provided me with lots of great tips for creating my own personal journey. You taught me the value of making people feel good. Something I try to practice every day!

Marius Agur
While working at Microsoft building the partner channel, Marius approached me wanting to start the Norwegian community. He put in the hard work and hours, and created what we today call our Power Platform User Group. Marius didn’t care about personal gains, but wanted to build community. Everyone that has been on the stage in Norway (me included) can thank him for this.

Project Oakdale (CDS Lite) – Exploring Data Migration

I will keep calling it CDS Lite in the smallest hope that this one day might get the name CDS Lite. It just makes perfect sense to give it a name like this. Allright, enough about the hope for a better naming future…

I know the system is only in preview and many things will change in the next months, but I thought I would give it a go at importing data from CDS to CDS Lite. I had no idea if this was possible, but I was curious to see how it would react.

At the moment there is no connecting to the database through normal tools I have had before

  1. XRM Toolbox
  2. SSIS – KingsWaySoft
  3. Excel Import

Every time I try to connect I get the response saying that I have to use an Oauth method to connect.

PS: Notice how Microsoft has put “LITE” in the error message? It’s a small hope, but it’s a hope 😂

So the only way I found out how to insert data in the Preview was via flow

Flow to the rescue

I am pretty sure that the current doc recommends using Flow for data to CDS Lite (Oakdale), but I am sure this will change in the future somehow. How else are you going to fill 2 million records (estimates from docs on the 2 gig DB size). Flow is not intended for data migration, but I had to use the tools I had available at the time 🙂

First I imported 5694 accounts to my CDS database (top row headings)

The CDS Lite (Oakdale) was empty for accounts, and only included the following columns.

The flow was a little tricky. I actually had to create the flow from the CDS Lite (Oakdale) environment. It did not work otherwise. Current environment connector was fine for writing to CDS – Lite (Oakdale).

The flow will only do 512 records if you don’t open up the paging. Go to settings of the connector and increase the threshold.

I started the flow and patiently waited.

27 minutes later the accounts had been migrated with a warning. I could only find 1 error in the migration, so I consider that a success. All of my accounts were now over to the CDS Lite (Oakdale).

What next

This is all just a beginning of a longer journey for the CDS Lite (Oakdale). Everything is in preview, so there are many things that will change once this is released, and a few years from now. I just wanted to see how to get data in to the system. The reason why might be more clear in a later post where I describe what I see in a future customer scenario for CDS and CDS Lite.

Dynamics 365 Customer Service in 1 hour or less ⏰

Did you know that it is possible to setup a fully functional Customer Service installation in less than one hour?

I am proud to present all 3 parts
1. The community solution – Download
2. The Video for installation
3. The Video for demonstrating the product

I have put a lot of hours into this configuration, because I wanted other consultants to see how nice and easy Customer Service could be delivered. I have been using countless hours every time I wanted to show a new demo, so I finally put in the extra work to make it complete. This will hopefully save you a LOT of work next time you want to demo Customer Service, or deliver a good solution to your customer.

1. Download

Go get my free community solution for Customer Service.

https://github.com/thomassandsor/CustomerService

2. Install the solution

See how install the solution within one hour

3. Demo the solution

This is a showcase of how I would demo the solution. Find your own pitch and make yourself comfortable with it. Just make sure you have good demo data!! Good Luck 😀

New Email Signature in preview. Is it really an upgrade? 🤷‍♂️

In the preview for release wave 2020 2 Microsoft is moving the signature to UI. While doing this, they have the possibility to brush up on some old tech. Almost every piece of the old Dynamics moved over has had been given at least a small upgrade, of not a total overhaul. If you want to read about my take on signature in Dynamics, head on over here.

Limitations of the old signature:
1. Personal signature only. Could not define a signature for the organization or group.
2. No images could be added

So what has changed?

Old

The old signature did not have a rich editor, and limited us to primitive text editing. Exactly like the old email editor.

If you tried to enter a picture, you would get an error message. For this example, I just wrote the text “no picture possible”.

The signature would be added to the email as expected if it was defined as default signature, but again with little formatting.

New

The new signature is available in the new UI

I added a picture of the blue color, just to demonstrate that there can be a picture in the signature.

Opening a new email will automatically add the signature as expected, but now with the picture included. 👍

Well?

Does the signature support images?
YES, it finally does.

It is stored as a Base64, so no need to consider where the actual image is stored (notes, azure, blob etc etc). Migration from system A – B would work fine.

Can we use the signature multiple users?
Well… Yes, but No.. It seems every signature is meant to be personal, but you can search for other signatures if you want to. But in regards to automatic signature added to email, you need to create one for each user.

Thoughts 🤷‍♂️

As of now, I could only find the signature in the Customer Service Hub, and that confuses me a bit. Why not start off by adding it to the Sales Hub. If the signatures are personal, why not let the sales people use this first. In customer service I would have thought that a organization signature would make more sense.

While this is a great update to the last signature experience, I hope they are able to add global signatures in the future for groups of users. This would make the administrative experience a little better when you have hundreds of users.

If you read my article on signatures, I provide a different way of handling the signature experience. I try to centralize the management of the signature for faster changes. The good thing is that we have both solutions available, so pick and choose what suits your need.

Maybe in the next version we might see some structural changes to the way signatures are connected to users/groups.

Dear MS Could you please just fix the following? Pretty Please🙏🥰

I love the new UI and the new timeline, but there were some choices made that never made sense. Specifically the navigation elements on the timeline.

Ideas – Please vote

https://experience.dynamics.com/ideas/idea/?ideaid=187baf8c-5fdd-ea11-bf21-0003ff68e671#

This is a OOTB case with a timeline. I want to open one of the emails to view content or reply. Either way I want to OPEN the activity.

Let’s click on the Email and see what happens…

NOPE… Only the preview of the email. Great functionality, but still not what I want.

What about the BIG Purple circle? That is the same logic as subgrids. This must be it?

NOPE… This opens the owner of the activity…. Why would anyone want this function? Seriously asking, because I have never understood why.

There it is!!!.. The tiny little OPEN button….

Subrids do it better

Check it out.. I click on the subgrid item, and magically it opens the actual record I am trying to see.

BOOM

This is more like it..

Dear MS… Please make the navigation look and feel the same as subgrids 🙂

Dynamics 365 Customer Service – The Solution

This is the last post in a long series about Customer Service and Dynamics 365. After several implementations over the years, the following configuration should be a great place to start.

Before we get started

Fire up a new trial of Dynamics with Customer Service, and add an office 365 trial to the same instance. I will not be going in depth on how to create a trial. Navigate here if you need tips

NB! for some steps you need Global Admin privilege

1. Exchange

The first step we need to do is setup a Shared Mailbox in the admin for O365. Navigate to https://admin.microsoft.com <- Make sure you are on the correct org when doing this.

When done you should se the message above. You now have successfully created a new email address for Exchange.

Dynamics Configuration

2. Import Solution

Download the solution from here
https://github.com/thomassandsor/CustomerService – open folder solution, and download unmanaged

In the video I will explain why UNMANAGED, but I am not an ISV is the short answer. I have written about what’s included, so easy to reverse.

Remember to PUBLISH CHANGES

You will now see a new App called CS

3. Add Team + Security Role

Next you need to add a new team to Dynamics. Open the Advanced Settings in the navigation to the top right. We will be doing the next part in the old client

Open Settings – Security and Team. Add a new team and give it a name. I have chosen Customer Service. This is the team name that will own the Cases before they are assigned.

Also remember to add the security role “Team – Customer Service”. This security role is imported along with the solution

4. Add Queue + assign Team

This is the step where we connect Microsoft Exchange with Dynamics 365

Name of the queue is not important, but make something that is sensible.

When you click save, a new Mailbox will be created automatically by the system. Open the Mailbox, an navigate to the next step.

5. Approve Email and test receive mailbox

This is the point where you need to be Global Admin to continue. Start by approving the mailbox/email address.

Step 2 you test and enable the mailbox. Once this is done, head on over to “alerts”

You might need to refresh this a few times before it displays anything. The refresh button in the upper right corner is the easiest way to update the feed. You should only see information messages now. This should not generate any errors.

6. Email Settings

Next step is really important for keeping the subject logic. All of this will make sense later when you see the reply of the emails you send. Open the Email Configuration Settings and make sure it looks just like below.

7. Create Account and Contact

Now we create an Account and Contact that we use for our demo. The Account name can be whatever you want, but the contact needs to have a valid email address.

8. Send Test Email Outbound

Now it is important to check that emails actually are going out of the system. Open the contact you created with the valid email address. Create a new email activity.

NB! make sure that you substitute the from address to Customer Service (queue you created earlier) before you hit send. This will send FROM the queue to the Contact.

If things go as planned you will see an email appear in the mailbox. Be sure to check you spam if nothing is in the inbox!!!

9. Activate Record Creation and Upadte + add Team to Case Created Owner

Navigate to the Record Creation part Service Management. Before you comment on not choosing the flow way, it’s not working. I have a support case with Microsoft ongoing to fix this now.

First thing you need to update is the queue “Customer Service” for which the rules will run. I prefer the following settings below. You might disagree, but then change to your liking.

Next important step is to update the Record Creation rule. Open the “Create Case” Set Properties.

REMOVE the current customer service, and replace it with the one you created for Owner. This is important so the process assigns the cases to the Team.

When done, activate the rule.

10. Add Signature

Next step we have create a signature for the user. Signatures can be personal or company specific. The signature is located under the setup section. Navigation is at the bottom left of the CS app.

The signature below is HTML. I don’t expect you do this from scratch. I have a great guide here

11. Add User with Signature and Default Queue

Getting close to the end now, we have to add all our hard work to the Customer Service User replying to the emails. In the user form you see 2 fields “Signature” and “Default Queue”.

Update with the queue you created earlier, and the signature you just created. This is what will defines what the email leaving the system will look like.

12. Add Email Warning – New Activity on Case

This last step is optional. I created it in Flow, so beware of possible hitches with a few things regarding the current environment connector.

The purpose is to notify the Agent that a new Email has arrived for the case. If for some reason the system received email to a close case, I reopen the case and notify the agent.

https://make.powerapps.com and open the solution Customer Service – CS

Open the Flow. You might be asked to authenticate the connection, so do this before you move on.

Last step is activating the process

You are now in action 😀

Let’s see what happens when I now send an email inn to Dynamics

Then wait for the autoresponse

Inside of CRM the Case now has been created

Stay tuned

Next week I demonstrate how to demo the solution 🎬🎥

What the Flex !?💪

So as of yesterday Common Data Service platform was rebranded to Dataflex Pro.

https://powerapps.microsoft.com/en-us/blog/introducing-microsoft-dataflex-a-new-low-code-data-platform-for-microsoft-teams/

This post confused me way to much. Nothing seemed to make sense, and the only thing I could focus on was the extremely odd name Dataflex.

What about the name….

A quick online search shows that the name is already in use. Not only is it in use, but it is used by a competitive product offering low-code development! How on earth is it even possible to miss out on this?

https://www.dataaccess.com/products/dataflex-63

This sounds like a whole new SkyDrive – OneDrive problem, so I’m going to wait a bit before I rebrand everything to Dataflex

The voice of reason

My mind has been twisting and turning to understand the reasoning of it all of this, and luckily we have Jukka. His post is what Microsoft should have posted originally. It explains everything I was wondering about….. Except the name 😂

https://forwardforever.com/what-is-microsoft-dataflex/

Keep on flexing 💪