Saturday, March 30, 2019

Sometimes the Problem is You

There has been an odd issue going on in my implementation for the last several months. With the help of Microsoft support, we solved the issue this week! However, the solution is very embarrassing because it was a self-made problem (I guess most of them are). But maybe my failures will help others so here goes!

The Problem

Towards the end of October, users started reporting that they were seeing the "Pending Email" warning when launching D365. We reviewed and saw there indeed there were email messages in pending status waiting to be sent.

All of these were workflow generated emails to a variety of different users. There didn't seem to be a common pattern in what these emails were, who they were to or the workflow that created them.

The Work

First to solve the issue we used a workflow to change the Email Message status back to Draft and re-send. Then we learned that everyone had already received the original message. So for some reason the Email in D365 said Pending Send even though it was actually sent and the Date Sent was even populated.

Next we created another new workflow that just updated the status from Pending Send to Sent. This was not solving the issue but it was preventing users from getting the Pending Send Warning message.

We believed the issue had something to do with our connection with Exchange. Maybe we weren't getting a response in a timely manner or something like that. So the "it's not my fault!" attitude was in full force. We basically started handling the symptoms (running the workflow to change status) and stalled on dealing with the problem.

Finally some bandwidth opened up so we decided it was time to engage Microsoft support on this issue. We worked with them for a little while to get traces, logs, etc. and provided all this data.

The Solution

Microsoft reviewed all the data we sent and said "hey, it looks like there is a workflow firing on all of these emails changing them to Pending Send". What? No way! They must be confused.

Sure enough, I found the workflow they were seeing with the step name they reported. It was doing exactly what they said was happening. I deactivated the workflow and the issue stopped occurring.

Then we thought about the timeline and figured out exactly what happened. (Side tip: we have turned Auditing on for the Processes entity. This makes it easy to check who created the workflow, who activated it, when, when was the owner changed, etc.)

  • Earlier in October we had an issue with some emails failing (actually in a Failed state)
  • One admin went in and created a workflow to change back to Pending Send so Server Side Sync would automatically pick up and re-send the email
    • This was set to run on-Demand
    • Scope = User
    • Run on Create = Yes. This is fine when the owner was that admin. This is just for clean up, it won't be a problem, right?
    • Automatically deleted completed workflow jobs = Yes
  • Later in October there is an unrelated release involving other unrelated workflows
  • Part of the release process is reassigning these workflows to the Service Account we use to run these workflows. I (I will take the blame!) reassigned all workflows recently modified to the Service Account not paying attention to the specific items modified for that release
  • Now all emails being owned by/created by the Service Account, AKA all workflow generated emails, are being set to Pending Send after they are sent
As I said, not all emails were "stuck" in Pending Send status. I think this was still due to timing of the email actually being sent and email owner and those type of factors.

Lessons Learned
  1. It can always be your/my fault
  2. Review the Start When conditions even when just doing "quick"clean up items
  3. When using a workflow for clean up or quick data manipulation, deactivate when done
  4. Always communicate with others who are creating workflows and review so everyone is on the same page
So that is my embarrassing story for the week. I hope Microsoft does not put it on my permanent record. Please share your self-inflicted, system mishaps to help me feel better!

Monday, March 25, 2019

User Group Focus 2019 Recap

A few weeks ago I was at the User Group Focus event in Houston, TX. I attended Monday and Tuesday for the D365/CRM portion of the event. I presented several sessions, attended others and also went to the Rodeo! It was a great trip!

I participated in three sessions. Michael OchsPhyllis Eriksen and I presented an introduction to XrmToolBox which taught participants how to use it and we shared our favorite tools (be on the lookout for an encore webinar coming in June). I also presented on "Wrangling your Processes" (an introduction to Workflows in D365) and you can catch the encore webinar on May 22. Finally I participated in a panel about Upgrades. This was a good discussion on many tips for planning, upgrade methods, and preparing your users.

