Sonoma Partners Microsoft CRM and Salesforce Blog

How to Be Awesome at Sonoma Part 7: Be Fun

This post continues our “How to Be Awesome” series, highlighting exemplary Sonomans who live out the different elements of our “How to Be Awesome” list.


From people who act like pros, deliver quality work, communicate well, just do it, foster a positive environment, and manage themselves, we are in no shortage of awesomeness at Sonoma Partners. The next element of our “How to Be Awesome” list to highlight is be fun.

Yes, it’s work…but we can still have some laughs along the way. We have a team of great people, and we look to hire others who are fun to work with. Take the time to attend company events, eat lunch with others, and get to know your coworkers.

Here are some Sonomans who are fun to work with and how they do it:

Doug_croppedDoug Fighter – Principal Consultant

“Doug knows how to interject humor into meetings. He has appropriate timing to focus on productivity when necessary, but it can also help clients and Sonomans crack a smile when necessary.” - A fellow Sonoman

What advice do you have for others to “be fun”?

“Project work is full of highs and lows and the lows can be very stressful and deflating. It’s most important in those times that you find some moments of levity to remind the team that we’re in it together and we should do our best to find the fun.” - Doug Fighter

Pam Powell – Senior AnalystPam_powell_

“Pam Powell will always add a laugh to a meeting that is very dry or no one will speak. I'm grateful that she goes off mute even if it's just to respond that she can hear me. She is funny and lightens situations when appropriate.” - A fellow Sonoman

What does “be fun” mean to you?

“’Being fun’ is laughing with the team, which means not only fellow Sonomans but also clients. We spend such a large portion of our waking hours at work; it’d be a shame not to enjoy them!” - Pam Powell

Kayla_cropped-1Kayla Silverstein – Marketing Specialist

“For being here only just over a year, Kayla has really engrained herself in Sonoma. She makes an effort to know everyone, is at every event, and often around the office. She's extremely personable and is always good for a few laughs.” - A fellow Sonoman

What advice do you have for others to “be fun”?

“I think my advice for others is to be aware of your surroundings. Being fun can mean a lot of things, but above all, it’s about being a good person and a pleasant person to be around. I try and notice if someone is sitting alone at lunch and join them or include someone for drinks after work if it seems they’re having a stressful week. I believe it’s all about doing your part to create a positive work environment.” - Kayla Silverstein

Rachel Sullivan – Principal ConsultantRachel_cropped-1

“This is for sure Rachel. I always see her interacting with a variety of Sonomans, and she always comes to work with a smile and positive attitude.” – A fellow Sonoman

Why is being fun an important part of the How to Be Awesome list at Sonoma?

“At Sonoma, we look to be the best at what we do. To do this, we work in teams and learn a lot from each other. Being fun is part of what makes a team work and improve together.” - Rachel Sullivan

Kristian_croppedKristian Altuve – Business Analyst

“He is absolutely hysterical just being himself. He is so genuine and a pleasure to work with.” - A fellow Sonoman

What does “be fun” mean to you?

“Fun is a state of mind, and it takes humility to get there. I think the first step is giving ourselves the permission to “be fun.” Once we do that, the space for creativity and foolishness opens up.” - Kristian Altuve

Interested in joining our awesome team of Sonomans? Check out our open positions here.

Topics: Careers at Sonoma

Cover the Bases of a Successful CRM Deployment

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

We’ve seen customer relationship management (CRM) help organizations improve sales teams’ productivity, increase revenue, and optimize their business processes. Are you looking to invest in a tool that can transform your sales organization?

Here are a few tips to help you cover the bases of a successful CRM deployment.

Hit 1st, 2nd, 3rd, and make the dash to home to get a better sense of what you should be considering when investing in a new – or updating an existing – CRM system.

1. The Platform

Are you interested in a platform that can benefit all areas of your business? We suggest turning to the key market leaders, Microsoft and Salesforce. As you evaluate platforms don’t get distracted by impressive lists of feature/functions. At the end of the day, Microsoft and Salesforce are powerful tools that can be customized to meet your organization’s unique needs. Instead of conducting the evaluation based on features, spend your time looking at the systems your organization already uses. What integrations do you need to connect different aspects of your business? Which platform is best positioned to make these integrations as seamless as possible?


