Triggers, Conditions, Delay and Repeat
A good way to understand how bots work is to use the phrase If this, then that. The first part of the phrase is made up of four pieces: a trigger (something happens); a series of optional conditions; an optional delay (wait some time after the event, or in some cases before the event); and finally, an optional repeat schedule.
Triggers
Bots are triggered based on events in the system and are tied to a specific source, or record type. Each record type has its own set of available triggers, which can be explored in the table below.
There is one special type of trigger that is different that the rest, which is called Matches Conditions. This is a reactive trigger, meaning the bot will watch your database for records that match its conditions and then run. This is useful for, e.g., watching a date field and triggering when it is coming near.
Source | Trigger | Description |
Asset | Created | An asset is created. |
Edited | An asset is edited. | |
Deleted | An asset is deleted. | |
Undeleted | An asset is undeleted. | |
Archived | An asset is archived. | |
Unarchived | An asset is unarchived. | |
Label Applied | An asset has a label applied. | |
Label Removed | An asset has a label removed. | |
File Attached | An asset has a file attached. | |
File Deleted | An asset has a file deleted. | |
Matches Conditions | An asset matches the bot's conditions. | |
Checkout | Checked Out | A checkout is checked out. |
Checked In | A checkout is checked in. | |
Due | A checkout is due. | |
Signed | A checkout is signed. | |
File Attached | A checkout has a file attached. | |
File Deleted | A checkout has a file deleted. | |
Matches Conditions | A checkout matches the bot's conditions. | |
Location | Created | A location is created. |
Edited | A location is edited. | |
Deleted | A location is deleted. | |
Undeleted | A location is undeleted. | |
Archived | A location is archived. | |
Unarchived | A location is unarchived. | |
Label Applied | A location has a label applied. | |
Label Removed | A location has a label removed. | |
File Attached | A location has a file attached. | |
File Deleted | A location has a file deleted. | |
Matches Conditions | A location matches the bot's conditions. | |
Person | Created | A person is created. |
Edited | A person is edited. | |
Deleted | A person is deleted. | |
Undeleted | A person is undeleted. | |
Archived | A person is archived. | |
Unarchived | A person is unarchived. | |
Label Applied | A person has a label applied. | |
Label Removed | A person has a label removed. | |
File Attached | A person has a file attached. | |
File Deleted | A person has a file deleted. | |
Matches Conditions | A person matches the bot's conditions. | |
Repair | Requested | A repair is requested (i.e., created as Needs Repair). |
Started | A repair is started (either created as In Repair or updated to In Repair). | |
Completed | A repair is completed. | |
Canceled | A repair is canceled. | |
Assigned | A repair is assigned. | |
Due | A repair is due. | |
Edited | A repair is edited. | |
Deleted | A repair is deleted. | |
Undeleted | A repair is undeleted. | |
Archived | A repair is archived. | |
Unarchived | A repair is unarchived. | |
Label Applied | A repair has a label applied. | |
Label Removed | A repair has a label removed. | |
File Attached | A repair has a file attached. | |
File Deleted | A repair has a file deleted. | |
Matches Conditions | A repair matches the bot's conditions. | |
Reservation | Reserved | A reservation is reserved. |
Checked Out | A reservation is checked out. | |
Canceled | A reservation is canceled. | |
Begin | A reservation is beginning. | |
End | A reservation is ending. | |
Edited | A reservation is edited. | |
Deleted | A reservation is deleted. | |
Undeleted | A reservation is undeleted. | |
Archived | A reservation is archived. | |
Unarchived | A reservation is unarchived. | |
Label Applied | A reservation has a label applied. | |
Label Removed | A reservation has a label removed. | |
File Attached | A reservation has a file attached. | |
File Deleted | A reservation has a file deleted. | |
Matches Conditions | A reservation matches the bot's conditions. |
Conditions
Conditions allow you to limit when a bot runs. For example, if you want to trigger an action when the Lost label is applied to an asset, you can create a bot that is triggered when an Asset has a Label Applied, and then add a condition requiring the label to be Lost.
Conditions compare fields to values and are dependent on the event source and type of field being compared.
In some cases, like for Checkout, Repair, and Reservation events, you are also able to add conditions on records related to the event source. For example, you can add a condition to run a bot only when a checkout person has a specific label applied or is a member of a specific department.
Other than field comparisons, some special conditions are available for certain situations:
- Triggered Label: When the trigger is a Label Applied or Label Removed event, you can add conditions related to the label the triggered the event.
- Triggered File: When the trigger is a File Attached or File Deleted event, you can add conditions related to the file that triggered the event.
- Checkout: For some checkout triggers, you can add conditions on whether the checkout came from a reservation or a kiosk.
- Date Fields: When adding a condition based on a Date or Date Time field, you can add a special Is In The Past comparison. When combined with a Matches Conditions trigger, you can run the bot either before or after the date by using a delay.
Delay
Bots can optionally be configured to run after (or in some cases, before) a delay. The following triggers allow a before delay:
- Checkout Due
- Repair Due
- Reservation Begin or End
- Any Matches Conditions trigger with a date condition of Is In The Past
Repeat
Bots can be scheduled to repeat after the initial trigger a fixed number of times. This is useful for reminder emails and notifications, for example.
Repeated executions will also re-test any conditions to ensure they are still met before performing any actions.
When Weekdays Only is checked, the bot will run on the next weekday, and future repeats will be scheduled from there. For example, if you have a repeat scheduled for every 2 days and the first execution is on a Thursday, the next execution will be the following Monday, followed by Wednesday.