Microsoft Technologies leveraged on projects

One of the reasons I persist with the Microsoft Technology stack is that having a huge box of legos to build business applications with is just hard to beat. 

Microsoft tends to change names, debate branding and overall try to communicate what a consultant can bring to the table, but in most of my projects now we tap into numerous different offerings.

Take for instance my last project. In my last project we delivered an integrated model that included 

  • Microsoft Dynamics 365 Customer Engagement (Model Driven Power App + Microsoft Canvas App)
  • Microsoft Dynamics 365 Finance and Operations (Supply Chain Management focused)
  • Power Automate (Flow) (Approvals and Standard)
  • Power Portal (now called Power Pages)
  • Microsoft Dual Write (connecting DYN365FO + DYN365CE)
  • Microsoft Azure Synapse
  • Microsoft Azure Function Apps
  • Microsoft Azure Logic Apps
  • Microsoft Azure Service Bus 
  • Microsoft Teams
  • Microsoft Azure Blob Storage
  • and Microsoft Office 365 

We also coordinated the team and the application lifecycle management using Microsoft Azure DevOps, Microsoft Azure CLI, Microsoft Visual Studio, Microsoft RSAT (Regression Suite Automation Tool) and Microsoft Teams. 

Now you would think that you would need a HUGE team to deliver the above, but we actually delivered using a very reasonably sized team with a mix of resources. 

One of the beauties of the Microsoft stack of applications and offerings is that there is so much that you can do! The ability to use a platform that grows organically (SaaS) and through phased projects aligned to key business needs, keeps companies current with the latest and greatest technology offerings. 

The world moves so fast. It is great to have structures in place that allow teams to move at the same speed. 

 


Incredible Flexibility

I am working with some incredible technologies, and I am working with the Power Platform and so many cool things that can be done with this incredible engine of growth. 

Consider this: You have an incredible repository of many different data sources. You have an entire team of people who work on "DATA" (and AI and all the cool new in the data space), but you also use one or many of the Power Platform, Model Driven, Dynamics PowerApps (Sales, Field Service, Customer Service, Connected Field Service, Marketing, Talent, Custom and so many more)

Did you know that you can work with a Power BI team to create incredible reports off of your data "repositories" (pulling data from many different places) AND you can then embed these Power BI reports in a Power Platform, Power Portal. Why use a Power Portal over a custom web page or some other option? well there is that little gem of application and/or data access security. Yes, the templates are also incredibly nice, but where Microsoft shines is in the layers of awesome. 

One of the reasons that I continue to focus and grow within the Power Platform is the huge flexibility and pivoting of new technologies to meet the demanding business needs. These needs are met leveraging the same platform and the platform continues to grow and be supported. 

 


One Why | Model Driven Apps | Configurable Role Based Entitlement Security | Who gets to access What

1) Business Unit Hierarchy | The ability to divide the data into isolated silos with bridges of controlled access aligned to the defined.(Security + Performance)

2) Out of the Box Entities | The configuration of entity permissions when the entity is doing backend functionality for the system and not something such as Account, Contact....

3) Management Hierarchy | The ability to give permissions to a manager based on the permissions and data and functions that their child team member has access to.

4) Field Level Security | The ability to mask, encrypt and control who can see a specific field within an entity

5) Entity Security | The ability to control who can Create, Update, Read, Delete, Append, Append to and Share specific out of the box entities or custom entities by Organization, Business Unit, Business Unit Hierarchy or User Ownership. 

6) Flow Context | The ability to control what permissions a flow runs under, either Contextual User or a Defined User such as a system account.

AND there is more so when considering "Building Your Own", consider if you want to recreate the concept of Role Based Entitlement 

  


Power Platform - Model App Configuration

I was doing a little bit of work this weekend and I could not figure out what happened to BULK EDIT in some of my entities. Given that we are always getting new updates I thought that perhaps it was a feature in transition. 

After a little more thinking I realized what happened.

When you turn on EDITABLE GRIDS, you loose the more traditional BULK EDIT. 

 


Simplicity in the face of Complex business needs

There is a reason that "Google" quickly became the go to for all things search. A simple white screen with one box. Type what you are looking for and a million results will follow. 

People do not need to be trained to use Google. (in general)

On the other hand if you do get trained in some of the search techniques or advanced search techniques amazing extra value is delivered (for instance, filtering occurs). What you don't want a million results? OK, fine tune your search criteria. What? There is a trick to that? Yes, there are advanced Google skills.

Now apply this same concept to the speed of technology change. OUCH!

"Everything is changing"

"I can't keep up"

"I learned something yesterday that is slightly different today"

These are some of the biggest challenges that business leaders face today. How do they manage the impact of change on their processes, their staff and with the technology products they so depend on? Change Management is one thought and change management is starting to be part of most all projects, BUT change management techniques also must adjust to the speed of today's change. 

Similarly to the shift from traditional marketing, to marketing with the impact of social. Change Management must also adapt to the world of the cloud and Software As a Service (SaaS). The technology world went from 2 year major upgrades to 1 year major upgrades to 6 month major upgrades to was there an upgrade? The SaaS drip, drip, drip software growth utopia.

Business needs software that can manage their complex needs, but they also need software that can be simplified and flexible. This is one of the interesting beauties of the Microsoft Dynamics 365 platform approach. The foundation is solid technology, proven technical, coding, database and design best practices, and the details are configurable. 

Can you purchase configured modules? Yes

Do you still want to configure them? Yes

Just as each user uses Outlook slightly differently, there are choices for how you might want to approach even the canned modules.  So how do you really get to that place of simplicity? This is where working with people becomes quite interesting.  In an ideal team, each team member contributes how they might approach a given problem and then the team and team leadership figure out the solution that makes the most sense for the audience. This ability to listen to how others might approach a problem is a key skill to keep in mind and one not always found.

I remember a side conversation with one of the geniuses I had the gift of talking with. He said it best .. When building an application sometimes we have to remember to build for the average person, not the vocal and more advanced member of the project team or solution matter expert (SME) audience. The person who is busy, who is focused on their work and who perhaps just wants to be empowered in their position without a lot of heavy training. 


XRMTOOLBOX - A Microsoft Dynamics 365 resource must have!

I have recently been checking out some of the other tools in the XRMTOOLBOX. 

If you have not discovered these tools and you are a Microsoft Dynamics Consultant or Developer, you definitely want to check them out. They make many of the manually intensive configuration steps much more efficient. Take for instance the need to create a set of views. You can use the XRMTOOLBOX tools to create one view and then replicate it to the others within an entity.

The XRMToolbox also includes a very long list of cool. 

Here is a short list of some favorites:

  • Bulk Workflow Execution
  • Document Template Export
  • FetchXML Record Counter
  • Manage N:N Relationships
  • View Layout Replicator
  • Bulk Default Setting of Personal Options/User Settings
  • Duplicate Rules Mover

  


Do you know where your bottleneck is? Microsoft Dynamics 365 for CE