Pro-tip: We highly discourage you from building your own platform, a.k.a. a Homegrown CRM system. Microsoft and Salesforce are market-leaders for a reason. They come with next-level enhancements, support blogs, customer forums, frequent updates, and so much more. Save yourself the headache of having to make adjustments and conduct maintenance all by your lonesome. Rely on your teammates at Microsoft or Salesforce instead.

2. Executive Buy-In

 The success of your CRM lies in the hands of your leadership. Getting executive buy-in at the beginning of your CRM journey is crucial to garnering meaningful end user adoption. The leaders at your organization need to actively use CRM and support change management and user adoption programs in order to make a serious and lasting impact on your users.

3. Scalability

Customer relationship management is not just a deployment, or a project. It’s a never-ending, ongoing program, and your system needs to grow as you do. As you optimize your business processes, your solution needs to adjust and evolve. It’s critical to view the initial deployment as just one piece of the bigger picture you need to get the 360-degree view of your clients that you want.

4. The Partner

Slide into home with an implementation partner that can help you achieve your CRM goals. When selecting an implementation partner, it’s important to make sure they understand your business. Which industries do they specialize in? Do you resonate with their case studies? If you’re interesting in getting a general feel for the organization, try to attend an in-person event or demo.

Different partners have different methods for implementation. What model does this particular organization follow? Do they have a strategy for change management and user adoption? Set yourself up for success by doing your research prior to investing in a partner who can truly make – or break – your implementation.

A poorly implemented system can go stale quickly when users are not committed, or motivated, to logging information within the system. With a failed partnership, you’ll find yourself entering the selection process all over again, and no reason to “fly the W” just yet.

Are you interested in getting started on a homerun of a deployment? We’d love to help! Fill out this brief form to contact us.

Topics: CRM Best Practices

Take Your Salesforce Service the Extra Mile with Entitlements and Milestones

Today's blog post was written by Sarah Parise, Business Analyst at Sonoma Partners.

Leveraging Salesforce cases and work orders is great, but are you looking for more insight into your how service agents are actually doing? Salesforce’s Native Milestone and Entitlement Processes can provide a clearer picture of how effective your service agents handle their work. With these insights, you can finetune your support processes, find bottlenecks that affect your customers, prioritize incoming requests, and provide better, quicker service for your customers. Win, win, win. So how does it work?

Milestone and Entitlements are a native feature of the Salesforce Service Cloud.

They allow you to create service processes for your customers in the form of Entitlements made up of multiple Milestones. Entitlements denote what service process a customer is entitled to based on attributes such as what Tier of Account they are, what type of products they’ve purchased, or if they have any additional support contracts. Milestones represent steps in each Entitlement process, such as responding to a client email, ordering a new part, or having a field agent complete an appointment with a customer. On each milestone you can denote an amount of time each step should take.

Each case or work order is then associated with an entitlement, and you can then track progress toward each of the entitlements milestones, and whether or not your agents are in violation or approaching violation on a step in your service process.

A violation has occurred on an Initial Customer Response milestone.

Sarah 1
Click the image to expand.

You, in turn, can report on milestone and violation metrics through native Salesforce reporting functionality, like in the example below.

Example of Milestone and Entitlement Reporting

Sarah 2
Click the image to expand.

Violation notifications work hand-in-hand with the Milestones Console widget. Agents can leverage the this widget to see, in real-time, whether they are currently in violation of a required step for their cases or work orders. The Violation status on the widget shows if your users are reaching an upcoming milestone, have passed and violated a milestone, or are in good standing. Additionally, you can automate email alerts, tasks, field updates and outbound messages when milestones change in status to help agents prioritize and stay on top of their work loads.  

The Milestone Tracker on a Case Record

Sarah 3
Click the image to expand.

Typically, Salesforce milestones tracking is related to certain Service Level Agreements associated with your Accounts, Contacts, and their associated orders. This is to allow you the flexibility to specify what type of support your customers receive and enforce different milestones, such as email response time account status or the Service Agreements that they have purchased.

However, how do you handle it if you don’t have different Service Level Agreements for different Accounts or Products? Recently, a customer came to us with this very question. Out of the box Salesforce Milestone tracking requires you to manually add different Entitlements or Service Level Agreements to your Account and Orders, but we needed a solution that was more automated, and provided the ability to track milestones against items in the system that weren’t cases or work orders.

