CRM 2013 Joins - “That is so fetch!”

Posted by on April 18, 2014  |  commentsComments (0)

Today’s guest blogger is Stephen Habegger, a Developer at Sonoma Partners.

CRM 2013 introduced a nice new addition to FetchXML: the entityname attribute of the condition element. This allows us to do things like query all Account records that have no child Contacts, something we couldn’t do in CRM 2011. It also allows us to perform OR type filters across entities. This also could not be done in CRM 2011, because a filter element had to be a child of the entity or link-entity element on which it was filtering.

CRM 2011

In CRM 2011, the following query would give us each Opportunity and its related Contact where the Opportunity Status Reason is “In Progress” and the Contact is at least 21 years old, the intersection of the two criteria.

<fetch mapping="logical" version="1.0">
    <entity name="opportunity">
        <attribute name="name" />
            <link-entity name="contact" from="contactid" to="customerid">
                <attribute name="fullname" />
                    <condition attribute="birthdate" operator="on-or-before" 
                               value="1993-04-17T00:00:00" />
                <condition attribute="statuscode" operator="eq" value="1" />


CRM 2013

CRM 2013 allows us to retrieve Opportunities with the union of the two criteria, using an OR type filter. We can now retrieve each Opportunity and its related Contact where the Opportunity Status reason is “In Progress” or the Contact is at least 21 years old.

<fetch mapping="logical" version="1.0">
    <entity name="opportunity">
        <attribute name="name" />
            <link-entity name="contact" from="contactid" to="customerid">
                <attribute name="fullname" />
            <filter type="or">
                <condition attribute="statuscode" operator="eq" value="1" />
                <condition entityname="contact" attribute="birthdate" operator="on-or-before" 
                           value="1993-04-17T00:00:00" />

Alright, this is awesome. Now, what if we want to retrieve the Contact’s parent Contact, as well? I ran across a similar scenario recently. Should be no sweat. Let’s try this:

<fetch mapping="logical" version="1.0">
    <entity name="opportunity">
        <attribute name="name" />
            <link-entity name="contact" from="contactid" to="customerid">
                <attribute name="fullname" />
                <link-entity name="contact" from="contactid" to="parentcustomerid">
                    <attribute name="fullname" />
            <filter type="or">
                <condition attribute="statuscode" operator="eq" value="1" />
                <condition entityname="contact" attribute="birthdate" operator="on-or-before" 
                           value="1993-04-17T00:00:00" />


Uh oh. When we try to run this query, we get an error:

There’s more than one LinkEntity expressions with name=”contact”.

Well, I guess we were bound to run up against a new error while using a new bit of functionality, but what’s worse than the grammatical error in the error message: does this mean we can’t use our nifty new filter in this scenario? It appears the entityname attribute on the condition element is confused by the fact that we have two Contact link-entity elements.

Fortunately, a little playing around shows the fix is pretty easy. The entityname attribute seems to happily accept an alias, as well as the actual entity type:

<fetch mapping="logical" version="1.0">
    <entity name="opportunity">
        <attribute name="name" />
            <link-entity name="contact" from="contactid" to="customerid" alias="oppCustomer">
                <attribute name="fullname" />
                <link-entity name="contact" from="contactid" to="parentcustomerid">
                    <attribute name="fullname" />
            <filter type="or">
                <condition attribute="statuscode" operator="eq" value="1" />
                <condition entityname="oppCustomer" attribute="birthdate" operator="on-or-before" 
                           value="1993-04-17T00:00:00" />

Microsoft Gets Social

Posted by on April 17, 2014  |  commentsComments (0)

Last year it was announced that Microsoft acquired the social monitoring analytics vendor Netbreeze and they had big plans to revamp the product and integrate it with Dynamics CRM.  They didn’t fall short on that promise and at this years Convergence showed off their newly branded Microsoft Social Listening product and discussed future enhancements planned.

If you went to Convergence this year in Atlanta, and were unable to attend the “Social listening deep dive” session (DDCRM111), I highly recommend heading over to the Convergence 2014 website, navigating to Attendee Tools, and reviewing that session’s video or PowerPoint

Microsoft’s Social Listening is a product that’s used to scrub multiple social sites (YouTube, Twitter, Facebook, and Blogs).  Blogs currently monitor WordPress and Tumblr only.  The data from the sites is brought back into Social Listening so users can analyze, monitor, and respond. 

The main navigation of Social Listening is Analytics, Facebook Pages, Settings, and Help.  Let’s dive in and take a look at the features.

Analytics Home Page

The Analytics Home Page of Social Listening breaks out the Buzz and Trend of the conversation amongst all search topics based on a time frame, but can be filtered down or drilled into to show specific topics.  The Trend is a statistic that shows how the topic is performing compared to an average week based on the last 5 "time frames".  A time frame can be days, weeks, or a custom time frame. 

On the home page you can see the number of posts per language.  The home page also breaks down the number of posts per source (YouTube, Twitter, Facebook, Blogs).

All charts within Social Listening can be exported to PNG, JPG, vector graphics SVG, PDF, XLSX, or CSV to allow you to send reports to users not within Social Listening.


Analytics Overview:

Users can drill a level deeper and navigate to the Overview area of the Analytics section.  In this area you can see posts, graphs, and also drill down into authors, sources, etc.

Within the Overview, you can also:
  • See a summary of different posts and sentiment
  • View the volume history over time including average
  • View a summary of sources as well as the breakdown of language per source



No matter where you’re at within the navigation of Microsoft Social Listening, you can filter your social data on many different criteria.  When you filter your data in one area and move to another, the filter remains.  All the charts and graphs within Social Listening are clickable so you can drill into a specific section of a chart or graph (on source for example) and the current filter is expanded to include whatever you just drilled into.

A few examples of what you can filter on include:

  • Search Terms (e.g., from “All” to specific terms such as “Sonoma Partners”)
  • Reach (if you’re only interested in seeing data based on those social users with the most influence)
  • Date (e.g., last week, last month, or a custom range)
  • Sentiment (you can drill into a chart to view those posts that were negative to reach out to those users who may have posted something negatively about your product)
  • Language
  • Source (Twitter, YouTube, Facebook, or Blogs)
  • Site
  • Keywords



Sentiment is another key component of Social Listening.  The key differentiator between Microsoft Social Listening and other products is that in Social Listening, the sentiment is calculated in the native language.  It’s not translated first into English, and then the sentiment is calculated.  This is key because certain phrases in other languages could mean different things based on the context of the phrase.

The sentiment engine first identifies sentences, then identifies words, then tags parts of speech (e.g., verbs, adjectives, nouns, etc.), then groups the words back into phrases, and finally detects the sentiment.

image image


The Posts area of SL will display the actual raw posts that are being retrieved based on your search terms. 

Sometimes the calculated sentiment isn’t correct in how it’s tagged the sentiment.  Thankfully, within the Posts area of SL,  Microsoft has built in the ability to manually change the sentiment so the updates will be reflected in any analytics.

You can also reach out to your audience directly using the native features of the source of the post (e.g., reply / retweet / favorite from Twitter).  You can also navigate quickly to the original post, email the post to a college, or delete it from your instance of Social Listening.



Social data can be broken down by author allowing you to see who your top influencers are and allowing you to reach out to those individuals if need be.


Facebook Pages:

Facebook Pages are setup separately within the Settings area of SL and are also reported on separately.  SL looks at all posts on a specific Facebook page that’s setup.  However, you can analyze your data to see what posts are coming from the audience versus posts that are coming from the owner of the page.  This way you can better understand the conversations on your page and if you’re driving user interaction, or if your users aren’t engaged and the activity on your page is all coming from you.

Just like the rest of SL, everything in the Facebook area is clickable allowing you to drill into posts, authors, sources, etc. to see the data with different filters and in many different ways.



Social Listening is on a quota per month pricing model.  If you’re a small business you’ll want to pull small amounts of data into SL.  However if you’re analyzing a lot of data you’ll need to increase your quota to make sure you can pull all the social data in without any issues.  SL does provide you indicators if you’re reaching the limit of your quota and you can purchase more to ensure data collection doesn’t stop for the month. 

