Tip #290: The paths we choose

While fiddling with the workflows in a freshly minted CRM Online organization trying to find out what else we can do now that we couldn’t do before (like OR condition, this sort of stuff), I came across of this new, interesting and very much undocumented field called Traversed Path:
Traversed Path field

After playing with it for X minutes I can report that it returns a comma-separated list of GUIDs of the stages of the business process flow that the entity “went” through. Why would we need a list like that and couldn’t we just figure that from the flow definition? Not with the awesome new feature like business process flow branching where some parts of the process may or may not be executed.

In a nutshell, it’s a less glamorous, less visible and most certainly less developer-friendly server-side counterpart of getActivePath client-side function. If this attribute was ever defined in the documentation then definition probably would have been (to borrow and paraphrase):

The read-only TraversedPath attribute represents stages currently rendered in the process control based on the branching rules and current data in the record.

The actual traversed path that is used by the system is in BusinessProcessFlowInstance entity. It also has a TraversedPath attribute but this one is not accessible as this entity marked as internal. The <entity>.TraversedPath attribute only stores an entity specific copy and it is used only to understand which stage of the entity to show as selected stage when the record is open.

I am not convinced though that this “surfacing” of the path is intentional (it’s not possible to hide or suppress attribute from the metadata though) and won’t disappear or at least marked as “internal use only” at some point in the future documentation. Until then, go for it (read-only!) and let us know if you find it useful.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #289: Security needed to pick and route queue items

Update  CRM 2013 SP1 changes the Queue “Work On” button to “Pick.” Before SP1, when a user clicked “Work On,” the queue item “Working On” field would be set to the user who clicked the button, but the record in the queue would remain assigned to the original owner. Post SP1, clicking “Pick” not only sets “Working On” to the user who clicked the button, but also the case/activity/record in the queue will also be assigned to the user who clicked the button..

Users must have at least user level assign permissions on activities to pick records from a queue. Assign permission is also necessary to route items in the queue.


VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #288: Remove event handlers Texas style

Today’s developer productivity tip comes from Mitch “Texas Baby Oil” Milam.

The fastest way to remove all of the Event Handlers from a form is to remove the JavaScript Library or Libraries associated with the form.

Removing the library will also remove any event handlers (OnLoad, OnSave, OnChange, etc.) that have been associated with that library. This is very helpful when migrating JavaScript or performing a Form Merge operation.

VN:F [1.9.22_1171]
Rating: 3.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #287: Prevent meeting notes from going to customers

I recently lead a webinar about the new features in CRM 2015, and one of the attendees asked a great question:

“Is there anything new in 2015 that can prevent server synchronization from sending an update to meeting attendees when the description field is updated? Users record their notes in that field, and we don’t want negative comments about a client being sent to the client.”

This is a good question, because many people don’t realize that Server Synchronization broadcasts meeting changes to attendees. With Outlook synchronization, changes to meetings are not sent to attendees unless someone in Outlook chooses to send an update. With server synchronization, meeting changes are sent out to attendees, even if the meeting occurred in the past.

But there are things that you can do to prevent sensitive notes from being sent to a client.

  • Don’t use the Description field to record meeting notes. Besides the risk that the sensitive notes may get sent back to attendees, the other down side is that this field is just a massive long text field. What if you and two other users update the record? Your notes may get overwritten, and are not time/date stamped like standard CRM notes.
  • Add the Notes pane to the CRM Appointment form. If you add the Notes control in customization, you will be able add date/time stamped notes to an appointment, and these notes won’t be sent back to the attendees. This will also make the experience consistent with adding notes to other CRM records.

test appt

  • If you have CRM 2015, you can configure the outlook synchronization pipe to prevent body/description field changes from synchronizing back to Exchange (and getting sent out to attendees).

sync pipe



VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #286: Another way to get notifications

Back in Tip 276 we talked about how to get notifications if you weren’t an administrator.

It recently came to my attention that Microsoft has added a “notifications” button to the CRM Online organization properties. From here you can add additional users to get notifications for the organization. For example, when there is an update to be scheduled.


VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #285: Going personal with Microsoft Dynamics Marketing

Mark “Bald as a Kiwi” Smith asked the other day:

I am working with a global bank that is considering implementing MDM (Microsoft Dynamics Marketing – t.j.).

I need to provided them documented information on how PII (Personally identifiable information – t.j.) data is handled with MDM. They currently run CRM2013 on premises.

Roger “Wicked keeper” Gilchrist was quite generous to share his experience that is both thorough and eloquent. If I knew enough about MDM, I couldn’t have said it better myself. Without further ado:

I’ve actually been working with a number of enterprise customers around this. Working with a number of banks on exactly this and have a number, <deleted> being the most public example, where they do this already.