To handle the need for one entitlement process for all customers, regardless of product or account type, we created a custom code that auto created the create Entitlements for each Account and Contact in system. This trigger also automatically associated that entitlement to all incoming cases, removing manual steps for both their sales and service teams!

For more information about how to set up entitlement and milestone tracking for objects not natively supported by Entitlements and Milestones look out for the second part of this blog post coming soon!

Topics: Salesforce

How CPQ Impacts a Sales Rep, By a Sales Rep

Today's blog post was written by Niki Somerfield, Senior Account Executive at Sonoma Partners.

When I began my sales career, I started in an inside sales role in a call center environment. I sold hardware and software to companies, generating anywhere from five to fifteen quotes a day. This type of transactional quoting can be fast-paced and exciting…for me, this was not the case.

At the time (though I’m sure they’ve upgraded systems since then), we would use approximately five different applications to get a quote together.

I used one application to store and gather all my customer information; a website to look up product data; another website for pricing and comparisons; another application for shipping and distribution; and a final order fulfillment application. I would assemble information from each application and manually input it into Excel… which I would then convert to PDF and send through e-mail. Whew. If your head isn’t spinning, I applaud your ability to understand what took me months to get a hang of.

Each quote took me 15-20 minutes to put together. In a highly transactional sales position, that’s an impossible amount of time. Every moment of the day that I wasn’t making calls or sending e-mails, I was missing opportunities. But I couldn’t wait until the end of the day to get the quotes together because the customer would likely purchase from a competitor in the meantime.

Fast forward to a point where I was ready to move on in my career and started looking around. I learned about a company that sold CPQ (Configure, Price, Quote). I fell in love and couldn’t believe this solution existed! As a sales rep, these are the things that made the most difference for me:

1. Better System

This product was built for me – the sales rep – in mind. The application streamlines business processes across the sales organization. Its modern, slick, and created for the 21st century sales process. And its cloud-based! So that means push upgrades with new features to take advantage of all the time.

CPQ_blog_infographic 750x392

2. Better Productivity

When I use CPQ… I have ONE… I repeat ONE… screen open at a time to get a quote together. It plugs into my CRM which means I’m also not manually entering anything.
Ever had to deal with data entry? Manual entry equals multiple errors. It’s hard to even put into words how much more I could fit into a work day when I wasn’t spending hours completing quotes or correcting errors.

3. Better Relationships

In my previous role, a customer would often send an email to multiple vendors asking for competing quotes. I’d typically save the quote for the end of the day so I could use the time customers are in the office to call on them (remember – 15-20 minutes to get a quote together!). But sometimes a customer didn’t want to wait and would execute the first quote that came across their desk. With CPQ, I can get quotes out to a customer in five minutes or less. I could even generate one while on the phone with them! That makes a huge difference to the seller!

4. Better Management

I would say I’m a fairly typical sales rep. And as a typical sales rep, I’m not interested in any activity that isn’t revenue-generating. In my previous position, I’d have to enter data into an application my manager used so he could report off of it. Then, I’d re-enter some of the same information in a separate application to generate my customer facing quote. If I’m honest, I’m only going to do one of those things. And that one is going to be the revenue-generating option.

Using CPQ, you enter the information in ONE place. My manager gets the data he’s requested, and I get the quote to close the deal. CPQ in tandem with CRM helps decrease the amount of administrative work required to forecast accurately.

Are you interested in talking with us more about CRM and CPQ? You can contact us here, and we’d be happy to help.

Topics: CRM for Manufacturing

Winter '18: Top 5 New Reasons to Switch to the Lightning Experience

Today's blog post was written by Caitlin Pfeiffer, Prinicpal Consultant at Sonoma Partners.

The Winter '18 Release Notes have been published and preview sandboxes have been upgraded, signaling that the next Salesforce release is around the corner. With most Winter releases, there is a lot of new functionality included in this release, but what I’d like to focus this blog post on is the latest changes you can expect with the Lightning Experience.

Caitlin 1
If you are still using Salesforce Classic, the Winter '18 release gives you a bunch of reasons to get ready to switch.

Here are just my top 5...

5. Embed Dashboards on the Home Tab and in Lightning Apps