When you’re setting up new search topics, you can test your settings on the topic to make sure it won’t blow away your quota.  You can also enter in inclusions or exclusions to apply to your searches.

You can have system wide defaults (e.g. languages, time frame, search topic sources, etc.).  However each individual user can override the system defaults with their own defaults.

To setup a Facebook page, simply copy the URL of any Facebook page and SL will start tracking against it.

Users have the ability to also setup Blocked Content (e.g., if you’re tracking hundreds of car brands but want to exclude second hand cars, you can add those words to block that content), or Blocked Sources (e.g., you want to block your own blog from being included in the SL data).


The Future of MS Social Listening:

In this session, Microsoft also discussed the future vision and feature roadmap they see for Social Listening and Dynamics CRM.   There’s definitely reason to be excited not only for what’s here now, but for what’s to come:

  • Q2 2014
    • Dynamics Marketing Social Campaigns (e.g., Use Dynamics Marketing to send out tweets and other social activities in response to landing page activity)
  • H2 2014
    • Engagement Capabilities (CRM users can start engaging with customers via social web to have everyone including non CRM users participating in a single discussion)
    • GEO Features / heat maps (the ability to filter where posts are coming from)
    • Create Social Activity (the ability to create Leads, Opportunities, and Cases in CRM directly from Social Listening)
    • Power BI and Social Analytics (e.g., mash up social data with sales, marketing, and financial data)


There you have it.  Just another gigantic reason to be excited about the new acquisitions Microsoft has made, and the vision they have to include more forward thinking components within the Dynamics CRM product.

You might need a CRM system re-launch if…(or how to avoid zombie CRM)

Posted by on April 17, 2014  |  commentsComments (0)

A new trend in the CRM space seems to be gaining momentum. Recently, more and more prospects are asking for help to “re-launch” their current CRM deployments. Some customers call it a CRM reboot, others call it a CRM restart but they share the same symptoms. Businesses believe in the value of a CRM system, and they know that the software platform they currently own can accommodate their needs, but for one reason or another they aren’t getting the value out of the system that they think they should. They want to re-launch their CRM system, which involves redesigning the various components of the application such as the customizations, dashboards, etc.

Investing in a CRM isn’t cheap, so if you’re not getting a lot of value of your deployment you should ABSOLUTELY consider taking a fresh look at your approach.

Customers might need to consider a CRM re-launch for different reasons. The most common re-launch scenarios we see include:

  • You are consolidating and standardizing CRM deployments
  • Your CRM system is stagnant (what we affectionately call “Zombie CRM”)
  • You are outgrowing your CRM implementation partner

Let’s take a look at each of these re-launch scenarios in a little more detail.

Consolidating and Standardizing CRM Deployments

Over the past 5+ years lots of companies have purchased Salesforce or Microsoft Dynamics CRM, but most of these decisions were made at a divisional level, not at an enterprise level. Consequently CIO’s today find themselves with a smorgasbord of CRM systems to deal with. It’s not unusual for a single customer to own multiple Salesforce deployments, each with different administrators, pricing, contract end dates, and security rights. Likewise, we see many customers that have both Microsoft Dynamics CRM and Salesforce deployed in different divisions, particularly in the cases of mergers and acquisitions. Most IT departments want to standardize on either the Salesforce or Microsoft Dynamics CRM platform to minimize the amount of skills and resources needed to support the CRM platform.

When customers combine multiple deployments into one, they are forced to reconsider the system goals and design, which almost always leads to a CRM re-launch.


Stagnant CRM Deployments (also known as Zombie CRM)

ZombieWhen a business first deploys their CRM system, it receives a LOT of love and attention. Management checks in frequently, each nook and cranny of the system receives detailed testing and users receive plenty of training and documentation. You may have hosted a CRM launch party complete with t-shirts, cakes, and prizes.

Fast-forward a few years and the picture drastically changes. Sure the CRM system is up and running, but plenty of new issues might surface:

  • Data quality decreases drastically and the system contains lots of duplicates and out-of-date data
  • User adoption is just mediocre or adequate
  • The system doesn’t take advantage of the latest and greatest features available from Salesforce and Microsoft (it might even be years behind!)
  • Management thinks the CRM project is “over” and they won’t invest any more into the deployment

When I talk with customers suffering from these symptoms, I can’t help but think of zombies. The system isn’t dead, but it’s definitely not alive either. It’s slowly deteriorating over time and becoming less valuable every day.

Businesses invest too much money into software subscription fees to let their CRM systems turn into worthless zombies. Consider a CRM re-launch to help fight off the forthcoming zombie CRM apocalypse.


Outgrowing Your Implementation Partner

Most businesses utilize a third-party consulting firm to help them with their initial Microsoft Dynamics CRM or Salesforce deployment. Prospects often surprise me when I ask them how and why they selected their original CRM implementation partner. Answers vary from “they were the cheapest” to “Salesforce recommended them” to “I don’t know, I wasn’t here back then”. The needs of most businesses change over time, and consequently I think it’s safe to say that maybe the original implementation partner doesn’t fit the best anymore.

As we mentioned earlier, a lot of CRM deployments start as smaller divisional level deployments. As the CRM footprint grows within the enterprise, the implementation partners that helped with the division deployments might not have the skills and expertise to help develop an enterprise level CRM plan.

Issues we hear from customers outgrowing their implementation partners include:

  • Higher quality levels needed, including better testing and system governance
  • Consultants are just “order takers”, they don’t provide recommendations on best practices to clients on what they could or should be doing with their CRM systems
  • The consultants can perform coding and customization tasks, but they can’t help the business’ executive management brainstorm and develop an enterprise level three-to-five year CRM roadmap
  • Spending too much money on over-engineered and overly complex CRM system designs

If your business suffers from these systems, it’s the perfect time to re-evaluate your consulting partner and re-launch your CRM system. A fresh set of eyes with a new perspective can really help invigorate the value of your deployment.


What’s Wrong with CRM Software Evaluations Today

Posted by on April 14, 2014  |  commentsComments (0)

We receive a lot of requests from customers asking us to help them evaluate whether or Microsoft Dynamics CRM would fit their company best. Having witnessed a lot of customer evaluations of CRM systems, we think there’s lot of room for improvement and implementing best practices. Most companies evaluate a CRM system once every 4-5 years. Unfortunately this infrequent buying cycles means that buyers can’t develop the same CRM software perspective as a company like Sonoma Partners, where we constantly conduct CRM software evaluations.

I would estimate that the typical CRM buyer spends their time as follows when evaluating a system:

  • 50% of their effort is spent comparing functionality between the systems
  • 40% of their effort is spent comparing costs between the systems
  • 10% of their effort is spent evaluating the partner who will actually perform the implementation

This breakdown seems reasonable on the surface but we have some major concerns with this approach.

Functional Evaluation Risks

Customers love to dive deep on system features and really get into the nitty gritty to evaluate how the different systems work. Unfortunately, this feature evaluation only compares the two vendors at a specific point in time. Considering both Microsoft Dynamics CRM and Salesforce release more than 3 updates per year with hundreds of new features per release and assuming a 5-year investment horizon…each vendor will add 5,000+ new features during the system lifecycle. This is why it seems nuts to us to make a CRM platform decision based on detailed features as they exist today.

Another risk to diving deep on CRM features for your evaluation is that you might not be comparing the right features. Prospects ask us to evaluate features based on what they think they need, but we frequently find out 2 months later when we’re actually in the middle of the project that they actually need something totally different than what they thought they needed during the CRM platform evaluation process. In these scenarios I can’t help but wonder if they knew then what they know now, who knows if they would have made the same CRM platform decision?

Cost Evaluation Risks

LookingWhen comparing CRM systems, it seems to make good sense that the customer want to know the total cost of ownership for the system. Lots of factors play into these calculations such as hard costs like the software subscription, implementation costs, software support and potentially new hardware. Other softer costs exist too, including ongoing internal staff support and business interruption costs.