Now that we are running in larger data centers with the power of Microsoft Azure and with hardware technology such as solid state storage (moving away from the limitations of rotating platters) we all want to take a deep breath and make a sigh of performance joy. 

Unfortunately when you eliminate one bottleneck the data moves to the next. Additionally bottlenecks are not just hardware.

Consider a rock wall layered in a stream of water, you remove the rocks blocking the water, and the water rushes to the next barrier. The same concept applies to data. 

If you are working with millions or hundreds of thousands of data records you might want to consider:

  • Performance Tune the Microsoft SQL Server Database (SQL Server gurus can appreciate this one!)
  • Adding MS SQL Server Indexes to your largest Entities.
  • Watching out or reviewing JavaScript (JavaScript is a language that allows developers to inadvertently and easily create application bottlenecks) Luckily OOB Dynamics 365 has been deeply tested for bottlenecks continuously over the years and has continued to pass with flying colors.
  • Consider Latency (Microsoft now offers data center distributed processing for their Worldwide Dynamics Customers, reducing the trips across the oceans)
  • Understand if you have a bottleneck and where it is (Dynamics actually ships with a Diagnostic tool to check latency and bandwidth: Use https://[your crm url]/tools/diagnostics/diag.aspx  
  • If you are hosting your own environment, you can also tap into the Microsoft Professional Field Engineering teams Performance Analysis and Tuning Services (the PFE Sustainability Engineers Rock) or
  • you might consider a powerful tool such as ThousandEyes:  https://blog.thousandeyes.com/monitor-dynamics-crm-performance/ and https://www.thousandeyes.com/solutions/dynamics-365-monitoring 

What are your favorite tips and tricks for performance? 

Oh and as a last note .. there are customers processing 100,000s of data records a DAY with the Microsoft Dynamics platform. The power is incredible with a little love.

 

 

 

 


Microsoft Dynamics 365 for Customer Engagement - Search

The following table provides a brief comparison of the four available search options in Microsoft Dynamics 365 for CE. Microsoft often provides many options for achieving the same goal (just look at all you can do with Outlook!)

The link to this information and to read more https://docs.microsoft.com/en-us/dynamics365/customer-engagement/basics/search-and-find-header

Functionality

Relevance Search (Online Only, the power of Azure)

Full-text Quick Find (also called Categorized Search)

Quick Find

Advanced Find

Enabled by default?

No. An administrator must manually enable it under system settings.

No. An administrator must manually enable it under system settings.

Yes

Yes

Single-entity search scope

Not available in an entity grid. You can filter the search results by an entity on the results page.

Available in an entity grid.

Available in an entity grid.

Available in an entity grid.

Multi-entity search scope

There is no maximum limit on the number of entities you can search. Note: While there is no maximum limit on the number of entities you can search, the Record Type filter shows data for only 10 entities.

Searches up to 10 entities, grouped by an entity.

Searches up to 10 entities, grouped by an entity.

Multi-entity search not available.

Search behavior

Finds matches to any word in the search term in any field in the entity.

Finds matches to all words in the search term in one field in an entity; however, the words can be matched in any order in the field.

Finds matches as in a SQL query with “Like” clauses. You have to use the wildcard characters in the search term to search within a string. All matches must be an exact match to the search term.

Query builder where you can define search criteria for the selected record type. Can also be used to prepare data for export to Office Excel so that you analyze, summarize, or aggregate data, or create PivotTables to view your data from different perspectives.

Searchable fields

Text fields like Single Line of Text, Multiple Lines of Text, Lookups, and Option Sets. Doesn't support searching in fields of Numeric or Date data type.

All searchable fields.

All searchable fields.

All searchable fields.

Search results

Returns the search results in order of their relevance, in a single list.

For single-entity, returns the search results in an entity grid. For multi-entity, returns the search results grouped by categories, such as accounts, contacts, or leads.

For single-entity, returns the search results in an entity grid. For multi-entity, returns the search results grouped by categories, such as accounts, contacts, or leads.

Returns search results of the selected record type with the columns you have specified, in the sort order you have configured.

Wildcards (*)

Trailing wildcard supported for word completion.

Leading wildcard supported. Trailing wildcard added by default.

Leading wildcard supported. Trailing wildcard added by default.

Not supported.

 


Microsoft Dynamics 365 Portals with the awesome, unicorn loving, Colin and the incredible, Griffin loving, Robert Bailey

Tips and Thoughts

1) Is it the right technology for the need?

2) Have a solid design and a long term iteration and maintenance plan

3) Never forget about the customers, customer who might be using the portal.

4) Consider Identity and Authentication for the customers, customer, but also for portal versus Dynamics 365. 

5) Golden Keys: The right development team, the right methodology, the right relationships with the customers/users and their continued involving involvement. 

6) Graphics and Web Design are part of portal projects, pictures can communicate 1000 of the wrong words. 

7) Bring Joy

8) If Multilingual is a need, do it as part of PHASE I. It is harder to  add additional languages in later phases. 

 


Dynamics CRMUG FOCUS - Houston - Cracking open the brain with reminders and new tips shared.

The power of the user group is that listening to peers, experts, partners, consultants, business users, financial advisors and so many more, opens the mind to interesting ideas. 

CRM USER GROUP - FOCUS - in HOUSTON

9:49am and here are the first few tips 

1) Have you considered holding your sales team to task by using SLAs on LEADS, measuring when the lead was first contacted or when a lead reached a key milestone in the qualification stage? 

2) GOALS, so under appreciated and yet so powerful. Add goals in unique and creative ways to take full advantage of the complex hierarchy offered from this little feature. 

3) Task Flows : Originally for Mobile Only, but now embedded across the new UI. Take for instance OOB Follow-up to a meeting. A sexy dialog. 

4) DOCK your business process flow on the right side of your form so you can see the fields. Always learning, this is a cool one, although I thought a TAB approach might be useful as well. Some people like that old style form view. 

5) Did you know you can use an Out of the Box action to move a business process flow to the next stage automatically (so your user doesn't have to press next)? 

6) Has your partner added an APP or APPS to your configuration? If not, you are missing out.


In the world of Dynamics 365, configuration/customization/extension does not equal the old world assumptions of "custom software"

When thinking of the experiences or backgrounds needed for any specific project, don't let assumptions trip you up. These terms can help with your communications. 

 

 

Configuration – knowing of and Answering all the questions related to setting up the system for a specific customer. These include all the options under SETTINGs including but not limited to items such as turning on auditing, configuring number formats, turning on relevance search, setting up duplicate detection, configuring territories, setting fiscal year end and more. This is done on every Dynamics 365 project (hopefully) and there are more than 50 questions.

 

Customization – A functional consultants power to configure the system for specific business models such as renaming entities, adding entities, adding system charts, lists/views, adding workflows, creating business rules, formatting the data entry fields and forms, creating PowerApps, setting up relationships between entities and more. The term customization often waffles between configuration and extensions depending on who is using the term.

 

