[Home](../README.md) | [Switches](Switches.md) | Actions | [Templates](Templates.md) | [Background Service](../BackgroundService.md) | [Trouble Shooting](../TroubleShooting.md) | [Version History](../HISTORY.md)
# Actions
A simple example using a scene as a `tap` menu item.
```json
{
"entity": "scene.telly_watching",
"name": "Telly Scene",
"type": "tap",
"tap_action": {
"service": "scene.turn_on"
}
},
```
Any menu item with an action (`tap`, `template`, or `toggle`), may have a confirmation view added. For consistency this is always done via the `tap_action` JSON object, even though for a `toggle` menu item there will only ever be a single field inside. For the `toggle` menu item, the confirmation is presented on both `on` and `off` directions. There is no option for asymmetry, i.e. only in one direction.
```json
"tap_action": {
"confirm": true
}
```
For example:
```json
{
"entity": "switch.garage_door",
"name": "Garage Door",
"type": "toggle",
"tap_action": {
"confirm": true
}
}
```
**The authors do not advise the use of this application for security sensitive devices. But we suspect users are taking that risk anyway, hence a PIN confirmation is provided that can be used for additional menu item security.**
This can be enabled by setting the `pin` field in the `tap_action`. The `pin` field overrides `confirm`. Explicitly setting `confirm` is not necessary.
The 4-digit PIN is set globally for all actions in the app settings in Connect IQ.
```json
"tap_action": {
"pin": true
}
```
When entering an invalid PIN for the fifth time within 2 minutes, the PIN dialog will be locked for all actions for the next 10 minutes. Entering a valid PIN will always reset the failure counter.
Note that for notify events, you _must_ not supply an `entity_id` or the API call will fail. There are other examples too.
```json
{
"name": "Message",
"type": "tap",
"tap_action": {
"service": "notify.mobile_app_on_phone",
"data": {
"title": "This is a title",
"message": "This is the message"
},
"confirm": true
}
}
```