Calculating the hard costs associated with the software doesn’t usually cause a problem for customers. Unfortunately estimating the implementation costs isn’t quite so simple. Nothing strikes more fear into an implementation partner’s heart than to hear a customer say, “We need a detailed 2-year cost estimate based off this one page requirements document”! On one hand, consultants like us want to make sure we leave enough buffer to cover any unexpected surprises, but on the other hand we need to keep our estimate competitive.

Most competent implementation partners will struggle will provide detailed and accurate implementation estimates based off of documentation provided by the customer. I would encourage customers to really question the accuracy of any implementation estimate if the partner bid off a requirements document, and they haven’t been able to engage in person with your CRM project team. 

Implementation Partner Risks

At the very end of the CRM decision making process, the customer then turns their attention to the implementation partner. Remember the breakdown of percentages we discussed earlier? We firmly believe that 90% of a CRM project’s success or failure depends on the implementation team. Both Salesforce and Microsoft Dynamics CRM have hundreds of thousands of satisfied customers, and millions of happy users worldwide. If your CRM project fails, very rarely should the technology receive the blame. Instead customers should hold themselves and their implementation partner accountable.

Please note that while the implementation partner may carry a great brand name the actual project gets executed by a specific team of people (not the entire company). We witness many cases where customers received not-so-great resources from a highly ranked or regarded implementation partner. Make sure you know which people from the implementation partner will be working on your project because you might pick different CRM implementation partners based on the assigned team.

If we had it our way, customers would conduct CRM software evaluations much differently. In our ideal world, customers would spend less time worrying about detailed features and spend more time evaluating the implementation partner and the actual project team to make sure there’s a strong track record and good personality match.


Clogged Sync? Better call the plumber…

Posted by on April 8, 2014  |  commentsComments (0)

Today’s guest bloggers are Ross Talbot, a Senior Developer at Sonoma Partners, and Nick Costanzo, a Senior Consultant at Sonoma Partners.

A few months ago, my colleague Jacob wrote a blog post about Dynamics CRM 2013’s new feature, the Server-Side Sync.  Here is his original post for reference.

We recently encountered an issue when configuring server side synchronization between CRM 2013 On Premise and Exchange for one of our clients.   The client was looking to take advantage of this feature to allow Contacts, Appointments and Tasks to sync to their end users’ mobile devices, without relying on the Outlook Add In client sitting open on users' desktop.  To set this up, we followed steps to configure the CRM server email delivery method, configure email profiles and configure mailboxes.  Initially the setup appears to be successful but then a short time later the synchronization of contacts, appointments, tasks, etc. gets disabled.



We logged a support case with Microsoft and after extensive troubleshooting, they have determined that the issue is related to the Exchange managed API.   The Microsoft support team has indicated they are working on a resolution for this and will notify us on the timeframe for this fix.  We believe this issue was partially fixed with CRM 2013 UR1, which resolved an issue that Microsoft Support identified in the platform traces regarding this error.  On the Exchange side, right now this is looking like it is related to an upgraded instance of Exchange On Premise and does not appear to affect all customers setting up server-side sync.  The exact mix of Exchange and CRM settings that lead to this issue are the focus of this ongoing work with Microsoft Support.  

Additionally, we noticed an issue with orgs upgraded from Dynamics CRM 2011 regarding the Server-Side Sync.  If a solution is imported with a customized Sitemap, and the solution was generated in CRM 2011, the Email Configuration option will not be included and can be overwritten by an unmanaged solution.  The default location under the Settings area is shown below.


To resolve this, we had to re-add the section to the sitemap.  We built a new 2013 org, found the section we needed, and copied the XML into the sitemap for our org under the Settings area.  Since there isn’t an easily searchable “Email” or “Email Configuration” in the corresponding XML it is difficult to tell this is the section that is missing.  Here is the XML line needed to get this option back:

<SubArea Id="nav_social" ResourceId="Social_SubArea_Title" DescriptionResourceId="Social_SubArea_Description" Icon="/_imgs/area/16_social.png" Url="/tools/social/social_area.aspx" AvailableOffline="false" />

Once that is added back into the sitemap, the Email Configuration options are accessible once again:

So if your sync is clogged, you may be seeing the same thing we did here.  If you need help getting this resolved, we make house calls.

Multicurrency and SOQL in Salesforce

Posted by on April 7, 2014  |  commentsComments (0)

Most of the time when I write a post, I do so because I think whatever subject I’m writing about is either not well documented, the documentation for it is not easy to find, or the information is important enough that it’s worth re-sharing just to make sure as many people as possible see it.

Today’s post is not going to be one of those posts.

Instead, what I want to talk about today is multicurrency in Salesforce, specifically in the context of SOQL queries. If you search for this in your favorite search engine, you should be able to find the documentation around this pretty quickly (here it is if you don’t want to search). Today’s post was prompted because I ran in to this recently, and until I did I never even thought to look for this kind of documentation.

The Scenario

Let me provide some context for the discussion. One of our customers has multicurrency enabled in their orgs, as well as a few custom fields on the Quote Line Item. The custom fields are: ACV (effectively a calculation for the value of the line item), and Group ACV (the value of the product ‘group’ the line item belongs to). The requirement was that the Group ACV should always contain the total ACV for all Quote Line Items in the group.

Normally, the way we would accomplish this is to write a trigger which roughly looks like:

Pretty straight forward – let the database do the sums, loop through the records and assign the sums to the quote line items. Except when you have multicurrency enabled.

The Catch

During testing, we had some Quote Line Items whose parent Opportunity’s currency was set to Euro (the Org’s default currency is USD). After the trigger ran, we got the following results:




You can assume the ACV field here is correct. Adding up the ACVs for these 3 Quote Line Items, we get:

Line Item

ACV (Euros)


Product 1



Product 2



Product 3






If you look closely at the Group ACV field, you’ll see that it’s reporting the Group ACV is 16,530.61 in Euros. What’s happening here is pretty straight forward once you read the documentation:

“If a query includes a GROUP BY or HAVING clause, any currency data returned by using an aggregate function, such as SUM() or MAX(), is in the organization's default currency.”

So the aggregate sums we get from the query are coming back to us in USD, which I was then just assigning to the Group ACV field assuming it was still Euros. It took a phone call with Caitlin Pfeiffer, who found the issue, and ~30 minutes of head scratching and debugging to finally realize where the issue was coming from.

The Solutions

Broadly speaking, there were two solutions that I could think of depending on the requirements. In our case, we knew the client would never need to see the Group ACV in anything but USD, so we just changed the Group ACV field from a currency field to a number field. Salesforce doesn’t do the currency conversions unless the field is a currency field.

If you did need to see the Group ACV in the same currency as the Quote Line Item’s currency, you can query the conversion rates and just do the conversion back to the target currency yourself. The trick here is to determine which object you need to query, as this changes depending on what kind of multicurrency you have enabled.

  • If you have Standard Multicurrency enabled, then you’ll need to query the CurrencyType object which has ConversionRate and IsoCode fields.
  • If you have Advanced Currency Management enabled, then you’ll need to query for the DatedConversionRate object, which contains the ConversionRate, IsoCode and two date fields which let you backdate conversions if needed.

Using whichever of these objects you have in your org, you should be able to do the conversion from USD back to the target currency pretty easily.

The Single Most Radical Thing You Can Do to Drastically Increase End User Adoption

Posted by on March 31, 2014  |  commentsComments (2)

Of course you want high end user adoption of your CRM system, but what are you willing to do to achieve it? How far outside the box are you willing to get?

The (Unfortunate) Gap Between Perception and Reality at One Customer

On a recent project, we were working with a new division of an existing CRM customer and the IT team said that division was struggling with end user adoption of the system. We heard quotes from IT like “it’s too many clicks” or “the sales people are lazy and just won’t enter the data they’re supposed to”. To better understand the problem, we spoke with a handful of the sales users on a 1-on-1 basis and observed them conducting their typical daily activities.

Much to my surprise, I saw the sales people entering TONS and TONS of notes about the customers they were calling on. They would record things like their nicknames, in-depth details about their current lease (this was a real estate company), known business connections, etc. Not only that, they would cross-reference the data with other external sources to make sure that the data was as accurate as possible. I was blown away and very impressed with the level of detail and accuracy. The data they entered was a sales manager and marketing executive’s dream.