Extensions – extending the functionality of the system using developer resources and many, many, many different code options (.Net, C++, JavaScript, AngularJS, and about 30 more) and includes items such as creating an integration layer with queuing to manage external data integration (although this is shifting to configuration), adding new advanced features, adding advanced automation, extracting/manipulating and resaving data from numerous entities, onSave/onChange/onLoad have the data jump through hoops and blink, etc. The platform is built to be extended and extensions upgrade as they are built using a predefined best practices Software developer kit (SDK) from Microsoft.

 

The world of technology is deep and wonderful. 


FLIC - The little button that could change your world

At Microsoft Dynamics 365 Saturday in Boston Jerry Weinstock shared with us how he is using FLIC with Microsoft Dynamics 365. 

The idea is that you setup a FLIC button (which is a physical button) and tie it to a Microsoft Flow. The flow queries the Microsoft Dynamics 365 database, puts together a table of current information (say the top 10 opportunities) and sends the table in an e-mail to a manager. Managers who work heavily in e-mail, but who don't have time for applications might find this little configuration a true gift. 


Understanding the Maturity of a Feature

As Microsoft releases more and more features, modules and wonderful goodness into the Microsoft Dynamics 365 platform it is good to build out your understanding of the maturity of each feature. The maturity defines the number of layers of updates or changes that any given feature might have experienced as well as it's depth of functionality. You can also relate this to the version of a feature; although, the version is not always the deciding factor. It is possible to have a very mature version 1.0 feature. 

Why is this important? It helps to set the expectations of where the strengths and weaknesses are as you adopt the platform and extend the features. It also helps you understand and manage your expectations around what the speed of change will be with regards to a specific set of features. 

Extract from the people on your team who have worked with the platform for many, many years - You need to knowledge share around the age and growth of key features. It is also important to have these conversations so you can stretch all resources into considering alternative approaches including the experienced team members. Change is not only constant in this wild world of the Microsoft Stack, but it is also speeding up.

So how do we go about understanding maturity? 

As much as I would like to list every known feature in the system (I might save that for a future blog post), I think the key area to start with on each project is with a list of the features that are relevant. When working on a custom service/call center project you might not care as much about the sales automation processes or when working with an xRM or AnyRM project you might not need to be as concerned with cases and knowledge management.

So once you have a high level understanding of the areas of the platform that you want to leverage, make a quick chart of maturity.  There are a few items that you want to capture as follows:

1) When was the feature released? What version (your choices include version 1.2  all the way up to version 9.1.x.xxxx)

2) Understand how the feature or area of the platform fits within the Microsoft Roadmap. Is this a feature that is waning into deprecation or is it positioned for rapid growth? 

3) Acknowledge what the team knows about the strengths and weaknesses of the feature. A good brain sharing exercise. 

4) Understand the feature dependencies. Take for instance, Cases - Cases have a wide set of dependent entities and functionality that goes fairly deep from SLAs to Contracts to Knowledge Base(s) and Closures. 

5) Acknowledge what can and can't be configured. 

6) Understand which ISVs (third party vendors) have bundled offerings that extend the features so you know your choices. Take for instance Accounts - There are numerous offerings that validate addresses and that help with extracting data on accounts from the internet. There are also numerous social engagement offerings including Microsoft's own Microsoft Social Engagement (MSE) Offering.

7) Always keep an open mind for the way that you would solve a problem on your last project is not always the same way to solve the exact same problem on your current project. 

and lastly do a little deep diving into who on the product team or what group among the product team owns the feature set. This research is a key exercise for anyone attending one of the many conferences. Understanding or even meeting the product team who updates and extends features can help you better understand the vision and growth. 

 


SLAs. SLAs, SLAs - The simplicity and complexity of Service Level Agreements in #DYN365

Using SLA's with Cases

There are a number of features built into Microsoft Dynamics that support the configuration of an SLA associated with the Case Entity. When working with any of the features in Dynamics it is always a good idea to understand what the programming team has already created AND what the strengths, maturity and weaknesses of these features are. When it comes to SLA's and CASES there are layers on each.

Take for instance CASES. Cases are not just one simple entity, cases include both the case entity and the Case Resolution Entity. When a case is resolved, key information is captured in the case resolution entity. Each are interdependent. Additionally each offer SOME customization and SOME you can't change that. It is that "you can't change that" which generally trips people up.

SLA's also have layered complexity. An SLA has both FIRST RESPONSE and COMPLETION functionality. You will want to consider what rules you would like to use to indicate a first response and what rules you would like to consider for the completion. Technically these get applied as two separate line items within one SLA and when the system runs these line items they are two separate, but dependent system generated workflows.

I have tried configuring without using a first response and the system just doesn't like this configuration. At this time I always recommend a first response even if the first response doesn't mean much to the end user.

So to use SLA's with Cases

1) Setup your service Calendar

2) Setup your Holiday Calendar

3) Create your SLA and associate the calendars, Add your SLA Line items with both a First Response line item and a Final SLA Line Item.

Pretty Straight forward? Well not exactly for there are some tricks. The first trick is all about those working hours. The working hours in  the calendar can significantly impact the end date for your SLA. PowerObjects has a nice screen shot, by screen shot blog post on setting up the service calendar.  

Key items to consider.

  • Are your users working in different time zones?
  • Have your users configured their Personal Options?
  • Will there be different working times on different days?
  • Do you want to stick with the 24 hour clock? *most likely
  • What time zones are using the results of the SLAs?
  • Do you want your due date to be updated by the SLA?

The next item to consider is your holidays. You need to decide which holidays need to be applied to the Calendar used by the SLA and these need to be entered into the Holiday Calendar. If you have holidays from different countries a reconciliation will need to be decided upon or different SLAs for different countries.

One last trick on calendars: Both the Service Calendar and the Holiday Calendar do not deploy as part of your solutions so update your pre-deployment checklist to include creating these calendars before you deploy to any downstream environment.

3) SLA Line Items - SLA's do not like to stop on activity status = inactive and as such it is always better to find a different way to end your SLAs. On case they might be slightly happier, but on a number of different projects .. ending an SLA line item on activity status = inactive has tripped us up. Each SLA line item that is triggered against a case is reflected as a workflow on the case. The clauses that you defined based on trigger for success, warning and failure are converted in Wait and If conditions.

When it comes to out of the box configuration there are also decisions that need to be made around pausing an SLA. For instance if a CASE is put on HOLD, you can set system settings to pause the SLA. Take a look at Allan Mira's write up on how to pause an SLA on a case (again great screen shots and recreating screen shots seems a bit redundant) 

For more on using SLA's on CASE, here is a STEP by STEP by Vishal Grade.

Using SLA's with a Custom Entity

