When Microsoft initial announced the introduction of real-time workflows in Microsoft CRM 2013, I became overjoyed – or at least excited – about the new functionality I’d have available to me. As a non-developer, I envisioned a world in which, gone were the days of relying on jscript, stumbling through oData, json and jQuery, just to get a value from a related record – in real time. It appeared that I could now use a workflow to populate the phone number of the contact associated with a case, on the case record – in real time!
However, when I finally got my hands on CRM 2013, I have to admit, I was disappointed. Real Time wasn’t quite Real Time! With forms automatically saving every 30 seconds, it meant that real time actually meant within 30 seconds – the workflow still only triggered On Save, not On Change as I had anticipated.
Again, however, this forced me to think outside the box and really explore some valuable use cases for this new tool. For starters, I recognized that with Quick View Forms – another new feature – I no longer needed to load this related data on the form immediately. Quick View Forms would handle that for me. I also recognized that if I simply forced a save using a very simple jscript function, that I would get the workflow to trigger – and unlike asynchronous (non-real time) – the result would appear immediately on load. Pretty cool! And this is what led me understand the real power of real time workflows in Microsoft CRM in the form of Quick Data Entry, and Data Validation.
Quick Data Entry
Let’s say that you run a Travel Agency – you’ve renamed your Opportunity entity to Trip – and you’d like to keep track of all the Travelers associated with a Trip. In CRM 2013, Microsoft did improve the entry of specific connection records, like Stakeholders by allowing you to lookup a contact inline, and quickly add a role.
However, in this scenario, the Travel Agency is only interested in tracking one type of role – Traveler. And while this isn’t a showstopper – we could simply remove all of the underlying Connection Roles under the Stakeholders category and leave just Traveler – what’s more of an issue, is that they can’t change the columns associated with this Traveler on the Trip record. When they’re booking a trip, they want to quickly see the birthday and passport expiration date of the Traveler – not just a column that says Traveler!
Initially, I constructed a new view under Connections to include the Birthday and Passport Expiration Date of the Traveler – but when I added it to the form, my ability to use the Inline Quick Add functionality was gone. By removing the out of the box view that only showed role, I lost my ability to quickly add travelers. At this point, I did consider creating a custom Traveler entity – and then leveraging the new Quick Create form – but even this felt too cumbersome. And more importantly, they wanted to be able to view all connections with a Trip in one view, like associated Vendors – and by moving Travelers to a separate entity, they’d lose that functionality.
The Lightbulb Moment
Enter Real Time Workflows! I realized that if I created a lookup field to the contact entity and a simple checkbox field that triggered a save, I could quickly create these underlying Traveler connection records directly on the form – using Real Time Workflow.
The Simple Script – Used to trigger the save when the Add Traveler is Checked
As shown below, once I enter the name of the contact I’m looking to add – once the Add Traveler checkbox gets checked, the Real-Time Workflow does two things:
- Creates a Connection Record to Associate the Contact as a Traveler
- Removes the Contacts Name from the Enter Traveler Name field – and then unchecks the Add Traveler field, enabling us to quickly enter additional travelers once the form reloads
The Workflow Definition
Creation of the Traveler Record Step
Clear the Traveler Fields Step
The Result – After Clicking Checkbox
And that’s it – quick entry in CRM. With some creativity, this example can be extended to many different business scenarios that require simple, quick entry of data. Stay tuned for Part 2 of this series, which will focus on Data Validation.