In my last post, I highlighted the tremendous power that SCRIBE Online offers as an integration tool and the role that it played in enabling a Mobile Sales Force.  In this post, I’m going to highlight a product named RESCO, which is the mobile framework that allowed us to leverage the data we integrated with SCRIBE and create an experience for a mobile sales force to enter orders from the road with complete pricing and inventory visibility.

RESCO – The Ultimate Mobile CRM Platform

At its core, RESCO is nothing more than a platform that allows for data fromMicrosoft CRM (Dynamics 365) to be extended to a mobile app.  However, once you take a peek under the hood of this product, you’ll quickly learn that it is much more than simply a tool for making your CRM data available on a mobile – and instead, empowers both non-technical (functional) and technical consultants alike to create interactive experiences and facilitate workflows that are optimized for mobile use.

How It Works – Online and Offline Mode

RESCO works in one of two ways – you can either use it in Online Mode, which means that you make a live connection directly to Microsoft CRM or you can use it Offline Mode, which like the name implies, means that you sync your data locally to your phone, so that you can use it whether or not you have an internet connection.

 It’s important to understand that there is no right way to use RESCO – there are both appropriate reasons to use both Offline and Online modes respectively.  I’ll break it down simply:

Online Mode – The obvious benefit of using online mode is that your data is always current – there is zero discrepancy between what is in Microsoft CRM and your phone.  However, while this is great, it also relies on an Internet connection – and all processing has to take place over the Internet.

Offline Mode – While Offline Mode requires you to sync data from CRM to your mobile device to ensure that your data is up to date, RESCO handles this elegantly by performing these syncs incrementally – effectively, what this means is that only data that has changed since the last sync gets pushed to the app; so, while the first sync can be lengthy, all others tend to be very quick.  The benefit of Offline Mode is speed and universal accessibility – since you don’t need to process over the Internet, you can perform actions much faster in Offline Mode, because you aren’t relying on the quality/speed of your Internet connection.  Furthermore, while Internet connectivity may seem to be ubiquitous, there are still many times where service is less than ideal – like the back of a warehouse, for example.

In our scenario, we were looking to deploy a tool that would enable a sales reps to visit their clients and enter sales orders while interacting with them in person, while giving them access to:

  • Real-time pricing data
  • Near real-time inventory data
  • Customer’s purchase history

The sales reps in our scenario were visiting the back offices of retail stores where cell service was poor.  Additionally, because they were looking to ensure that they could keep up with the speed that their client was asking for product, they wanted to ensure that processing speed didn’t slow them down.  Lastly, because prices are only updated weekly and purchase history daily, there wasn’t a pressing need to have a live connection to CRM. Therefore, because of all of the reasons above, we opted to use Offline Mode.  To overcome the inventory issue, the sales team syncs there apps roughly one every hour without an issue.

Configuring The App – What I Love

There are more features that I love about RESCO than I can cover in this post, so I’m going to highlight a my favorites:

1. Flexible Forms

Any of us familiar with form customization in Microsoft CRM (Dynamics 365) know how simple it is to format our data entry forms to look exactly (or close to it) the way we want.  Fortunately, this same level of drag and drop flexibility exist in RESCO as well.


2. Business Rules on Steroids

Continuing with the forms, you’ll see on the top right side of the ribbon, you’ll see a section named Rules, with three options – On Load, On Change and On Save

Anyone familiar with implementing Jscript on your forms will be familiar with this terminology – however, once you dig a little bit, you’ll see that these rules will allow you to do things that you always wished Microsoft CRM would allow you to do using business rules, without writing a line of code!

If you go through some of the actions of the rules engine, you’ll see that you can do the typical things like conditionally make fields mandatory, hidden, set a value, but they take it a step further by allow you to do things like:

-Populate data from a related entity in real time

-Lock or hide an entire form or tab without doing it one field at a time

 -Dynamically concatenate and trim text strings
 -Perform time based calculations and updates
 -Dynamically allow you to manage both local and global variables

Forms Rules Engine

3. Dynamic Views and Lookups

In CRM, you know that you can show a filtered sub-grid based on the value of a parent record.  For example, you can easily show a list of Orders related to a Customer on the Customer record.  But what if you need to extend this to multiple variables – for example, let’s assume the following:

 -Each customer is assigned to multiple sales rep
 -Sales reps are assigned to a customer by Division
 -Division is a custom entity that we’ve created
 -To associate a sales rep to an Account and a Division, we’ve created a custom entity (Account Ownership) that has a lookups to the Division, Account and Sales Rep
 -During the time of order entry, we only want the signed in user to select Divisions that they’re associated with.  After they’ve selected a division, we want to filter the list of available customers to those Account Ownership records related to the signed in user and related to the previously selected division.
Fortunately, RESCO gives us the native functionality to allow us to dynamically pass these filters from the form that we’re currently on – as you see below, the below view allows us to pass the Division field we’ve populated on our Order Entry form, so that we can only show Customers associated with the Division we selectedOrder Entry Form Edit Filter

Beyond filtered lookups, we can also extend this example to sublists – using the same example, we want to show a list of related Orders, not just associated with the Customer, but again, filtered by the selected DivisionDynamic Subgrid Filters in Dynamics 365 with RESCOApply Dynamic Subgrid Filter

4. Barcoding

Perhaps my favorite feature of RESCO is the ability to convert and field into a barcode field and leverage the camera on your mobile device and have it serve as a barcode scanner.  That’s right –  out of the box, RESCO enabled us to add items to our order by scanning it’s barcode.

5. Extensibility

The sheer volume of things that you can do without code in RESCO can offer any organization immediate value.  However, there are times where code is necessary – and RESCO and their API don’t fall short here either. Their platforms offers a very high level of extensibility, enabling for the execution of custom logic and custom interfaces using scripts and HTML. And this is the last point that I want to cover in providing an overview for how RESCO enabled a completely mobile sales force to price and enter hours on the road.

In our project, the pricing structure required was far more complex than the basic price lists and discount lists functionality that Microsoft CRM offered – this client has pricing and discounts based on a wide number of variables including Customer, Item, Brand, Family, Quantity and Dates.  In total, we ended up creating over seven custom entities in CRM to store the data that drove the pricing and discount logic.  While we used SCRIBE to populate and maintain this data, we used RESCO’s API to mine through this data in real time, when an item got added, to price and discount it in real time.

 Furthermore, RESCO’s native functionality when adding an item to an order is to add it behind the scenes with a quantity of one.  However, our project required that the sales rep be presented with a pop-up that would allow them to immediately change the quantity, see the pricing change and show available inventory.
Using RESCO’s API, we were able to script both the logic to derive the pricing and discounting, while also creating the UI that would allow the exact type of entry that the project required.  As you can see in the screenshots below, we’ve created a custom interface that allows them to do all this, as well as having detailed line item purchase history, as well as functionality that will allow them to quickly enter an item without a pop-up!
By leveraging SCRIBE, when these orders are submitted, we integrate them into our ERP system where they become transactions.
 Custom UI to Select Item

Custom Item Entry Screen Microsoft CRM

Detailed Purchase History

Mobile Purchase History with RESCO CRM

Custom Item Popup

Custom Item Pop Up in RESCO

In Conclusion

The point of this post wasn’t to demonstrate the specific solution we built for this project, but to show you the power of the RESCO platform and to get you to think about some of the ways that you can be leveraging mobile technologies and extending your CRM to allow you to be more mobile.
If this is something you’d like to explore further, our team would be more than happy to work with you to get the ball rolling on your mobile initiatives for Dynamics 365. Until then, happy CRMing!

Additional CRM Resources