The Components that make up an SLA include

  •  Customer Service Calendar – defines the business hours to be used in the SLA calculation. A business can have multiple calendars to support different SLAs i.e. 24x7, 9-5 business days, Customer specific calendars
  • Entitlements – defines the agreed number of Cases or Time that has been contracted with the customer for support. Entitlements can only be associated to one SLA. An SLA can be associated to many Entitlements.
  • Service Configuration – define which statuses place an SLA on hold (shortcut to System Settings). Note that the pause and resume statuses apply to all SLAs and thus are not SLA specific.
  • Holiday Schedule – defines the dates that are considered holidays in a particular region. If you work in multiple regions then you may have multiple holiday schedules. Holiday schedules can be applied to the Customer Service Calendar to be observed.
  • Service Agreements – define the rules that apply to the agreement, when a SLA is triggered, when and what should occur if the SLA is successful, non-compliant or nearing non compliancy. (thanks to MVP Stephan for summarizing these in his insiders guide to SLAs post which is another great read)

BUT when configuring SLA's to work on CUSTOM Entities there are a number of other steps that also need to be configured.

1) The Custom Entity must be enabled for SLAs  (there is a checkbox on the Entity to enable SLAs) "A few words of caution! SLA needs a committed relationship. Once you have selected that checkbox and saved, (by the power vested in you by Dynamics CRM and the position of a configurator) SLA cannot be disabled for the entity."

2) The Custom Entity must have a relationships established with the SLA Entities (such as the SLAKPIInstance Entity)

3) You must use Enhanced SLA's with Custom Entities that need SLAs

 To configure the relationships for your Custom Entity with SLAs you can follow the Microsoft Customer Engagement Team's step by step. I have summarized it below, but there is more on the full post such as setting up timers and some key things to remember so I recommend you jump on other to the post.

  1. Enable the custom entity
  2. In the same Customization window, expand the SLA KPI Instance entity.
  3. Click 1: N Relationships.
  4. Click the New 1-to-Many Relationship button.
  5. Select custom <entity> in Related Entity dropdown. Here is a catch! As soon as you select custom entity in the Related Entity dropdown, the Name field gets auto populated to “new_ slakpiinstance_custom entity”. You can use it as it is, but you will face issues if you want to export the SLAs created in this org to an org that also has SLAs enabled for customentity. This is because while importing the SLAs, the system will attempt to create this relationship in the target org. Since there will be a relationship already existing in the target org, the import will fail. So it is strongly recommended to add a different name or change the name to a GUID (with underscores).
  6. Fill the Display Name to your taste
  7. Save and close

 

I have found that I still wish there was more documentation available on Microsoft Dynamics 365 SLAs. They are almost entire module unto themselves.

Happy SLA'ing!

 


Editable Grids

Have you discovered the joy of editable grids? This feature was introduced in December of 2016. Editable grid is a custom control in Microsoft Dynamics 365. 

"You can enable editable grids at the entity level to use in the main grid, or at the form level to replace read-only sub-grids (associated grids) with an editable grid." An editable grid is similar to entering data into an Excel spreadsheet and has a number of usability benefits. For instance, users can quickly enter lots of data on different records without needing to open new windows or the editable grid usage can align to business processes that include popping in and out of Microsoft Excel.

Additionally, configuration teams can adjust what a grid looks like based on a set of parameters or data.  Editable grids also support business rules and form scripting so you can apply custom business logic according to your organization's requirements.  

If you want to learn more about how to work with and configure editable grids you can reference the following article  or if you want to see some examples of how editable grids are used this TechNet Article has some interesting use cases.


Don't forget the Glossary and the overwhelming desire to over use status fields

Project Considerations

1) Start with the concept of a glossary and agree on terminology. This seems like such a trivial concept, but has huge ramifications as the systems grow and mature. If everyone agrees on terminology then when fields are named, and option sets defined, the terminology is consistent throughout the system. In fact I know of a company that has a department that defines and manages all of the option set values in every system that they release. This three person team keeps terminology consistent not only in one application, but across all applications created for internal use.  Alignment to the bigger picture and more consistency for the entire company.

2) Now about those status fields. If the status field(s) are option sets then aligning the values to a glossary offers more common understanding.  Each option has a reason and these reasons generally align to business rules. Given the sometimes difficult nature of understanding business rules, common vocabulary can help.

There is a beauty to simplicity.

So how do you simplify complex business rules? Focus the system on the people who are using it and what they care about. Complex business rules are not complex to those who work with them every day. This is their life, so make sure that business rules align to the roles of those who need and care about them.

Eliminate noise: User's do not want to see what they do not care about. Use good definitions of security to allow the system to hide what people don't need to see. This also greatly simplifies the system for their use.

Leverage the power of the out of the box ability to segregate data by business units. Business units are all about segregating data, eliminating noise, speeding up processing and so much more and although they occasionally line up to offices, defining offices is not their primary goal.

Very, very, very carefully consider why and how many status fields you are using and determine a way for the system to manage and keep these status fields updated based on normal human day to day activities.

Understand the personality types of the users in different roles. Are these people task driven? Do they like to complete a list of things to do or are they more organic givers and workers who react to the day? Make sure the system can handle multiple styles of getting work done.

Re-evaluate and Refactor as many times as is necessary to simplify the system.

 

 

 

 

 

 


A new Marriage between Microsoft Word and Microsoft CRM

Given that so much new has been released, sometimes it is easy to miss some of the powerful new features.

Take for instance USING WORD TEMPLATES in CRM. Sure, letters are nice, but have you ever considered the power of all the other data you can pull into a WORD template?

Here is a good place to get started


Five CRM Thoughts

1. Workflows can be REAL TIME (Synchronous) or ALMOST REAL TIME (asynchronous) and if you are a business user creating workflows you want to coordinate the timing. In the world of plugins and extensions timing coordination of steps is all part of the job, but in the world of workflows sometimes it is easy to forget about what we are really asking for.

2. Deleting and Cleanup in the world of customization and multiple environments are a specialized thought process. The system supports a merge mindset so when you want to do cleanup (and you are using unmanaged solutions) you want to make sure you cleanup all your environments. I like to use the technique of naming fields, business rules, forms, views and other such configurations in DEV with a prefix of something like ZToBeDeleted so that after a deployment to TEST and PRODUCTION it is easy to do house cleaning.

3. You are not the only one extending and configuring. Coordination equals huge successes and incredible power and depth. It is a product that is always evolving from the power and insight of the incredible team at Microsoft and then there are the other new features that are purchased, reviewed, updated, coordinated and released. If you are writing unsupported code you are asking for headaches OR if your hired gun is writing unsupported code. Take the time to get it done right. Take the time to vet your resources. A low hourly rate does not mean long term reduction in cost.

4. Software as a Service (SaaS) in the world of Dynamics CRM means that you are continuously getting the chance to improve your businesses cutting edge differentiator through the use of the newest technology and business techniques. Get the Learning Mindset and embrace the wave while also taking bite sized, very manageable growth steps forward. Setup your environment so you have a DEV, TEST and PRODUCTION instance so that you can have DEV upgraded first, then TEST (with a release to TEST and Regression Testing) and then roll to production. For smaller firms perhaps only two instances, but always give yourself that learning arena for the larger feature releases.