I also got to attend a few sessions and wanted to share some takeaways from those as well. For attendees, you can download all session materials from the User Group Focus Community.

Planning, Developing, and Surfacing Metrics for Sales and Service
Tad Thompson

The goal of this session was to discuss ways to maximize time for sales people by reducing clicks and effectively using screen real estate. Lots of great recommendations were discussed:

  • Don't forget about Goals
  • Utilize the Apps feature to minimize the number of unnecessary items users see
  • Remove unused fields
  • Use customization to drive user adoption by providing more information
    • Calculated fields to give important stats, ex. time to qualification
    • SLAs, shorten the SLA based on the customer's interest
    • Business Process Flows to drive behavior (be careful not to overwhelm). Now you can have multiple BPFs per record so multiple users can be following separate flows at the same time.
  • Editable grids can be helpful but ensure these are not used for continuous, mass data clean up (fix the actual problem!)
  • Check out email feature to follow email and get insights and reminders related to it
  • Reporting can be used to drive excitement and show the users what their data is powering.
    • OOB charts still have value. These are real-time when PowerBI is not.
    • Start with the PowerBI Templates and see what you can get value from quickly
    • Embed your PowerBI dashboards in Dynamics
  • For service, Flow allows you to listen to Twitter and create cases as needed
The Power Platform in 90 Mins

Michael Ochs

This session walked through an example of building a vacation request/approval tool using CDS, Flow, PowerApps, and PowerBI. D365 is an application that is only part of the Power Platform so we have so many other tools to explore! CDS (Common Data Service) was formerly thought of as the XRM Platform. Now everything is stripped away into apps and core entities such as Contacts, Accounts, Activities, etc. form the backbone of CDS.

PowerApps are broken down into Canvas and Model Driven. Canvas Apps are the type of app we are used to using on mobile devices. Model Driven Apps are part of Dynamics to only show what users need.

The objection of this session was to use all of these components to build line of business applications. This was a shortened version of the App in a Day session.

Better Activity Management
Geoff Ables

One of the most important features of a CRM system is activity tracking but you need to get the users to actually follow through. Start by working with the business to determine why they even want to track activities. We need to find the end motivation and then find ways to make it easy, fast and fun. The goal is to find ways to move from just reactive work to proactive work. This may also include watching users work through the current process to look for where efficiencies can be gained.

All of this boils down to the LUCK Principle. Listen Understand Connect Know. 

So, what are some practical ideas to explore?

  • Compare the Outlook App with the Legacy Outlook Client to determine what is best. The app is recommended if there is nothing in the client that is needed. App is being recommended for new users. The App allows you to view dynamics data in Outlook without tracking the message.
  • Relationship assistant provides reminders on the home screen to direct users. Activities are not automatically created but users are encouraged to take specific follow up actions. There are settings to control these reminders that are set by administrators. These are configured for the full organization.
  • Neglected records monitoring. OOB neglected records reports may be beneficial. Additionally, calculated fields can be used to build fields to track Date of Last Contact so custom neglected rules can be developed.
  • Workflows can also be used to automatically create follow up tasks. Create fields on Activities to indicate if a follow up is needed. Then automatically create when that activity is closed.

Sunday, March 10, 2019

Dynamics Journey

As I talk to other people in the Dynamics 365 space, I am always surprised with the number of people who just "fell in" to their position (or sometimes were unwillingly pushed in). I am no exception. I thought it might be beneficial for others to know my story and see how I learned and grew into my career. Plus I only got one "Meh" vote on my twitter poll :)

I was always interested in technology as a young person and I spent a considerable amount of time on my computer playing games, writing newsletters, and creating menus for the restaurant I knew I would own one day (don’t ask how that is going). One of my favorite games to play was Roller Coaster Tycoon. One day while I was attempting to build the most thrilling and impressive coaster ever, I got an error saying there was not enough virtual memory. I was very confused as I did not understand how I could be out of something that didn't really exist (virtual). I did not know how to resolve the error and my roller coaster days were over just as soon as they started.

