Notifications

Notification rules are an object which controls when notifications are generated and how they are distributed (actions).

Notifications are a way of updating third party systems of particular events or event combinations. Notifications can be configured using either a browser or via the API.

Notifications operate on an event, and action when a set of conditions are met for that event.

Action Outputs are currently either a Dashboard notification, Slack notification or webhook notification (HTTP/HTTPS supported).


List all notification rules

To return a list of all of your notification rules:

GET /api/3/notification_rules

Example Response

[
    {
        "id": 6,
        "name": "Tamper Alert",
        "active": true,
        "conditions": [
            {
                "type": "door_controller_id",
                "type_description": "Channel",
                "value": "3050"
            },
            {
                "type": "door_controller_id",
                "type_description": "Channel",
                "value": "3048"
            }
        ],
        "events": [
            {
                "code": 90,
                "name": "Tamper detected"
            }
        ],
        "actions": [
            {
                "type": 0,
                "type_description": "POST to URL",
            	"data": "https://www.example.com/doorflow/webhook"
            }
        ]
    }
]

Create a notification rule

POST /api/3/notification_rules

Example Request Payload

{
	"name": "New notification",
	"active": true,
	"match_event_codes": [
		1,
		2,
		3
	],
	"match_controller_ids": [
		1056,
		2941
	],
	"call_back_url": "https://www.example.com/doorflow/webhook",
	"match_action": "post_to_callback_url"
}

Example Response

{
    "id": 10,
    "name": "New notification",
    "active": true,
    "conditions": [
        {
            "type": "door_controller_id",
            "type_description": "Channel",
            "value": "1056"
        },
        {
            "type": "door_controller_id",
            "type_description": "Channel",
            "value": "2941"
        }
    ],
    "events": [
        {
            "code": 1,
            "name": "Channel started"
        },
        {
            "code": 2,
            "name": "Channel stopped"
        },
        {
            "code": 3,
            "name": "Channel contact lost"
        }
    ],
    "actions": [
        {
            "type": 0,
            "type_description": "POST to URL",
            "data": "https://www.example.com/doorflow/webhook"
        }
    ]
}

Note that the response will list the type of action matched where:

type POST attribute POST value description
0 match_action post_to_callback_url POST to URL

Update a notification rule

PUT /api/3/notification_rules/:id

{
	"name": "New notification rule name"
}

Example Response

[
    {
        "id": 6,
        "name": "New notification rule name",
        "active": true,
        "conditions": [
            {
                "type": "door_controller_id",
                "type_description": "Channel",
                "value": "3050"
            },
            {
                "type": "door_controller_id",
                "type_description": "Channel",
                "value": "3048"
            }
        ],
        "events": [
            {
                "code": 90,
                "name": "Tamper detected"
            }
        ],
        "actions": [
            {
                "type": 0,
                "type_description": "POST to URL",
            	"data": "https://www.example.com/doorflow/webhook"
            }
        ]
    }
]

Delete a notification rule

DELETE /api/3/notification_rules/:id

Example Response

{ result: "ok" }