Unfortunately, there was just one teeny tiny problem…the sales people were not entering all of this great data into their employer’s CRM system. Instead they were entering the data into their own system. Some were using Outlook notes, some had Excel files and some even had their own standalone CRM systems like Act!


When I asked the sales people why they didn’t enter all of this great data into the corporate CRM, the answers were consistent. “I am not going to work at this company forever, so when I leave I need to be able to take all of my data with me. I developed this data over years, it’s incredibly valuable to me.”

So it turns out that the user adoption issue had nothing to do with the system’s interface, the number of clicks or anything technical. It was 100% a business process issue! The sales people happily collected and tracked amazing data but refused to enter it into the corporate CRM because they couldn’t easily take it with them when they left the company.

Being curious, I asked the sales people “If your corporate CRM system had a button you could click and it would export all of your detailed notes on your accounts instantly, would you enter your data into the corporate CRM instead of using your separate system?” All of them resoundingly answered “yes”. They recognized that their side systems were not as efficient as their corporate CRM and it was a lot of extra manual effort for them to maintain. In addition, they still had to enter some data into their corporate CRM system to make sure they their managers had some visibility about their activities. Eliminating this duplication step would save the sales people hours each week.

The Data Portability Pitch

MovingWhen I shared my findings with IT and the execs, they were shocked. They couldn’t believe that the sales people would act that way. “They should be entering that data into our CRM system, not theirs!” I tried to explain the data portability needs of the sales people and while management understood the concern, they still didn’t agree with the sales people.

I suggested that we easily create an export feature that would allow the sales people to quickly get their data when they leave, and we could even limit the export to just give the sales people to the data they personally entered. In my mind, creating the “Export my Data” feature would accomplish the best of all worlds:

  • The employer gets to keep the high quality customer data and research developed by the sales team
  • The sales person happily enters data knowing they can take a copy with them later
  • Marketing can take advantage of the customer data to help the sales people drive more sales and awareness
  • The sales teams get to use a state-of-the-art CRM system paid for and provided by their employer

Unfortunately for all parties involved, the IT and management team thought this data export feature was a little too radical and we never created the data export feature. They didn’t think others within the organization would understand why they would knowingly let sales people walk out the door with the data. We reasoned that the customer data is walking out the door with or without the export feature, but with our method at least the employer gets a copy of the data!

You can probably guess how the story ended at this customer, business as usual with the sales people entering great customer data into their own systems but not the corporate CRM. If this story sounds familiar to your organization, we would encourage you to consider adding data portability to your CRM requirements list. We think you’ll find that the easier you let the sales people get access to their data, the better quality data they’ll enter into your corporate CRM!


CRM 2011 UR12+ and CRM 2013 Fetch Aggregate Bug

Posted by on March 26, 2014  |  commentsComments (0)

Recently we were upgrading the look and feel of some custom CRM 2011 web resources to match the styles in CRM 2013 and my colleague found an interesting Fetch XML aggregate bug.  A simple fetch aggregate query, like below, will work just fine in CRM 2011 UR11 and below.  When you run the same query in CRM 2011 UR12+ or CRM 2013, you will get “An unexpected error occurred.”. 

<fetch mapping="logical" aggregate="true" version="1.0">
        <entity name="account">
                <attribute groupby="true" alias="accountid" name="accountid” />
                <attribute name="name" aggregate="countcolumn" alias="accountCount" />

After some troubleshooting, my colleague determined that the accountid attribute was the culprit.  He changed the alias to something other than ‘accountid’, like below, and it ran successfully.

<fetch mapping="logical" aggregate="true" version="1.0">
        <entity name="account">
                <attribute groupby="true" alias="accountKey" name="accountid” />
                <attribute name="name" aggregate="countcolumn" alias="accountCount" />

We logged this bug with Microsoft which will hopefully be resolved in the next UR as it unexpectedly breaks previously supported code.

The curious case of the missing letterhead

Posted by on March 25, 2014  |  commentsComments (0)

Today I am co-blogging with guest blogger Megan Burch, an Analyst at Sonoma Partners


Today I ran in to a peculiar issue that I hadn’t seen before. I was attempting to do a deploy from our development org to our QA org for one of our projects – a pretty routine task here. Normally, I’ll hit a few errors on the first deploy, fix them by updating the target org or including some files I forgot, deploy again and everything is fine. Today, however, I received the error:

No letterhead found

“No big deal”, I thought, “I just missed adding this letterhead to the deploy.” I went adding it to the deploy, along with a few other letterheads I missed like so:


After this, I tried to grab the metadata from the server again and got:


One letterhead is missing! I checked that the letterhead actually did exist in Salesforce still:



Everything looked good there… double checking the package.xml file everything seemed fine there too. At this point, I was left scratching my head. Why wasn’t the letterhead being returned in the metadata files?

I asked Megan to take a look and see if she could spot anything I was missing.


When Nathen informed me of the issue with the letterhead, we thought it would be a quick fix. We assumed that it had been renamed at some point and that was causing the deploy issue. I quickly recreated the letterhead, but was unaware that once you had created an email template, you couldn't change the letterhead.  I had ten HTML email templates using this letterhead, and recreating all of them with the new letterhead was my last resort. I looked in the documents object where I had the .jpg and .gif files stored and saw that some files were saved in My Personal Documents and some were saved in Shared Documents. I really didn't think this would make a difference, but I moved all of them to Shared Documents and asked Nathen to try the deploy again and it worked!


It's interesting to note that the other two letterheads that did deploy correctly had an element that was saved in My Personal Documents, and one that was saved in Shared Documents. It appears that if all of the documents used in the letterhead are saved in My Personal Documents instead of Shared Documents, the letterhead wont be returned from Salesforce when it is asked for.

Moral of the story: If you want letterheads to be deployable save everything to Shared Documents!

Upgrading to Microsoft Dynamics CRM 2013? Here's What You Should Consider

Posted by on March 24, 2014  |  commentsComments (0)

If your organization is running Microsoft Dynamics CRM 2011 (or heaven forbid CRM 4.0!), you’re probably starting to think about an upgrade to the Microsoft Dynamics CRM 2013 release. Of course you will need to upgrade eventually, but it’s a fair question to ask when is the best time to upgrade? Should you jump in right in, or take your time to get things going? Some of the big factors that we think will impact your Microsoft Dynamics CRM 2013 upgrade decision include:

  • Lower case or upper case Upgrade
  • New user interface
  • New mobile and marketing capabilities
  • More changes coming

Lower case or upper case Upgrade?

When you’re planning for your Microsoft Dynamics CRM 2013 upgrade, please keep in mind that not all upgrades are created equal. We make a distinction between “lower case” and “upper case” upgrades. Lower case upgrades mean that you want to update the system to the newest release by going through the upgrade process as quickly as possible. These upgrades can go pretty quickly if your deployment contains supported customizations.

However we also see customers that want to go through upper case upgrades. We refer to an upper case upgrade when customers take a step back to re-evaluate their CRM system capabilities, system successes/failures, business rules, etc. and consider making big changes at this time. Just as important, they factor into new system capabilities into their upgrade workplan. One obvious example in Microsoft Dynamics CRM 2013 would be removing old javascript customizations and replacing them with the new Business Rules framework where possible. Of course this step isn’t required, but doing so during the upgrade might provide better administration capabilities for the coming years.

Obviously, going through an upper case upgrade takes a lot more time and planning because of the additional work involved. However, we think that customers with relatively complex or highly customized deployments should plan for upper case upgrades. Making the changes now will typically pay off with less work and re-work down the road.


New User Interface

If you’ve seen a demo of Microsoft Dynamics CRM 2013, you know that Microsoft made some drastic changes to the user interface. These changes include:

  • Using the “Modern UI” look and feel to more closely match Windows 8 styling
  • Improved usability for touch screen interfaces (bigger buttons for fat fingers!)
  • Added the process bar
  • Ability to integrate Yammer feeds directly into the user interface

