Category: New Features

Dynamics 365 Wave 1 2020 Release|Customer Service

Hi Everyone

Following topics from wave 1 2020 customer service are covered in this video:

Timelines

How to enable wave 1 update?

Customer Service

•Agent productivity enhancements to knowledge capabilities

•Configure case resolution page

•Enhancements in case routing rules

•Enhancements in queue page

•Modern email experience

•New work hour calendar in service scheduling

•Rich text notes and keyword search

•Support for site entity

•Enhancements in SLA

•Automatically create and update records

Download PDF Here from Microsoft

Video here:

Note: 11:55 in the video I missed a queue feature, screenshot below:

Another one I missed, ‘Automatic record creation’- condition builder now allows you to save and open in Power Automate; screenshot below:

Hope it helps!

Subscribe to my channel and follow my blog.

Thanks!

Let’s keep sharing!

Dynamics 365 Wave 1 2020 Release|Sales

Hi Everyone

Following topics from wave 1 2020 sales are covered in this video:

Timelines

How to enable wave 1 update?

Forecasting

•Flexible column modeling

•Support different organizational structure

•Benefit from quota management

•Advanced filtering

•Security modeling to meet business needs

•Forecast adjustments

•Responsive forecasts grid

•Edit participating records inline

•Pipeline visualization •Near real time updates

Licensing

•Sales Team Member

•Customer Service Team Member

•Project Resource Hub

Simplified Experiences

•Enhanced experience for adding products

•Easier Selection of email templates

•Manage activities with ease

•Save standardize PDF documents

•Opportunities in Kanban

Download PDF Here from Microsoft

Video here:

Hope it helps!

Subscribe to my channel and follow my blog.

Thanks!

Let’s keep sharing!

Every Power Automate (MS Flow) Filter Query You Ever Wanted To Know As A Functional Consultant

Hello Readers

