Sonoma Partners Microsoft CRM and Salesforce Blog

D365 V9 - A Tale of Two Interfaces

Today's blog post was written by Mike Dearing, Development Principal at Sonoma Partners.

Since its release in early October, we’ve been busy digging into all that Dynamics 9.0 update has to offer. Aaand it’s a lot. Luckily there have been a lot of great posts in the Dynamics community about what to expect with some of the new functionality. Rather than rehash all of that, this post will be a bit different.

In this post, I'll share my experience with the two new interfaces available: Web Refresh and Unified Client Interface (UCI).

Let’s first start with the Web Refresh UI, since it is the most familiar and what you’ll see the moment you upgrade or create a new sandbox.

Web Refresh UI 

Click the image to expand.

The first thing you’ll probably notice is that IT’S HUGE, especially if you haven’t been lucky enough to procure a device with at least a 1080p resolution by now. You’ll also notice that theming has changed a bit, and, if you open the theme itself, you’ll see that there are new options at your disposal to adjust these stylistic changes.

Click the image to expand.

If you drill into a record’s form, you’ll also see field labels that wrap again (configurable in settings, if you liked the fade away better), dashed lines that fill a section’s width, and generally just less white space overall. The refreshed UI was built to take advantage of the white space to make your form look fuller and for sections to stand out a bit more. At first I wasn’t a huge fan, but it has grown on me when taking a not-so-nostalgic trip back to 8.2.

Aesthetics aside, there isn’t much difference behind the scenes with the Web Refresh UI. When upgrading an existing organization, I’d expect things to work as is, barring any of the usual upgrade kinks or unsupported code. If you have any custom UIs, you’ll want to spend a bit of time on them to update their fonts and such, but otherwise your supported Javascript, plugins, and other customizations should behave as expected. There are several deprecation notices that came along with the 9.0 release that you’ll want to familiarize yourself with, but that is a bit tangential for this post and not particular to either of the two new interfaces.

Unified Client Interface (UCI)

Click the image to expand.

UCI, on the other hand, is quite a bit different than the Web Refresh UI or prior UIs. If you thought the Web Refresh UI was huge, well UCI is EVEN HUGER. The sitemap is now on the left-hand side of the page, with the top simply behaving more as breadcrumbs to backtrack your navigation. You’ll also need to specify UCI icons for any of your custom entities or ribbon buttons to make sure they don’t get set to the dreaded default puzzle piece of UCI (Blake Scarlavai wrote a helpful post to show how to do this here.).

Click the image to expand.

The overall design objective of trying to make forms a bit fuller is seen here as well, but accomplished in a different manner. Forms segment sections by adding some of your theming to the top of each and an off-white background to contrast instead of using the long dashed line. You’ll also notice that we are now back to a tabbed form layout, after being subjected to years of vertical scrolling. Form headers are also quite a bit taller, to show off the latest in SUPER LARGE FONT TECHNOLOGY. All kidding aside though, UCI is beautiful. It also lends itself nicely to native mobile, which requires UCI now.

However, upgrading to UCI isn’t quite as simple as upgrading to the Web Refresh UI. The first thing to note, is that UCI is currently only supported for mobile and tablets, not your desktop browser experiences. This doesn’t mean that you can’t use browsers to access it, just that it is under a ‘user beware’ sort of situation at the moment. Fortunately, I’ve heard from Microsoft that browser support could come as soon as the first update rollup (9.0.1.x), possibly around the end of January, but as with all dates these are subject to change.

Despite not currently being supported yet, I have spent the majority of my time in browser mode (i.e., not via a tablet or mobile app). It is definitely buggy, as one may expect for something so new. There are also several big features, entities, and admin-level areas missing entirely (advanced find, campaigns, marketing lists, audit history, workflows, etc.). The good news is that Microsoft has been rolling out new minor builds each weekend to address these issues, already resolving 10 or so of the ones that we’ve reported, including all of the critical ones we’ve stumbled across.


The remaining list of issues range from high priority to low aesthetic ones for what we’ve identified so far.

Another thing to note is that if your environment is heavily customized, especially in terms of custom javascript (or Silverlight, which is officially deprecated now by the way), be prepared for a bit of a rework. Xrm.Page deprecation notices aside, if you haven’t properly been referencing the correct Xrm.Page context from dialogs or iframes, you’ll start to receive errors. These are generally as simple as replacing an Xrm.Page with a parent.Xrm.Page reference, but still something that popped up on occasion for us.