You need to factor these user interface changes into your upgrade decision timeline because Microsoft Dynamics CRM 2011 users will need some time to learn and adjust to these changes. If you have a highly successful CRM 2011 deployment with lots of happy users, please make sure you have a good change management plan in place! Change freaks people out, so you will need to make sure that the prior users know how to get stuff done in the new UI.  Planning on additional training and adjustment time makes a lot of sense to us. You might even want to conduct some end user focus groups with the new UI to get feedback because it does behave quite differently.

We also think that the new Microsoft Dynamics CRM 2013 user interface means that more customers should plan on upper case upgrades. You will want to carefully plan and think through how your users will interact with the new screens, you definitely should not run this update without careful planning.

New Mobile and Marketing Capabilities

We know that a lot of Microsoft Dynamics CRM 2011 customers want to upgrade to CRM 2013 to take advantage of the new mobile capabilities. These new features include:

In addition to the new mobile capabilities, Microsoft also showed off a bunch of new features at the recent Microsoft Convergence conference. Some of the highlights include:

The sooner you upgrade your system to Microsoft Dynamics CRM 2013, the sooner your users can take advantage of these new mobile capabilities. We think that strong mobile capabilities are key to making sure your system is highly adopted, so obviously getting mobile into your users’ hands faster makes a lot of sense to us!

More Changes Coming

A few years ago, Microsoft would release updates to the Microsoft Dynamics CRM software once every few years. Therefore waiting a few months to update your system didn’t really cause any problems or issues. However now Microsoft has drastically decreased the amount of time between updates so you will see more updates more frequently. Microsoft Dynamics CRM Online customers will see multiple updates per year, while on-premise customers will see updates about once every year.

From an upgrade timing standpoint, we think this faster release cycle encourages customers to not wait too long before updates. Falling two or three updates behind the current release might create a lot of unnecessary heartburn. We talk with customers now that are running Microsoft Dynamics CRM 4.0 and for them to get to the latest release they need to go through TWO upgrades at once:

  • Upgrade Microsoft Dynamics CRM 4.0 to Microsoft Dynamics CRM 2011
  • Upgrade Microsoft Dynamics CRM 2011 to Microsoft Dynamics CRM 2013

If your organization is considering a Microsoft Dynamics CRM 2013 upgrade, please let us help you decide the best way to approach the project. 



Eight Reasons Why You Should Engage a CRM Consultant for your Selection Process

Posted by on March 21, 2014  |  commentsComments (0)

Today’s guest blogger is Bryson Engelen, a Sales Engineer at Sonoma Partners.

Companies usually evaluate CRM systems every 4-5 years: the average tenure of a CIO. This means your CIO (and his or her team) may have never done a CRM evaluation before, and if they have, only once or twice. This lack of experience is often the root cause of a long, painful, costly, and inefficient CRM evaluation.  We’ve witnessed hundreds of CRM evaluations and have compiled a list of common tragedies. If you’re vetting a CRM system be sure to file these scenarios under the “what not to do list.”

  • Do not: spend exorbitant amounts of time and money gathering your staff in a conference room to gather CRM software requirements
  • Do not: begin your evaluation process without a well-documented and clear understanding of your business process
  • Do not: come to the table without an objective sense of your needs because you will get mired in the tactical rather than the strategic
  • Do not: focus on generic CRM requirements
  • Do not: assign leadership of the CRM evaluation to someone unfamiliar and uninformed about the CRM landscape

ChecklistFor these five reasons, and dozens more not listed, I can tell you from experience that your internal staff should not be alone leading the charge on the selection of a CRM platform for your business. While your staff is critical to the process, they likely need expert guidance while navigating this complicated decision. If you want to get the best possible results in the most efficient manner, we strongly recommend that you hire a 3rd party consultant to help lead the CRM evaluation process.

Hiring a consultant? You may cringe at the thought! The truth is that the money you spend on hiring a CRM consultant to help you evaluate your CRM purchase decision will save you a considerable amount of time and money in the long run. The best, and smartest, choice you can make is to hire a CRM implementation consultant as soon as you know you need to update or change your CRM.  A highly qualified and seasoned consultant brought into the CRM evaluation process at the beginning can save you time, money, and anxiety, plus ensure you end up with a good implementation. 

Here are a few reasons why professional CRM consultants are almost always guaranteed to do a better job than your internal staff.

  • A CRM consultant has years of CRM expertise and they thoroughly know the marketplace. 
    Benefit: You don’t have to spend money training your internal resources who in the end will only know a fraction of what a CRM consultant has learned over many years.

  • A CRM consultant can bring best practices and helpful experiences from other industries to your business.
    Benefit: This will lead to a better CRM system design.

  • A CRM consultant can objectively define and document your business processes.
    Benefit: This will help you gather better requirements and consequently guarantee a better CRM implementation.

  • A CRM consultant will discover how your staff ACTUALLY does their job, not how managers THINK they do it.
    Benefit: This will lead to a more user-friendly (and used) CRM.

  • A CRM consultant can help you prioritize and weigh your requirements based on your actual processes, not generic CRM requirements.
    Benefit: This will prevent you from asking for requirements that don’t apply to your business. 

  • A CRM consultant knows the current CRM landscape and can suggest platforms that are strong today and have a good roadmap for the future. 
    Benefit: You won’t purchase a platform that peaked five years ago. 

  • A CRM consultant can evaluate if it’s better to integrate a CRM with a current tool you love, try to custom build a specific functionality into the CRM platform, or use a pre-built third party integration/solution.
    Benefit: With a CRM consultant you receive a custom solution that satisfies your business needs.

  • A CRM consultant can prioritize the proper amount of time to run a thorough evaluation, instead of asking your internal staff to do their “regular” jobs plus the CRM project!
    Benefit: You can be confident you conducted your CRM evaluation with the utmost due diligence and efficiency.

Involving a CRM consultant from the beginning can be a lifesaver for you and your project. During a good implementation you will go through a process called Discovery, where your business processes will be reviewed, documented, and estimated by a CRM consultant. You will pay a CRM consultant to do this at some point during implementation.  Why not do it before you select a platform and maximize the benefits of Discovery to guide you to the right platform in the first place?  We often find as we get into CRM implementations that the customer needs something completely different than what they thought they needed during the CRM evaluation because their internal resources couldn’t effectively define their requirements and processes. Of course, by that time they have already chosen a platform and we have to do some creative problem solving.  You avoid this headache altogether by hiring a CRM consultant to engage in Discovery before or during your CRM evaluation.

You may think hiring a consultant at the beginning of a CRM search is putting the cart before the horse, but engaging in Discovery early on allows you to find the right horse, build the right cart, and not have the passengers pull the cart along.  While some customers hire the CRM Consultant they used for Discovery for their implementation, never feel obligated to do so.  Consider the Discovery an audition for the implementation. If it turns out the Consultant you used for your CRM evaluation isn’t a good fit for you, you still get help in the process, decent documentation, and you won't have spent a ton of money on a bad fit. 

CRM 2013 – Save & Close is back!

Posted by on March 20, 2014  |  commentsComments (0)

Microsoft is currently rolling out UR 2 for CRM 2013 Online.  This update provides several fixes that are listed in the KB article here.  To check if your Online org is on UR 2 yet, click the ‘gear’ icon in the top right corner and then click ‘About’.  The version should start with 6.0.2 for UR 2.




One of the UR 2 enhancements that isn’t documented (that we know of) is the return of the Save & Close button.  When auto-save is enabled, the Save & Close button will exist only on the Create form for a record.  When auto-save is disabled, the Save & Close button will exist on both the Create and Update forms.




The Save & Close button was definitely missed but we’re glad to see it back!  Be on the lookout for your UR 2 update (and the Save & Close button) over the next few days.

Convergence 2014 Recap – Sonoma Partners Booth

Posted by on March 14, 2014  |  commentsComments (0)

The Sonoma Partners crew had a blast last week at Convergence 2014!  We had a busy week of gathering knowledge from sessions as well as networking at our eventful booth. 

Mobile Buzz