Caitlin 1_v2
Click the image to expand.

What is it? You will now have a native out of the box “Dashboard” lightning component that can be added to a Lightning Home Page or App.

Why it’s cool? Before this feature, you could only add single reports to the Home Page and display the chart included in that report. This meant that you were unable to use some of the chart components that are only available on a Dashboard (like metrics and gauges). Plus, if you already included your key metrics in a dashboard, you would need to update both the Home Page and the Dashboard if you wanted to change or add a metric. Now, you simply can update the Dashboard, and it will automatically update the Home Page as well.

Classic vs. Lightning Comparison

  • Classic
    • Con: Homepage dashboard component only displays top 3 charts from a dashboard
  • Lightning Experience
    • Pro: Embed a full dashboard or a link to a dashboard directly on the homepage

4. Expand Your Reps' Email Reach with List Email

Caitlin 2 v2
Click the image to expand.

What is it? Mass emailing has come to the Lighting Experience.

Why it’s cool? Mass Emailing in Classic always felt “hidden” away on the Contact / Lead landing page. The new List Email functionality is integrated into your Contact, Lead and Person Account list views and seems to be more user friendly and flexible than Classic Mass Emailing.

Classic vs. Lightning Comparison

  • Classic
    • Con: Preview email template with placeholders for merge fields
    • Con: Users can only select from one of the predefined email templates
    • Pro: Allows mass emails to be scheduled
  • Lightning Experience
    • Pro: Preview your email with merge fields populated for the contacts you are emailing
    • Pro: Allows users to send a customized email and add their own merge fields without needing to create a saved email template
    • Con: List emails can only be sent immediately

3. Prompt User to Add Products to Opportunities

Caitlin 5_v2
Click the image to expand.

What is it? When this feature is enabled, users are prompted to add Products to an Opportunity as soon as they create a new Opportunity.

Why is it cool? This is a common requirement that I’ve heard from several of my clients. Previously, this was something we’d have to do using custom code, but it’s now as simple as checking a checkbox in the setup menu.

Classic vs. Lightning Comparison

  • Classic
    • Con: Not available without custom development
  • Lightning Experience
    • Pro: Turn on with a check of the checkbox and get reps to enter their product information more consistently and easier.

2. Edit More Records at once with Mass Inline Editing

Caitlin 6
Click the image to expand.

What is it? Finally! You can mass inline edit in list views.

Why is it cool? I know this seems like a small thing, but this is a productivity feature available in Classic that a lot of users love because of how much time it saved them.

Classic vs. Lightning Comparison

  • Classic
    • Pro: Can mass inline edit up to 200 records from list views
  • Lightning Experience
    • Pro: Ditto

1. Add Tables with Up to 10 Columns to Dashboards

Caitlin 7
Click the image to expand.

What is it? You can now add Tables to Lightning Dashboards. This feature is currently available in Beta, but it’s something that your system admin can enable without creating a support ticket with Salesforce.

Why is it cool? While you could add tables to Dashboards in Lightning before, this adds some cool features that go above and beyond what’s available in Classic.

Classic vs. Lightning Comparison

  • Classic
    • Con: Can only have 4 columns
    • Con: Limited to which fields can be included in the table based on the fields that are included on the chart of the underlying report
    • Pro: GA with full set of features available
  • Lightning Experience
    • Pro: Can have up to 10 columns
    • Pro: You can include ANY of the fields available in a source report's report tyle. No more fighting with the source report so that you can pull in the fields you want to display on a Dashboard.
    • Con: Currently only in Beta and doesn’t support: Chatter photos, conditional highlighting, and dashboard filters aren’t applied to Lightning tables.

If you’d like to learn more, here are a few references I’d recommend:

Think that you might be ready to make the switch from Classic to Lightning?  Sonoma Partners has already helped several of our clients with this transition. We can help you navigate how to take full advantage of the Lightning Experience (contact us).

Topics: Salesforce

Sonoma Partners Becomes a Microsoft CSP

Today's blog post was written by Corey O'Brien, VP of Development at Sonoma Partners.

We're excited to announce that Sonoma Partners has entered the ranks of the Microsoft Cloud Solution Providers. This means that not only will we continue to provide the best-in-class Dynamics services you have come to expect, but that we also now sell and support subscriptions to Microsoft services.