5. Just because it looks pretty, and has a really cheap initial price does not mean that you won't be paying more in the long run. In the world of ONLINE and the CLOUD do your research with other customers. Understand the 1, 2 and 3 year average costs and understand what you get for the money. The models can be very different.  There are hundreds of applications that can be replaced by Dynamics CRM and with the right resources (trained helps) the price is right. Just because Access and Excel are available with office, doesn't mean they are the right solution for a multi-user environment where people need to share real time data across many different devices. Oh and then there is the Out of the Box integration to the Office 365, SharePoint, Microsoft Excel E-Mail, and so much more. 

It really is mind blowing.....  


Creating Many to Many Relationships

Microsoft Dynamics CRM Entity Relationships come in many flavors, but many to many  relationship types has some interesting options.

Consider the N:N or Many to Many relationship. If you use the Out of the Box (OOB) N:N relationship option the system will create a hidden in between table. This works wonderful for many situations, but it does not handle situations where you want to track a long list of fields and information about the relationship.

Take for instance if you want to track people who attend one of your provided classes. So for any given contact that you have they might attend one or many of the classes you offer.

You want to track not only that a specific person was in a specific class, but also what grade they received in the class and if they were an actively engaged member of the class.

In order to you to do this you can setup an entity called "Class Participation" and you can then setup relationships to that entity to mimic many to many as follows

Setup a 1:N relationship between Contact and Class Participation (for any given contact they might participate in many classes) 

Now setup am N:1 relationship between Class Participation and Class (for any given class participation it might be related to any number of classes. 

The steps above setup a many to many relationship with full configurability for the Class Participation entity. You can add fields to the class participation entity and you can display and use this entity for many different purposes.


Dynamics CRM in Enterprise: Areas for More Questioning

 

 

 

 

When working with Microsoft Dynamics CRM Online in Enterprise there are many variables to consider. These include some of the following, but there are also small tidbits that need to be considered. I have listed some of the items below to raise the bar for everyone.

•Security, Compliance, Authentication
•Integration and Migration
•Extensions, Development and Integrations
•Enterprise Reporting
•Operations and Governance
 

Business Rules: CRM Business Rules are associated to each entity, when you create business rules they are stored with that entity and move with the solution that includes that entity. If you need to delete a business rule you must delete it from every environment that the solution has been deployed.

Process Workflows: In CRM v7.x.x you have the option to END a workflow. One of the issues found in the field when working on existing CRM projects are workflow designs that do not end.

Use Colors: Within the world of Dynamics CRM Online you have custom logos, colors and themes. This allows you to color code different CRM Online instance so that people in large enterprises, who have multiple CRM Online tenants and instances, don’t accidently enter data into the training environment instead of production.

 

Anticipate Product Line Architecture: MCS Offers a CRM PLA service for clients that need a CRM Product Line Architectural engagement to address questions on shared data, hybrid offerings, leveraging Azure, Enterprise data warehouse options and security needs?  Watch out for the spread of silo'ed data that is such an easy trap for all vendors and customers to fall into.

Plug-Ins: You can change the context in which a plugin runs: By default it runs under the context of the logged in user, but there are cases when you want to run a plugin under the context of a user with different security such as a system user.

Security Roles

Security Roles are not only what you can see. All of the Out of the Box security roles contain hidden permissions that can be utilized through cloning. If you create a NEW security role, pay attention to the lack of hidden permissions that might impede functionality.

Service Module: Follow the Sun: Microsoft Dynamics CRM Service Module offers, not only an owner of a case record, but also tracking of the person working on a specific case record at any given time.

Performance: CRM Architecture does make a difference. Quick Search needs to be positioned for small searches with one or two search columns. Advanced find can be positioned for more complex queries or better yet leverage the power of the PowerBI Toolkit. You also have Enterprise Search at the top of the screen, use all your search options and even more are mentioned in the CRM Roadmap. You can also leverage the CRM Online Diagnostics Page and test form performance by Measuring Form Performance: CNTRL+SHIFT+Q

Versioning: Understanding Versioning: The Microsoft Dynamics CRM Product Team has updated their versioning, offering a clearer understanding of Major Releases, Rollup Releases and Service packs, but the true power of the experienced field engineers is knowing which feature was released with which version and the maturity of that feature. Work in partnership with Microsoft Consulting Services.

Client Software: The Outlook Client and the Unified Service Desk (USD) are client side software. One of the key questions within Enterprise are what are some options for pushing out this software. Also the client can have conflicts with certain anti-virus offerings so position and understand these conflicts and install requirements..

Working with the ISV’s: Portals: How many concurrent users was it designed for, used with and supports? Service Agreements with ISVs for outage of dependent components. Who owns updates, upgrades and testing in the fast paced release world of CRM Online?

Outlook Contacts: The Business conversation: Corporate Contacts vs. Personal Contacts and Data Migration. Do users have contacts in Outlook? How will these contacts be reconciled? How will you combine many different silos of contacts into a shared source?

 

 


Managed vs. Unmanaged Solutions (MS Dynamics CRM v7.x.x)

Let us take a look at Managed and Unmanaged Solutions.

Unmanaged and managed solutions

There are two types of Microsoft Dynamics CRM solutions: managed and unmanaged. Managed solutions  require a clear depth of understanding of managed solutions. They are used by the Independent Software Vendors (ISV's) who sell a set of IP that is not expected to be changed or modified by the customer purchasing these solutions. They are positioned to be updated or upgraded only by the ISV that sells them.

This is an important point for customers (who purchase these solutions and then extend CRM) and for partners (who create solutions for customers that are designed to be given to the customer to maintain).

UNMANAGED solutions are the more historical, potentially more flexible and what I like to call more organic. Organically I can generally fix most issues found in unmanaged solutions whereas managed solutions I must go back to the ISV.

It is also worth mentioning the "System" Solution.

The system solution represents the solution components defined within Microsoft Dynamics CRM. Without any managed solutions or customizations, the system solution defines the default application behavior. Many of the components in the system solution are customizable and can be used in managed solutions or unmanaged customizations.

If you add customizations without using a unmanaged or managed solution you are modifying the system solution. If you create an unmanaged solution (so you can easily move your changes to other environments) you are merging your changes in with the system solution. Every component of an unmanaged solution is prefixed with the prefix you define in the publisher. Every component that you add to the system solution (without leveraging managed and unmanaged solutions) is prefixed with new_

The team doesn't let you add, without some indication that it was added. (smart team)

So some easy and hard questions to consider as we thinking about Managed and Unmanaged Solutions

1) How do you create a managed or unmanaged solution?

2) What is a CRM publisher?

3) What benefit does the publisher give the customizer?

4) What happens when you import an unmanaged solution?

5) Can you export a managed solution?

6) Who is the primary audience for managed solutions?

7) What are the disadvantages for the customer of using managed solutions?

 

 


Turbo Forms in Microsoft Dynamics CRM 2015 (v7.1.0)

Although not necessary: Writing Code for Forms provides a way to increase interaction between the user and the entity forms. This is often done by using JavaScript that is executed for events that occur on the form.

 

Microsoft Dynamics CRM 7.1.0 (2015) offers TURBO Forms which are seriously worthy of consideration, both for the Experienced Dynamics CRM Developer and for the CRM end user.  Performance differences have been clocked anywhere from 3x to 7x times faster.

 

