Enter your email address:

Delivered by FeedBurner

May 22, 2013

Show Marketing Campaign ROI in Microsoft Dynamics CRM

Marketers spend a lot of time and money creating and executing campaigns, but at the end of the day, can they tell the true impact of their efforts and demonstrate ROI?

What is a Campaign?

I typically explain that campaigns are buckets for all of the information, planning tasks, and campaign activities you need to manage your marketing efforts.  Campaigns include extensive post launch tracking features including detailed financial information, reports, and multiple marketing lists. Campaigns can also include multiple planning tasks and campaign activities that help you coordinate all the resources that are needed for a campaign. 

Campaigns need context and connection

If you are using an integrated marketing automation service like CoreMotives or MarketingPilot, designating a campaign is required.  But if your campaigns are not set up, or you don't connect downstream activity back to the campaign, then you cannot know your ROI.  At a minimum, campaign costs should be recorded on the campaign form.  This is sometimes imported in or included as part of an external system integration. It can also be rolled up from the total cost of campaign activities.  This is going to be the basis of your ROI calculation.  

image

Continue reading "Show Marketing Campaign ROI in Microsoft Dynamics CRM" »

May 15, 2013

Use The Right Tool For The Job in Dynamics CRM

Microsoft Dynamics CRM offers users a variety of methods for users to analyze data. Out of the box we have views, filters, advanced find,record counts on views, report builder, charts, dashboards, Excel exports, pivot tables, and other options.

With all of these tools, it is important to have correct expectations and use the right tool for the job.

Remember the law of the instrument. Just because a tool works well for one problem doesn’t mean that it will be the solution to all problems. Also, just because a tool doesn’t work for a given job doesn’t make it a worthless tool.

Take Advanced Find—the beauty of Advanced Find is that it is approachable by users who are not familiar with writing SQL queries. It allows just about any user to build personal views joining multiple entities together. It is both powerful and approachable.

But that doesn’t mean that Advanced Find is the answer to every query question. For very simple filters, Advanced Find may be too powerful, and something like the filter capabilities may be more appropriate.

For very large data sets and very complex filter logic, Advanced Find may also not be the complete answer. For example, Advanced Find returns a list of records, but does not aggregate them. If you want to get a total of how much money your customers spent on a specific product over the past ten years, Advanced Find will get you the list of orders, but will not total the amount spent.

Advanced find may be part of the answer, but in this scenario, it is not the entire answer. You can run the Advanced Find and then aggregate the totals using tools like charts or export to Excel and aggregate the totals, or save the Advanced Find and use it as the starting point of a report in the report wizard (which can give totals).

Some tips for determining the right tool for the job:

  1. Be aware of the limitations in various tools. For example charts are limited to 50,000 records and the view row counter only counts up to 5,000 records. These limitations are designed with performance in mind. If you increase the fetch limit to 500,000, your charts can aggregate
    larger datasets, but dashboard and application performance will be less than desirable.
  2. Discover what questions users will want to ask in CRM—this will help determine which tool is optimal for a given question. If users want a list of customers in their territory who have
    purchased a product in the past year, Advanced Find is a great fit. If they want to know who has purchased product A but has not purchased product B, Advanced Find is not the best fit.
  3. Once users query the data, what will they want to do with it? I can run an Advanced Find that returns one million records, but what do I want to do with those records? Typically someone isn’t going to want a granular export of 1,000,000 records, they want to aggregate or total the
    results into an actionable number.
  4. Don’t ignore the Pivot Table. My favorite reporting tool in CRM is the dynamic pivot table—I can take a list of records and group and pivot the table to quickly answer many different types of questions. Teach a user how to use pivot tables and you will vastly expand the possibilities of what he can do with the data in CRM and empower the user.
  5. For larger data sets and more complex analysis, other Microsoft tools can be useful. This is where SSRS Reports, Analysis Services, and PowerPivot come in. Don’t be afraid of these tools.
  6. Don’t overcomplicate things—use the tools mentioned in number 5 for more complex analysis and larger data sets, however, don’t use a report when a view will work. Use the right tool for the job.

Microsoft Dynamics CRM includes very powerful out of the box business analysis capabilities and also works with other business intelligence tools in the Microsoft stack. By knowing what questions your users want to ask, you can choose your tools appropriately for the job at hand.

