Tip #1006: Case management vs. ticket management in Dynamics 365

Dynamics 365 customer service functionality includes case management, which is used for a wide variety of purposes. Many companies use Dynamics 365 for management of incidents (cases), which can be everything from a service issue, a customer complaint, or a request. Dynamics 365 cases have rich functionality, just a few examples:

  • Hierarchical parent/child cases
  • Queues
  • Rules-based routing
  • Automatic creation from email and other sources
  • SLA enforcement and escalation
  • Support for complex branching processes
  • Entitlement management to enforce service contract allowances

Dynamics 365 can handle very complex case management scenarios. But what about more simple scenarios, such as ticket management.

Note–different industries and standards organizations like ITIL have precise definitions around terms like incident, ticket, request. The definition used for case and ticket in this post are based on common usage, not any specific industry definition.

While “ticket” and “case” are frequently used interchangeably, they generally describe slightly different things. Tickets are frequently closed quickly, have fewer details than a case, and are email (or other message) centric. A common workflow for a ticket is:

  1. Request received from customer
  2. Ticket created
  3. Ticket assigned
  4. Agent resolves issue
  5. Agent responds to request
  6. Ticket is closed

Common systems used for ticket management include ServiceNow and ZenDesk.

Simple cases may follow a similar workflow as tickets, but for more complex issues, a case can be open for a much longer time, include more people, and have more steps. Dynamics 365 is built to handle very complex case scenarios.

But is CRM a good fit for more simple ticket management? The answer is yes, it can be, if you configure it correctly. The standard case configuration may seem cumbersome if you mainly manage simple tickets, but with a little bit of configuration, it can be a great fit for ticket management

The following are some tips for how to simplify the CRM Case entity for simple ticket management. Special thanks to Leon Tribe for his input on this tip:

  • Remove the stuff you don’t need. Doing tickets for internal helpdesk and don’t need entitlements? Turn it off and remove it from the form.
  • If most of your tickets are closed in one step, turn off business process flow for cases.
  • One complaint about CRM cases in email-centric ticketing processes is that the original email can get lost in the noise of the activity pane on the case form. Especially if you have processes sending emails to clients when cases are created or updated, if the agent wants to easily respond to the original email from the client, it can be hard to find it among all of the other case activity history. To make it easier for the agent to respond to the client’s email, add a subgrid of email records with a view filtered to exclude emails sent from the account that sends the case notification emails. This makes it very easy to locate the original email and respond to it. When you do so, the response email will be automatically linked to the case.
  • If most tickets are closed in one step, add case resolution fields to the case form, and have a workflow close the case when these fields are populated. While this only saves a few seconds per case, in a busy helpdesk, this can be a significant timesaver.
  • Want auto-text that the agent can insert to an email response and make some quick edits to send to client? Knowlege base articles or email templates can provide this functionality.

Do you have any other recommendations on how to simplify Dynamics 365 cases to better fit simple ticket management scenarios? Leave them in the comments.


Share on FacebookTweet about this on TwitterShare on Google+

Tip #1005: Keep your portals warm and cuddly

This week I had a privilege to sit among Australian Technical Solution Professionals (TSPs) absorbing some of the best selling techniques delivered by none other than our resident video tipster Derik Bormann.

One of challenges of the pre-sales demos is that they need to flow as smooth as butter – there is no room for mistakes and any hiccup is nearly fatal. “You had your chance” seems to be the motto.

When demoing Microsoft Portals, the performance needs to be especially flawless – expectations are high and there is no room for an hourglass cursor. Instead of frantically refreshing the pages 5 minutes before the demo, why not to keep your portal ready to go by hitting the pages you’re about to demo every minute or so, starting 15 minutes before your demo.

If you already use external monitoring services like https://pingdom.com, https://nodeping.com, or any other, go ahead and add your portal pages there – done. If you don’t have any of those (and why would you if you work in pre-sales), here’s how you can create a quick and dirty warmer-upper using existing Azure subscription (I assume you do have one of those if you demo Dynamics 365 and Portals, right?)

  1. In your https://portal.azure.com click + New, search for Scheduler, then click Create.
    Azure Scheduler
  2. Give it a good name
  3. Pick up an existing job collection or create a new one. Note: you’d want a collection in standard tier or higher – free one has only hourly runs.
  4. Click Action settings, select Https Action, enter Url of your page, leave the rest as is and hit OK
    Scheduler action
  5. Click Schedule and enter the details: start date/time (say 15 minutes before the demo), end date/time (15 minutes after), frequency of 1 minute. (And no, I don’t demo at 4:30 AM, it’s UTC speak for 3:30 PM in Sydney)
    Start stop
  6. Rinse, repeat for the pages you’re going to use in your demo.

