Previous
Visualize data
Get alerted when your robot’s data meets a condition. Triggers send webhooks or email notifications when data syncs from a machine, so you can respond to events like temperature spikes, low battery, or detection results without polling.
You can configure triggers to fire in the following scenarios:
Go to the CONFIGURE tab of your machine. Click the + (Create) button in the left side menu and select Trigger.
Enter a name and click Create.
In the Type dropdown, choose one of the following event types:
Data has been synced to the cloud: Whenever your machine syncs data of any of the specified data types, the trigger fires. Then select the data types for which the trigger should send requests.
Conditional data ingestion: Whenever your machine syncs data that meets certain criteria, the trigger fires.
Choose the target component and method for your condition.
Add a condition: specify a key in the synced data, an operator, and a value. When data from the target component and method syncs from your machine, the trigger uses the key as a path to look up a value in the synced data object. The trigger applies the operator to the extracted value and the value you specified in your condition.
For example, the following trigger sends an alert when the cpu-monitor component’s Readings method syncs cpu usage greater than 50:

To see the data your components are returning, use each component’s TEST panel.
For a full reference of trigger configuration attributes, see Trigger configuration.
Next, configure what should happen when an event occurs. You can add Webhooks and Email notifications:
To add a webhook:
To add an email notification for specific email addresses:
To add an email notification for all machine owners:
The following JSON configuration shows how to set up a trigger that fires when any data is synced to the cloud:
{
"components": [
{
"name": "local",
"model": "pi",
"api": "rdk:component:board",
"attributes": {},
"depends_on": []
},
{
"name": "my_temp_sensor",
"model": "bme280",
"api": "rdk:component:sensor",
"attributes": {},
"depends_on": [],
"service_configs": [
{
"type": "data_manager",
"attributes": {
"capture_methods": [
{
"method": "Readings",
"additional_params": {},
"capture_frequency_hz": 0.017
}
]
}
}
]
}
],
"triggers": [
{
"name": "trigger-1",
"event": {
"type": "part_data_ingested",
"data_ingested": {
"data_types": ["binary", "tabular", "file", "unspecified"]
}
},
"notifications": [
{
"type": "webhook",
"value": "https://1abcde2ab3cd4efg5abcdefgh10zyxwv.lambda-url.us-east-1.on.aws",
"seconds_between_notifications": 60
},
{
"type": "email",
"value": "test@viam.com",
"seconds_between_notifications": 60
}
]
}
]
}
For more information about triggers, see Trigger Configuration.
Viam also supports triggers for machine status events and log monitoring:
For these trigger types, see Alert on machine telemetry. For a full reference of all trigger attributes, see Trigger configuration.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!