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:

Microsoft.Dynamics365.Gamification.AggregationMasterWF:

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.

Microsoft.Dynamics365.Gamification.AggregationWorkerWF:

– 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

Microsoft.Dynamics365.Gamification.AuthPlugin

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

Microsoft.Dynamics365.Gamification.CleanWorkerWF

– 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

Microsoft.Dynamics365.Gamification.Configuration.BulkDeleteJobsSetupWf

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

Microsoft.Dynamics365.Gamification.Configuration.DuplicateDetectionRulesSetupWf

Detects duplicates in Games, Player or Metric data.

Microsoft.Dynamics365.Gamification.CreateProcess

– Create new Data Process

– Create Data Job

– Run Job

Microsoft.Dynamics365.Gamification.CrmVersionTrackerWF

Retrieves the CRM server version.

Microsoft.Dynamics365.Gamification.CurrentVersionWF

Retrieves the organization name.

Microsoft.Dynamics365.Gamification.DailyMarkerTrackerWF

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

Microsoft.Dynamics365.Gamification.DailySyncWF

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)

Microsoft.Dynamics365.Gamification.DataReceiveWorkerWF

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

Microsoft.Dynamics365.Gamification.DropFlagsInterimRecordsWF

– 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

Microsoft.Dynamics365.Gamification.GameCreateUpdatePlugin

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.

Microsoft.Dynamics365.Gamification.Games.GameDatesOffsetChangePlugin

Updates game start and end date.

Microsoft.Dynamics365.Gamification.GetNotCompletedJobWf

Gets Gamifications jobs that are in running state.

Microsoft.Dynamics365.Gamification.GetResetProcessWF

Resets all Gamification jobs.

Microsoft.Dynamics365.Gamification.GetSettingsWF

Retrieves Gamification settings.

Microsoft.Dynamics365.Gamification.HeartBeatWf

Checks if a process is running or not.

Microsoft.Dynamics365.Gamification.KpiStateResetActivity

Resets entity markers related to all metrics.

Microsoft.Dynamics365.Gamification.MarkersCommitWF

– Commit markers

– Drop FullPostFlag if exist

– Drop Sales Metrics Reset Flag

– Set settings.IsCalculationRunning to false

Microsoft.Dynamics365.Gamification.MasterWF

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

Microsoft.Dynamics365.Gamification.Metrics.GameMetricFeedChangePlugin

Resets game metric feeds.

Microsoft.Dynamics365.Gamification.Metrics.InitPredefinedMetricFeedsWorkflow

Creates out of box KPI’s

Microsoft.Dynamics365.Gamification.Metrics.KpiDisablingActivity

Disables entity related KPI’s.

Microsoft.Dynamics365.Gamification.Metrics.MetricFeedDeletePlugin

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

Microsoft.Dynamics365.Gamification.Metrics.MetricFeedPreDeletePlugin

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.

Microsoft.Dynamics365.Gamification.Metrics.MetricFeedSyncPlugin

Send KPI information to cloud side.

Microsoft.Dynamics365.Gamification.Metrics.MetricFeedSyncWf

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

Microsoft.Dynamics365.Gamification.Metrics.MetricFeedUpdatePlugin

Activates/Deactivates KPI’s on CRM side.

Microsoft.Dynamics365.Gamification.NewUpgradeUserPlugin

Send new users created to cloud.

Microsoft.Dynamics365.Gamification.NextWorkerWF

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

Microsoft.Dynamics365.Gamification.ObserverWF

=> Runs every 6 hrs

=> Checks state of processes

=> Log the failure and restart processes as needed

Microsoft.Dynamics365.Gamification.PlayersMatchingPlugin

Map players to users.

Microsoft.Dynamics365.Gamification.RestoreMidnightMarkersBackupPlugin

Retrieves midnight markers from cloud side.

Microsoft.Dynamics365.Gamification.RetrievePlugin

Retrieves metrics from cloud.

Microsoft.Dynamics365.Gamification.ScheduledWorkerWF

=> Create a Scheduled process

=> Start it running

Microsoft.Dynamics365.Gamification.SendingCTDisableFlagWF

Send change tracking disabled notification to Gamification cloud end point.

Microsoft.Dynamics365.Gamification.SendingWorkerWF

– 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

Microsoft.Dynamics365.Gamification.SendMetricResetWF

Resets the metric data on the cloud side.

Microsoft.Dynamics365.Gamification.SendUsersWF

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

=> Send the users to cloud

Microsoft.Dynamics365.Gamification.SettingsCreatePlugin

Creates and update GamificationSettings entity.

