Smart Buttons in the Ribbon Workbench

Happy 2017! This new year promises to be really exciting in the world of Dynamics 365. The spring release is going to be a big one for developers and I'm really looking forwards to it.

In the meantime, I've released a new beta version of the Ribbon Workbench that includes the following features:

  1. Copy and Paste of Commands, Buttons & Enable/Disable Rules
  2. Free text JSON Clipboard – allowing you to see what is on the clipboard and potentially copy/paste between instances and even make text changes before pasting.
  3. Full support for Smart Buttons

You can grab the latest beta of the Ribbon Workbench that support smart buttons from

Before I go into more detail about the JSON Clipboard, I wanted to tell you about Smart Buttons because I'm really excited about the possibilities that they may bring.

So what are Smart Buttons?

Smart Buttons are a concept I've been toying with since back in the Silverlight days of the Ribbon Workbench. They basically are buttons in the toolbox that add a predefined template of Ribbon Customisations that can be parameterised and contain references to prebuilt JavaScript web resources.

When you add a standard button using the Ribbon Workbench you get to set the label, image and then reference a command that can in turn reference some JavaScript that you create separately.

With a smart button, the JavaScript is already built for you and already installed in your Dynamics 365 organisation. Any solution that contains a smart button pre-build JavaScript must also contains a Smart Button manifest file that tells the Ribbon Workbench what's available and defines the templates it exposes.

A typical uses of Smart Buttons are:


  1. Install a Smart Button solution in Development Org (e.g. the Develop1 Smart Button Solution described later)
  2. Install Ribbon Workbench in Development Org
  3. Add Smart Button to Development Org using Ribbon Workbench
  4. Deploy Smart Button solution to Pre-Production/Production – The Ribbon Workbench would not need to be installed
  5. Deploy solution from Development (containing smart button configuration)

Lead Developers

  1. Create a standard way of performing certain actions from Ribbon Buttons based on common library code they have created.
  2. Create a smart button manifest webresource and include that in their solution as well.
  3. Instruct Developers to use Smart buttons in the Ribbon Workbench rather than adding ribbon customisations manually.

Third Party ISV's

  1. Create an ISV solution that allows functionality to be invoked in custom entities (I will be publishing a smart button manifest for my network view solution so you can add visualise buttons to any entity).
  2. Rather than publishing instructions on how to add buttons manually, create a smart button manifest that is picked up by the Ribbon Workbench
  3. When installed on the ISV customer's organisation, the Ribbon Workbench scans the organisation for any smart button manifest files and picks up the ISV's custom buttons that are available for use.

I have built a simple Smart Button solution as a preview of this feature that provides the following:

  • Run Report – Allows you to select a report and create a short cut on any record form.
  • Run Workflow – Allows you to select a workflow and create a short cut to run it on a record form or sub-grid. You can also specify a call-back function to call when it is completed so that you can refresh the form or perform some other action. This is one of the most requested items on the Ribbon Workbench's uservoice site.
  • Run Dialog – This is similar to the Run Workflow button but starts a Dialog instead. Useful for creating your own custom 'Close Opportunity' forms.    
  • Quick JS – Sometimes you want to run some simple JavaScript (such as setting a drop down value and saving the form) when you click a command bar button. Quick JS allows you to simply create a button and directly specify the JavaScript without creating a separate Webresource to hold the code.

You can download this preview Smart Button solution and give it a try from github:

Creating your own Smart Buttons!

In the next post I will describe the copy and paste JSON clipboard and how to use this to create a smart button manifest for your own solutions.


Pingbacks and trackbacks (4)+

Comments are closed