Sonoma Partners Microsoft CRM and Salesforce Blog

How to Be Awesome at Sonoma Part 6: Manage Yourself

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.

Banner (1)

From Sonomans who act like pros, deliver quality work, communicate well, just do it, and foster a positive environment, we have some pretty awesome employees. The next element of our “How to Be Awesome” list to highlight is manage yourself.

Managing yourself is a fundamental aspect of what it means to be an awesome Sonoman. It’s about making sure you can handle multiple projects at once and prioritize urgent versus just important items. You understand that the best-case scenario rarely happens and plan accordingly. You anticipate problems before they happen and alert others with ample time to adjust course accordingly. We aren’t believers in micro-management, so don’t make yourself someone who requires it.

Here is how some Sonomans manage themselves:

NathenNathen Drees – Senior Developer

“I don’t know if anyone is better at prioritization and seeing conflicts before they happen than Nathen. He readjusts estimates, coordinates with project leads, and dives right in where he is needed most.”

What advice do you have for others trying to manage themselves?

Nathen: Find a way to be organized. Managing yourself often just involves being organized enough to see the conflicts far down the road, which then empowers you to react accordingly. Being organized also helps you collate the various ideas and conversations you have with people and allows you to start finding themes that you can act on.

Ashley Alexander - QA Ashley (1)

“Ashley Alexander has really demonstrated how to juggle multiple demands at once, and she’s really good at it. She’s had to get creative with QA resources, and she always pitches in to help. Not only has she mastered managing herself, but she’s been incredibly proactive in managing the QA team to keep us on schedule.”

What does “manage yourself” mean to you?

Ashley: Manage yourself means to be able to productively work with others, to ensure that the end goal is met effectively, all while being accountable for yourself.

Eli Kloswick - Developer

“While working with Eli, I know I can count on him to get all of his work done despite the demands of his other projects. I will forget I assigned him something, remember, check-in with him, and he always very nonchalantly responses with, ‘It’s done, in a change set, and ready to be deployed.’ This guy must have a million things to do, but he makes them all his priority, and he always comes through with a top-notch product.”

Why is “manage yourself” an important part of the how to be awesome list at Sonoma?

Eli: Sonoma has a culture of being self-sufficient. It’s expected that you can handle what’s on your plate in a reasonable manner. Not having to constantly check in on team members for fear of sluggish progress is one of the many things that makes Sonoma great.

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

Topics: Careers at Sonoma

3 Dynamics 365 Demos to Make Your Life Easier

Today's videos and blog post were created by Kevin Yamashita, Sales Engineer at Sonoma Partners.

At Sonoma Partners, not only do we enable our customers to be highly successful with their CRM implementation, but we also rely on the very same tool to run our own business. While we appreciate all of the horsepower and flexibility that Microsoft Dynamics provides from the standard web client, sometimes there are use cases where this particular access point into CRM simply doesn’t fit the need. As an organization, we struggle with the same challenges that many of our customers do: timely data entry, data cleanliness, user adoption, the list goes on…

To solve some of these issues we leverage two of our specialties: UX design and custom mobile.

Today, we’d like to share three videos with you that showcase some of the custom solutions that we’ve developed to augment and improve our own internal CRM system. Recognizing that our users don’t spend every moment of their day with our CRM system open, these tools let users perform the key functions of their jobs in a place, at a time, and in a way that make the most sense for them. Because at the end of the day the success of a CRM program isn’t about technology; it’s about people and how a system can make each person’s life a little bit easier.

Project Lighthouse 

See how a custom mobile application from Sonoma Partners can make managing professional services projects easy. Whether you’re using the Project Service module in Dynamics 365 or a wholly custom setup, this streamlined UI available on the go makes interacting with CRM data a cinch.

Check Please 

This mobile application from Sonoma Partners makes it easy to log expenses in CRM while on the go. See how we improved our own internal CRM usage by making a common task simpler to perform any time and any place.

Time Buddy 

As a consulting firm, we log lots of time in our internal CRM system, but navigating to CRM to do this throughout the day was becoming cumbersome for our staff. See how we developed two new interfaces into CRM to make this constant and repetitive task easier for our entire team.

Questions? We're happy to help.

Topics: Microsoft Dynamics 365

Dynamics 365 - Learning Path Authoring Sidebars

In a previous blog (Learning Path Authoring Basics), we introduced Learning Path Authoring and the Content Library.  As stated previously, Sidebars slide out from the right side of the application, and provide more information for users to quickly and easily get access to additional content.

Sidebars can include links, videos and other content to help users become familiar with a specific page or form that’s displayed.