With the tabbed UI redesign, you’ll need to defer any Javascript accessing web resources on those various tabs until those tabs have loaded. I’ve also run into a few issues with custom ribbon buttons no longer appearing, which forced me to revise my display rules to leverage selection rules more frequently. Also in regard to ribbons, for any native buttons that I had overridden from previous versions, I updated my snapshotted javascript actions to their counterpart in an uncustomized 9.0 ribbon where appropriate – pretty common for any upgrade, but I had missed a few buttons which still worked fine in the web refresh UI but weren’t so forgiving in UCI.

Although UCI is by far the winner when it comes to looks, and seems to be the way of the future for Dynamics, the Web Refresh UI is a nice safe stop gap for now. Your users won’t notice too large of a difference with the web refresh, and you won’t be tasked with as many immediate code overhauls. Unless you’ll be leveraging native mobile capabilities and therefore forced to jump straight to UCI, I’d suggest starting with the Web Refresh UI and slowly dipping your toes into the UCI waters, while Microsoft continues to fix bugs and roll out new entity and feature support.

Topics: Microsoft Dynamics 365

The 10 Benefits of User Acceptance Testing

Today's blog post was written by Brian Kasic, Principal Consultant at Sonoma Partners.

My project team recently had an in-person User Acceptance Testing (“UAT”). 25 team members from across the country gathered in Boston for testing. The teams were hesitant to start the official user testing of a custom-built CRM application for a banking real-estate investment and tax credit process but a decision was made that the benefits outweighed the risk of “not being ready” for this week-long event to test the CRM application that has in the works for over a year. Just like any tough project, the feeling of “not being ready” can flow through one’s psyche. But project leadership was determined to make it happen. The reward at the end of this week was confidence in the work that has been done, and it made the team realize we were ready to proceed with going live with the CRM system. It also showed other intangible benefits. As a motivating factor, Starbucks coffee was offered to anyone, whenever they wanted it. “Gotta get the coffee! And keep the team testing” kept going through my head as the program manager ultimately responsible for the success or failure of this very important week. Conveniently, we had a Starbucks store at the base of our elevator in our building. We even used their mobile app to get everyone’s orders just the way they wanted them. Thank goodness for technology and mobile apps (see Attendee in AppExchange for one by Sonoma Partners!).

But the main point of this blog is to emphasize the value of User Acceptance Testing and to encourage you to go for it!

Many benefits came out of the testing even though two weeks prior we had many team members saying that they weren’t ready.

Here is a list of the ultimate benefits:

UAT_testing_B.Kasic_blogOpportunity to Collaborate

The team from all over the country was able to ask questions about the project, in person with each other. Being a remotely located team this was valuable face-to-face time with each other.

Focus and Prioritize

We have had a long project and sometimes the little fixes get in the way of what is really most important. For us, we need a minimal viable product for the business team to operate on day 1.

Show the Vision

There is going to be support for our product, post go live, so the small nice to have updates will not be left behind once the project is complete. We will fix any defects right away but understand that most users are primarily engaged once they have to use a new system for their day to day activities. After go live, our team will continue to support the product with the most valuable feedback we receive from our business team.

Check the Data

Data is key and it has to be reliable. Even if the system is not perfect on day 1, we have to be able to trust our data. The legacy system will be “read only” and we will be able to compare and contrast historical reporting. This will be a great way to check that the data in the new system is complete and accurate.

Test Access

I’ve seen too many system go lives where security roles, profiles and access was not what was expected. The key here is to make the access plan transparent to the stakeholders and engage them in testing various profiles, groups and scenarios. Be prepared to have a role that can get anyone through a process on day 1. You don’t want to stop business operations because of an access mistake. Then make the necessary adjustments while always being cautious of granting too much access to sensitive information.

Teach and Train

For many testers, this is a great opportunity to teach them new areas and train them on the overall system. User testing should not be mistaken with training but it is the first step in making sure that the users of the system can assist their peers when questions arise.

Prepare for Go-Live

We talked about our plan at go live and the overall support model. How many team members would need to be “on call”. The process for users to get support. A hotline to ask questions. We discussed team schedules and availability. All important details to plan well in advance of the final weeks of the project. Doing this planning early allows the team to focus on the top priorities and not the logistics during a critical time in the project.

Motivate the Team that the Finish Line is Near

Projects can wear people out, so motivation is important to keep the team going. We continue to ask, “what is in this project for the company and for us as individuals?” We held a team dinner to make sure everyone is feeling appreciated for the efforts and hard work they have given.

