You must have administrator rights to access this feature.
This feature may not be available in every package. Not sure if you have this feature or you want to learn more about it? Send us a message at firstname.lastname@example.org.
These tips discuss ways to successfully create your own automations in Automation Manager.
Get Started With Automations
- Select Trigger: When choosing a trigger, focus on the action being automated to select the appropriate trigger.
- Block Usage: See Automation Manager Blocks documentation to understand the appropriate use of blocks and tips when using each block.
- Descriptive Automation Names: Update the default name of the automation to describe its purpose and reflect relationships between automations.
- Use Block Titles: Always update the titles of blocks to identify what is occurring within the block.
- An Automation for Notifications: Create an automation to send an email notification if any automations fail. A guided trigger is available.
- Use Filters: Exclude unnecessary records for best performance and to avoid errors. For example, when using a Loop block (especially in an event-based trigger), use the filter to limit the number of records being iterated over for best performance.
- Test All Automations: Test the automaton before letting it run freely in the system, preferably in a test environment. Create a dummy record if needed and then delete the created records. If necessary, extend the trigger so the automation only fires for records created or modified by you.
- Backup Automations: Some automations are very elaborate and tedious to do a second time. If you can, once you create the automation and make it live, create a backup and refresh your test environment. In the test environment, you have a copy of the automation now for testing. Copy anything you tweaked in the test copy back to the live copy for the final version.
Back up and refresh the test a second time and test once more before activating the live version.
- Sketch it First: Diagramming an automation before you set it up sometimes helps to figure out what you need to do.
- Advanced Filters: Sometimes, when creating advanced filters, you do not know what field name to use. Create a dummy condition block and choose the field you want to get and compare that to a value (like null or 0). Then click on the (s) to get the full field name.
- Use a text editor, like Notepad or Notepad++, to build your advanced filters, then copy them into the browser from there. This allows you to better visualize what you are typing up and try different variations of setting it up.
- You can bookmark these entries in Campus for information on the more advanced features:
Considerations When Building Automations
- Extend Trigger vs. Condition Blocks: An automation will not run if the trigger is not met. If an automation is only intended for tasks that are completed, for example, extend the trigger instead of including an IF Condition block to reduce the number of times the automation runs.
- Check for Null: It is important to check for null and protect against null to both prevent errors and optimize system performance. Utilize IF statements and make sure there are no null values if using that field to set a value later on.
- Bad Example: When a material log is created, update notes of associated task, but not all material logs have associated tasks so the system displays an error message.
- Good Example: When looping through tasks to determine what priority to set on a work order, only loop through the tasks associated to a work order.
- Error and Roll Back: Any error in an automation causes the entire automation to roll back; no actions are executed. For example, if an automation is intended to update 50 records, but one of those records is missing a required field, no records are updated, and the automation logs an error.
- Business Logic vs. Automations: Automations run before other Cartegraph business logic so Cartegraph business logic always wins. Automations cannot override imbedded system business logic. Also, use caution when checking a field set by business logic. For example, the Area field on a Pavement record is calculated by business logic. The Area value is not updated until after the Automations run when saving the record.
- Overlapping System Functionality: Automation Manager functionality overlaps with other functionality such as Preventative Maintenance and Notification Manager; use standard functionality when available. If the same functionality is enabled in more than one area, both areas fire, causing duplicates.
- Automations Triggering Other Automations: Automations are unaware of each another. Automations may trigger other automations, perhaps intentionally or unintentionally. The system will detect an infinite loop, stop it, and log an error.
- Look Beyond Intended Impact: The trigger fires when intended, but does it also fire when not intended? The intended records is created or updated, but does it also create or update other records? For example, when a work order is canceled, cancel only the open tasks associated to that work order. If Work Order ID is not included in the Loop block, the system will cancel all open tasks.
- Coordinate Automation Efforts: The system does not detect duplicate automations. If three different users create the same automation, the system fires all three. Or, one automation could overwrite what another automation set. Or, automations may conflict with one another and cause an error.
- User Awareness: It is important that users understand what actions are automated, especially when automating Create Task or Create Record. The system does not notify a user when his or her action has kicked off an automation. The user could unintentionally create a duplicate.
- Consider Deactivating Automations: Consider deactivating automations before running large processes like an import. For example, see if the import could and should result in 1000 emails being generated.
Automation Manager Limitations
- Use Spatial Information: Automations cannot be triggered based on a defined spatial area or offset. For example, assign tasks to Chris if the task is located in the northwest corner of the city.
- Multiple Recordsets: Automations work with one recordset at a time. An automation does not loop through all the components of a Park, for example, because the Park contains different asset types. Instead, specify and loop through each recordset individually within in a single Automation.
- Copy Attachments: Attachments cannot be copied from one record to another. For example, copy all the attachments from the request to the associated task.
- Populating Resources for Tasks: Using automations to populate resources on tasks should be limited. This is not an intended feature of Automation Manager.
- Using Existence of One Resource to Populate Other Resources: User must save after entering the triggered resource, else could end up with duplicates. The ability to populate the resource usage value from one type of resources to another is limited. For example, Laborer always uses the same truck. Automations cannot populate the equipment usage with the same value as the labor hours.
- Populating Materials: Materials should never be filled with an automation because once a material is included on a task, it is removed from stock and cannot be deleted.
- Adjusting Dates for Tasks/Resources: The date of a resource cannot be adjusted; it must be removed and re-added on the correct date. Resources on the wrong dates can cause errors when trying to adjust task dates.