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.

 

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.

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

 

 

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.

notifications

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.

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

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.

 

 

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.

Securitygroup

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

Tip #280: Partial Opportunity Products

truckstop

Welcome back to the Tipping Truckstop.

This is where fellow tipping truckies get together to discuss topic du jour and add some collective wisdom to complex and often contentious but always fascinating world of Dynamics CRM. Grab a cup of coffee.

Today’s topic is opportunity products in the situations when, uhm, not all your dreams come true. Dynamics CRM 2015 makes some big improvements with products, such as child product hierarchies, product properties, and product relationships. These features are fantastic and remove many of the hurdles to using the product catalog in Dynamics CRM. However, one thing I still trip over with using the standard Opportunity Products relationship is how to best handle win/loss analysis when not all products on the opportunity are purchased simultaneously. What if I have an opportunity that contains 5 widgets, 3 whatnots, and 4 add-ons? The customer decides to purchase the 5 widgets now, buy the 3 whatnots next month, and not buy the 4 add-ons at all (maybe they found a cheaper price at a competitor). If I remove the add-ons for the opportunity, my won/loss analysis for that product is now incomplete (as it doesn’t reflect the items being “lost,” just the “won” items. Also, if I wait to close the opportunity until next month when the widgets and whatnots are sold, the widgets sale won’t accurately be reflected in my opportunity history.

Let’s see what the trucking tipsters recommend:

Feridun “The Fifth Beatle” Kadir: It depends on how the company wants to track and report on the items. For this scenario, I would separate them into multiple opportunities. If they need to be combined, create a self-referential opportunity relationship for parent/child opportunities and link them.

Gustaf “Swedish Elvis” Westerlund: Some organizations also use Quotes and orders within an Opp that just contain a subset of the products of the opp. When the order is created from the quote, the opp isn’t closed, and hence several orders are created from the same opp. When the final order of the opp is placed the opp is closed to the sum value of all orders. This can be used in frame agreements or similar. However, if you would like the tracking on opp-level, I am inclined to agree with Feridun.

Joel Lindstrom: I think the quotes and orders solution can work well if you are going all the way to orders in CRM; however, many large deployments don’t use orders in CRM, they do order entry in the ERP–they may interface the order data back into CRM, but they aren’t manually creating orders in CRM. In that case, having to do quotes on top of opportunities  is very cumbersome to users.

Larry “Tex” Lentz: You could also add the close dates to the opportunity or order products.

Gustaf: Another option is to create a new opp for each win/loss, use the “Get Products” to get the products from the original opp, and then remove products from each of the opps according to requirements.

George “$0.02 + GST” Doubinski: While in the past we have implemented complex opportunities by splitting them at the invoice level (similar approach to using multiple orders above), in CRM 2015 I would definitely consider adding a hierarchical relationship and split the opportunity itself (and its children, if needed). Not only the users will get access to the visualization tools, it’d be easy to add new rollup fields that would automatically calculate correct combined opportunity value.

Joel: Thanks guys–you’ve helped me focus my thinking on this topic. There are multiple approaches that we could take, and not a one size fits all solution. It really depends on what you want to track and how you want to report on it.