Fix the Issues

With all the other benefits of user testing, the main one it to fix issues. At the end of each day the team would hold an hour issue triage call where we could highlight all the issues identified during the day’s testing. During this meeting, we determine who would be on point to fix the issue. Sometimes these were know issues and other times they were newly identified defects that needed immediate attention before continuing testing. Quick turnaround time and visibility to the issues is critical to staying efficient in UAT.

Drink the Coffee

Taking breaks to walk and talk helps lighten the load in a full week of conference room testing. Grabbing coffee shows the team you care and keeps the caffeine level up to keep going. These types of testing weeks can be intense so taking a break and motivating everyone with good treats sure helped!

So when your team is not feeling ready to user test, consider the positives and benefits. After the fact you will be glad that you made it happen. For more guidance on user testing of CRM application, please contact Sonoma Partners.

Topics: CRM Best Practices

Multi-Tenant Server to Server Auth and Granting Access

Today's blog post was written by Matt Dearing, Principal Developer at Sonoma Partners.

Server to Server (S2S) authentication has been a very useful addition to Dynamics CRM online, especially in multi-tenant scenarios. S2S authentication allows an external application to authenticate to Dynamics CRM without consuming a user license and without referencing a user's password. The application leverages the Azure app registration's application id and private key (which do not differ across tenants even in multi-tenant scenarios) to authenticate to any Dynamics CRM Online organization that is in a tenant who has granted it access.

When an Azure AD app registration is configured as multi-tenant, an Azure AD admin from the target tenant must grant access to the app.

If the app is a public facing web application (like an MVC application hosted in Azure), it is very easy to configure multi-tenant authentication and have a place for the admin to browse and grant access, but what if the application doesn't have a public web based UI (e.g. on premises app, Azure function, Azure web job, etc.)? The following URL can be used for target admins to grant access to the app:<CLIENTID>&response_mode=form_post&response_type=code+id_token&scope=openid+profile&prompt=admin_consent

In the URL, replace <CLIENTID> with the Azure AD app registration's application id. This will prompt the target admin to grant access to the app in their tenant. Once they grant access, the Dynamics CRM Application User can be setup in their organization. Then the app can start to authenticate to the target org and make API calls against it. For an ISV this URL could be added as a link in their Dynamics CRM solution's configuration page or added as a link in AppSource that they point their users to when installing the solution. The ISV could also setup a single page that redirects to this link for the sole purpose of granting access, allowing more control if the URL ever changes.


S2S Authentication has made it possible to build multi-tenant apps outside of Dynamics CRM that can connect without a unique username and password per organization. It's great to be able to use this authentication scheme even from non-public, web-facing applications.


Questions? Let us know!

Topics: Microsoft Dynamics 365

More Than One Way to Skin a Dupe

Today's blog post was written by Jeff Meister, Principal Consultant at Sonoma Partners.

Recently, a colleague of mine was looking for potential solutions for an issue his customer was facing within Dynamics 365. These types of questions are a favorite part of my job, as they showcase our ability to creatively problem solve, allows us to collaborate and discuss options as a team, and demonstrates the flexibility of the solutions we work with.

Typically, within any CRM platform, there is more than one way to solve a problem.

Picture1And based on your area of expertise, you might come at issues from many different angles. Below is a recap of the issue at hand, as well as the suggested solutions that surfaced from the team.

My Client is uploading Accounts to D365 using native imports. Upon import, 50 records are failing due to being flagged as duplicates. Is there a way to quickly find out which existing records are the duplicates?

Seems like a simple question, right? Unfortunately, there is no way to do this natively in D365, hence the ask for proposed solutions.

Here are the various responses from the different disciplines within Sonoma...

Data Integration Developer Response:

  1. Pull the error file from the D365 import.
  2. Export a list of all Account records.
  3. Create a PowerBI model to do the comparison.

Developer Response:

  1. Pull the error file from the D365 import.
  2. Export a list of Account Records.
  3. Bring both files into Excel.
  4. Execute a Vlookup to determine the overlap between the two files.

The Simpleton Response (my response):

  1. Run a duplicate detection on Account to ensure there are no existing dupes.
  2. Run the D365 import, leaving 'Allow Duplicates' set to Yes.
  3. Run data import (creating the 50 dupes).
  4. Run a Duplicate Detection job to identify your dupes and merge appropriately.