If you couldn’t make it to our booth this year, we debuted a custom mobile trivia game called Mobile Buzz.  We custom built the mobile app ourselves to show off and illustrate one of our core beliefs that task specific mobile apps greatly improve the user experience and outperform “generic” mobile solutions!  Mobile Buzz was built using HTML5 that can support any type of mobile device (Android, Windows, iPhone, etc).  We used SignalR and Azure as well to make sure it was fast, responsive and scalable. 

How it Works

Attendees could go to from their device and join an upcoming game which would then display their name on our Booth Leaderboard.  Once our booth moderator started the game, the first question would show on our booth displays and then users would see multiple choice answers to the question displayed on their device.  The user would select the answer they think is correct and then wait for the time expire to see the results.  The user that answered the most questions correctly and the fastest would win. 



Questions were of general trivia and some were more Convergence focused:

Image preview


Below is the Mobile Buzz UI on a device.  This screenshot was taken from a Dell Venue 8 Pro:



We started a Mobile Buzz game every 30 minutes during all booth hours and each Mobile Buzz winner took home a Nokia Lumia 520!


Our client, Valerie Berthelsen from National Oilwell Varco, was one of the many winners!



Mobile Buzz kept us busy and drew a great crowd each day!  Thanks to everyone that stopped by and be sure to check our booth again next year to see what we’ll be doing next!


Microsoft Announces new Enterprise License

Posted by on March 13, 2014  |  commentsComments (0)

A lot of great news came out of Microsoft’s Convergence last week in Atlanta.  If you weren’t able to attend, you can watch the sessions online using Microsoft’s Virtual Convergence.  Attendees can log onto the Convergence Website and navigate to Attendee Tools to to get access to PowerPoint decks and additional recordings.

The investments Microsoft is making in Social, Service and Marketing is exciting to see with Microsoft Social Listening, Unified Service Desk / Parature / service web enhancements, and Microsoft Dynamics Marketing.  We’ll be writing about these in the upcoming weeks.

However, Microsoft also recently announced their pricing and licensing for Dynamics CRM.  One of the big bits of news from this announcement is that Microsoft is announcing a new Enterprise License that is available for $200 per user per month.

With this new license, customers will receive:

  • Dynamics Marketing (previously Marketing Pilot)
  • Unified Service Desk and additional Case Management Enhancements
  • Limited Time Offer:  US and Canada customers purchasing 10+ Enterprise seats of Dynamics CRM will receive an equal number of Parature seats.

This information is subject to change and Microsoft stated that as general availability of this functionality approached, they’ll have more details on these offers.

Spring is still coming

Posted by on March 12, 2014  |  commentsComments (0)

Recently, Salesforce announced that they would be delaying the Spring ’14 release due to some performance issues with the upgrade. Yesterday, they announced the new Spring ’14 dates for the production data centers – all targeted to happen between March 15th and April 19th.  Here’s the latest list of dates for the North American servers:

  • NA4: March 15
  • NA6 – 9: April 04
  • All other NA instances: April 18

The exact time of when your instance will be upgraded changes based on the instance itself, so be sure to check out official page for when you can expect your instance to be unavailable and plan accordingly.

Unfortunately, some of the Sandboxes have already been upgraded to API 30 (Spring ’14). The delay in upgrading the production orgs, while understandable, is causing some headaches for our clients who are or will be ready to push their latest customizations and code from their sandboxes to production before the upgrade date. Here’s some of the issues we’ve run in to recently that we think are probably associated with these environments being on different releases:

  • Deploying profiles gives the error: “Unknown user permission: ViewHelpLink”.  
    This appears to be a confirmed issue by Salesforce, with the corresponding bug tracked here: Salesforce says this is fixed, so if you’re still seeing this issue it’s worth opening a case with them to see if there is something else going on with your org.
  • Deploying some profiles may give the error: “layout - no Layout named CollaborationGroup-Group Layout found”. This is most likely caused by the Collaboration Group being layoutable (i.e. you can customize the layout) in Spring ’14, but not Winter ’14.
  • Deploying recently created email templates gives the error: “Invalid Api Version: 30.0”

Most or all of these issues can be worked around by modifying the XML that represents the metadata before deploying it to production.

Fortunately, these issues should resolve themselves once the production orgs are upgraded to the latest releases, so we only need to work around them in the short term.

Do you need help deploying, or want to make sure your project will go smoothly? Contact us and we can help.

Convergence 2014 Recap – Unified Service Desk

Posted by on March 12, 2014  |  commentsComments (0)

Last week at Convergence there was a great session called “Unified Service Desk: Enabling a super agent!” that thoroughly covered the new Unified Service Desk product coming in the Spring Update for Dynamics CRM 2013.  The majority of content in this post comes from that session but I highly recommend watching it as well so you can see it in action.


Unified Service Desk (USD) is a desktop application meant for call center reps that will help provide a reliable and consistent experience across multiple channels.  Nowadays custom service requests can come from multiple channels such as phone, chat, email, or even social media so the goal of USD is to enable the rep to be more efficient and productive through all of those channels.  USD will provide a configurable UI that admins can customize to fit their reps needs.  The application can be integrated with 3rd party applications as well in order to provide all the necessary requirements of a rep’s job into one spot.


  • Search
    • Easily configure searches on different entities
    • Each entity search is a separate tab
    • Admin can configure the order of the search tabs
  • Call Scripts
    • Easily configured links to help guide the rep
    • Content can dynamically pull in data from CRM records
    • Each link can perform a certain configurable action:
      • Open a tab of a CRM record
      • Open a tab with custom content
      • Navigate to a sub-set of call script links
      • Set focus to a field
  • Sessions
    • A session is a tab that runs in context of a customer
    • Multiple sessions at once
    • Each session can have multiple application tabs

  • Applications
    • An application is a tab that displays content
    • Global or session specific
    • Can have multiple application tabs per session
  • Toolbar
    • Configurable layout
    • Ability to add custom buttons
      • Buttons can perform configurable actions in context of the customer
  • Integrations
    • Ability to integrate with Line of Business applications
    • Allows for third parties to create integration components
      • LiveOps, Professional Services Aspect and Ingenius have already created CTI integrations

Customer Service Flow

The following is an example scenario from the Convergence session where a customer either calls or chats with a support rep.  Using USD, the rep can easily search the contacts in CRM to find an existing contact record.

Note – There are plans for third party telephony integrations as well so screen-pop could be used to automatically open the record.  


The dark blue tab at the very top is the session tab.  Sessions will be in context of a certain customer and multiple sessions can be opened at the same time.  When opening the customer’s record, USD will automatically open a new session tab as shown below with Maria Campbell.


Actions that occur will happen in context of the current customer session.  For example as shown below, there is a custom application to “Locate the Customer” which will do a Bing Search using the customer’s address.  USD will automatically pull in the address of the customer in the current session and send it to Bing Maps which will be opened in a new application tab.


The rep also has easy access to the call script in the left navigation which will help guide the rep through the support case.  As each call script link is clicked, a green checkmark will display next to the link to indicate that the action has been performed already. 


The rep will click the first link in the list which is “New Service Request” which will then display a whole new set of sub call script links.


The rep will then click the new first link in the list which is “Open Customer Details”.  This opens an application tab to a Line of Business system that displays the customer details to the rep so that the rep is quickly informed about the customer.


The rep then clicks the next call script link, “Create a case”, which will open a new application tab which pulls in the New Case form from CRM 2013.  In this scenario, USD automatically populates the Customer lookup based on the customer session in context.


Then the rep clicks on a call script link, “Search for a solution”, which has two options of using a KB article search or searching Bing.  The rep clicks to search Bing which opens a new application tab that automatically pulls up a Bing search with the above Case details.


The rep then clicks the “Send Email” call script link which opens a new application tab that pulls in the New Email record from CRM 2013.  Here the rep can select from multiple templates at the top of the USD application which will pre-populate the email record based on the email template using the data from the rep and customer CRM records.


There is an easily accessible text field on the left navigation for notes which allows the rep to make notes throughout the customer interaction.  At any time the rep can click a button to auto-populate the case record notes with the notes that the rep has taken.

