Originally featured on forcePanda by Narender Singh.
A Closed Pilot for the revamped mobile Briefcase feature was recently conducted, and I wanted to share some information about using the tool to improve the capabilities of the offline Salesforce Field Service Mobile application. Absent the new Briefcase feature, the offline SFS Mobile app includes only those records that qualify for priming. Therefore we would be out of luck if we needed to reference unrelated objects that did not qualify for any of the various priming logics. With Briefcase, we are now able to explicitly call out the need to prime such records, and we will investigate an example of such a use case.
We have a custom object called ‘Record Subscription’ that allows users to subscribe to receive a notification or chatter post when specific events occur against a given record. These records are not included in the priming chain, so are not accessible in the standard offline data set of the SFS Mobile app. Here we have a Flow to allow selection of existing Record Subscriptions, and while offline there are no records available.
Prepare the Briefcase
To allow for this use case, we will create a Briefcase from scratch.
Go to Setup, and enter ‘Briefcase’, and the Briefcase Builder can be accessed.
Briefcase Builder is now opened and we are shown any existing Briefcases and are given the opportunity to ‘Create a Briefcase’, which we will do now.
The Briefcase setup menu offers a smooth step-by-step guide. Enter Name, Developer Name will auto-populate, and then provide a Description of the purpose of the Briefcase. Click ‘Next’ when done.
Click on ‘Select Object’ button, search and find the ‘Record Subscription’ object.
Once selected, we are given Filter Criteria to select which Record Subscriptions we want to be available offline. In our example, this is simple as we have a formula field that evaluates if the current user is the Subscriber to the record. We will therefore need only one filter, but we can do advanced logic using ‘Filter Logic’ option as well. We can have up to 10 filters here.
Notice that an alert message is given next to any field that is not Indexed. This is warning you that it can negatively affect performance, so Indexed fields are preferred as filters.
At the bottom of the setup screen, we can set a Record Limit, and an Order By logic to optimize the set of records returned. Only indexed fields are visible and allowed as Order By fields. In our example, we will limit returns to 100 records, and order by Created Date Descending simply to demonstrate that functionality. An individual Briefcase can have up to 5 objects, which we would add just as we did above by using ‘Select Object’ again and going through the filter and limits steps.
Click ‘Next’ when done.
The Briefcase itself is now ready, but we need to assign it before it will apply to SFS Mobile priming. Currently the assignment is available at the User or Group level. This allows very granular personalization, but does require some thought as to how best to manage assignment. For some orgs, we’re likely to already have an applicable group, but for this example I’ve created a specific group for this Briefcase called ‘Briefcase – Subscription’. Click ‘+’ next to this Group, and click ‘Next’ once done. Note that you can add multiple Users and Groups, but want to limit to only those really requiring the functionality so as not to negatively impact performance.
The final screen allows immediate Activation of the Briefcase. Keep ‘Activate Now’ and click ‘Finish’.
Confirm popup with ‘Activate’
We now see the Briefcase in the list, and are ready to test our SFS Mobile Flow again.
Confirm the Solution
On the SFS Mobile App Data Sync operation, we’ll now see a step for ‘Syncing Briefcase’ briefly before Flows are synced. Once sync is complete, we turn on airplane mode to go offline and confirm that our Record Subscription flow cannot query online data.
Recall that without our Briefcase, the Record Subscription records were not accessible offline at all. Now when we launch the flow we see the Subscriptions (I’ve used Id here for Record Choice Set label – in a full scenario we would have something more meaningful of course) where my User is the Subscriber. I can now edit the Notification Type from the SFS Mobile App even without any relationship to Primed Objects thanks to Briefcase. Success!
Limitations & Recommendations
Salesforce will be publicizing Limits and Considerations as they do with all similar tools, but here is a preview of the most important Limitations.
- Briefcases per Org: 5
- Objects per Briefcase: 5
- Records per Object: 2000. Recommended is <= 500 records per object
- Filters per Object: 10
The general Recommendation is to include as few objects and records in a Briefcase as are needed to perform the job functions required. Do this by limiting records through indexed filters and only assigning Briefcases to Users that require the functionality.
Briefcase is a great new offering that will allow us to better customize the SFS Mobile App for specific use cases that are not easily achievable today. As in our example, we can provide access to records that are not available under standard SFS Mobile priming. Additionally, for high volume objects that can be only partially primed, we can ensure a subset of critical records are always available offline by employing a Briefcase. This is a great new feature for those of us heavily using SFS Mobile!
Also: Thanks to Arnab Mukherjee (Director, BTO Sales & Service) at Varian, and Chris Vu, Kevin Ota, Katie Keller and Charlie Burnett from Salesforce, for facilitating the Briefcase pilot.