There is a long list of Pros and Cons with each of the above options, and depending on your situation (skillset, timeline, budget, resources, User skill-set, etc.), one will likely be more attractive than the rest. So remember, as you face common challenges within your deployment, think creatively, collaboratively and understand that there is more than one way to solve most problems.

Do you have a CRM problem that needs solving? Let us know.

Topics: Microsoft Dynamics 365

Get Connected: LinkedIn Sales Navigator meets Dynamics 365

Today’s blog post was written by Kayla Silverstein, Marketing Specialist at Sonoma Partners

LinkedIn Sales Navigator is the premiere business tool for targeting buyers, tracking lead changes, and engaging with prospective customers. Many organizations leverage this solution to be smarter sellers and better target their prospecting efforts.

If your sales team is already using this tool, you don’t need me to remind you that LinkedIn Sales Navigator makes a tremendous difference to your organization. If you’d like more information, you can learn more here.

Microsoft continues to improve and build upon the Dynamics 365 platform, and integrating with LinkedIn Sales Navigator is a critical next step towards further empowering organizations to connect and build relationships.

Within Dynamics 365, you can embed and view LinkedIn profiles in-context with Contact records in CRM.

The widget is broken into the following categories, and covers these actions:

  • Icebreakers: shows the Contact’s highlights and activities
  • Get introduced: shows the mutual connections and allows for an introduction to the Contact from within the widget
  • Related leads: shows the potential Leads similar to the Contact record you’re currently viewing
  • Account connections: surfaces the best LinkedIn connections at your prospect’s company
  • Recommended lead: shows the recommended potential Leads of this company
  • Account news: covers any recent news of the company
Click the image to expand.

With the new Dynamics 365 to LinkedIn Sales Navigator connection, you can automatically synchronize Dynamics Accounts and Contacts to LinkedIn as saved Leads and Accounts. Dynamic Leads are synchronized as “suggested Leads.” All Leads are indicated as synchronized between systems with a Dynamics 365 badge.


You can also track activities within Dynamics 365 as well by clicking “Sync to CRM” on your comments, LinkedIn messages, and notes.


Click the image to expand.

If you’re looking to get more out of your existing Dynamics 365 platform by taking advantage of this new integration, let us know! We’d be happy to discuss what might be possible to help your sellers build greater relationships with their prospects.

Topics: Microsoft Dynamics 365

Using Q & A to Create Reports in Power BI

Today's blog post was written by Brendan Landers, VP of Consulting at Sonoma Partners.

Power BI Q&A enables users to ask natural language questions and get answers in the form of visuals or reports automatically created with the data that best answers their question.  Q & A has been available in Power BI for some time now, but it was only available for datasets with visualizations that had been pinned to dashboards in the Power BI Service.  The end user could leverage Q & A within those dashboards, but someone had to design the dataset and visualizations with Q & A in mind for it to be useful.  This video published by the Power BI team showcases how the functionality works through Dashboards.

With the December release of Power BI, you can now use Q & A to create your reports.

In this blog post, I will show you how to do so in the latest version of the Power BI Desktop.

To illustrate, I have a simple excel file with four tabs which I am using as the data set.  The tabs are:

  • Customer – a sample customer list
  • Opportunities – a sample list of opportunities
  • Orders – a sample list of orders
  • Users – a sample list of AEs

We could easily connect this to Dynamics or Salesforce to get those objects for your data set, but I am using excel for the sake of simplicity.  Additionally, I have setup simple relationships between the objects using the autodetect feature. 

Brelanders 1

Once I have my data setup, I can start using Q & A to create reports. 

*Please note Q&A for creation is a Preview feature, and you may need to enable it through options (Click on Start > Options and Settings > Options > Preview Features).

Next, to use the new feature you will first click the Ask a Question button in the ribbon. 

Brelanders 3

Once you do so, you will see a blank visualization appear with the Q & A box available for input.

Brelanders 4

Now we are ready to build a chart.  First, let’s look at the Weighted Revenue by Year for each of our AEs.  The fields I need in my data set for this report are the following:

  • Weighted Revenue (from Opportunity)
  • Expected Close Date (from Opportunity)
  • AE (from User)

In the Q & A input box, I will start typing.  I first start with Weighted Revenue.  As soon as I begin typing you will notice intellisense auto-showing the fields.  In this case, by just typing the letter "W" I can see the field I need.

Brelanders 5