There are two main steps for creating a Sidebar:

  1. Set the sidebar properties and assign security roles (that the sidebar should be displayed for).
  2. Add content to the sidebar.

Set the Sidebar Properties

You first need to go to the page in Dynamics 365 where you want your Sidebar to appear.  This is a small but very important step you must take BEFORE going to the content library to create your Sidebar.

For example, I wanted to create a Sidebar for Contacts.  To do this, I navigated in Dynamics 365 to the Contacts main grid and went to Settings –> Training –> Content Library (or display the Sidebar and click on the Content Library icon from the Sidebar that pops out).

After the Content Library loads, click on image_thumb80 to open the dialog to start entering in your Sidebar details


The following pieces of information should be collected as you start creating your Sidebar:

  • Disable:  If checked, this Sidebar will not appear to users.
  • Make this an error sidebar:   If checked, this Sidebar will only appear to users if there is an error with other Sidebars associated with the page from being loaded (e.g., lack of security permissions for the logged in user).
  • Make this home sidebar:  Home Sidebars are shown when a user clicks the home button, or if the page the user is on does not have a Sidebar associated to it and the user clicks the Help question mark icon.  Each page can only have a single Home Sidebar.
  • Name:  This is the name for the Sidebar.
  • ClientWeb client, Mobile apps, or Interactive Service Hub are options you’ll see based on whether you’re connected to the mobile app interface or Interactive Service Hub when you’re creating the Sidebar.  Remember, it mattered where you came from before you clicked Content Library and image_thumb97 as that’s where the task will appear.
  • Form factor:  This depends on the Client you selected.  Web will allow you to select Desktop or Tablet.  Mobile apps will let you select Tablet.  And Interactive Service Hub will let you select Desktop.
  • Sidebar opens when:  Select whether you want the Sidebar to appear when a Link is Clicked on a page (including buttons), when the Page Loads, or Help Button is Clicked.
  • Lifecycle stage:  This is an internal use only setting and can be ignored.
  • Dynamics 365 security role:  Select the security role(s) that you want the Sidebar to be displayed for.  If a user is assigned more than one security role, the Sidebar will appear only for the role with the highest precedence (as described in our previous blog Learning Path Authoring Basics).
  • Template:  Sidebars can be in a Single Column or Two Column format.
  • Status:  The status which remains at Draft until you publish the Sidebar.
  • Advanced Options:  Note: These only appear after you save the Sidebar:
    • Disable Sidebar Header:  Disables the sidebar header.
    • Disable Sidebar Title:  Disables the sidebar title.
    • Disable Sidebar Footer:  Disables the sidebar footer.
    • Supported Languages:  Languages that this Sidebar supports, as well as used for import and export.
    • Author:  The creator/author of the Sidebar.
    • Tags:  Tags can be added to assist with searching for content in the Content Library as well as categorizing your content.
    • App Version:  The Dynamics 365 application version associated with the content.
    • Control Version:  Sets the version of the content.
    • Authoring Repository:  The Authoring Group (organization) for the content.
    • Publishing Environments:  The publishing group(s) (organizations) for the content.

When you’ve completed defining the how the Sidebar is triggered and details of the Sidebar, click on Save to move onto the content editor.

Add Sidebar Content

After clicking Save on the initial Sidebar properties page, you’re presented with a blank slate to start adding content to your Sidebar.


In the top box, you can enter a title for your Sidebar that will appear for all users.  By default, you can see 4 sections added automatically, but you can add additional sections via the Add Section button, or you can remove sections by clicking the section header, and then clicking the trash can icon that flies out to the left.

You can have at most 12 sections in a Sidebar, and each section can have different content types (videos, text, external links, buttons, links to Guided Tasks, links to Sidebars, or links to pages in CRM) to help your users become familiar with the specific page or form that’s displayed.   Note that the Button content types give you the same 4 options as the List of Links content type, but by using buttons instead of hyperlinks (Guided Task, Sidebar, Page in the app, or External Webpage).



Just like with Guided Tasks, you can click on Preview to preview what your Sidebar will look like before checking it in and publishing it.

Here’s a Sidebar that I created around Contacts and how it looks in the designer.


When you’re done creating your Sidebar, click on the Save icon at the very top left of the Sidebar in the designer.  Then navigate back to the Content Library, and select Manage –> Check in to make your Sidebar visible to all Learning Path Authors, and then click on Publish –> Publish so that the Sidebar changes can be visible to end users.  You can check in and publish multiple pieces of content at once from the Content Library.

After checking in and publishing the Contact Sidebar, it looks like the following when a user navigates to the page you set it up for (remember when I mentioned the page you navigated to the content library is important).  In this case, that’s the Contact main list view. 

