Dynamics 365 Omni-Channel

Issue in Loading Omni-Channel for Customer Service App

Problem:

When an agent logins to Omni-Channel for Customer service App he gets the below error and the agent status does not load.

There was a problem with your single sign-on account. Please sign out of all Microsoft Dynamics 365 apps and sign in again. If this continues, have your administrator contact Microsoft Support with client session ID.

Root Cause:

In Azure AD, check if Security Defaults is turned on. If it is turned on, the agent should have the right authentication set up. 

Resolution:

Set up right Authentication for Agent.

Alternatively switch off security defaults in Azure AD.

That’s it!! Issue is fixed.

Apps, PowerApps

How to Share Canvas App with Guest Users?

In this blog I will show step by step instructions on how to share canvas app with Guest Users.

Guest users can use their own Power Apps per User license to access a Canvas App in another tenant as a guest.

  • User got added successfully.
  • Navigate to https://make.powerapps.com
  • Click on the Canvas App that you want to share with Guest User.
  • Click on 3 dots->and choose share
  • Add Security Role and Share.
  • Now share the App URL to the guest user and he should be able to access the App.
  • The Guest User can access the App from his tenant and license Plan successfully.
PowerApps, PowerAutomate

Get Tweet User details from Twitter using Power Automate

In this blog, I will describe on how to use power automate to extract tweet details from Twitter page.

To start with,

  • Login to https://make.powerapps.com.
  • Navigate to Flows and create an automated cloud flow.
  • Let us use the trigger When a Tweet is posted.
  • Click on Add Connection and set the Twitter Account details which needs to tracked.
  • In the Search Text, enter the search terms – #Searchtext or “search text” or from: @username.
  • Power Automate will only trigger when the search criteria is met.

Initialize an array variable to get the User Details Array information from the Tweet.

  • Call the trigger – Get User
  • Insert user name parameter from previous step ( ‘when a new tweet is posted’)
  • Now pass information to user details array we initialized. For this we will use the action – Append to Array,
  • Test the results by passing it to a html table,
  • Lets use the create html table action and pass the array we set in the previous step with user details.
  • You can either choose the columns to be ‘Automatic’ or give custom values,

If custom value is choosen , each column name need to be created and value needs to be assigned as below,

@{variables(‘arrayname’)?[0]?[‘FieldName’]}

In our case to get full name – @{variables(‘userdetailsarray’)?[0]?[‘FullName’]}

  • Save the Flow. Now create a Tweet from associated Twitter account with the search input matching the search term specified in flow.
  • The UserDetails Array holds the following information,

The html table would appear like below,

  • Please Note : Incase location is coming as blank – make sure in Twitter User profile the location and location settings are set properly,

Complete steps for flow is as below,

PowerApps, PowerAutomate

Power Automate – Data sources using Environment Variables

In this blog , I will describe how to use environment variables to pass data sources in power automate flows.

Environment variables help us in a great way to reduce the manual association of data sources in each environment.

  • Login to https://make.powerapps.com
  • Navigate to Solutions -> Add New->More->Environment variables
  • Create an environment variable for Site .
  • Choose the Data Type – Data Source
  • Associate SharePoint connector if you have already created. Else create a connection and associate it here.
  • Choose the parameter type as ‘Site’.
  • Associate the SharePoint Site . You can pass the Default site value and a current value ( which is unique for each environment).
  • If the current value is not specified , default value will be used.
  • Once the environment variable for site is created, we need to create one more environment variable for List.
  • Follow the same steps as above and create a new environment variable,
  • Choose the Parameter Type as ‘List’.
  • Under Site , Specify the name of Environment variable we created in above step.
  • Now login to https://flows.microsoft.com
  • choose the flow that is using sharepoint list as data source or create a new flow,
  • In the Site Address – instead of specifying the URL directly choose ‘custom value’
  • Now you will observe that the environment variables are available to use in ‘Dynamic Content’
  • Use the Environment variables created for Site and List respectively,
  • This helps is deploying the Canvas Apps from one environment without manual intervention in Data source connections.
Apps, PowerApps

How to add custom themes and logo in PowerApps/Dataverse/MSCRM

In this blog, I will detail the steps on how to change the custom themes and logo in PoweApps.

  • Login to https://portal.office.com
  • Navigate to Settings->Org Settings.
  • Click on Organization Profile Tab and navigate to custom themes.

Click on Default Theme.

Enable the settings – Prevent Users from overriding their theme.

Click on Save.

Navigate to logos and upload the image ( < 10KB size).

Login to https://make.powerapps.com

Observe that the Logo appears in place of PowerApps in the header.

PowerApps, PowerAutomate