I select Weighted Revenue, and Power BI provides a Card visualization with the sum of weighted revenue in my Opportunity table.  Pretty cool.  Next, I want to see the data by AE.  To do so, I type the word "by," the field I need, and voila!  After that selection, Power BI shows me a bar chart of Weighted Revenue by AE.  Even cooler.

Brelanders 6

While that is interesting, I’d like to take it a step further to make this more meaningful.  To do so, I am going to add Expected Close Date into the mix to see Weighted Revenue by AE by Year.  I’m guessing at this point you get how I might do so, but for those who jumped to the end, I will add the words "By Expected Close Date" to my Q&A.  As I type in Expected Close Date, I notice that Power BI starts to show off a bit and, since it’s a date field, it serves me some options from a date hierarchy. 

Brelanders 7

I am going to select the Expected Close Year option which will show the data by rep by year.

Brelanders 8

And we are done!  In literally seconds any user can create meaningful charts with simply typing what they want.  The coolest.

If you have questions about this post or anything Power BI related, feel free to reach out.

Topics: Analytics Microsoft Dynamics 365

9 Wins for Manufacturers Using Mobile CRM - Part 2: Data To-Go

Today's blog post was written by Kayla Silverstein, Marketing Specialist at Sonoma Partners.

In today’s rapidly paced market, manufacturers must push their products in the right place at the right time. Your field sellers are doing the best they can to meet with prospective clients on-the-go. Are your dated tools slowing them down? If your customer relationship management (CRM) system is only accessible on-premises, your sellers are limited by needing to physically be in the office to enter data. As a result, your sellers are likely to forget key pieces of information from their conversations in the field, and worst case scenario: you aren’t getting access to any of this important data.

What you need is a tool that’s just as mobile as your sellers.

Over the next few weeks, we’ll share nine key wins for manufacturing companies using mobile CRM solutions. Are you a manufacturing company with a field sales team? These nine wins should inspire an investment in a mobile application sooner, rather than later. Previously, we covered how CRM mobility provides sellers with the information that matters. Next: data-to-go.

2. Access Critical Data On-the-Go

The most obvious benefit of a mobile CRM application? Constant access to data. With mobility, your sellers can access everything they need in terms of data while on the go. Think of your customers who have access to multiple search methods to evaluate and select products no matter where they go. If you want your sellers to stay ahead of the competition, you must equip them with the proper tools. With CRM, your sales team can immediately access the information they need to best manage their efforts, keep customers engaged, and close deals before prospects search elsewhere.

Portfolio-To-Go Mobile_CRM_blog_img_padding

You can provide your field sellers with the marketing materials they need at their fingertips. A digital portfolio is faster (and cheaper!) to update with your latest products. Ensure your sellers are pushing the right products to the most accurately targeted clientele by providing them with something that’s easy to navigate, beautiful, and impressionable for your clients. Digital sales kits demonstrate an investment in your sales process when you enable your sellers with such a useful tool. As a result, your clients will be impressed, your sellers happy, and your products purchased at the point of sale, rather than days later when your seller has a chance to go back to the office to forward follow-up materials.

Customer Example: Columbia Distributing

Based in Portland, Oregon, Columbia Distributing is one of the largest malt beverage distributors in the country. They have a 300-person team of field sellers completing onsite surveys to record how stores and bars display their products. They hired Sonoma Partners to improve their existing custom iOS mobile application (previously, it was ridden with bugs and almost incapable of use). When we sat down with Project Manager Alyssa Wood at Columbia Distributing to discuss the project, she shared her thoughts on the improved application:

CTA for Columbia Distributing“We can’t be everywhere at once – with so many field sellers collecting data, we have to have a tool that presents all of our customer information in one place. It’s a competitive business; there’s only so much grocery store shelf space or tap handles in a bar. To keep up, you have to be strategic in how you’re presenting your product to your consumers. We need to constantly evaluate our work and be positioned to collect data in the field, analyze it, and act on those insights. CRM allows us to do this.”

Next Generation Workflow

Mobile CRM is a differentiator from your competition for new talent. Manufacturing is a mature industry. The up-and-coming workforce expect updated technology that allows them to do their work more effectively. The more experienced sales reps, for example, who still manage accounts by writing down information are being slowly replaced by this tech-savvy workforce. This pool of talent, comfortable using smartphones, tablets, and other devices, and digital services, expects to hit the ground running with a tool that capture legacy information and allows them to grow their book of business from there. The fundamental point for companies switching to a CRM system might not be about solving talent issues, but modernizing systems to feel more like the tools employees are used to using outside of work.

