Use Azure App Passwords for MFA enabled D365 authentication from Console App

If you have a Console App that authenticates to D365 using a credential (typically, an Administrator) but now the administrator is setup for Multi-Factor authentication, your Console App won’t work. So here’s what you can do.

If you first want to check out about enabling Multi-Factor Authentication, you can check my blog post on it here – Office 365 Admin: Quickly Enable Multi-factor authentication for users

Standard Authentication vs MFA enabled User

When there’s not MFA enabled for Dynamics 365 (Office 365) account credentials, you are able to connect to the organization with no issues and get the CRMServiceClient in your application easy.
authenticated

But, if you have Multi-Factor Authentication enabled for a credential that is used in Console Apps to connect to D365, the Console App will not connect and the CrmCerviceClient will have null as below with the error ‘Unable to Login to Dynamics CRM

unabletologin

Managing App Passwords on Azure Portal

Once you have multi-factor authentication enabled for your account, you can go to portal.azure.com and manage App Passwords as follows –

  1. In Azure Portal, go to your account settings.
    gotoaccount
  2. Then, go to Additional security verification
    additionalsecurityverification
  3. Look for App Passwords
    apppasswords
  4. You can manage and create more passwords here
    manageapppasswords
  5. Create a password if you don’t want to use a default one or want to use different passwords for different apps. Give it a suitable name and click Next
    createapppassword
  6. Copy the password as it is the only time it will be displayed.
    copypassowrd
  7. And you can see your passwords as you create them
    morepasswords

 

Implementing App Passwords in Console App

As the name suggests, App Passwords will let you create special passwords for applications to authenticate to Dynamics 365 without needing to go through multi-factor authentication like when you’re running a Console App to connect to Dynamics 365

  1. Go to the Password in the credentials in the App.Config of the Console Application
    oldpassword
  2. And replace it with the App Password
    newpassword
  3. Now, Build the application and run it. It will authenticate successfully.
    authenticated

Hope this helps! 🙂

 

Advertisements

Quickly use Email Signatures in D365

You can use Email Signature in D365 Emails as well. Here’s a quick tip on it to quickly create a Signature and use it.

As I write this blog, this feature is not yet available in the Unified Interface yet.

Create a Signature

  1. Navigate to Settings > Templates > Email Signatures
    insertsignaturefeature

  2. And create a New Signature as below
    newemailsignature
  3. Now, I save and close.
    emailsignaturesaved

Insert and use Signature

Now, when you write a new Email or this email in D356, you can select the signature as below –

  1. Select Insert Signature while working on the email
    insertinemail
  2. Select the Signature and click Select.
    selectsignature
  3. And the Signature appears.
    finalsignature

That was easy. 🙂

D365 Quick Tip: Delete Records Imported by mistake

One of the most common blunders often made in Data Import are importing whole lot of records without finalizing.

And when you import, you realize you needed to add something more to the Import or some things were pending in the Excel file and you ended up uploading them all!

Delete Imported Records

  1. Assuming your Import was successful and you want to now just revert what all was imported, navigate to Settings > Data Management > Imports.
    importjob
  2. Open the Import job and look for the option under Delete which says ‘All Records Imported to This Entity During This Import
    mainaction
    There, quite self explanatory.
  3. Once you click on it, a Delete Job is triggered once you fill in the below information
    deletejobset
    Important: When I select ‘In addition to deleting imported records, also delete import job history’, it will also delete the Import Job I started in Step #1. If you still want to keep it, you can according to your personal preference.
  4. Now, when you go to Settings > Data Management > Bulk Record Deletion, find the Import you started in the step above.
    deletedrecords
    Note that there are 4 records deleted here though I imported 3 records. The additional record is of the Import Job deleted while setting up the Deletion job in step#3 above.

Hope this quick tip helps! 🙂

 

D365 PSA Quick Tip: Sync Resource Bookings with Outlook

You as a resource in an Organization are booked on projects. But are also needed to be in some meetings. But what if, someone who wants to invite you to a meeting needs to know if you’re booked on a Project/Task in D365?

In that case, Syncing your Bookings to Outlook Calendar comes handy.

Let’s say, most commonly in a Technical Services Industry where users are supposed to work on projects and they should appear as booked so that others don’t drag them to other meetings. 😊

Remember, Server Side Synchronization should be turned on for the user on their mailbox to be able to use this feature.

 

Enable Sync Resource with Outlook Feature

  1. In System Settings, navigate to Synchronization tab and enable Synchronize resource bookings with Outlook as shown below.
    enableSystemSettingLevel
  2. Personal Settings – The same needs to be done for an individual user on their Personal Settings in D365.
    personalSettingEnable

Bookings in PSA now appear in Outlook

Now, example, Priyesh is booked on Home Link Piping project on Monday, 3rd December and this is how the schedule board looks like this
scheduleBoard

As the sync happens, the Bookings will now show up in the user’s Outlook Calendar.
syncedToCalendar

Please note that Server Side Sync can take up to 15 mins to sync through as per the minimum sync cycle duration.

Hope this helps!

Enable Embedded Intelligence and configure its features in D365 v9.1

Embedded Intelligence you features like Relationship Assistant, Auto Capture and Email Engagement. Yes, you’ve seen them before in previous D365 versions and configuring them got easier in D365 v9.1