Note that the Sidebar comes with a search bar that allows users to search for additional help and training.  This searches across Learning Path Content you’ve created, as well as external content outside of your organization that is publicly available.



With this great feature allowing users to add customized help throughout the application, there are still some limitations / considerations to be aware of.

  • Learning Path is not supported in the native Dynamics 365 mobile app for phones.
  • When designing a Sidebar for the Web Client, the Tablet form factor refers to running the Sidebar in a web browser on the tablet (not the native tablet mobile app).
  • Sidebars can have at most 12 sections.

Final Thoughts

Learning Path has great potential, and the addition of the ability to create your own content makes this feature much more valuable.  I can see the need to create custom content for most of our customer deploys.

For more information on this topic, please see the other posts we’ve made about Learning Path:

Topics: Microsoft Dynamics 365 Microsoft Dynamics CRM Microsoft Dynamics CRM Online

Dynabacus: Now Available in AppSource

We are happy to announce that Dynabacus is now available in AppSource and on our website for on premise Dynamics CRM users! 

Dynabacus supports Dynamics CRM 2015+. As we described in a previous introductory post, Dynabacus is a record counting tool that is packaged as a Managed Solution in your CRM instance. Your team might be looking to see the impact of applying field changes, or preparing for a new integration or data migration. Or maybe you just need a record count that is more than the maximum count of 5,000 shown in grids and advanced find. Dynabacus will allow you to leverage existing views from CRM to allow you to filter and count the records you want for multiple entities or even multiple views on the same entity. Just select the entities and views and click Get Counts.


We have also added the ability to export a set of counts to a csv file. This can be used to compare results before and after changes, as one example. This ability can also come in handy when running tests before making a change in production as you can import these csv files into a Dynamics instance and the set of entities and views that were used on a previous run will be populated and ready to run again.

Topics: Microsoft Dynamics 365

A Lesson for all Manufacturers: Ace Hardware Gets Better Operational Insight with Salesforce

Ace Hardware implemented SAP CRM back in 2011. The deployment was unsuccessful from the start due to the product’s inflexibility and inability to meet specific business needs. For example, SAP didn’t allow for customized workflows for District Managers and the Business Development team to document investor relationships. Ace Hardware invested in a custom Salesforce deployment to provide their employees with a more effective tool to manage store operations and productivity.

Who is Ace Hardware?

Ace Hardware is a national hardware store chain with over 4,000 locations. Their headquarters is in Oak Brook, Illinois.

ACE infographic may 2017

Driving Initiatives

One objective of the CRM project focused on assisting Ace Hardware’s District Managers. For District Managers, one of their primary responsibilities is to implement new initiatives in their stores to drive increased revenue. These initiatives could be, for example, driving the sale of more paint or creating new product displays. With SAP, Ace Hardware was unable to see how these store operations were carried out and what their success – or lack thereof – looked like. Too often managers would agree to move forward and forget to follow-up with corporate management after the concept was “sold.” Ace Hardware needed a solution that would better track and monitor individual store activities to further enable their managers and support continued growth for their company.

Stronger Operations

With Salesforce, Ace Hardware could automate this campaign process. You can call that a huge win. With CRM, District Managers are prompted to follow-up and guide a store through the implementation of the initiative. This automation also provides better insight into the effectiveness of these campaigns. Every year, there are several corporate campaigns that they want implemented in all stores. Salesforce allows Ace Hardware to easily push a single opportunity to every user in the field.

Lead Management Automation

Salesforce completely automates Ace Hardware’s lead management process. From the moment an interested investor reaches out to open a new store, CRM prompts Ace Hardware’s Business Development team to complete the multiple transactions to go through this process. First, an initial inquiry reaches the team. Once Business Development qualifies the lead, Salesforce automatically generates the Contact record for the lead. Workflows initiate background checks, qualifies the funds available to invest in the store, and so on. Salesforce automation speeds up these transactions and encourages further investment opportunities for Ace Hardware.

Data and Even More Data

Custom-built store visit reports in Salesforce allow district managers to track various data points each time they visit a store, such as “are employees all wearing uniforms, “do they have the craftsman display set up correctly,” etc. This is a checklist that is also accessible through Salesforce1 for easy on-the-go reporting.

Dashboards are a Manager’s Best Friend

Salesforce provides custom dashboards and reports for easy tracking and stronger store management. These reports track things like top stores year-to-date, bottom 10 stores, wholesale sales metrics reports, and more. These critical numbers allow corporate management to make key departmental decisions with informed, easy-to-read reports.

Looking to take your company’s operations to the next level with a custom Salesforce deployment? Let us know.

