If you have rolled out Dynamics CRM/365 for sales teams who are out on the road, you will know the typical challenges you can face with user adoption and usage. Typical gripes from external sales teams include:
- It takes too long to log activities
- The Dynamics tablet/mobile app is slow/clunky
- Dynamics outlook client is crashing my PC/outlook
- Dynamics is slow
We were facing similar challenges and had been ongoing for a while. Different approaches were taken to resolve the above (server-side sync, the new Dynamics for Outlook app, mobile & tablet optimizations, training guides etc) but overall the sentiment didn't change. For context, the Dynamics environment is used by multiple business units and the key entities (account & activities) are shared between the different lines of business.
The scenario we were catering for in Dynamics for the external sales team was that:
- They go and visit a store they account manage.
- They log an activity of the visit, specifying the number of people they trained, manager meetings, group sessions and any follow-up notes.
In Dynamics Web, this process would be as follows:
- Find your account
- Create a new appointment activity.
- Set the type to 'Store Visit'.
- Populate the details relating to the visit.
- Mark the appointment as 'Complete'.
- Navigate back to the account and create a follow-up task if necessary.
Via Outlook add-in, it wouldn't be too different. You could go to your calendar appointment, set it Regarding the specific account and then follow the steps above from step 3. Now throw in capturing phone calls etc and you can see the additional overhead.
Dynamics is a great platform which can be used for varying different processes. It isn't built for a specific business scenario and as such, the standard functionality is as flexible as possible. This is why & where customizations come in. I wanted to find a quick, robust and 'codeless' solution to try and reduce the number of steps above. The solution I came up with was primarily built using PowerApps and Flow.
The solution setup looks like this:
I created a PowerApp that gets the logged in user's CRM accounts and displays the key attributes. Whats really great about PowerApps is that you can cache records to the users' device. I enabled caching and the app is snappy after the initial sync!(PowerApps can be used via the web, mobile or tablet)
Tapping on the '+' icon, the user is prompted to select the type of activity they want to create.
Depending on the choice, different options are presented to the user. (Note that the 'Create' button isn't enabled until certain fields are populated- simple to set these rules up in PowerApps!)
Showing an example of a store visit entry in the PowerApp.
Showing an example of a phone call entry in the PowerApp.
Upon clicking on the 'Create' button, this calls a Flow to handle the business logic & automation. PowerApps can write back to Dynamics but in this scenario, I preferred to use Flow as I could separate that business logic from the PowerApp and to be honest, it is a lot easier to handle this scenario using Flow.
The last bit is having a workflow in Dynamics, which will automatically close the Appointment based on certain conditions.
Here is the example account in Dynamics now after this process has completed, showing the activities linked correctly:
The results and feedback from the users has been great. The number of steps, the time taken to complete a store visit and capture phone interactions has been reduced significantly. They can literally capture their interactions & outcomes whilst walking back to their car after their visit! We are now currently rolling this out to all the external sales team across the country. Requests for additional bits of information and catering for other processes have been coming in now thick and fast!
What is important though with PowerApps is to set the expectation of what its purpose is and more importantly, what it isnt. I certainly didn't want to build a full custom Dynamics app and cater for all scenarios across the company - as we would end up facing the same challenges we looked to solve for.
However, PowerApps is now a real, simple and quick alternative for solving custom business processes or user adoption issues. Deploying multiple PowerApps across the business is possible. Learning how to create PowerApps is not too difficult and there is little coding needed. If you can use Excel formulas, you are pretty much good to go! PowerApps would be my initial go-to for custom interfaces or interactions now in Dynamics. They're simple, quick, secure and play nicely with other products.