Read Policy and Accept Terms

  1. Navigate to Settings > Sales AI. Under Overview tab, click on I accept as shown below.
    acceptTerms
    Note: Make sure you read the Privacy Statement if and whether or not it violates your organization’s privacy policies.2. Once Accepted, features like Relationship Assistant, Email Engagement and Auto Capture are available to be configured as follows
    EITurnedOn

Relationship Assistant

Relationship Assistant helps you to draw your attention to what matters about the information in Dynamics 365 at that moment.

It shows you Action Cards that are relevant to the user at the given point of time and where the users can quickly take some common actions associated with it. need to take action on and are relevant given at the point of time.

Example, if an Opportunity is due tomorrow, the Relationship Assistant will show up on the Opportunity and show you this.

relationshipAssistant

Configure – Relationship Assistant
You can configure the Relationship assistant on the next tab in Sales AI itself.
configureRA

 

Email Engagement

Email Engagement will tell you how your communication is being taking shape. Track insights about the emails you send from D365 and accordingly, take your next move.

Like, you can set a reminder to follow up and track what happened to the email you sent.
emailEngagement

Configure – Email Engagement
1. Turn on Email Engagement by simply clicking on the Disabled button to Enable it.
disabledEE

2. Email engagement is turned on now.
EETurnedOn

 

Auto Capture

Get a glance of emails relevant to your D365 records but which aren’t actually tracked in D365 . You can then decide if it matters for you to pull it in D365.

autoCapture

Configure – Auto Capture
All you need is to enable Server Side Sync with your Exchange Online mailbox.

 

Hope I summarized the idea! 🙂

Enable D365 For Teams Integration Preview

Finally, D365 Teams Integration is out in Public Preview and I was excited to try it out on one of the D365 9.1 trial environments.

Currently in Preview so it is not recommended for Production purposes. Anyway, let’s dive into seeing how we can enable the Preview.

Enable the Preview in D365

  1. Enable the Preview of the D365 For Teams from System Settings > Previews.
    systemSettings
  2. And click on Yes to enable it. It will ask for confirmation.
    settingConfirmation
  3. Click OK and it will ask for confirmation
    applyConfirmation
  4. And it takes a few minutes to provision.
    provisionTeams
  5. And in a few minutes, you’d be done.
    provisioned

Logging into Teams and get the App

  1. Now, suppose you already have Teams app on your desktop. Go to Store and look for the Dynamics 365 (Preview) as shown below.
    getInTeamsApp
  2. Click on Add to a Team to disable it and only enabled it for me. Maybe I’ll write another post on what these settings do, but to continue for myself, I’ll select only Me.
    addForMe
  3. And if you wish to open any of those, else close out the window.
    previewAvailable
  4. Now, let’s configure this for first time use. Find the app in the menu like so.
    findTheAppInTeams

Configure the App

  1. Now, let’s configure it by connecting to your D365 environment. Click on Configure.
    configureNow
  2. It will ask you Organization you want to connect to, select the same.
    selectOrg
  3. And provide your credentials –
    credentials.png
  4. Grant consent too.
    grantConsent
  5. Finally, you’ll get it enabled.
    enabledNow

Seeing it work

And to test it out, I put in natural langauge ‘show me alpine sky house’

And I had the results
results

D365 Quick Tip – Why should you Reassign Records to another user?

An underrated feature of Dynamics 365 sitting since a long time is the Reassign Records. This is a particularly important feature that if a key person stayed with the organization for quite some time and worked deeper in Dynamics like written plugins or have workflows owned by them, it is imperative that the records they owned need to be reassigned to someone else when that employee leaves.

Given the scenario – An employee, Somesh, left the company but has several records under his ownership. Even some workflows (we’ll get to that a little further.) Sample Original Records owned by the user –
originalRecords

And when the user leaves the company, in general practice, we revoke the D365 license for reuse. In that case, the user is Disabled in the system –

disabledUser

Important: Before you proceed further, please make a list of all Active workflows which are owned by the Disabled user before Reassigning Records. You can use Advanced Find to find such workflows.

Why should you Reassign Records

Workflows

Since the user who left was owner of any workflows having Scope of Organization level, they’d fail and if them being background workflows, you wouldn’t know what happened in the background. On investigating, you’d see error like –

errorInWorkflow

I noticed that workflows which are set to User scope will behave like they didn’t trigger.

Reassign Records

Use this feature to reassign records of the Disabled User to the new Administrator/User who should carry forward the smooth processing of day to day operations of Dynamics.

  1. Go to the user by going to Settings > Security > Users. Find the user and open the record.
    reassignRecords

  2. On clicking on Reassign Records as shown above, you’ll be asked whether you want to assign the records to yourself or some other user.
    reAssignToOtherUser
  3. The loading will complete and once you check, all the records that were previously with Somesh will be assigned to Vishal. See below –

    assignedToNewUser

  4. The workflows get assigned too. But, you have to do some activity before you say you’re done.

Reactive the Workflows

So, the records got swiftly got assigned to the new user. However, the workflow which Somesh owned were Deactivated, assigned to Vishal but were left Deactivated!
deactivatedWorkflows

And with that, you’ve saved some hours trying to find out why certain things went wrong. Hope this helped!