Topics: CRM for Manufacturing Salesforce

Dynamics 365 - Learning Path Authoring Basics

With the release of Dynamics 365, Microsoft has added new authoring capabilities to the previously released Learning Path feature.  Additionally, head over to the CRM Roadmap site, or the CRM What’s New site to see more of the features that have recently gone live.

Learning Path, initially released in the Dynamics CRM 2016 Spring release, was a tool to provide rich contextual based training (walkthroughs, videos, and articles) directly inside of the application.  This was intended to allow new users of CRM (or users of a trial org) to get used to the application quickly.

One thing that was missing from that release, was the ability for organizations to author their own custom content.  That gap has now been filled with the December 2016 release of Dynamics 365, and we’ll discuss the authoring process in more detail below.  Please note, that with the initial release of Dynamics 365, this functionality is in it’s initial release, and you may run across some small hiccups along the way.  I anticipate this functionality to only improve with future releases.

Note, that Learning Path (including Authoring) is currently only available for Dynamics 365 Online.


Enable Learning Path Authoring

First off, you need to enable Learning Path Authoring in your organization.  To do this, navigate to Settings –> Administration –> System Settings.  Under the General tab, there’s a Set custom Help URL section where you can Enable Learning Path and Enable Learning Path Authoring.


You can enable Learning Path or customizable Help, but you’re can’t enable both at the same time.  Therefore, Use custom Help for customizable entities and Append parameters to URL must be set to No.

If you navigate to the Learning Path Content Library (Training –> Learning Path –> Content Library), you may get a message about not being in the O365 Learning Patch Authors security group.  If so, you must open the O365 Admin Center, click on Groups on the left, and select the Learning Path Authors group.  Click Edit in the Members area, and add the user that you’d want to be a Learning Path Author.


In addition to being in the Learning Path Authors O365 group, users will need to have a permission enabled on their Dynamics 365 Security Role.  They’ll need to have the Learning Path Authoring permission at the bottom of the Customizations tab.

You can navigate to the Content Library via the Site Map as instructed above (under the Training area), or you can get to it via any sidebar by clicking the Content Library Button.  You can open the sidebar by clicking the ? in the top right corner to the right of the Settings gear icon.


Content Library

Once learning path is enabled, you can navigate to Training –> Learning Path –> Content Library to see all the Guided Tasks and Sidebars created for your organization.  There are two types of Learning Path Content:  Guided Tasks and Sidebars.

  • Guided Task:  These bubbles walk users through elements of the application in a step by step fashion. They can be kicked off from a sidebar, navigating to a page, or clicking a link on a page.
  • Sidebar:  These are help instructions that fly in from the right side of the application.  These are displayed when the user clicks the Sidebar button or if there’s an error displaying the intended Sidebar.

From the Content Library, you can create a new Guided Task or a new Sidebar (we’ll go into more detailed explanation of creating a Guided Task and a Sidebar in a subsequent blog), but we’ll give a high-level introduction to the content library, and managing content in this post.


Clicking on the content name opens the content to be edited.  You can also take specific actions on content from here via the Manage menu, specifically:

  • Check in:  New content appears with a red lock next the name which indicates it’s checked out and not visible to anyone else.  You must check in content before publishing.
  • Delete:  Deletes the selected content.
  • Export:  Exports the selected content to a ZIP file so that it can be imported in another environment.
  • Import:  Imports previously exported content into this environment.

Content can be localized into the language the users have selected in their Dynamics 365 personal options.  This can be done by clicking the Localize button, and then either Export or Import.


Before you can publish new content, you must first check it in.  After you check in your content, you use publishing environments to publish the content for the end user to use.

Publishing Environments are a collection of Dynamics 365 Organizations that you want to group together for use when publishing Learning Path content.  The organizations that are visible are those that are all visible in your O365 account.

To view and configure your Publishing Environments, navigate to the Content Library, then Configuration, and finally on Publishing Configuration.  From here you can view, edit, create, and delete Publishing Environments.  By default, a single Publishing Environment is created with the Unique Name of your organization.


After setting up your Publishing Environments, when you’re in the Content Library, you can click on Publish to publish content which makes the modifications made to content visible to end users.  When publishing, you can select one or many Publishing Environments to publish to.


A good best practice for publishing would be to create your content in a Sandbox first, and then you can publish to Dev/Test/UAT to test the content, and when it looks good, finally publish it to Production.

Security Roles

Learning Path Content is associated with Security Roles.  If users are associated to multiple security roles, they’ll see the Learning Path Content associated with all security roles.  If different content is created for different roles on the same Dynamics 365 page or screen, users will see the content associated with the role with the higher precedence. 