You are all set now. Whatever problem you encounter during the demo, portal performance ain’t gonna be it.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #1003: Gamification Workflow Assemblies and Plugins

After you enable Gamification in Dynamics 365, you will notice a new category of workflow steps available to you.

These workflows may be useful to you in controlling how Gamification works (such as automatically triggering KPI rollups, disabling KPI’s, etc), and some of them may be useful for other purposes (stop all running workflows). The following is a brief description of the workflows and plugins provided with the Gamification solution:


Retrieves Sales Metrics where  game.startdate <= DateTime.Now and game.enddate >= DateTime.Now. Retrieves Data markers and create process and job records of type retrieve.


– Retrieve new Aggregation Values using FetchXML (Group by Sales Metric Id, Player Id, filter by specific date and sales metric ids of updated individual metric records)

– Update Player Data Records using aggregated values in transaction

–  If it is not last page -> create Calculation job for next page

– Mark current job for deletion


Authenticates the cloud end point and schedules the SendUserWf and PredefinedKPIInitializationWf to run.


– If it is Player Data Records Job

Retrieve Player Data Records related to appropriate sales metric

Mark records for deletion

If it is not last page -> create Reset job for next page

If it is the last page -> create Reset job for Interim Records

Mark current job for deletion

– Else (it is Interim Records Job)

Retrieve Interim Records related to appropriate sales metric

Mark records for deletion

If it is not last page -> create Reset job for next page

Mark current job for deletion


Deletes data metrics, jobs, processes, player data, interim records.


Detects duplicates in Games, Player or Metric data.


– Create new Data Process

– Create Data Job

– Run Job


Retrieves the CRM server version.


Retrieves the organization name.


Get midnight marker. Trigger on create of settings

=> Wait for next settings.NextDataMarkerTrackerWFRun

=> Create empty data marker

=> Retrieve changes for data marker using last saved data marker

=> Backup new midnight marker

=> update next run value (+1 day)

=> trigger itself


Get games, players and metrics from Azure. Trigger on first authorize on the Login/Register page. Runs daily midnight

=> Wait until settings.NextFSTDailySyncDate

=> Retrieves data from cloud and update CRM records if needed

=> Update NextFSTDailySyncDate+1 day

=> triggers a child workflow (itself)


Retrieves changes related to an entity based on the data marker.


– If it is Player Data Records Job

Retrieve Updated Player Data Records

Drop IsUpdated flag

If it is not last page -> create Drop Flags job for next page

If it is the last page -> create Drop Flags job for Interim Records

Mark current job for deletion

– Else (it is Interim Records Job)

Retrieve Updated Interim Records

Drop IsUpdated flag

If it is not last page -> create Drop Flags job for next page

Mark current job for deletion


On change in Game start date end date drops the existing data markers and stops any metric handling running processes or jobs and resets all metrics.


Updates game start and end date.


Gets Gamifications jobs that are in running state.


Resets all Gamification jobs.


Retrieves Gamification settings.


Checks if a process is running or not.


Resets entity markers related to all metrics.


– Commit markers

– Drop FullPostFlag if exist

– Drop Sales Metrics Reset Flag

– Set settings.IsCalculationRunning to false


On Demand. Launch calculation iteration

=> Retrieve set sales metrics where related game.startdate <= DateTime.Now and game.enddate >= DateTime.Now

=> Retrieve current data markers

=> If exist

– Create process record (Type – Retrieve)

– For each entity type of retrieved sales metric, create a Job record related to process record with appropriate marker

=> Set state of N created job (N – settings.ThrottleNumber) to Run => start Gamification Worker


Resets game metric feeds.


Creates out of box KPI’s


Disables entity related KPI’s.


Deletes KPI data on the cloud side based on the metric feed ID.


Checks if there are any active games running corresponding to the KPI data that is currently being deleted. If they are this will throw an exception.


Send KPI information to cloud side.


Fetches KPI information from the cloud side and syncs it on the CRM side.


Activates/Deactivates KPI’s on CRM side.


Send new users created to cloud.


Schedules the next job in the process which is in ready state to run.


=> Runs every 6 hrs

=> Checks state of processes

=> Log the failure and restart processes as needed


Map players to users.


Retrieves midnight markers from cloud side.


Retrieves metrics from cloud.


=> Create a Scheduled process

=> Start it running


Send change tracking disabled notification to Gamification cloud end point.


– Retrieve updated player data records

– Post data to Azure

