Requirement | Things to avoid | Recommended solution |
Same column in multiple forms | Avoid adding additional fields for the same data. | Use relationships through lookup fields. |
Comparison Operations | Avoid using the "contains" operator, as it involves extensive backend computation which may lead to performance issues. The "equals" built-in function is relatively better. | Use the "equalsIgnoreCase" built-in deluge function. |
Update multiple records | Avoid fetching all the records and iterating through the collection to update each column individually. Each of those updates is treated as a separate statement, which adds unnecessary overhead and can quickly use up the available statement count. | Use the Bulk Update Deluge task to update multiple fields using a single statement. |
Performing actions on a collection of records | Avoid fetching all the records, then iterating through them to perform actions or performing an IF check after fetching all the records. | Specify a criteria to fetch only the required records. Using fields marked as "Mandatory" or "No Duplicate Values" in your criteria results in better performance. Similarly, using system fields such as Added Time or Modified Time can also help with improved performance. |
Avoid looping through the records to extract field values and perform calculations. | Use aggregate functions directly in the fetch task. For example, the sum function can be used to calculate the total value while fetching the records, instead of performing calculations after the fetch. Similarly, use getAll() to retrieve values as part of the fetch operation, rather than looping through the records separately to extract them. | |
Avoid using custom action buttons in reports when processing a large volume of records. Since this runs in live mode, it may impact application performance during regular usage. | Use the Schedules feature to execute such scripts during non-business hours instead. | |
Performing API calls | When a code block contains API scripts, the workflow waits for the API response before moving on to the next statement in the code block. If such API calls are triggered during a user action, it may cause visible delays for the user. | Schedule workflows with API calls during non-business hours. Note: We are also developing an async task which allows the scripts to run without having to wait for a response. Track its release. |
Avoid using APIs for operations where pre-defined Deluge tasks are available. | Use Deluge tasks and invoke a Function after it to handle any post-execution logic, instead of relying on API calls. | |
Calculations in Pages | Avoid performing calculations during instances where high user concurrency is likely in real-time, such as Page scripts which are triggered during events in a Page. | Move such calculations to a workflow, then simply display the computed values in Pages. |
Calculations and concatenations for fields in the same form | Avoid performing calculations and concatenations through scripts when all the required fields are part of the same form. | Use a Formula field instead. Since the calculation is handled within the form during data entry, it is more efficient than submitting the form, then fetching the same record to compute and assign values separately, which adds unnecessary overhead. |
Configuring Schedules to update records | For form-based schedules that are triggered based on fields such as "Added Time", avoid updating all records in the form. When multiple users add records simultaneously, or when importing data, multiple schedules may run in parallel and attempt bulk updates, which can result in a timeout. This issue can occur in any scenario where multiple schedules are likely to trigger simultaneously. | Update only the current record instead of bulk update. |
Using APIs of other services | Avoid implementing complex logic using multiple API calls when specific keys are available to handle the required calculations using a single call or fewer APIs. | For Zoho Books, for example, instead of calling multiple APIs and looping through records to calculate the total number of invoices and their overall value, use the response_option key to perform the calculation directly. This avoids heavyweight scripting and reduces the number of API calls. |
Timeout | Time Limit | Description |
Record Lock timeout | 30 seconds | The maximum time for which a request can wait for a record-lock to be released. If this limit is exceeded, the request fails. |
Transaction timeout for Batch workflows | 1 minutes | The maximum time for which a Batch workflow can run. If this limit is exceeded, the entire transaction is rolled back. |
Transaction timeout for regular workflows | 5 minutes | The maximum time allowed for all other workflow types to run. If this limit is exceeded, the entire transaction is rolled back. |
External API calls read timeout | 40 seconds | The maximum time an API call can take to return a response before timing out. |
Learn how to use the best tools for sales force automation and better customer engagement from Zoho's implementation specialists.
If you'd like a personalized walk-through of our data preparation tool, please request a demo and we'll be happy to show you how to get the best out of Zoho DataPrep.
All-in-one knowledge management and training platform for your employees and customers.
You are currently viewing the help pages of Qntrl’s earlier version. Click here to view our latest version—Qntrl 3.0's help articles.