May 13, 2013

IE Developer Tools – Three Quick Tips

Today’s post is for my fellow JavaScript junkies. If you aren’t using IE Developer Tools, then check out a few posts.  I’d highly recommend checking out Microsoft’s pages to realize instant productivity gains. Seriously, it’s awesome.

 

Changing Scope

The first tip I wanted to share, is the “cd()” command. This allows you to change your scope of the console. I wish I would have found this years ago! It may seem trivial, but when coding with IFRAMES it’s always frustrating to prepend your code with “frames[0].” all of the time.

Let me give you an example, you open an entity record with some new JavaScript in mind. The first thing you want to do is get your bearings and start testing various logic. You type in Xrm.Page.data.entity.getId() and get an immediate error…

clip_image002

Why? Oh, because you forgot you’re in the wrong scope. You could always hit [up], [home], and then prepend the line with “frames[0]” – which is what I have always done in the past.

clip_image003

This is fine for a couple one liners but when you’re using Developer Tools to test/write various functions, it’s rather tedious. Instead, you can change the scope of the console by using the “cd(frames[0])” command.

clip_image004

Now, I can test and execute code exactly how it will appear within my JavaScript web resources. Want to go back, just type “cd()” and you’re back to the main.aspx page.

 

Logging to the Console

I’ve seen a lot of developers riddle their code with alert boxes to track down issues. While this is a fine approach, I find writing to the console to be more effective. There are times when the alert command makes more sense, but let’s delve into the console for a moment.

With writing to the console, you have four different message types: “log”, “info”, “warn”, and “error”. Here’s how they appear on the console:

clip_image005

I like to sprinkle these into my code during development. They offer sanity checks and are great when you are debugging. Most of the time, these statements aren’t pushed to production; however, if they accidentally do make it into UAT or PROD – these commands are much safer than alert messages nagging users unnecessarily.

When do alert messages make sense?

Alert messages are useful for making sure the user is told something. I try to use alert messages sparingly since when given too many users generally ignore all of the alert messages.

clip_image006

 

 

Profiling – Making your Code Faster

People often ask me how I get my JavaScript code to execute so quickly. Just kidding, no one has ever asked me that. But if they did, I would credit three things: Dub-step, Douglas Crockford, and the profiler built into Developer Tools. I’m sure you’ve heard of JSLint and you’re headphones are currently blaring some dub-step. You might be unfamiliar with using the profile in your JavaScript though, and I’d like to demonstrate an example for you about the profiler.

First, have you ever wanted to quantify the execution of your code within CRM? Well the profiler allows you to do this. Let’s say hypothetically you want to disable all of the fields on the form. There are several ways of doing this:

clip_image007

But which function would be the fastest? When comparing functions that provide the same results, it’s best to call the function more than once. So let’s call each function 100 times to quantify the speed of each call.

Additionally, let’s use this function to re-establish the form as fully enabled to make sure everything is consistent.

clip_image008

Here’s an example of testing the various functions 100 times each:

clip_image009

After executing our code, switch to the Profiler tab. Choose the speed test example and change your view to the “Call tree”. Now we can see the cumulative time of each function.

 clip_image011

A one second difference between our fastest and slowest function at 100 times equates to an average savings of about 10 milliseconds when only ran once. Not really drastic, but hopefully this shows you how granular you can get.

Generally you won’t need to call each function 100 times. In this scenario, we were trying to save as many milliseconds as possible and comparing extremely similar functions. Typically you’d use the profiler for speeding up a slow form. By adding the profiling you can identify which functions are the culprit of any inefficiencies. Additionally, you can see if functions are inexplicably called more often than they are supposed to.

 

Summary

If you are developing JavaScript inside CRM 2011 and not using IE Developer Tools, I really hope this convinced you to check it out. If you’ve already been using Developer Tools, then I hope you learned something new. There are a ton of features within Developer Tools and I highly recommend taking advantage of them to improve your productivity and your code performance. I hope you enjoy!

May 10, 2013