Here are some materials and videos to help get you started.

 

Microsoft Dynamics CRM Online 2015 Update 1 - New Form Rendering Engine

 

Form rendering enhancements

 

Writing code for Microsoft Dynamics CRM 2015 or CRMOL Forms : Read More

 


Access Teams and Security! #MSDYNCRM

A user’s security role needs to match the privileges at the ‘User’ level with the Access Team Template Privileges (R,W,A,A2,D,Assign and Share) associated with the Entity.  If an Access Team has Delete privileges and a user's security roles did not, the user will be blocked from being added to the team.  CRM Security is AWESOME and this shows that security can’t be bypassed just by adding someone to a team.  If that user cannot delete a record, then adding them to an Access Team with that privilege won’t work!

Big thanks to the awesome: Thymio Barbatsis, for continuing to share incredible tidbits with the community 


Microsoft PFE Team (Premeire Field Engineering) releases awesome ticklers as well

AND the PFE Team (Premeire Field Engineering)  releases awesome ticklers as well. Take a peek at this little tidbit enhancement to Quick Find !

and you can follow the CRM PFE Team Blog !


What is a Microsoft Dynamics CRM View?

Within Microsoft Dynamics CRM each entity has a set of system views. These system views can be configured or added to and as such are a powerful feature within the system. You can even create new views.

So what exactly is a view?

If you are familiar with a spreadsheet, you know that you have rows and columns of data and each piece of data sits in its own little cell. A view in Dynamics CRM is just like a spreadsheet. It has rows and columns of data. Additionally any given view in the system also let's you "click" and export to Excel.

Other powerful features of views include the ability to add columns of data from not just the entity where the view is defined, but from every entity that is related to the entity where the view is defined.

You can also sort views of data by clicking on the header of a column and secondarily sort by shift clicking on the next column.

People using Dynamics CRM can also use "Advanced Find" to create their own personal views of data. So if your IT Department is a bit buried under a long to-do list, you don't have to wait. You can create your own personal views AND you can even share these views with your peers or manager.

OK, so you really don't want to give up Excel and all the pivoting and graphics that you can do with it. Guess what, you don't have too! Views feed Excel and all the powerful data manipulation techniques that Excel offers. Check Out PowerView, PowerBI and PowerPivot, if you love Excel, you will go over the top with these Excel add-ins. CRM + Microsoft Excel "Better Together"

Views have another role within the world of Dynamics CRM. They feed charts, so setup your favorite view and then use the CRM Chart feature to chart the data from that view. These charts can be added to Dashboards for instant, dynamic, graphical love!

If you want to learn even more about views you can read about them in the MSDN library entry called Customize Entity Views.  


Are you ready for some CRM v2013 reading?

 Microsoft Dynamics CRM v2013 Implementations Guide

Microsoft Dynamics CRM v2013 Software Developer Kit (SDK)

Microsoft Dynamics CRM v2013 Performance Counters

Microsoft Dynamics CRM v2013 Connectivity and Port Requirements

Microsoft Dynamics CRM v2013 Server

Scalable Security Modeling for Microsoft Dynamics CRM v2013

Using multi-tenancy in Microsoft Dynamics CRM 2013 to address challenges in enterprise business environments

 


The beautiful world of CRM Multi-Tenant

Rather than dive into writing something again that was so well written by another member of the community I am sharing a post about Multi-Tenant and why this powerful option is now available for Microsoft Dynamics CRM Online users.

Read Here


Keep Learning

I am amazed at how I continue to learn more  and more about Dynamics CRM despite focusing on the platform for over eight years. The product team continues to release small and large updates and are amazing in how fast they manage to keep up with the pace of technology change.

Additionally the current product (even before any updates) has a ton of depth and a number of under utilized functionality. When was the last time you decided to add something new to your business processes? What about learning one small area of the software in full?

Consider Goals, or Connections - take a peek at subjects or perhaps you want to become a FetchXML guru

Did you know you can tie web sense into charts?

There is so much that can be done.

Given this I offer this link and suggestions: Go review the Microsoft Dynamics CRM v2011 IMPLEMENTATION GUIDE. You might not have looked at it for a few years, a few months or even ever and it is packed with great information. So take an hour for study, each day this week - shoot make it a team effort and start up a Dynamics CRM brown bag lunch or book group. You will be pleasantly surprised.

 


Dynamics CRMOnline and the SLA

When it comes to all things SLA the Dynamics CRM team posted a great blog post a couple of years ago complete with a number of great hyperlinks. I was re-reading this today and I realized that it was definitely worth a reshare!

So if you have questions about CRMOnline's Service Level Agreements START HERE 

 


Sharing CRM, Sharing Contacts and Collaborating

CRM is highly personal just like each of our own direct relationships. It must also meet corporate and team shared needs. This post dives into this concept.

Take for instance the tracking of details on a relationship between two people. The USER of CRM (such as a sales person) and their prospect or client (such as a key contact at a prospect site) 

Some details of a relationship are as unique as each person within that relationship and others are common for all relationships with a specific person no matter who is in that relationship.

These details of a "relationship" can include an incredible list of variables.

What would be considered common and easily shared and valuable to a team? Personal characteristics such as a specific job title, the contacts features (height, gender, eye color) or perhaps even the name of a contacts spouse and friends.

Other variables are unique to a specific relationship and might or might not be valuable to the team.
 
What would be considered unique? The level of trust between two people, an inside joke, their shared history, perhaps a specific experience and shared networks. This could even extend to likes and dislikes that a person has and their level of likes. A person who is great at skiing might love skiing with a person at their same level, but hate it with a beginner. We could even go so far as to look at other unique traits such as what job or what role is taken as part of a specific relationship. If I think of one person in my network as an example, this same person is a contactor, a developer, a senior software developer (language being a factor), a software engineer, an architect (role being a factor), a speaker, a reference, a father, a son, a coach, a builder and more. So how are all these different variables tracked and shared?
 