Microsoft.Dynamics365.Gamification.StarterWF

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)

Microsoft.Dynamics365.Gamification.StopAsyncProcesses

Stops all gamification processes.

Microsoft.Dynamics365.Gamification.StopRunningJobsWF

Stops all running processes and jobs.

Microsoft.Dynamics365.Gamification.Telemetry.SendTelemetryWf

This sends out telemetry information periodically.

Microsoft.Dynamics365.Gamification.Throttling.ThrottleTimeoutActivity

Sets time out for gamification operations.

Microsoft.Dynamics365.Gamification.ThrowExWF

Logs exception trace and throws plugin exception.

Microsoft.Dynamics365.Gamification.Update.CustomUpdateStep

Sends App version information to Cloud end point

Microsoft.Dynamics365.Gamification.UserActivityTrackingActivity

– 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

 

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.

 

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?

 

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.

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.

YouTube player

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!

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.

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.

Tip #996: Learn at the summit

What’s the point of running CRM Tip of The Day site if you can’t wheel it out when you need a bit of a promotion? So here we go.

If you’re attending D365UG/CRMUG Summit in Nashville next week, and thirsty for more Dynamics 365 goodness, consider signing up for one of the 25 D365UG/CRMUG Academy classes.

Of course, I’d love you to come to one of my classes over the 2 pre-summit days:

  1. Build a Dynamics 365 Portal in a day. As per title, it will take the entire Monday, October 9, 2017 to learn the fundamentals (and beyond) of the portal development. We will have the exercises for both beginners and skilled developers alike. Bring your laptop and questions.
  2. Free Your Day with Dynamics 365 Automation. This is for every day users, consultants, and even developers – tools, tips and tricks how to be more productive by making your environment and Dynamics 365 do the heavy lifting. Just in 4 hours learn how to be a pointy boss – make the tools work, reap all the credit.
  3. The Best of Advanced Customizations in Dynamics 365. Third year running, as strong as ever. If you ever customize Dynamics 365 yourself or if you ever work with those who do, you need to know this stuff. Of course, “July 2017” a.k.a. version 9 goodness will be there.

Ignoring the above still leaves you with 22 courses to choose from, whether you’re end-user, customizer, analyst, citizen developer, or just a good old developer, consultant, architect, project manager, or ever – gulp – the boss.

So come to Nashville a day or two earlier and learn. See you there!

Tip #995: Read the readme

As you probably have heard, Dynamics 365 July 2017 update is now General Availability (GA). If you set up an online trial environment or you provision a new organization in any geography, you will now receive a shiny new Dynamics 365 v9 environment.

As you rush off to provision your environment, be sure to read the readme for this release.There are several capabilities that are not yet available.

The following features are in public preview, with Outlook and Cortana GA next week:

Mobile offline and Relationship Analytics are in private preview.

What does this mean to you?

  • If you are an existing customer, don’t worry. Core functionality like Outlook App and mobile offline will be available before upgrades are scheduled.
  • If you are a new client starting this week, your choice is to either start with v9 and wait to roll out the functionality not yet released when it becomes available, or provision your organization as 8.2 (in the setup step, select “Dynamics 365” instead of July 2017 update).  My recommendation is to start with v9 (July 2017 Update for Dynamics 365). It will be cleaner than starting on 8.2 and upgrading, and by the time you are ready to test offline and Outlook, that functionality will be released.
  • Dynamics 365 sales, pre-sales, and consultants that want to demonstrate the latest and greatest: go with v9, but you will also probably want to maintain an 8.2 organization if you need to demonstrate Outlook or offline capabilities for now.

Tip #994: Compare two security rules

Steve “kick the hornet’s nest” Mordue asks:

Does anyone know of a tool
for comparing two security roles easily?

Good news Steve. There’s a Yack for that.

David Yack’s fantastic Xrm.Tools has a security role explorer that allows you to easily compare two Dynamics 365 security roles, identify what is unique to each role, and what the differences are.

In your browser, go to Xrm.Tools. Click “Sign in” and log in to your Office 365 account. Note–you can save this step by logging in to Dynamics 365 first, then opening another tab and going to xrm.tools. You still need to click “sign in,” but it will authenticate you to your Office 365 account.

In the lower left quadrant, click “Explore Roles Now!”

On the next screen, select the organization environment where you wish to compare roles.

Click “Compare Roles.”

Select the roles you wish to compare and click “compare.”

The tool will then provide you with a comparison of the two roles:

  • Permissions unique to role 1
  • Permissions unique to role 2
  • Differences between the two roles
  • Similarities between the two roles