This one experience stuck with me even into my college years. I had initially decided to pursue graphic design and the advertising field. However, I quickly realized that I did not enjoy the subjective feedback I would receive on projects I put a lot of effort into. As it turned out, I preferred my math and computer science classes with their objective logic. It was at this cross-road that I decided to change directions and point my career path towards a Computer Science degree. I thought to myself, "Maybe now I will finally learn to fix my virtual memory problem?"

My search for answers ended in my senior year of Computer Science classes when we reached a chapter on virtual memory. Years of wondering, pondering, and searching were going to be over at long last when at the end of the class, I raised my hand and asked, "I played this game when I was a kid and it stopped working because of a Virtual Memory error. What does that mean?" My professor simply said, "Oh it's just a setting. You can change it." There I sat, processing this disappointing answer, when my whole career path came into question. However, it was too late to change my major so a Computer Science graduate I became.

While I was not sure where I wanted to go now that my virtual memory issues had been resolved, I knew for sure I did not want to write code. I was offered a Project Manager Apprentice position where they wanted to put me on their “CRM” team. I enthusiastically replied, “that sounds great!” and then proceeded to go home and google what the term "CRM" event meant.

During my time in this position, I was introduced to CRM 4.0 and how it was being utilized by a large organization. The tool had been rolled out to one department and I would work closely with the project manager / product owner as we rolled it out to other departments. This gave me a great exposure to the full project life cycle and I also learned about Customization in CRM. I was in charge of field, form and workflow changes. As well as many of the training sessions for these new departments. All of which introduced to me so much new knowledge and skills, even public speaking.

In order to learn as much as I could in this new role, I spent much of my time on the Microsoft CustomerSource. I poured hours into watching as many training videos as I had time for and absorbed as much information as I could.

When my organization upgraded from 4.0 to CRM 2011, it was necessary to and re-train all 1,500 users. Due to the significant changes, I found it was a great opportunity to get all the different departments back on the same page. In a relatively shorty amount of time, I went from not knowing anything about CRM to fully understanding the deep complexities of a large user base implementation, diverse user training, and the efforts of a massive system wide upgrade.

All this combined experience led me to being recruited to the Financial Services Firm where I currently work. I was excited as I started as the first dedicated CRM resource at the organization. The first order of business was to develop a change management strategy and document the customizations already in place. After successfully completing those goals, I eventually worked my way into a product owner role, with a small team reporting to me to handle all the support, training, and new functionality or our implementation. It all came full circle as I lead upgrades from 2011 to 2016 to Dynamics 365 (still all on-premise).

While in this role, I started going to the DC CRMUG chapter meetings. This was a great opportunity to learn and network. I started taking notes which I posted on the community. Before long, I was asked to help with the planning of the chapter and then suddenly, I was the chapter leader.

After becoming a chapter leader, I caught the community bug, and exploded on the scene with newfound energy for all things CRM. I started blogging and soon started speaking at local and national events. I have presented at Summit North America for 3 years, spoke at multiple Dynamics 365 Saturdays, and I am now coming up on my second year speaking at Focus. Not to mention presenting multiple webinars and panel sessions each year.


I tell you this story not to tell how great I am but to tell you how even someone who started their journey with a simple question of virtual memory (or even a Google search of “what is CRM?”) can become a top contributor in their field with hard work and the support of a great team like the Microsoft Dynamics 365 community. Beyond studying for certifications, I continued to learn so much through the user group events and people every week. The community continues to motivate me to learn more, to be further involved, and to inspire others to the do the same. I just fell in to the Microsoft Dynamics space and found a great, supportive community. that I am so thankful and blessed to be a part of!

Thank you to each of you for being a part of my journey so far. So I will ask you, what is your story?