Within the world of Microsoft Dynamics CRM these variables are handled in a number of different ways and at various different companies extended with different styles. Partner extensions to the software, customer driven extensions to the software, base use of already available features. This one subject is a great one for the user group! (www.crmug.com

Depending on the version of the software choices within the software change significantly between version 4 and verson 2011.

In the world of Microsoft Dynamics CRM v4.

Contacts are people who have a set of shared fields and these include not only what shipped out of the box, but also any other fields you wanted to add. Out of the box fields include title, gender, e-mail addresses, and how the person likes to be contacted. User defined fields might include if they are a referral source or if they are an influencer within a prospect account.

Microsoft also offered a table in v4 for relationships. This is a two column list where a CRM user could custom define that a specific person (such as person A) was a vendor contact and that a specific second person (person B for instance) was the customer of that vendor contact. You could also choose a company and put it in this relationship table such as company A was a vendor for person B as the customer contact. This relationship feature offered both company and contact cross reference choices. 

The feature had/has an interesting set of powerful potential, but it also had limits and I would dare to say it is under utilized inthe field and as such in the world of Dynamics CRM version 2011 a whole new world of options was born under the CONNECTIONS umbrella. Relationships exists in 2011 but has been retired and replaced with connections.
 
If you have not discovered CONNECTIONS then you want to take time to REALLY understand the power before you architect it into your business process.

So with those thoughts and my writing time ended I open up the idea for discussion and perhaps a few more posts over the next few days.

How does your company track all the variables between all the different relationships for each prospect or client contact that you have?


Fun with Dates

In this incredible world of both technology offering calculated date and people capturing data from all over the world the two concepts can sometimes collide!

Take for instance the world of dates.

Microsoft Dynamics CRM offers UTC adjustments, personal settings and Date and Time fields. What this means is that depending on how you have your computer configured and your Dynamics CRM Personal Options the dates that you enter are adjusted.

Microsoft Outlook does this as well. If  I was to setup a meeting with an associate in California for instance on my calendar for today the meeting would display as Eastern Time (2pm for instance), but for my associate (CRM Guru Marc Wolenik)  the date and time would display as (11am) and if we then added in another person such as a cool CRM Guru in Australia (Leon Tribe) the time would not only be different, the DAY would be different.   

So what happens when you start capturing these types of dates inside of Dynamics CRM for analysis or reporting?

If all the dates are entered by "humans" correctly configured for their local time zones then the software correctly handles all the adjustments. The only trick with regards to this set of considerations is that DATE Only fields are well not really date only so watch that!

If all the dates however are entered by other "Systems" then a bit more thought needs to go into the architecture. Take for instance a system that resides on a server in a data center that is capturing date information based on that servers date. If you then take that date and enter it via an integration, how would you expect Dynamics CRM to react?

How would that date be managed?

Do you want it to be fixed? or adjusted?

If you want it to be adjusted, how are you going to tell the system to adjust it?

What if you want it to be a date field BUT you want to lock it to a certain time zone?

These are the joys of the world of global!  


IE 8 and CRM - Something you might not know

PowerObjects had a great little blog post on Internet Explore 8 when it came out highlighting a few of the cool NEW features that are worth learning about if you are using Dynamics CRM.

Now that IE 8 is part of your everyday routine (and you are thinking about IE 9) take a look at this post on some of the features that might have slipped your notice in what you ALREADY have.

Oh and in terms of security (for those of you running other web browers)

"Testing conducted by the independent NSS Labs found that IE8 provided signifigantly better malware blocking capabilities than Mozilla Firefox, Opera, Google Chrome and Apple Safari."


Mobility v4 and v2011

The CRM development team at Microsoft slid in the Microsoft Dynamics CRM Mobility option called Mobile Express a while ago - (I could even say years ago -Check out Settings, Mobile Express) and as far as I can see they have been updating it little by little as the rollups and new versions come out.

What does this mean? It means that Mobile Express is an option worth checking out, BUT that it does not necessarily meet ALL your extensive mobility needs depending on what you need in a Mobile client and what and how many platforms you need it to run on as well as how many extra mobile specific features you want.

The mobile ISVs including TenDigits and CWR Mobility are totally focused on working with mobile teams to empower them and encourage them to get more from their Dynamics CRM Investment.  They also have additional features that are integrated so if you need those additional features get the teams at CWR and TenDigits to give you a demo, BUT if you just want to access Dynamics CRM from your cell phone once in a while then take a peek at Mobile Express.

Of note Mobile Express is a Free feature in Dynamics CRM and yes, there are a number of people who don't realize this. Pay to get it configured and to learn the best way to use it from your partner, but don't worry about  extra licensing fees. 

Articles on Mobility and Dynamics CRM are as follows:

Dynamo with Dynamics CRM on Mobility, Mobile Express and CRM v4

Customer Effective on Mobile Express (Oct, 2010)

The more Powerful Mobile Express in CRM 2011


Microsoft Dynamics CRM and Excel 2007

Caution: You might want to think twice about this one, but it does take care of a user annoyance when exporting from Microsoft Dynamics CRM into Microsoft Excel 2007..

Thanks to Joel over at Customer Effective for summarizing!!

Click To Read - Getting Rid of the CRM Export to Excel WARNING message


Caring for ASYNC

David Jennaway has a great post on the Asynchronous Service as well. You can read some of it here and link to the rest over on Dave's great CRM blog at http://mscrmuk.blogspot.com/ 

=================================================================

CRM 4.0 UR 3 brought in a useful feature, the ability to configure the CRM Asynchronous Service to automatically delete records from completed asynchronous operations, and hence keep the size of the asyncoperationbase SQL table down to a reasonable size. This behaviour is configured by the registry values AsyncRemoveCompletedJobs and AsyncRemoveCompletedWorkflows

However, I recently met an issue with this behaviour, where the CRM Asynchronous Service appears to get in a state where all it is doing is deleting completed jobs, to the exclusion of all other activity. This can leave the CRM Asynchronous Service to have effectively hung (not responding to service control requests, nor polling for new jobs to process) and not to process any new jobs for a considerable period of time (in one environment, this could be several hours).

The main symptoms are:

  • No jobs being processed for a considerable period of time
  • The Crm Asynchronous Service not responding to service control requests (i.e. you cannot stop it through the Services console, so you have to kill the process)
  • No values reported for most performance counters (e.g. 'Total Operations Outstanding', 'Threads in use')
  • If you do restart the service, you see a burst of activity (including performance counters) whilst outstanding jobs are processed, then it reverts to the same behaviour as above
  • If you look at the SQL requests submitted by the Crm Asynchronous Service (I use the SQL dynamic management views sys.dm_exec_requests and sys.dm_exec_sessions) you see just one DELETE request and no other SQL activity

At the moment, the only workaround I have is to remove the registry values, and to use a scheduled SQL job to periodically clear out the asyncoperationbase table. Here is an example of such a script.

 

Read More:

http://mscrmuk.blogspot.com/2010/12/stability-issues-with.html

 


IE Tabbed Browsing, Defaults from Shortcuts and CRM considerations

To set Internet Explorer  to open a NEW instance of IE in a NEW window do this:

  1. Open the Control Panel or from the Tools menu inside IE access the Internet Options
  2. Click on the Advanced tab.
  3. Look for the following question "Reuse Windows for Launching Shortcuts (when tabbed browsing is off)" under Browsing
  4. Uncheck the box

Note: You have to turn off tabs feature for this to matter (of note this also applies to those using older versions of IE that do not have tabbed browsing functionality)


Tabbed Browsing



System Jobs: Follow-up

As a follow-up to my system jobs post earlier this week I was pleased to find and to have shared with me two other related posts.

Customer Effectives post titled "Bulk Deleting Waiting Workflow Instances from Microsoft Dynamics CRM"

and

Phil Adam's Blog post titled Performance is slow if the AsyncOperationBase table becomes too large in Microsoft Dynamics CRM 4.0

Both add additional insight on the subject matter that is well worth the read.


Feature of the Week: System Jobs

If you are a "CRM Administrator" have you looked at your System Jobs recently? Now for all those working on various projects ... Have you checked out the System Jobs in your development environments?

Choose SETTINGS

Choose SYSTEM JOBS

Immediately you will see a list of various information regarding various "system jobs" that might have run or might be "waiting".

Make particular note of the items in the waiting state. Do you know what they are waiting for? Should they really be waiting? Do they need to be cancelled?

Next Question: Are you managing your system job log? Has it been purged lately?

Did you know that Duplicate Detection is a System Job?


Reducing the Pain of setting up Pick Lists

There are a number of cool little tools that the partners use to quickly populate user drop down lists.

Here are various blog posts and links to pick from in no particular order

1) http://marioraunig.blogspot.com/2007/03/save-time-and-energy-creating-large.html and