– If it is not last page -> create Data Sending job for next page

– Mark current job for deletion


Resets the metric data on the cloud side.


=> Get all active users in CRM  which have valid first name, last name, email address

=> Send the users to cloud


Creates and update GamificationSettings entity.


Starts on activation, controls when the calculation should run

=> Wait until settings.NextStarterWFRun

=> Retrieve games where related game.startdate <= DateTime.Now and game.enddate >= DateTime.Now

=> If games exist

– Run child workflow (FST Scheduler WF)

– Update settings. NextStarterWFRun (game.enddate + 1day if no overlap, or max(game.enddate) + 1 day if overlaps

=> Else

– Update settings. NextStarterWFRun (+1 day)

=> Run child workflow (itself)


Stops all gamification processes.


Stops all running processes and jobs.


This sends out telemetry information periodically.


Sets time out for gamification operations.


Logs exception trace and throws plugin exception.


Sends App version information to Cloud end point


– Retrieve entity changes using marker (appropriate page)

– If CT retrieve failed

Send request to Azure (CT failed)

Set settings.CTDisabled to true

Mark current job for deletion

Exit from WF

– Retrieve sales metrics based on specific entity type

– Retrieve players based on sales metrics

– Apply sales metrics filters to retrieved records (Get FetchXML from sales metric, add “IN (retrieved records   ids)” condition to id)

– Update Individual Metric Records (for retrieved records) using ExecuteTransaction

– If it is the last page

Update entity marker

– Else

Create new job with the same entity name and marker, but with next page

– Mark current job for deletion


Share on FacebookTweet about this on TwitterShare on Google+

Tip #1002: Benefits of the UUI to PC users

Recently we posted about Unified User Interface (UUI) myths. Much of that, and other discussions, have focused on the additional goodies the UUI will bring to mobile users. But the benefits also go the other way–web/PC users of the Unified User Interface (UUI) will finally be able to use some of the “mobile only” functionality that mobile users currently enjoy.

  • Task flows: In Tip 914 I ranted about the deprecation of dialogs, especially because there wasn’t a viable replacement option in the web interface. With the UUI, task flows are no longer “mobile task flows.” They work in all interfaces. While there still are some gaps when compared with dialogs (like the ability to run them in context with a record), this is a big step to provide users, no matter what client they are using, with wizards to simplify multi-step processes.
  • Visual controls: Dynamics CRM 2016 introduced a number of great visual controls to mobile. The UUI now makes all of these controls available to users in the web UI. That means that all users will be able to benefit from sliders, signature controls, and many more. Here is an example of a form with a video URL field. The multimedia control displays the video in-line from the web form. The video is our tipster’s guide to visual controls.

  • Recently viewed/pinned records: The mobile app (8.2 and earlier) gives you the ability to pin records to the home screen. This is handy, but these pins are device specific, so if you log in to the browser or you go to a different device, you don’t have these pinned records.The UUI shows recently used records from the application menu and allows favorite records or views to be pinned. These pinned records are available from all interfaces, including web and mobile.


Share on FacebookTweet about this on TwitterShare on Google+

Tip #1001: Migrate Parature to Dynamics 365

Microsoft recently announced that Parature will be discontinued on May 18, 2017. To help their customers who currently use Parature, Microsoft is providing a toolkit which includes:

  • A data migration tool to migrate accounts, contacts, cases (tickets), knowledge base articles, and files;

  • Portal templates you can choose from to quickly deploy a modern support portal; and

  • A customer service configuration template, which includes out of the box workflows, fields and other configurations.

Based on information posted on the Parature website, the toolkit will be available on October 9, 2017, however at this time it is not yet available for download.

Want other options? Our friends at KingswaySoft have a great Parature SSIS integration Toolkit that can be used to migrate your Parature data to Dynamics 365 or to other systems.


See also:

Parature, from Microsoft transition

Can I migrate before or after my scheduled migration window?

What if I need help with the toolkit and migrating?

What is included in the toolkit?

When will the toolkit be available?

What if I do not want to migrate to Dynamics 365?


Share on FacebookTweet about this on TwitterShare on Google+

Tip #1000: Automatically close phone calls the hard way

CRM Tip of the Day reader writes:

I want to automatically close phone calls without the user clicking the “close” button. How can I do that?

In the words of Theodore Roosevelt, “Far better is it to dare mighty things, to win glorious triumphs, even though checkered by failure… than to rank with those poor spirits who neither enjoy nor suffer much, because they live in a gray twilight that knows not victory nor defeat.”

Here at CRM Tip of the day, we are not ones to take the easy way out. So here is how to close phone call records, in less than 22 steps.

  1. When done with the phone call user creates a note against the phone call record with the subject “I’m done.”
  2. Workflow is triggered by the note being created via a check condition step looking for notes with “I’m done” subject.
  3. Workflow creates task record.
  4. Task being created triggers Microsoft Flow.
  5. Microsoft Flow updates facebook with “just got off the phone”
  6. Facebook update triggers IFTTT rule.
  7. IFTTT adds a row to a spreadsheet in Dropbox.
  8. Spreadsheet update triggers Zapier to send an email to “closephonecall@yourcompany.com.”
  9. Exchange rule on mailbox forwards email to forward mailbox.
  10. Dynamics 365 picks up message and adds it to queue.
  11. Auto case creation rule converts email to case.
  12. SLA escalates the case to escalation queue
  13. Escallation of case triggers workflow
  14. Workflow creates Announcement record.
  15. Announcement record plugin pushes announcement to Azure queue.
  16. Logic apps listens on the queue and sends SMS message.
  17. Message is picked up by Azure Function.
  18. Azure Function signals listener on a client machine.
  19. Listener kicks in UI Automation that opens browser, finds the announcement and deactivates it.
  20. Deactivated announcement triggers workflow.
  21. Phone call is completed.

Thank you for reading and sending your tips over the past 4 years and 1,000 tips! Watch a videoof our live reveal at CRMUG Summit 2017.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #999: Troubleshooting case creation in Customer Service Hub

In this video, we look at an issue I ran into with not being able to create new cases, or edit existing cases with Customer Service Hub. We will explain the cause of the issue, and walk you through how to fix it.

Give us your feedback, all of it: good, bad, and ugly, I’m sure we can take it. Suggest new topics either in comments or by sending your ideas to jar@crmtipoftheday.com.

Don’t forget to subscribe to http://youtube.com/crmtipoftheday!

Share on FacebookTweet about this on TwitterShare on Google+

Tip #998: If you have to frequently log in to Dynamics 365 mobile

This is the latest in our series of posts called “Reviewing the reviewers.”  Given that the Apple App Store does not allow responses to app reviews, we are responding to these frequently misguided reviewers here, and explaining how they can resolve the issues that they are seeing with the Dynamics 365 mobile app. Read the previous post in this series.

Today’s review is from Craffay:

Overall, as a review, I would give it a D. The reason is, it is reviewing the Dynamics 365 phone app, but then doesn’t review the Dynamics 365 app, it reviews OneDrive.

The main reason sited for why he wants to give it negative stars and nuke the app is the frequency of having to log in to the app. But here is an important detail: many Office 365 deployments (which includes Dynamics 365) use ADFS for single sign on. The duration of the session token which determines how soon users must log in again is a setting on the ADFS relying party trust.  If you get logged out of your Microsoft business apps very frequently, don’t blame the app. Blame your over protective network administrator.

If you find yourself frustrated having to log in again to Dynamics 365 or other Microsoft business apps, another thing you should do is install Microsoft Authenticator. Authenticator manages your logins for Microsoft accounts, and with Authenticator, you should rarely have to enter your credentials. When prompted for credentials, you can choose the account you wish to use, and Authenticator will log you in. It even supports fingerprint authentication, as Craffay requested.  It’s especially useful if you switch between multiple Office 365 accounts. I also use it to manage my personal Microsoft accounts and facilitate two factor authentication for my Facebook, Amazon, WordPress, Dropbox, and other accounts.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #997: Mobile offline organization data download filter limitations

In Dynamics 365, you can specify an organization data download filter for entities enabled for mobile offline.

From the entity customization form, check the box for “enable for Mobile offline,” then click the link for Organization data download filter.

On the next screen, you will get what appears to be an Advanced Find type screen to specify the data that will be sent to Azure from the selected entity to be available offline.

However, this filter is more limited than advanced find. Be aware of the following limitations:

  • You can only filter on fields with data type single line text, date/time, and option set. Say you have a yes/no (two option) field that you wish to base your filter upon–you can’t do it.
  • The filter cannot reference related entities.
  • The filter can only contain three lines.

With these limitations in mind, should you become discouraged about mobile offline? Not necessarily. Keep in mind that the data a user sees offline is based on a combination of factors:

  • Organization data filter.
  • Offline profile.
  • The user’s security permission.

The organization data filter is just part of the story. It’s ok if your offline data pool contains more records than a user should see, because only the records that they have access to based on their security role and offline profile will download to the users’ device.

Share on FacebookTweet about this on TwitterShare on Google+