Available in: Axsy Mobile for Salesforce, Axsy Field Service, Axsy Public Sector, Axsy Retail Execution


Please see below some best practices for optimising the Flows that are used for Axsy Dashboard Widgets.



When Possible, Use a Separate Flow Run On-Platform to Generate Dashboard Data

The data you want to display in an Axsy Dashboard widget may involve processing a large set of records, e.g. to find the average or mean value of a specific Salesforce Field across thousands of similar records. In such scenarios, it is best practice to: 

  1. Configure a separate Flow/Process if a large volumes of records are involved to handle the main query. 
    • The Flow/Process should be run on the Salesforce Platform, not the Axsy Mobile App. 
    • The Flow/Process should be scheduled or triggered to run regularly, so as to ensure up-to-date data is synced and available in the Axsy Mobile App.
  2. Store the resultsof the Flow/Process in Custom Objects/Custom Fields. 
    • Ensure the syncing scope for your Org includes this Custom Object. 
  3. Create a Dashboard Flow that accesses the results of the initial Flow/Process from the Custom Object to display the information in the Axsy Mobile App. 


Following the above best practices will result in the following outcomes: 

  1. The initial sync for the app will be faster as less records will need to be synced. 
  2. The processing of dashboards in the app will be faster because the initial Flow will have already been processed on the Salesforce Platform. 
  3. Simpler Config Tool settings for Record Sets as the data set would be simplified to the results records. 
  4. The Dashboard Flow will be easier to maintain as it is now simplified to only deal with accessing results.



Limit the Individual Number of Steps Included in the Flow

In some cases, it may not be possible to run a separate Flow on-platform to pre-process the data. In such cases, care should be taken to:

  1. Limit the number of individual steps in a Dashboard Flow to 250 steps or less. A "step" is any kind of Flow action such as "Get Record", "Assign", "Decision", etc. Any steps executed inside a Loop counts should be multiplied by the number of iterations that loop is expected to run.
  2. Avoid the use of the "Get Record" function within a loop. Failing to do so can result in a considerable increase in the number of API requests and make Flow execution slower and less predictable.
  3. Apply as many filters as possible when retrieving records for a Loop to reduce complexity and number of times the loop will be executed