Enhance Existing Teller Applications with Up-Sell and Referral Integration from Microsoft Dynamics CRM

    Below is a 2-minute demonstration of how Microsoft Dynamics CRM can be integrated with a teller system.  The scenario shows how a teller can receive next-best-product and eligible promotions directly in their teller system during a client transaction.  The data is being driven into the teller system from Microsoft Dynamics CRM built with Customer Effective: Banking.  For the teller, it's a seamless and familiar experience using the same teller system they have always used.  Once a teller gets the marketing messages delivered, they can create a referral in their teller system that gets passed to Microsoft Dynamics CRM.  

Continue reading "Enhance Existing Teller Applications with Up-Sell and Referral Integration from Microsoft Dynamics CRM" »

May 08, 2013

Health Plan Marketing in the Era of the Affordable Care Act with Dynamics CRM

Health Plan providers are working hard, not only to change the products they offer but the way they go to market.  Because of Healthcare Reform, they will now have increased exposure to an entirely new market of consumers that previously didn’t exist. What is going to motivate and retain customers? Products? Price? Wellness Benefits? Coverage of Pre-Existing Conditions?  Disease Management Programs?

Continue reading "Health Plan Marketing in the Era of the Affordable Care Act with Dynamics CRM" »

Everybody has bad data: ensuring good data quality when moving to Microsoft Dynamics CRM

I am often asked as we are beginning a project, “What are some of the most common pitfalls in implementing CRM?”  Or, “What do people typically underestimate in a large CRM deployment?”  A number of possible answers may come to mind, but in my experience, the effort to cleanse and connect to enterprise data wins every time.  Everyone has bad data.  It’s the dirty little secret of enterprise systems.  The one that IT guys are embarrassed to explain to upper management. Systems store data in different ways, laid out in deferent architectures.  Some are legacy systems that have been around for years.  Some for 20 or more years.  Others are more current architectures, maybe with web services interfaces.  But the underlying problem is the same in each.  People key data with the constraints placed on them by the user interfaces and systems they interact with.  And when people interact with systems, data is not clean.

Continue reading "Everybody has bad data: ensuring good data quality when moving to Microsoft Dynamics CRM" »

May 06, 2013

Data Types available with Microsoft Dynamics CRM 2011

When creating custom fields in Microsoft Dynamics CRM (CRM), the following data types are available to you as a customizer.

CRM add field
Single Line of Text – This is the simplest field type and is a string attribute.  The length can be defined between 1 and 4000 characters.  This field has special formatting if desired for storing Email, Text Area, Ticker Symbol, and Url.  Using email will create a mailto link for that field.  Ticker Symbol will provide a quote for the ticker entered into the field when the value is clicked.  Url will display a link to the value entered in the field.  Text Area can be displayed as more than one line on the form.

Option Set – This is commonly referred to as a pick list or drop down field.  A user is only allowed to select from the choices provided.  A “blank” value is acceptable.  A default value can also be defined.  NOTE: If you have an option set that will be used on other entities in your deployment, you will want to create a global option set for system consistency.

Two Options – This is similar to an option set but only contains two values, Zero (0) and One (1).  The display of those values can be changed to represent whatever you like. No (0) and Yes (1) are common display values for this field.  Another interesting note about this field is that it can be displayed on the form as a pick list, radio buttons, or check box.  The value is set in the form designer after the field is placed on the form.

Multiple Lines of Text – This field is similar to Single Line of Text, however, it can store much more data than Single Line of Text.  This field will be displayed as more than one line on the form.

Date and Time – This field stores date and time data.  You can choose to have both the Date and Time displayed or only the Date portion.

Lookup – This field represents a link to another entity.  It will create a 1:N relationship in the database with this field representing the “1” side of the relationship.

The fields below are different ways to store numerical values in CRM.  In all cases, you can set minimum and maximum values.  This is valuable if you want to constrain data entry to non-negative
values or from 0 to 100 for example.  The minimum and maximum values are different for each data type and are set at the minimum and maximum range when the field is created.

Whole Number – This field allows you to store round (or whole) numbers, meaning no decimal points.  The whole number field has different types which can be selected for Duration (activity), Time Zone, and Language (multilingual support).

Floating Point Number – This field allows for numeric values with up to five (5) decimal points.  The precision of this field is arbitrary, which means it can be used to represent both very large numbers as well as very small numbers.