Stay tuned for more wins for manufacturers who invest in a CRM mobile application. If you’re interested in learning what might be possible at your organization, contact us.

Topics: CRM for Manufacturing Enterprise Mobility

The ABC’s of CPQ - Part 1: Advanced Approvals through Discount Schedules

Today’s blog post was written by Justin Concepcion (Developer), Diego Gallego (Developer), and Troy Oliveira (Principal Architect) at Sonoma Partners.

Salesforce CPQ (formerly Steelbrick) is one of the most advanced Configure-Price-Quote software available on the market today.

Built natively on the Salesforce platform, Salesforce CPQ can drastically improve the efficiency of your sales organization with fast and easy quoting that leads to more revenue for your business.

In this 5-part blog post series, we breakdown the “ABC’s of CPQ,” listing out the most notable functionalities, features, and best practices of this impressive platform.

To start, we’ll begin with letters “A” through “D”:

A is for Advanced Approvals and Alert Rules

Advanced Approvals

With Advanced Approvals, you can approve quotes according to your personnel and departmental hierarchy. With subsequent features such as Approval Chains, Dynamics Approvers, and Smart Approvals, Advanced Approvals go above and beyond a standard approval process in Salesforce. Set up approval chains of independent approval verticals occurring in parallel within the same approval process. If you’re looking for flexibility in your advanced approvals, this is a critical advantage of Salesforce CPQ’s functionality.

Alert Rules ABCs_of_CPQ_Alert_Rules_300x400

If you’re a rep who must be able to quickly configure product options and needs to do so without hard stops from validations in the underlying Salesforce data model, you’ll find Alert Rules extremely useful. Alert Rules prevent combining incompatible options within a bundle or removing key components of a product configuration. Managing a product set-up without alerts requires manual auditing to ensure each product’s implicit or explicit business requirements are met correctly. Salesforce’s CPQ Alert Rules allow users to assemble quotes with much greater efficiency.

B is for Bundles and Block Pricing


Bundles are the building blocks upon which CPQ truly becomes configurable. Salesforce CPQ allows you to customize product bundles for items that need to be included together, or items that have optional features. The amount of variability in setting up bundles is one of the most powerful pieces of Salesforce CPQ functionality because it can be entirely customized to how your business distributes products. When setting up a bundle, you can control the pricing at overall bundle level or within the different options of the bundle.

Block Pricing

Block Pricing allows you to assign a fixed price to a product based on quantity, overriding the automatic calculation of quantity multiplied by unit price. Block Pricing helps for modeling real world business products that do not have a simplistic single price point. Any business without a flat product pricing model will take advantage of the flexibility offered by Block Pricing.

Combining pricing strategies this way works so that, for example, a customer pays a flat fee for purchasing in quantities of 1-25, a different flat fee if they buy 26-50 of that item, and any quantity above 50 could be charged an over price of $1 per unit. Without this helpful tool, you would need to set up duplicate versions of the same product within the system to try to account for the different ways a single product could be priced with simple block pricing configuration.

C is for Customers, Configuration Attribute, Configuration Selection Rules, Contract Pricing, and Constraints


Salesforce CPQ refers to what is called “Accounts” in Salesforce as “Customers.” Salesforce CPQ uses the existing Account object in Salesforce so that you can leverage your existing Account information when creating quotes for your customers.

Quotes in Salesforce CPQ can be related to your Accounts in Salesforce, helping you identify who you are selling to and how to enter your information accordingly.

Accounts can also be set up to drive some of the automatic pricing and discounts in Salesforce CPQ, using such features as contracted prices and discount schedules. This is especially useful for B2B sellers who want to leverage Account information to create quotes for customers. Automatic pricing and discounts ensures your quotes are always accurate, consistent, and timely for your customers.

Configuration Attributes

Some products may require more configuration or information before they are added to a quote. Configuration Attributes allow you to input that information. You can add any type of Salesforce field as a Configuration Attribute to a product. Sellers who use any sort of configuration products will find Configuration Attributes useful. For example, you can add a picklist that lets you select the color of a t-shirt or a text field that lets you type in a custom message for a banner. Using Configuration Attributes helps ensure that your quotes have the necessary product details before they are passed onto the customer and that no information is missed.

Configuration Selection Rules

Configuration Selection Rules automate product selections on product bundles. Configuration Selection Rules can be used to automatically add, remove, show, and hide products in a bundle. This feature allows you to match real world business rules, such as automatically adding a laptop charger when a laptop is added to a bundle. Configuration Selection Rules also mean fewer clicks for the sales rep as it automates more of the product selections upon creation of the quote.