As you can see, Unified Service Desk looks to be pretty promising.  Microsoft has provided a lot of functionality that will greatly improve productivity amongst customer support teams.  USD can encapsulate a lot of functionality and systems into one easy-to-use application for users.  We feel that Unified Service Desk plus telephony integration will be a huge selling point for Dynamics CRM.

CRM2013, ADFS & OAuth: “Hey! Where’s the refresh token?”

Posted by on March 11, 2014  |  commentsComments (0)

Today’s guest blogger is Matt Dearing, a Development Principal at Sonoma Partners.

Dynamics CRM 2013 added OAuth 2.0 support for authenticating with both the SOAP (Organization.svc/web) and ODATA endpoints. This works both online and on-premises (when using Claims Enabled IFD with ADFS*). Supporting OAuth opens the door to much better interoperability with non .NET clients integrating with CRM Dynamics 2013.

Recently, we were working on a Windows 8.1 app that integrates with CRM Dynamics 2013 and decided to try OAuth. The CRM Dynamics 2013 SDK has a very detailed section on setting up OAuth and registering your client (Walkthrough: Register a CRM app with Active Directory). We were targeting on-premises (IFD) and noticed we were not receiving refresh tokens with the access tokens issued by ADFS. Refresh tokens are used to log a user back in, after their access token has expired, without prompting for credentials. We found out there are few other important settings that determine whether refresh tokens are issued. Running the following PowerShell commands showed the following:

PS C:\Windows\system32> Get-AdfsRelyingPartyTrust <insert Relying Party Trust for IFD here>|fl Name, IssueOAuthRefreshTokensTo, AlwaysRequireAuthentication, TokenLifetime

Name                        : <insert Relying Party Trust for IFD here>

IssueOAuthRefreshTokensTo   : AllDevices

AlwaysRequireAuthentication : False

TokenLifetime               : 960

PS C:\Windows\system32> Get-AdfsProperties|fl SsoLifetime

SsoLifetime               : 960

The settings worth noting are as follows:

This can have one of three values
1.    NoDevice = Never issue refresh tokens
2.    AllDevices = Always issue refresh tokens
3.    WorkplaceJoinedDevices = Only issue refresh tokens on workplace joined devices i.e. Ones that have been registered using the DRS service.

If this is true then the relying party will always require fresh credentials and no refresh token will be returned.

Specifies the duration, in minutes, of the token issued by the Relying Party. This is also used for the OAuth access token's lifetime.

Specifies the duration, in minutes, of the token issued by ADFS after successful log in. Also used for the OAuth refresh token's lifetime.

If TokenLifeTime >= SSOLifetime then no refresh token will be issued as the access token would outlive it. As you can see above, both our TokenLifetime and SsoLifetime were set to 960 minutes which explained ADFS not issuing refresh tokens. After increasing the SSOLifetime, refresh tokens were returned.  We could not find a way to extend a refresh token's life without increasing the SSOLifetime. It did not appear that new refresh tokens were issued by ADFS after successful refresh token logins, so the user would need to explictly log in with credentials once their refresh token is expired.

When deciding the correct duration for both TokenLifetime and SSOLifetime, it is important to note that both settings are used for more than just OAuth. They control the lifetime of your ADFS SSO token (SSOLifetime) and your relying parties token lifetime (TokenLifetime). So if you increased the SSOLifetime to a month and someone was successfully authenticated by ADFS, the token they received would be good for a month to then prove their identity to any configured relying party.

Special thanks to Travis Querec & Mahesh Hariharan (both of Microsoft) for pointing us in the right direction on these settings. Having OAuth support in CRM 2013 is very exciting and makes integrating with CRM 2013 much easier from non .NET clients.


*The newest version of ADFS that comes with Server 2012 R2. Sometimes referred to as ADFS 2.2 or ADFS 3.0

Convergence 2014 Recap – Part 1

Posted by on March 10, 2014  |  commentsComments (0)

The Convergence 2014 Keynote last week kicked off with the Dynamics Roadmap for this year.  There are two big updates set for Dynamics CRM, one being a Spring Update that should be right around the corner and then an Autumn Update later this year.  Wayne Morris, CVP of Microsoft, talked about the previous announcements of Marketing, Custom Service, and Social Listening functionality as well as a new addition for the Spring Update called the Unified Service Desk.  The Unified Service Desk is a desktop application meant for call center users to help with case management which is shown in more detail below.


Kirill Tatarinov later came out and discussed several key points on how Microsoft Dynamics can deliver amazing experiences with the help of the recent acquisitions such as MarketingPilot, NetBreeze, and Parature. 


Market Smarter

Wayne Morris came back out to demo the new Microsoft Dynamics Marketing functionality that will be coming this Spring and how it helps him market smarter. 

The landing page below shows a nice quick view into your marketing budget and how the budget is being utilized.


Similar to CRM 2013, there is a card-based navigation at the top but clicking a card will expand to show child navigation links within that area.  This is very slick and we’re hoping that Microsoft will bring this same navigation into CRM 2013 as currently it is very hard to navigate if you have a lot of entities.

Within Dynamics Marketing, marketers can manage their assets & media which acts as a specialized SharePoint for marketers.  This includes file upload, approvals, and version control.


Next Wayne shows a campaign workflow where you can easily drag and drop campaign activities to execute.


He then adds a new Social Media Messages campaign activity that will send Twitter, Facebook, and/or LinkedIn messages at scheduled times.


Users can then view the performance of the campaigns using several different charts and filters (e.g., by campaign and by channel).  Kirill mentions that the graphs are built using Excel Web Apps.


This all looks very slick and will definitely empower marketers.  Currently these are separate applications but there is a connector that integrates data between Dynamics Marketing and CRM (e.g., Leads, Contacts, Campaigns).  The question remains how much will this integration be expanded in the future versus kept in separate applications.


Sell Effectively


Kirill brought out Judson Althoff, President of Microsoft North America, to show how he uses Microsoft products to sell effectively.  He pulls up his custom built dashboard that uses Live Tiles to pull in sales data real-time from Microsoft Dynamics.  The dashboard is pulling in information from 20 different systems.


Pipeline chart pulling in data from CRM 2013:


Using Windows 8.1 to easily share the Pipeline data and attach it to an email:


Drilling into a record from the Windows 8.1 app automatically snaps in CRM 2013:


Judson shows the app being ran from his Windows Phone as well:


This was a good segment that shows the competitive advantage that Microsoft has over competitors by being able to utilize a suite of Microsoft products to empower your users.  Unfortunately the app seems to be completely custom built by Microsoft for their business but it does a good job of showing what is possible.  If you are interested in a custom app for your business, take a Mobility Test Drive with us where we will have our UX Architect do a field ride along with one of your users and come back with some high and low fidelity mockups as well as a working prototype.


Care Everywhere


Kirill discussed the importance of customer care and the ability for customers to self-serve.  Microsoft fulfills this requirement with the functionality that the newly acquired Parature brings to the table.  Fred Studer, GM of Microsoft Product Marketing, comes to the stage to show off a Parature portal example of uses Parature to categorize their information and provide the ability to search across that content.  Using Parature, is able to keep their branding while Parature widgets run in the background.


Users are able to interact with the site and perform a search to find blogs or KB articles:


Fred then shows how Konami uses Parature to pull the knowledge base information into Facebook so that customers can search within Facebook for similar issues to their problem.  Parature is currently running on 6 of the top 10 Facebook apps.


Fred then becomes a call service rep and shows off the new Unified Service Desk and how it can pull in Call Scripts and multiple CRM 2013 tabs into one screen.


Fred then receives a phone call which automatically pulls up the customer’s record within the Unified Service Desk. 


Using the customer’s CRM record, Fred can then view the location of the customer in order to help solve the case.


Fred uses the call script to easily open up a New Case form within CRM and creates a case for his customer


The Unified Service Desk looks to be pretty slick and could definitely help customer service reps provide a better customer experience.  We hope the telephony integration comes out of the box and would love to see the Unified Service Desk be fully customizable as we know each agent is unique in how they work.


Operate Dynamically