Decimal Number – This field stores numeric values with up to ten (10) decimal points.  The precision of this field is absolute.

Currency – This field is used to store monetary values.  Based on your currency settings, the correct currency symbol is also displayed such as the dollar sign or euro symbol.  It can also hold up to four (4) decimal points.

April 29, 2013

Turning on Yammer + CRM Integration? Move Your Post Data with a Simple Workflow

The Yammer-CRM integration is finally available for users of Microsoft Dynamics CRM Online.  If you have logged on and looked at your Activity Feeds lately, you will see a ‘Get Yammer’ notice near you messages.  One of the key things to consider before you pull the trigger is that your activity feed user post data will not be accessible in from your record walls or your main ‘what’s new’ feed.  Yammer will replace this functionality.  The old post data will still live in the system and you can grab it with Advance Find or the SDK, but users will not see it on their walls.

So the challenge for current users of Activity Feeds is to get the legacy post data from the record wall and into the record.  We created a simple workflow to do so.

Continue reading "Turning on Yammer + CRM Integration? Move Your Post Data with a Simple Workflow" »

Considerations for Yammer + Microsoft Dynamics CRM Integration

Yammer integration with CRM allows users to collaborate on customer and opportunity records within the UI of both platforms.  Yammer users are alerted to deal updates and changes to customer statuses regardless of their access to MSCRM.  Users of Microsoft CRM are able to post relevant customer information to Yammer from inside CRM records.  Below is a great demo of the possibilities of Yammer + CRM:

 

If you are considering turning on your Yammer integration inside of CRM, there are a couple of key considerations.

Yammer Edition: Do you have the right edition of Yammer?  The free version of Yammer is not eligible for direct integration within Microsoft CRM.  You will need the Enterprise version.  Why?  Yammer enterprise has enhanced admin and security privileges that are necessary to write data back and forth to Microsoft CRM.  Plans start at $3/pupm and you can find them here.

Activity Feeds:  Do you actively use Activity Feed user posts?  They will go away when you install Yammer.  You will not be able to simultaneously use Activity Feed user posts and Yammer, and you cannot uninstall Yammer.  Your Activity Feed user posts will only be available via advanced find, but we have developed a simple workflow to move those posts to your Notes section of a form.  Read about it here.  Your auto posts will stay as-is.  This data will continue to live in CRM, although you can send this to a Yammer post if you like.

Security:  Do you need to map your social collaboration system to your CRM security model?   If so, you may want to stay with Activity Feeds and not turn on Yammer inside of CRM.  Yammer posts live inside of Yammer; while Activity Feed posts live inside of CRM.  Conversations in Activity Feeds are limited to CRM users.  When you integrate CRM and Yammer, Yammer users (who aren’t necessarily CRM users) will be able to subscribe to and view post related to CRM records.

Stay tuned to the Customer Effective Blog for more information on Yammer.

April 24, 2013

Managed Solution Replacement in Microsoft Dynamics CRM

Microsoft Dynamics CRM 2011 introduced the concept of solution management—packaging your customizations so they could easily be deployed to other environments. In CRM 2011, there are two types of solutions: Managed solutions, which prevent the solution from being modified in the environment to which it is imported, and unmanaged solutions, which allow for the solution to be modified after it is imported.

Customer Effective typically recommends that users deploying internal customization changes should do so using unmanaged solutions. Managed solutions are great for Independent Software Vendors (ISV’s) who are selling their intellectual property and don’t want it to be modified by their customers, but for internal customization of your base CRM solution, managed solutions can cause some challenges. Even in highly secure environments, there are typically some level of customization changes that need to be made in a CRM production environment, such as view, chart, and dashboard changes. Also, maintaining a managed solution requires that you preserve an unmanaged copy of that solution somewhere, since that is the only way you can update the solution or delete components.

For these reasons, we recommend that most clients use unmanaged solutions for their internal base customizations.

So what do you do if you configured your CRM base solution as a managed solution and you want to change it to an unmanaged version?

Continue reading "Managed Solution Replacement in Microsoft Dynamics CRM" »

Search The Blog

  • Search the Blog

Twitter Updates

    follow me on Twitter