Contracted Pricing

Using Contracted Pricing means that pricing is always accurate in your quotes. This feature of Salesforce CPQ allows you to set up customer-specific prices for a product or a group of products. You can also set a date range for when these prices should be effective. If you come to any agreements or deals regarding pricing with a select customer, Contracted Pricing makes sure that Salesforce CPQ accurately reflects those prices. You can set up a lower price for a specific product for one customers or you can set up a discount percentage. You can set up any sort of price or discount really, for one product or a group of products, and for a date range or for an open-ended timeframe. Any sellers who negotiate prices with their customers will find this useful.


Option Constraints allow product bundles to be configured with product options that act in dependence of each other, either via inclusion or exclusion. They eliminate the need to cross-reference multiple lists of products to ensure compatibility and prevent invalid or missing product selections. We see them most commonly used to automatically select a dependent product to a bundle or disable product options that cannot be sold together. Sales reps will find this particularly helpful when configuring a product that involves several parts and depending on options selected further “up the chain,” downstream products may or may not be valid for selection. Constraints can be used by anyone, but are highly beneficial in manufacturing and service-based industries where the products within a bundle are largely dependent upon other options that have been selected. Ultimately, Constraints reduce the manual effort of ensuring that products are compatible, removing the need to cross-reference multiple spreadsheets, and eliminating the risk of human error as much as possible.

D is for Document Generation, DocuSign Integration, and Discount Schedules

ABCs_of_CPQ_Docu_Gen_300x400Document Generation

Document Generation is the native ability within Salesforce CPQ to produce a PDF output document of the configured quotes, terms and conditions, etc., to be presented to the end customer. Document Generation allows users to produce high quality documentation that can be tailored to their internal branding with the relevant merge data from the CPQ quote. Customers trying to create quotes without Salesforce CPQ would need to either transcribe the quote details into a document template manually or use another third-party document generation tool.

DocuSign Integration

The DocuSign integration in Salesforce CPQ allows reps to distribute documents for e-signatures. DocuSign is a leading e-signature platform and by integrating with DocuSign, Salesforce CPQ brings best-in-class document signature collecting directly into the quoting process. Automatically sending documents to signers, collecting signatures, all while sending status updates into Salesforce so that the sales teams always know what is happening with the quote. Without the integration, the process of collecting signatures is a manual, tedious step. Enjoy this streamlined process directly from Salesforce CPQ to move your quotes along swiftly and easily.

Discount Schedules

Discount Schedules allow for automatic discounting to be set up in a manner that allows for the discount to be dependent on the quantity being purchased. For products where the more of a product is purchased, the cheaper the product is, this can be especially helpful by eliminating the need for manually discounting pricing within the quote. We see this feature most often used by those in the services and manufacturing industry where the first item produced is more expensive than the 100th, passing discounted pricing along to the customer. While this could be managed via manual discounting, Discount Schedules provide an automated approach that reduces human error.

Stay tuned for the next post in our series to read more about the features Salesforce CPQ can offer for fast and efficient quoting.

Questions or looking to get started? Contact us.

Topics: CRM for Manufacturing Salesforce

Day in the Life: Meet Dibbs

Today's blog post was written by Kayla Silverstein, Marketing Specialist at Sonoma Partners.

William “Dibbs” Dibbern shared with us what it’s like to be a developer at Sonoma Partners, his favorite aspects of Sonoma Life, and what it takes to be successful on our technology team.


How would you describe a typical day in the life of a Sonoma developer?

Dibbs-3Dibbs: Each day is different. Once or twice a week, I’ll have status update meetings on my projects which help to ensure everyone is on the same page, determine what still needs to be worked on, and how we can best move forward. I am rarely in meetings all day – that’s a great aspect of working at Sonoma Partners. They really recognize that most devs do their best work uninterrupted and heads-down. I’m given my space to get “in my flow” and determine how I work best.

What is your favorite part of working at Sonoma Partners?

Dibbs-12Dibbs: I have to say the people. Everyone here is incredibly smart, and I know they have my back. I’ve been here for seven years, and I’m always impressed and inspired by the work ethic of my fellow Sonomans. I also like the variety of the work I do. Every six to eight months or so, I get a new project, a new project team, and a new set of challenges. The work is constantly evolving. And the people are too! We’re a lively bunch, and it makes every day exciting.