This blog is to help fellow consultants to start their journey on Power Automate. We all know how easy it is to create a flow (Watch #TGIF Episode 2 here, if not already).

I am sure as a Business user or a functional consultant, you must have had a situation where you needed someone technical to complete your flow. Most of this bottleneck is because as non-technical people we don’t know what ‘ODATA Query’ is?

Coming from Dynamics 365 background, I never required such filters for native workflows of D365. But here we are moving forward and learning together to be able to work with Flows.

This post will talk about the following two filter types you need while building a flow:

  1. ODATA filter query
  2. Filter array

Before we commence with the filters, i will try to explain you the components of ODATA filter query:

1.Field or Column Name 2.Operator 3.Field value you want to check/filter

Sequence: In most queries the sequence of the components remains like ‘fieldname operator fieldvalue’ but in some cases like contains/does not contains sequence and structure changes to ‘operator(fieldname,’fieldvalue’)’

A few operators: 

Operator Description
eq Equal to
ne Not equal to
contains contains
not contains Does not contains
gt Greater than
lt Less than
ge Greater than or equal to
le Less than or equal to
and And
or Or
startswith Start with the specified value
endswith End with the specified value

ODATA filter query

1.Contains for text fields

This one is for text fields like Topic, Subject, Phone, City, Street 1 etc.

Filter query= contains(textfieldschemaname,’value’)

e.g. if I have to check whether the ‘Subject/Topic’ of a Lead record contains ‘New’ in it; my filter would be contains(subject,’new’)

Screen Shot 2019-11-16 at 1.14.33 pm

2. Does not contains for text fields

This one is for text fields like Topic, Subject, Phone, City, Street 1 etc.

Filter query= not contains(textfieldschemaname,’value’)

e.g. if I have to check that the ‘Subject/Topic’ of a Lead record does not contains ‘New’ in it; my filter would be not contains(subject,’new’)Screen Shot 2019-11-16 at 1.15.24 pm.png

3.Contains data (Is not blank)

This one is for both text and option set fields

Filter query= textfieldschemaname ne null

Filter query= optionsetfieldschemaname ne null

e.g. if I have to filter where ‘Job title’  contains data or is not blank; my filter would be jobtitle ne null

e.g. if I have to filter where ‘Rating’  contains data or is not blank; my filter would be leadqualitycode ne null

4. Does not contains data (Is blank)

This one is for both text and option set fields

Filter query= textfieldschemaname eq null

Filter query= optionsetfieldschemaname eq null

e.g. if I have to filter where ‘Job title’  does not contains data or is blank; my filter would be jobtitle eq null

e.g. if I have to filter where ‘Rating’  does not contains data or is blank; my filter would be leadqualitycode eq null

5.Contains for option sets

This one is for option set fields like Rating, Lead Source, Industry, Type etc.

Filter query= optionsetfieldschemaname eq optionsetnumericvalue

e.g. if I have to filter lead’s with rating ‘Hot’ (value =1); my filter would be leadqualitycode eq 1

Note: As per my understanding, you can’t check option set label in ODATA filter but you can in filter array.

6.Does not contains for option sets

This one is for option set fields like Rating, Lead Source, Industry, Type etc.

Filter query= optionsetfieldschemaname ne optionsetnumericvalue

e.g. if I have to filter lead’s with rating ‘Hot’ (value =1); my filter would be leadqualitycode ne 1

7.Contains with ‘OR’ on same field

Filter query= contains(field1name,’value1′) or contains(field1name,’value2′)

Filter query= optionsetfieldname1 eq optionsetnumericvalue1 or optionsetfieldname1 eq optionsetnumericvalue2

e.g. if I have to filter where ‘Job title’  contains ‘Manager’ or ‘Consultant’; my filter would be contains(jobtitle,’manager’) or contains(jobtitle,’consultant’)

e.g. if I have to filter where ‘Rating’  contains either ‘Hot’ or ‘Warm’ data; my filter would be leadqualitycode eq 1 or leadqualitycode eq 2

8. Contains with ‘AND’ on same  text field

Filter query= contains(textfield1name,’value1′) and contains(textfield1name,’value2′)

e.g. if I have to filter where ‘Topic’  contains ‘New’ and ‘Interested’; my filter would be contains(subject,’new’) and contains(subject,’interested’)

9.Filter an option set checking two or more values

Filter query= optionsetfieldname1 eq optionsetnumericvalue1 or optionsetfieldname1 eq optionsetnumericvalue2

e.g. if I have to filter where ‘Rating’  contains either ‘Hot’ or ‘Warm’ data; my filter would be leadqualitycode eq 1 or leadqualitycode eq 2

Screen Shot 2019-11-16 at 1.16.25 pm.png

10. Filter by checking two different option sets

Filter query= optionsetfieldname1 eq optionsetnumericvalue1 or optionsetfieldname2 eq optionsetnumericvalue2

e.g. if I have to filter leads where ‘Rating’  contains ‘Hot’ and  ‘Lead Source’ contains ‘Advertisement’; my filter would be leadqualitycode eq 1 and leadsourcecode eq 1

Screen Shot 2019-11-16 at 1.17.15 pm

11.Starts with/Begins with

This is for text fields only

Filter query=startswith(fieldname,’startvalue’)

e.g. if I have to filter all Australian leads , I will look at ‘Business Phone’ starts with country code +61; my filter would be startswith(telephone1,’+61′)

e.g. if I have to filter leads from  Australia or New Zealand, I will look at ‘Business Phone’ starts with country code +61 or +64; my filter would be startswith(telephone1,’+61′) or startswith(telephone1,’+64′)

e.g. if I have to filter leads having ‘Business Phone’  from Australia but ‘Mobile Phone’ from New Zealand, I will look at ‘Business Phone’ starts with country code +61 and +64; my filter would be startswith(telephone1,’+61′) and startswith(mobilephone,’+64′)

12.Ends with

This is for text fields only

Filter query=endswith(fieldname,’endvalue’)

e.g. if I have to filter all leads where ‘Website’ ends with ‘.org’; my filter would be endswith(websiteurl,’org’)

e.g. if I have to filter all leads where ‘Website’ either ends with ‘.org’ or ‘.com’; my filter would be endswith(websiteurl,’org’) or endswith(websiteurl,’com’)

e.g. if I have to filter all leads where ‘Website’ ends with ‘.org’ and email ends with ‘.com’; my filter would be endswith(websiteurl,’org’) and endswith(emailaddress1,’com’)

13.Greater than

This is for Numbers and date fields only

Filter query=datefield gt ‘specificdate’

Filter query=datetimefield gt ‘specificdatetime’

Filter query=numberfield gt specificnumber              (No, ” here)

e.g. if I have to filter leads created after 10th August 2019

createdon gt ’10/08/2019′

e.g. if I have to filter leads created after 5AM on 10th August 2019; my filter would be

createdon gt ’10/08/2019 05:00′

e.g. if I have to filter leads created after 5:30AM on 10th August 2019; my filter would be

createdon gt ’10/08/2019 05:30′

Screen Shot 2019-11-16 at 1.18.15 pm.png

e.g. if I have to filter leads created after 5PM on 10th August 2019; my filter would be

createdon gt ’10/08/2019 17:00′

e.g.if I have to filter leads created after 5:30PM on 10th August 2019; my filter would be

createdon gt ’10/08/2019 17:30′

e.g. if I have to filter leads where annual revenue is more than $2000000

revenue gt 2000000 

e.g. if I have to filter leads where annual revenue is more than $2000000 and number of employees is more than 500

revenue gt 2000000 and numberofemployees gt 500

Screen Shot 2019-11-16 at 1.12.15 pm

14.Less than

This is for Numbers and date fields only

Filter query=datefield lt ‘specificdate’

Filter query=datetimefield lt ‘specificdatetime’

Filter query=numberfield lt specificnumber              (No, ” here)

e.g. if I have to filter leads created before 10th August 2019

createdon lt ’10/08/2019′

e.g. if I have to filter leads created before 5AM on 10th August 2019; my filter would be

createdon lt ’10/08/2019 05:00′

e.g. if I have to filter leads created before 5:30AM on 10th August 2019; my filter would be

createdon lt ’10/08/2019 05:30′

e.g. if I have to filter leads created before 5PM on 10th August 2019; my filter would be

createdon lt ’10/08/2019 17:00′

e.g.if I have to filter leads created before 5:30PM on 10th August 2019; my filter would be

createdon lt ’10/08/2019 17:30′

e.g. if I have to filter leads where annual revenue is less than $2000000

revenue lt 2000000 

e.g. if I have to filter leads where annual revenue is less than $2000000 and number of employees is less than 500

revenue lt 2000000 and numberofemployees lt 500

15.Less than or equal to and Greater than or equal to

This is for Numbers and date fields only

Filter query=datefield ge ‘specificdate’

Filter query=datetimefield ge ‘specificdatetime’

Filter query=numberfield ge specificnumber              (No, ” here)

Filter query=datefield lt ‘specificdate’

Filter query=datetimefield le ‘specificdatetime’

Filter query=numberfield le specificnumber              (No, ” here)

e.g. if I have to filter leads created after or on 10th August 2019

createdon ge ’10/08/2019′

e.g. if I have to filter leads created after or at 5AM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 05:00′

e.g. if I have to filter leads created after or at 5:30AM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 05:30′

e.g. if I have to filter leads created after or at 5PM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 17:00′

e.g.if I have to filter leads created after or at 5:30PM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 17:30′

e.g. if I have to filter leads where annual revenue is more than or equal to $2000000

revenue ge 2000000 

e.g. if I have to filter leads where annual revenue is more than or equal to $2000000 and number of employees is more than or equal to 500

revenue ge 2000000 and numberofemployees ge 500

e.g. if I have to filter leads created before or on 10th August 2019

createdon le ’10/08/2019′

e.g. if I have to filter leads created before or at 5AM on 10th August 2019; my filter would be

createdon le ’10/08/2019 05:00′

e.g. if I have to filter leads created before or at 5:30AM on 10th August 2019; my filter would be

createdon le ’10/08/2019 05:30′

e.g. if I have to filter leads created before or at 5PM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 17:00′

e.g.if I have to filter leads created before or at 5:30PM on 10th August 2019; my filter would be

createdon ge ’10/08/2019 17:30′

e.g. if I have to filter leads where annual revenue is less than or equal to $2000000

revenue ge 2000000 

e.g. if I have to filter leads where annual revenue is less than or equal to $2000000 and number of employees is less than or equal to 500

revenue le ‘2000000’ and numberofemployees le 500

e.g. if I have to filter leads where annual revenue is less than or equal to $2000000 and number of employees is more than or equal to 500

revenue le ‘2000000’ and numberofemployees ge 500

Filter array

These are very much similar to what we get in D365 native workflows except for puttin the value ourselves.

1.Option set label

Select the label field dynamically and not the value field. Then specify your label value on the right.

Screen Shot 2019-11-16 at 1.25.11 pm

Screen Shot 2019-11-16 at 1.24.00 pm

2. Option set value

Select the value field dynamically and not the label field. Then specify your option set value on the right.

Screen Shot 2019-11-16 at 1.29.06 pm

3. Text fields

This one is for text fields like Topic, Subject, Phone, City, Street 1 etc.

Screen Shot 2019-11-16 at 1.30.32 pm.png

4. Number and date fields

This is for number and date fields.

Screen Shot 2019-11-16 at 1.32.31 pm.png

Screen Shot 2019-11-16 at 1.33.25 pm.png

Those are enough filters to get you started. 🙂

Hope you find this helpful!

Subscribe to my YouTube

Thanks!

Let’s keep sharing!

PowerApps & Flow User Group App for Leaders, Hosts, Organisers and Coordinators

Hello Readers and Viewers

As User Group organisers, it becomes difficult for us to track the attendance of participants mostly due to the format of the meeting. In our last week’s UG we were prepared to break the ice and created an app to check in attendees.

Following is what you can do with the app:

  1. Register attendees as members
  2. Update member details
  3. Check In attendees
  4. Draw Raffle (if and when it’s available)

What can you get out of it:

  1. Track the attendance of your members
  2. If members are not regular, send them a survey for what they want to see
  3. Send them a FormsPro survey to get feedback
  4. Keep member details up to date
  5. Instead of drawing raffle the conventional way, use PowerApps

Screens:

Home

IMG_0279

Register Participant

IMG_0281

Update Details and Check In

IMG_0282

Note: Check In form is hidden, so members don’t have to fill in date, UG and their name again

Members List

IMG_0280

Draw Raffle

IMG_0283

Note: Shuffle formula and collection is used for Raffle draw

Data Source: OneDrive (Excel Web)

Tables used: Registered Members and Checked In Members to draw raffle

If you’re a User Group leader and want to use this app; you don’t really have to make any changes except for the connection and start using it. I have uploaded it on github. More instructions on there:

https://github.com/diyd365/UserGroupApp

Watch the youtube demo here:

Subscribe to my channel and follow my blog.

Thanks!

Let’s keep sharing!

 

 

PowerApps for Business Users & Consultants: Episode 6- Embedding Canvas App in Model Driven App

Hi Readers and Viewers

In this episode, we are going to look at, How to embed a canvas app into a model driven app.

We talk about the following limitations:

  1. One canvas app per model driven form.
  2. Changes in each app must be published separately to reflect.

We talk about some tips:

  1. Change format of the section of the field where you have enabled canvas app control.
  2. Make the field appear in the middle of section so that your canvas app can get most space.
  3. Rename the display name of the field to something small so that it takes less space.
  4. If you’re adding control to a very important field like ‘Account Name’ maybe add it twice on the form on different location.

We look at different layouts where the app looks better:

  • One column tab
  • Two columns tab
  • Three columns tab

Video here:

Subscribe to my YT channel and follow my blog.

Hope it helps!

PowerApps for Business Users & Consultants: Episode 5-Easy PowerApps Hacks To Make Your Users Life Easy

Hi Readers and Viewers

In this episode we are talking about super easy hacks which will help you in making a user friendly app. Following is what I am talking in the video; I have specified time against each item so I can watch what you want to watch and not the whole video:

  • Pop ups (with conditions) -2:00
  • Launch (website or another app) -8:15
  • Dynamic heading/title -11:10
  • Many to Many relationship galleries (are they any different to filter?) -15:45
  • Relate/Unrelate formulas -17:35
  • Push Notifications to PowerApps users -23:23

**(Dynamic push notifications example on this blog: https://powerapps.microsoft.com/pl-pl/blog/add-push-notification-to-you-app-and-boost-usage-and-retention/)

Video here:

Subscribe to my youtube channel and follow my blog.

Hope it helps!

Thanks!

 

 

How To Update An Opportunity From Opportunity Close And Send An Email on Opportunity Close, Using MS Flows? (No Code Solution)

Hello Readers & Viewers

In this video, i am showing ‘How to send an email with information from Opportunity Close form, using MS Flows?’. This flow will also help you to update opportunities from opportunity close form, it’s the same concept.

Many of you might know that using the native workflow functionality of Dynamics 365 you can’t achieve this; as ‘opportunity close’ is not in the entity list of workflows. Opportunity close is a type of activity and ‘Activities’ are also not available in the workflow entity list except for a few common one’s like calls, email, tasks, appointments etc.

Doesn’t matter, does it?

With Microsoft Flows you can achieve this and you can do things like:

  • Send an email on opportunity close
  • Send an email on opportunity close with information from opportunity close form
  • Update an opportunity from opportunity close form

We used to do all this with a plugin earlier and now its so easy.

Watch the video here:

Hope it helps!

Happy CRMing!

 

Bug! Bug ! Bug ! Can’t resolve a case

Hello Readers

We found a major issue with Unified Interface Business Process Flows. Don’t know if it can be termed as a Bug, but had to make the title catchy 😀

Description- Following are the details:

  • BPF Name: Phone to Case Process
  • Stage: Resolve
  • Field: Resolve Case (Clicking this field opens the case resolution form)
  • Field Values: Mark Complete and Closed

Web Client/Classic UI Behaviour

Following screenshot is from classic UI

Clicking on ‘Resolve Case’ opens the case resolution form, as shown below:

Unified Interface Behaviour

All fields on BPF appear except for ‘Resolve case’ which means you have to the “RESOLVE CASE” button on ribbon.

Alternative: Create a custom field, option set or two options until Microsoft fixes this issue. Trigger the “RESOLVE CASE” button action on change of your custom field.

Note: I did read Dynamics 365 for Customer Engagement Readme But it talks about limitations of Action Steps of BPF and not Data Steps of BPF.

Hope Microsoft will fix it soon.

Happy CRMing!!

#D365 #Dynamics365 #CRM # MSCRM #BusinessProcessFlow #Bug #Microsoft

Small but useful features Dynamics 365 V9

Multiselect Option Set

You can read about it here: http://dynamicscrmcoe.com/dynamics-365-v9-multi-select-option-set/

But how to import data with multiselect option set is a question and below is the answer:

Taking example of contacts with preferred car, following is a table on how to do it:

Correct format

Sample first Name Sample Last Name Email Mobile Preferred Car
Joe H Joe.h@sample.com +61 467891234 Honda; BMW; Toyota
Andrew Ly Andrew.ly@sample.com +61 467891235 Audi; BMW; Tesla

So, the key is to separate the values by a “;” + space

Incorrect format

Sample first Name Sample Last Name Email Mobile Preferred Car
Joe H Joe.h@sample.com +61 467891234 Honda, BMW;Toyota
Andrew Ly Andrew.ly@sample.com +61 467891235 Audi BMW Tesla

Text Wrap

This is a good one, as now the fields with big labels can be displayed in full J

Currently if we have long text labels, we can’t see the whole text and we must hover as shown below:

1

But if we enable the text wrap settings then we can see the whole text here, as shown below:

2

How to enable the settings? Go to Settings>>Administration>>System Settings>>General Tab>>First Option>>select Yes and click OK

3

Inactivity Timeout

You can now set inactivity timeout for a session along with a warning.

Go to settings>>Administration>>System Settings>>General Tab>>Scroll down>>enter your duration and click OK (as shown in the screenshot below)


4

Hope you find this helpful.

Happy CRMing !