What does this mean?

We were already supporting these solutions, but adding this offering means we are now officially a one-stop-shop for our clients. Our support solutions and accelerators – more coming soon! – will not only add value to the platform but can now be included as part of our CSP offering. As said by Microsoft, “The Cloud Solution Provider program puts our partners in the middle of the relationship with the customer, delivering on solution success, and managing the business relationship.” You can learn more about the benefits of being and working with a CSP partner with Microsoft here.

Cloud solution provider-03

Our team has been working with Dynamics for years and is recognized as a leader in the Microsoft Dynamics world. We already have support tools to monitor our clients’ Dynamics instances proactively, providing insight into potential issues before they arise. Our team continues to look for ways to bundle in additional IP with subscriptions to provide more value to our customers.

Why should you care?

Starting immediately, our clients can buy subscriptions to Microsoft Dynamics, Office 365, and Azure from us directly. Purchasing through a CSP partner, as opposed to going directly to Microsoft, can provide you with a broader range of purchasing methods, more flexible and customized solutions, and a more direct line of support. Whether you have already taken advantage of our services or would like to start with licenses first, we can help.

If you would like more information on this topic, please contact us.

New Call-to-action

Topics: Microsoft Dynamics 365

Webpack and Dynamics 365

Today's blog post was written by William "Dibbs" Dibbern, Principal Developer at Sonoma Partners.

These days if you're building any complex custom UI, you're going to come across webpack, and for good reason. What is webpack? It's a build tool that you can read more about here.

Webpack is great, but when using it with D365 you will likely encounter a few bumps down the road. You'll likely notice that you are unable to load SVG or Font assets into D365, stumble across the restrictions on which characters can appear in web resource filenames, and flip a table over trying to get sourcemaps into D365 as well.

How do we get around these hurdles? The most obvious answer might be to use the url-loader module to embed your assets as Data URIs. That approach may work out fine in some cases, but there's a whole host of very valid reasons not to use the Data URI approach. Since we've got some significant downsides, let's take a look at other approaches to solving each of our problems.

Note: the below examples are targeting v3.4.1 of webpack

Unsupported File Types - Fonts

The way around most unsupported file types we care about is to append .css. We primarily use this for font files however. All you need to do to fix this in webpack-land is to adjust your output name pattern such that .css is appended, and you're all set. Therefore a font called something like awesomebold.ttf would become awesomebold.ttf.css.

Unsupported File Types - SVG

While we have support for SVG web resources supposedly coming in the next release, how do we handle this until then? You could certainly go with the same append .css to the filename trick we used for fonts, but in our experience we like another approach. We find our SVG assets do not change all that often, and are generally pretty small, so one would think we might lean back towards the url-loader approach mentioned above. And we do. Kinda. url-loader always does Base64 encoding of your assets, but SVG under the hood is just XML. As it is therefore human readable we prefer to pull the XML in pretty much as-is with svg-url-loader.

Filename Special Character Restrictions

If you've dealt with web resources for more than a hot second, you've likely stumbled across the fact that D365 will not allow you to name a web resource with a hyphen in it. According to the docs they technically only support:

[The] name can only include letters, numbers, periods, and nonconsecutive forward slash ("/") characters.

This means no hyphens. These are pretty darn common in asset filenames though, so thankfully we have a way around it! What we typically do here is simply ask webpack to strip out the hyphens using the customInterpolateName option. While the customInterpolateName option is not well documented, it is certainly available for us to hook into and thus solves our problem.


While it is arguable whether or not you want to store a sourcemap in D365, for homegrown applications these can be very handy for debugging, especially if you're not using something awesome like Imposter for Fiddler. Thankfully getting these into D365 is fairly easy. What we can do is use something similar to our first trick. In this case we prepend the word map as transforming the filename in any other way doesn't seem to work in all cases. Again, here we only need a quick change to our webpack config and we're off to the races.


So you see, with a few simple tweaks to our webpack config, we can now use just about any resources we want. Make a few config updates, kick off a new webpack build, and you've got your assets all set and ready to be uploaded to D365.

Have you come across any other issues with web resource development in D365 that you've yet to solve? We'd love to hear about them in the comments!

Topics: Microsoft Dynamics 365