Dibbs-13What is your favorite Sonoma perk?

Dibbs: The ability to work when I want, where I want, is huge. Through Sonoma Partners “SWEET” program, I can choose when and where I work best to get something done. It allows me to really get in the zone and work more effectively.

What advice do you have for future Sonoma developers?

Dibbs: Be ready to learn a lot. You have to go in understanding that everyone here is an expert in something, and as much as you might know about such-and-such language or technology, expect to be humbled. I would also encourage new developers at Sonoma to try and be as open in your communication as possible. The sooner you ask a question or communicate an issue, the sooner we’re able to help. I always tell new hires to be more vocal than you feel you should be – we don’t bite! We don’t micromanage here, so raise your hand if you need something. We’re always happy to help.

What do you think it takes to be a successful developer at Sonoma Partners?

Dibbs-9Dibbs: I think showing initiative is an important quality for developers, but you need to be smart about it. When we are asked to fix this bug, or research this item, sometimes it seems easiest to just dive in head first. I find the most successful developers understand the importance of taking a step back, really thinking about what you’re being asked to do, and sometimes questioning whether the designed approach is the right approach. I think it’s great to be someone who understands the difference between just working hard and working smart.

Lastly, be fun! Do more than just getting your work done. Be engaged and involved. We have so many awesome ways to be a part of our culture here – whether that’s volunteering at the Food Depository or attending one of our monthly happy hours. We’re a fun bunch, and I think you enjoy your work more when you take the time to build relationships with your teammates.

Thanks, Dibbs!

Are you interested in joining our tech team? Check out our open positions here.

Topics: Careers at Sonoma

Dynamics 365 Defect: Cannot Create Emails in Unified Interface

Today's blog post was written by Angel Shishkov, Principal Developer at Sonoma Partners.

Version 9 of Dynamics 365 is out and available for new customers. One of the new features released is a completely new interface called the “Unified Interface” with the goal of standardizing the look and feel between different clients – web, phone, tablet, etc. This interface is brand new and obviously will have some issues to work through, however there is a particularly serious problem on Mobile clients.

One of the most obvious (and strange) problems in the Unified Interface is that it does not allow the user to create emails in CRM. The email activity is conspicuously missing from the quick create plus button in the top nav bar, the Activities ribbon, and the new Notes Pane (previous Activities Pane). Just to make sure that we hadn’t somehow hidden or lost the email activity create buttons, I constructed a URL that would normally open a new email form. A blank page opens with this message.


It looks like the email activity has been deliberately made read-only in the Unified Interface. We opened a support case with Microsoft, and they confirmed this is a defect and will be scheduled for a fix in the future. As of now, there is no ETA on the fix.

Script Errors

Another common issue we have seen in the Unified Interface is a lot of script errors, especially when a custom script web resource is attached to the form. The errors usually come from native script libraries, such as uclient/scripts/app.js, however some errors come directly from the XRM methods as well, such as Xrm.WebApi.retrieveRecord. These are reproducible from multiple clients – browser, phone and outlook, so it seems to be a problem specific to the Unified Interface. Microsoft support has noted that the product team is working through those as they find them.

Mobile Clients are forced into Unified Interface in v9

These errors will be fixed in time, so they are not a big concern. The problem is that with v9, the “Dynamics 365 for phones” mobile client forces the use of the Unified Interface. The previous version of the mobile client worked based on CRM “apps”, where an app was created in CRM that defined the sitemap, and entities, forms, dashboards available. It was a way to create a subset of CRM that was available to select users. The mobile client then used the Web interfaces and forms built for those apps to display its content. With v9, the mobile client will only display apps created for the Unified Interface. It is no longer an option to use Web Interface apps on the mobile client and they are not visible there. For one, this means you will need to re-create any CRM apps you are using on mobile currently, as your old apps will disappear from the mobile client. More importantly, this means that any bugs and limitations of the Unified Interface are automatically carried over into the current “Dynamics 365 for phones” mobile client and there is no choice or workaround to turn that off. This was reproduced and confirmed by Microsoft Premier Support working with the product team and confirmed as a feature in v9.

Normally when a feature is removed from Dynamics, there is a depreciation notice and a grace period during which customers can make adjustments before the feature is completely removed, however there was no deprecation notice for the Web interface being removed from mobile. Hopefully the issues with the Unified Interface are fixed quickly, so that there is less of an impact as customers begin upgrading to the latest version.

Topics: Microsoft Dynamics 365