Microsoft Data verse – Create Data in Data verse from Excel using Power automate

  • Login to https://make.powerapps.com
  • Choose the environment.
  • click on Flows.
  • Choose the Instant Cloud Flow -> create a name and choose the PowerApps (V2) Trigger.
  • Add a Step and choose PowerApps as admin ->Get Apps as Admin
  • To know the Environment ID in Environment Name field ,
  • Click on Settings ->Session details->PowerApp Session Details ->Copy the value against Environment ID.
  • Add a new Action below Get Apps as Admin step -> List rows present in table.
  • Choose the Location. In my case I have kept the excel file in SharePoint.
  • Choose the Document Library, File and table name from excel file from where we need to read the data.
  • We need to loop through the list data output and create records in Data verse.
  • For this , choose the loop control Apply to Each.
  • Select the Output from previous step with ‘value’ returned from the List above.
  • Choose the Microsoft Data verse ->Add a new Row action.
  • Select the entity . In my case I am reading data from excel to create records in contact entity.
  • Map the mandatory attributes from value set to columns .
  • Save the Flow.
  • Apply the flow check and test the flow.

The Flow is complete and ready to use.

Reference to SharePoint list used in the flow,

Dynamics 365, PowerApps

Microsoft Dataverse Basics #1 : Create Custom tables in Dataverse/MSCRM

  • Login to Make.powerapps.com
  • Choose your environment
  • Navigate to Dataverse->Tables-> New Table
  • Enter the Display Name, Plural Name and Primary Field Name information.
  • Please check to enable Notes and Attachments.
  • Click on More settings to fill in Description, Table type, collaboration and Create and Update Settings.

Description : We can fill in the description about this table.

Table Type : We can choose to create the table as Activity table or Standard table.

Ownership : Ownership of the table can be at User/Teams level or Organization level.

Collaboration : We can enable Activities, feedback,Connections,Send Email, Enable SharePoint Document management setting, enable auto create teams option and queues for a table. Please note once queues are enabled , it cant be disabled.

Create and Update Settings : Enable Quick create forms, Duplicate Detection and change tracking settings for a table

Offline : Enable for Mobile phone and Dynamics 365 for outlook capabilities

Click on Create and the table gets created successfully.

Dynamics 365, Dynamics 365 Omni-Channel

Configure WhatsApp channel in Omnichannel for Customer Service

Pre-Requisite:

Please go through my post on Enable Omni Channel for customer service. To set up WhatsApp Channel, logon to Omnichannel Admin Center App as a Omni Channel Admin. Navigate to Channels and choose WhatsApp.

Choose the provider – TeleSign or Twilio where you have activated the Phone Number to receive WhatsApp Chat. In this post I will demonstrate with Twilio account.

Login to Twilio Account and copy the Account ID and Token.

Copy the Account SID and Auth Token from the Twilio Account. Update the Provider information in Omnichannel App and click on next.

Add WhatsApp Numbers to this account to send messages.

Copy the callback URL from next step and update in the Twilio Account.

Return to Omni channel Admin center App and create a work stream for WhatsApp Channel.

WhatsApp Channel

Set up WhatsApp Channel within Workstream.

Choose the WhatsApp number configured from Twilio Account.

Phone Number Activated from Provider

Set the Channel Operating hours in Behavior screen.

Set up the user behaviors.

Set up Routing Rule:

Review the Work Distribution setting. Enable Push Notification to yes and set the Agent capacity unit. Configure Skillset for Agent if we need to route the WhatsApp message based on Agent skill set.

Create a simple Rule Set and route the WhatsApp to right Queue.

Copy the Callback URL from Omnichannel App to Twilio Account.

Now test the connection by sending test messages to the Agent Mobile No configured in WhatsApp Workstream.

Dynamics 365, Dynamics 365 Customer Voice

Add Custom Domain in Dynamics 365 Customer Voice Survey

  • Logon to portal.office.com
  • Navigate to Settings->Org Settings->Services->Dynamics 365 Customer Voice
  • Click on Add Domain ->Enter the Domain name and click on next
  • Make Sure you enter a valid domain name without any https:// or www:// prefix.
  • Click on next once entering the domain.
  • System displays CName, CName and TXT values. These values need to copied in DNS records of the domain.( NOTE: In my case domain is purchased from godaddy and I need to add the DNS records in GoDaddy site.
  • The name values entered in DNS Records in GoDaddy should not have the domain suffix for names. The value in DNS should be fpeurkey1_domainkey and fpeurkey2_domainkey instead of fpeurkey1_domainkey.devisdemo.com and fpeurkey2_domainkey.devisdemo.com
  • Once the values are added in DNS Records, in portal.office.com screen click on Verify.
  • The records will be verified successfully and we need to enter the email address in the custom domain.
DNS Records Name and Value
Verify Domain
  • Once the domain is successfully verified, add the Distribution members email address in the below screen. These email ids associated here should have a valid mailbox configured for their ids.
  • The Approved User should be a global admin or Customer Voice licensed User.
Review and click on finish
Distribution member added successfully