Most of the discussions eventually have come down to a few key points:

  • The data you need to put up in MDM to communicate with customers e.g. via email, is information you’re eventually going to send over the internet anyway when you do the email send, so name, email address for example is all information that will eventually be sent over the internet, so the concern over storing that in MDM in the cloud becomes diluted and rarely a real regulatory or compliance issue at that point
  • Where it can sometimes get more tricky is around sensitive data they want to use to segment the customers. If this is a concern, what can be done is to do the segmentation inside your CRM system and generate a marketing list with the results, and just sync the resultant marketing list to MDM,
    • so you may have a marketing list which is called ‘New product X campaign – Dec 14’ ( which doesn’t give anything away but is directly linked to the communication) or a less discrete ‘High Net worth individuals’ which can be targeted in multiple campaigns without exposing exactly on what basis that determination was done
    • The advantage is you can then do the segmentation on-premises and the underlying data never leaves the premises but the resulting target list and communication in MDM
  • The other reality of this, is that the vast majority of marketing players in the market are also online based, obviously particularly so for electronic communication, so where you use alternative vendors they will hit the same issue and often already are without necessarily realising it.
  • You then have a choice how much additional information you put into MDM to do further communication or segmentation in MDM itself, but that is a choice, but with the two combinations above you typically hit the main scenarios that are of immediate concern

That’s a conversation we’ve had with a wide range of enterprise customers, including those in the FS (financial services – t.j.) sector and deploying successfully based on those principles.

VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #284: Entities not available for CRM for Tablets

I am a big fan of CRM for Tablets, but like any application, the CRM tablet app has some limitations. Does this make it bad? Absolutely not. What it does mean is that you should be aware of these limitations and avoid potentially costly surprises.

Most system entities and all custom entities can be included in CRM for Tablets, but there are a few entities that are not enabled for CRM for Tablets.

The following system entities are not enabled for CRM for Tablets. Most of them cannot be enabled, except for Mailbox:

  • Attachment
  • Audit
  • BusinessUnit
  • Calendar
  • Campaign
  • CampaignActivity
  • CampaignResponse
  • Contract
  • Equipment
  • Fax
  • Goal
  • Import
  • Invoice
  • KbArticle
  • Letter
  • Marketing List
  • ListMember
  • Mailbox
  • Position
  • Post
  • PostComment
  • PostFollow
  • PostLike
  • PostRegarding
  • PostRole
  • Quote
  • Report
  • SalesLiterature
  • SalesOrder
  • Service
  • ServiceAppointment
  • Site
  • Subject
  • Workflow

The following system entities are enabled for CRM for Tablets, but are read only and cannot be made editable.

  • ActivityMimeAttachment
  • ActivityPointer
  • Annotation
  • Email
  • Entitlement
  • Product
  • Queue
  • SystemUser
  • Team
  • WebResource
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #283: Create a limited customizer role

In most deployments, users who need to manage customizations in an environment are granted the System Administrator or System Customizer role. This gives them the ability to create or edit entities, relationships, fields, views, charts, dashboards, the whole enchilada.

But what if you want a nibble of the enchilada?

Not all customizations carry the same severity. For example, adding fields, customizing forms, or removing relationships are major customizations that can seriously impact the success of your deployment. But something like creating new system charts is not such a major thing. Sure you might get a lot of charts in the system, but everybody will live.

So what if you want to have a chart administrator that can edit or create new system charts, but you do not want him to be able to change other customization?

This recently came up for me in a deployment using CRM for Tablets, as shared personal views and charts are not available from the tablet app (which I talk about in my book “The CRM Mobile Survival Guide.” Use “FriendofJoel” at checkout for a discount on the paper version.). Since the chart admin was not a system administrator, and the personal charts that he shared with other users weren’t available from the tablet, we wanted to grant him the ability to create system charts but not touch other customizations.

1. Create a role called “Chart Admin.” I recommend making this a small role to be used along with the users main base role, rather than trying to add every other permission that he will need to this role. Just create an empty role.

2. On the customization tab of the security role definition, give the user the following permissions: Read for solutions and create, read, and write for charts.

3. Give the user the new role.

Screenshot 2014-12-03 08.31.30

The user will now be able to create new system charts without being able to modify other customization components. The read privilege is required for the “customize the system” link to be available. You could do the same thing for views by granting the users permission to the “View” entity.

Note that system charts and views do not require that customization be published before they become available to users. This means that the user won’t require the publish customization permission, and won’t be disrupting users by publishing customization while they are updating charts.



VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #282: Why aren’t users in the sandbox?

You use CRM Online. you add a user in Office 365 and assign a CRM license to her. The user shows up in your CRM production organization users, but does not show up in your sandbox organization. What’s up?

Most likely the problem is that your sandbox organization has a security group associated with it, and the user you added is not part of that security group. Associating a security group with a CRM Online organization is a great way to restrict a certain organization to specific users.But it is also the cause of many frustrated O365 admins who aren’t aware that the security group is applied to the organization wondering why users aren’t there.

In the Office 365 Admin portal, go to the CRM tab, select your organization, then click “edit.” In the instance properties, look at the “Security Group” field at the bottom of the page. If there is a group selected, only the members of the group will be added to the organization. If you want to have all CRM licensed O365 users in the CRM organization, you can remove the security group from the organization by clearing the field, or add the users that you want to be in the organization to the selected security group.


VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #281: It all has to be SP1

If you upgrade from CRM 2013 to 2015, your CRM environment needs to be on 2013 SP1. ALL OF IT.

So if you check your CRM server version and it is 6.1.X, you should be good, but what about the other components? What about the SSRS data connector? What about the email router? These items are very easy to forget about, and can add additional downtime and potential server reboots to your CRM 2015 upgrade.

For example, if you try to install the 2015 email router on a server running the 6.0.X email router, this is what you will see.

Screenshot 2014-12-01 15.54.15

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
Tweet about this on TwitterShare on FacebookShare on Google+