Navigate to the Content Library, click on Configuration, and you’ll see the roles and their precedence order.  From here you can click on Sync Roles to synchronize the Dynamics 365 Roles with Learning Path.  You can also click on the arrows to move the roles up or down in precedence, as well as click the trash can icon to remove the role from Learning Path (note that this doesn’t delete the role from Dynamics 365, but simply from the Learning Path designer to define how content is displayed to users).


Additional Resources

The following additional resources are available to learn more about Learning Path Authoring.

Final Thoughts

Learning Path has great potential, and the addition of the ability to create your own content makes this feature much more valuable.  I can see the need to create custom content for most of our customer deploys.

For more information on this topic, please see the other posts we’ve made about Learning Path:

Topics: Microsoft Dynamics 365 Microsoft Dynamics CRM Microsoft Dynamics CRM Online

Dynamics 365 Demo Video: Relationship Assistant

Today's blog post and video were created by Bryson Engelen, Sales Engineer at Sonoma Partners.

The Relationship Assistant really makes Dynamics 365 work for you by giving you the right information at the right time.  It presents the user with the most relevant and timely information the system has to offer, like if a Lead or Opportunity is getting stale, if someone emailed about a proposal, or which of your Contacts will attend an upcoming meeting.  And what makes Relationship Assistant even more valuable is it presents information from your email inbox and calendar, like reminders about flights or a heads-up about a customer asking for a product.  Some of the things the Relationship Assistant can help you with include reminders about upcoming activities; suggestions on when to reach out to a contact that’s been inactive for a while; identifying email messages that may be waiting for a reply from you; or alerting you when an important opportunity is nearing its close date. Best of all, the Relationship Assistant can be set up against Custom Activities, so if you have important reminders that don’t fit the out-of-the-box cards, you can add some of your own.

The Relationship Assistant works constantly in the background, analyzing what’s going on for you day-to-day, and presenting you an agenda of the most important tasks, meetings, emails, accounts, opportunities, and more that deserve your attention right now. These insights are displayed as action cards that you can drill into for more information, snooze, or dismiss. The action cards are visible on the mobile app, on dashboards, and even at the top of individual records. There are many different types of cards available, which are linked to in the description of the video below. Enjoy!

Topics: Microsoft Dynamics 365

How To Make Filtering of N:N Lookups Work for You

Today's blog post was written by Rob Montague, Senior Developer at Sonoma Partners.

Sometimes you need to filter a lookup that happens to be an N:N relationship. The issue that we as developers run into is that the control.addCustomFilter JavaScript function does not support N:N relationships. In this scenario, we had Manufacturer and Product entities in a N:N relationship, and we want to prevent the user from picking the wrong product line for a manufacturer. To do this, we created 6 different views on manufacturer entity, each view representing a different product line. The below supported code is an example of how we switched views to filter the Manufacturer lookup based on which Product line is selected.

function onLoad() {



function filterManufacturer() {

            // Lookup Filter for Manufacturer field, filter by product Line with N:N relationship

            // needed to switch default views to make this work since N:N is not supporting filters

            var productLine = Xrm.Page.getAttribute('sonoma_productLine').getValue();

            if (productLine == null || productLine.length <= 0) {



var audioFilterId ='{cb607e22-5403-e711-810e-e0071b6a9211}',

       caraudioFilterId = '{cee7cc88-5403-e711-810e-e0071b6a9211}',

       computerFilterId = '{9b74e0f3-5003-e711-810e-e0071b6a9211}',

       entertainmentFilterId = '{1f5f78d3-5303-e711-810e-e0071b6a9211}',

       videoFilterId = '{5ae0cb69-5403-e711-810e-e0071b6a9211}',

       videoGamesFilterId = '{d6c351ae-5303-e711-810e-e0071b6a9211}',

       defaultFilterId = '{205AC19F-F655-4580-B894-A1D33A6FC800}',

       manufacturerControl = Xrm.Page.getControl('sonoma_manufacturer');

            switch(productLine[0].name.toLowerCase()) {

                case 'audio': //View: Active Audio Manufacturers



                case 'video': //View: Active Video Manufacturers



                case 'car audio': //View: Active Car Audio Manufacturers



                case 'computer': //View: Active Computer Manufacturers



                case 'video games': //View: Active Video Game Manufacturers



                case 'entertainment': //View: Active Entertainment Manufacturers



                default: //View: Active Manufacturers





This simple solution ended up resolving the issue we ran into and since we used all supported code, this works on mobile as well. Let us know what solutions you have come up with for this problem by commenting below!

Topics: Microsoft Dynamics 365