http://www.beatnik.at/picklist_for_mscrm.php

2) http://kjellsj.blogspot.com/2006/08/using-excel-to-generate-picklist-xml.html

which was updated here 3) http://dynamicscrmbyalfredo.blogspot.com/2006/09/recently-i-found-this-useful-blog.html

4) and back in the 3.0 Days http://blogs.infinite-x.net/2006/08/26/release-utility-to-generate-picklist-options-for-dynamics-crm-30/ 

Have you found an easier way? Feel free to share!


Renaming Sub-Account

This week I had a need to rename the Sub-Account. Well sub-account isn't an entity and it isn't listed in any of the places I could think of.

Given that we had a choice of hiding it or renaming it I did a bit of searching and low and behold thanks to the great team at Microsoft support we found the answer. To chance the display of the term sub-account to something different you edit Messages!! (Go Figure)

SubAccounts 

PS Twitter let me down on this one :(  Despite having a focused following of great people some of these stranger questions get lost in the water flowing quickly under the bridge.


ISV Config

The ISV Config offers some interesting options for developers

1) It offers two places where you can add buttons and menus at the application level. The Global Menu Bar and the Application Level Tool Bar. 

2) It also offers three areas where you can add menus, buttons and navigation items at the detail level including the Form menu bar, the form toolbar and the form navigation pane.

3) You also have two areas that can be modified in the Entity Grids which include the Entity Grid Action Menu and the Entity Grid Buttons

Make note that if you change the Web Interface you will also want to change the Outlook Interface.  


Sample Reports Book

I had in the back of my mind that somewhere there was a sample reports book available for Dynamics CRM, but despite my efforts today I could not find one.   

One of the best ways to really understand what your client wants to capture in Dynamics CRM is to ask them what reports they want to get out of the system and not only what reports, but actual copies or mocked up examples of those reports.

You might be able to get the same data from a view or from never printing text on a piece of paper, but the goal of the exercise is to find out what the client is looking for, not necessarily how they want it to look.

Personally I find that a sample reports book is extremely helpful when it comes to really understanding some of the captured data and a great tool for training as well.

Go ahead and create a sample reports book - On one page of the sample report book add a short paragraph describing the report on the facing page. Bind it using wire or three ring so it lays flat and use it as a workbook. Feel free to add views, dashboards, mockups of desired reports, printed samples of the custom reports you have created and more.


New Book from Richard Knudson

Building Workflows in Microsoft Dynamics CRM is a subject that is not often covered and yet it is one of the keystones of power behind the software.

One of my favorite bloggers, Richard Knudson, president of IMG, has recently released a small book called "Workflow in Microsoft Dynamics CRM.

If you are interested you can purchase the book here.


Walk a Day

In these tight economic times many a business is looking to improve efficiencies using a variety of techniques. One of the key terms that I learned and adopted from Convergence 2009 is "the Anthropologist." This isn't necessarily new to me, but it is something that is worth re-emphasizing. 

When trying to improve a process the first step is to first ask the right question (explain to me and show me exactly what you do on a daily or monthly basis) and then document and listen (Visio is very help for this - for a picture validates a 1000 words all on one page)

So the next time you are talking with someone who is asking if Microsoft Dynamics CRM does A, B, or C and the next time you are trying to figure out what someone wants as you design and configure - step back and put that anthropologist hat on. 

Find out exactly how the person is working, what technologies and applications they really using and how are they using the tools available to them.Have them show you versus tell you. You might be very surprised. (They might be as well)  


Dynamics CRM and Security

One of the coolest features of Microsoft Dynamics CRM is the slicing and dicing you can do with security roles. It is also one of the more complex features of the software.

Microsoft uses the concept of a Business Unit as a core security feature. I often explain business units as a rock wall divider within any given database, but given that Microsoft allows for a tree factor this is not necessarily a black and white rule.

The reason I emphasis "rock wall" is because once you create a business unit it becomes difficult to share data across business units without a more complex design. For those firms who do not have complex security needs I recommend keeping business units to a minimum. They are easy to abuse and can create some long term pain.  


Do you use check boxes or activities?

One of the most common mistakes I see in CRM is the decision to use a checkbox as opposed to a completed activity.

A checkbox is easy to add and easy for a user to "click on", but it totally bypasses the ability for the system to track historical information. It is also a feature that is harder to audit trail as the checking of or the unchecking of a checkbox is not easy to track.  (although with creative workflow it is possible)

So if you are thinking about "adding a few fields" to increase the communication from your teams and people around what has and has not been done than you might want to think a bit more about the whole picture.   


Tracking work associated with a Project

One of the most frequently requested items when it comes to  a slight enhancement to Dynamics CRM is the enhancement to track activities and associated time to a specific client project.

To do this you can configure Dynamics CRM using what I like to refer to as the modify functionality. You do not have to write big custom extensions or .NET or JAVA code to do this (thank you Microsoft).

Utilizing the "Customize" menu in Dynamics CRM create a new Project Entity (this is a new database table and entity is a word you customizers want to add to your vocabulary)

Add appropriate attributes to the project entity (the data you want to capture on the head project record such as the project name, project budget, and timeline)

Create a relationship between Activities and Project: For any given project you can have many activities (unlimited actually)

Create a relationship between Account and Project (For any given account you can have unlimited projects)

Presto! You can now track activity records to a specific project in addition to direct to the Account, Contact, Ticket, User and more. Within the ACTIVITY RECORD is the ability to capture a start time, end time, duration and more.


Mapping Fields

One of the comments to this blog today was asking about how to push custom field data from LEAD into CONTACT or ACCOUNT once the lead is converted to a prospect.

To do this using  CRM Customization, you drill down into the specific RELATIONSHIP  within the entity (in this case LEAD to ACCOUNT) and then you can add a MAPPING that maps a custom field in the LEAD to a similarly designed custom field in the ACCOUNT. This map pushes data from one to the other when the Account is created. It is not ideal and can be supplemented with some workflow (for instance if the account already exists), but it is similar to how the current system fields are being populated during convert.

If you are still unsure as to how to approach this make sure you talk with your Dynamics CRM partner technical specialist. There is SO much that can be learned and mastered within Dynamics CRM! Tap into all that experience that surrounds you!