Kirill then brings out a Sonoma Partners customer, New Belgium Brewing Company, onto the stage to show how they use Microsoft Dynamics to help with their operations.  Travis Mirrison (IT Director) and Kaitlyn Peot (Sales Support Swashbuckler) talk about how they use technology to enable their sales team to have real time insight and communications with their “Mothership” (home office) back in Fort Collins, Colorado. 

New Belgium then shows off the Rangerland app (built by Sonoma Partners!) and how their sales team can use it to make sure their beer is being sold appropriately.  With a few simple touches, their sales team can easily flag any issues with their product while they are onsite at a seller.





Overall the keynote felt very organized and had a great response from the audience.  Microsoft was able to fill in more details on how the recent acquisitions will help move Dynamics forward and fill in some gaps that were previously missing.  Microsoft also makes a strong play with their variety of products such as Office and Windows 8.1 and how they can integrate to provide a full blown experience for users.  We are looking forward to getting our hands on the Spring Update as it seems to be pretty promising!

When is it Time to Invest in CRM Software?

Posted by on March 10, 2014  |  commentsComments (1)

When it comes to how businesses manage their customer data, we’ve seen it all! We’ve seen Fortune 500 businesses using shared network drives with hundreds of disorganized folders, startups emailing Microsoft Excel files back and forth, small businesses using Google Docs…and good ‘ole pen and paper grids tucked into manila folders splayed acrosDisorganizeds conference tables.

A common misconception about purchasing CRM (Customer Relationship Management) system is that it’s only for large or complex organizations. In reality, the size of your organization doesn’t determine whether or not you need a CRM. If you want to effectively manage your client’s contact information and valuable customer data, using CRM software isn’t a nice to have, it’s an absolute must.

When do you know it’s time to invest in a Salesforce or Microsoft CRM?

1. Your Current Method Doesn’t Scale

Whether it’s a series of Excel spreadsheets or Word Documents, you will reach a point where your disjointed method of data management doesn’t scale. Does this growth reflect the number of employees you have? Not necessarily.

Scale could mean you have expanded to new geographies and you no longer have the luxury of walking across the hall to ask another member of your team about a specific client. If your sales team is divided geographically, your data management must be able to go beyond physical boundaries.

2. You’re Investing in Marketing

Businesses are embracing marketing automation software at a rapid pace and implementing more sophisticated marketing strategies than ever before. We have seen several businesses purchase CRM software because they realize they have all these contacts with no connection. If you’re adding accounts and looking to create meaningful ties between these stand-alone products, it’s time to pull the trigger on your Salesforce or Microsoft CRM purchase.

3. You’re Struggling to Communicate

Your sales team should be able to communicate with ease and know what’s happening across your business at a moment’s notice. Gathering information on a specific client shouldn’t require hours of combing through spreadsheets, documents, or a paper trail across multiple desks. If this sounds all too familiar you need to recognize that your sales team is wasting time and costing your company money.

With a successful CRM deployment your reps will be able to get snapshot views of a specific customer or deal in the pipeline in seconds. Creating a central repository for your sales focused communications saves time, money, and resources.

4. You’re Losing / Gaining Customers

Whenever you see a significant increase or decrease in the amount of customer’s you have, it’s time to invest in CRM. If you’re losing customers, you need to be able to track every stage of the pipeline in order to pinpoint where the deal derailed. If you’re gaining customers, you need to analyze what activities are causing conversions so you can continue to focus your time on these actions. Major fluctuations in the number of customer’s you have requires closer inspection to uncover major trends that could positively (or negatively) impact your business down the road. 

5. You’re Restructuring

If your company is restructuring you have hit the holy grail of opportunities to implement CRM software. Many customers have a hard time justifying launching a CRM project when they have departments all over the map with different methods for managing customer data. If you are restructuring or rewriting process, seize the opportunity to start fresh. Implement a CRM system from day one to coordinate data across new teams and increase your chances for widespread adoption of the tools. 

If you’re experiencing any (or all) of the above, we’re here to help. Let’s work together to build a CRM application that will positively impact your bottom line. 

CRM Software RFPs - When Good Ideas Go Wrong

Posted by on February 27, 2014  |  commentsComments (1)

Today’s guest blogger is Jacob Cynamon-Murphy, a Sales Engineer at Sonoma Partners.

Customer: “I want to know, beyond a shadow of a doubt, that your software, your service, and your strategy are going to work for my business.”

Vendor: “Yes. Yes. Yes!"

Although this conversation is purely fictionalized, a RFP process often looks a lot like this.

  • Step One: A customer produces a giant Excel spreadsheet with hundreds (or thousands!) of requirements.
  • Step Two: The customer sends the RFP to a bunch of different CRM vendors
  • Step Three: The customer asks these vendors to rate each line item in the spreadsheet with information such as:
    • Included as "out-of-the-box" capability
    • Supplemental or 3rd party extensions, with separate license     
    • Supported through nominal application configuration    
    • Customization of application is required               
    • Function/Capability planned in imminent future release               
    • Function/Capability not currently available          

From an outsider’s perspective, this seems to make enough sense. “Hey, once we have all our requirements scored and rated we can make a great decision!” Unfortunately, I am sorry to report that we frequently see a lot of time, energy and effort wasted by customers on RFP…and the probability of selecting the right CRM platform doesn’t increase just because you issued an RFP.

In an effort to help customers improve RFPs, I’ve put together a list of three key areas where things can (and usually do) go wrong during the RFP process.

Requirements Mismatch

Sometimes this goes well - the procurement department, the selection committee, or the RFP consultant does a phenomenal job understanding the pressing business needs and opportunities and translates them into a concise requirements list that can be responded to with ease. 

More often than not, the RFP has 2x or 3x the number of questions necessary to understand the problem space. The result?  Additional time expended by the vendors attempting to respond AND the procurement/selection committee in reviewing those responses. Another issue is that the Excel list of requirements rarely prioritizes which features are the most important. This feature prioritization could have a huge impact on design decisions (which later impact time and budget).

I have also seen RFPs that were clearly boilerplate, including a number of elements that didn't apply to the project under proposal.  For the RFP to be meaningful and valuable, it must align with the organization's true needs. 

True story - on a technical survey for an RFP I completed in 2013, there was a line item for COBOL support; when pressed on this, the RFP consultant (whom the organization was paying a lot of money to advise them on their CRM selection) admitted that there was no actual need for COBOL support.

Too Many Vendors


We have received RFPs where the customer invited over a DOZEN vendors to respond. Analysts like Gartner and Forrester do the heavy lifting so you don't have to - picking up a research report for the area you are trying to address will give you the top names in the space. Check out the Gartner Magic Quadrants and the Forrester Wave Reports to get started.

You don't need to engage a consultant or spend countless man-hours researching different platforms to find the top CRM players in your space (hint: it’s Salesforce and Microsoft Dynamics CRM).  If you tell a vendor that you have submitted the RFP to more than a handful of competitors, the likelihood that they'll respond drops significantly. 

There's an old rumor that the Ivy League universities compare applicant lists and drop candidates who apply to too many because they assume the applicant isn't interested in the unique value of the individual universities. Sending your RFP to a dozen vendors feels a bit like that.

Restricted Access to the Business

I have responded to many RFPs over the last few years.  Usually, the RFP process drags on and takes much longer than the customer originally anticipated.  Finding a great RFP consultant might aid in keeping the process on track, but even that can only help so much.  RFPs take a lot of time and don't always yield a better result. Therefore two things I recommend for all customers is that they:

  • Organize a CRM selection committee
  • Make sure the selection committee spends enough time meeting with each vendor face-to-face

These meetings will help you determine which vendor has the best functional capabilities and ultimately, who would have the best rapport with the customer’s project team.  These two tactics are much likely to result in a more effective vendor match than dragging your way through an RFP.

Please don’t take these suggestions the wrong way – RFPs still make sense in some scenarios. However, when you are at an organization where time itself is money, you’ll get to the same results faster by taking the best pieces of an RFP process – a selection committee, guided discovery of key requirements, and interviews with the most-recommended vendors – and avoiding the dreck.


Contact Us for a Quote, or Personalized Demonstrationof or Microsoft Dynamics CRM for Your Business.

Contact Us