Push notification services setup

Customers will need to contact Customer Care if they want to create a new Push Notification Service, or if they want to have an existing Push Notification Service added to an account.

Creation of a new Push Notification Service requires the following information:

Operation

Notifications will be sent to the Push Notification Service's Endpoint URI for every device in every account which has the Push Notification Service added to it.

The Push Notification JSON contains a basic set of information about the alert. If additional information is required, a request can be made through the Connect API service.

Each Push Notification Service will have a unique Connect API Client ID and a Client Secret, which allows the Push Notification service access to all devices which have the Push Notification Service assigned to them.

The Push Notification Service will send a POST request to the Endpoint URI, and will expect a specific response to the request in order to ensure that the request has been both received and understood.
The expected response to the Push Notification Service POST request is an 2XX HTTP status code, and an md5 hash of the body of the POST request.

The payload content type is www-urlencoded-form

Notification Types

Possible alerts include: emergency_alert, silent_alert, fall_detected_alert, no_motion_occurred, missed_check_in, device_tipped_over, logon, logoff, network_timeout, low_battery, pump_block_detected, over_limit_gas_alert_detected, gas_alert_detected, stel_alert_detected, twa_alert_detected

Example Push Notification POST Request

{
   "alert":{
      "id":24456,
      "status":"unacknowledged",
      "type":"emergency_alert",
      "gas_type": null,
      "date_created":"2012-09-27 16:56:12",
      "date_last_modified":"2012-09-27 16:56:14",
      "escalation_protocol":"This is test, please do not respond to this event",
      "contacts":[
          {
              "priority":1,
              "name":"George Kramer",
              "phone_numbers":[
                  {
                      "number":"(403) 123-4567",
                      "type":"mobile"
                  }
              ]
          }
      ],
      "phone_numbers":[
          {
              "north_america":"+14031234567",
              "united_kingdom":"+447911123456",
              "direct":"+467191001234567"
          }
      ],
      "pin":123456
   },
   "device":{
      "id":123,
      "name":"Unit 123",
      "status":{
         "battery":{
            "internal_level":40
         },
         "date_last_seen":"2012-09-27 16:56:14",
         "gsm":{
            "gprs_strength":60
         },
         "location":{
            "altitude":1060,
            "beacon_address":"Warehouse (Bill's Office)",
            "beacon_layer":null,
            "beacon_name":"Beacon 780123 A",
            "heading":0,
            "latitude":51.0381177,
            "longitude":-114.0343722,
            "lsd":"2-14-24-1 W5",
            "position_date":"2018-02-22 10:05:19",
            "position_date_utc":"2018-02-22 17:05:19",
            "satellite_count":7,
            "speed":0,
            "timezone":"America/Edmonton GMT-07:00",
            "timing_advance":null,
            "type": "gps",
            "uncertainty":null
         }
      },
      "type":"loner_smd",
      "user":{
         "city":"Calgary",
         "company":"Blackline Safety",
         "email":"jparsons@example.com",
         "emergency_contacts":[
            {
               "id":32,
               "name":"Johnny Galecki",
               "phoneNumber":"(403) 123-4567",
               "relation":"Roommate"
            }
         ],
         "employee_id":"1234678",
         "first_name":"Jim",
         "last_name":"Parsons",
         "job_title":"Chief Scientist",
         "postal_code":"T1A2B3",
         "province":"AB",
         "phone_number":"(555) 555-5555",
         "street_address":"1234 Anywhere St"
      }
   }
}

Example Push Notification Response

ac5eb9ccd8778842b908e6139a8c6204

Note:

The User object represents the user assigned to the device that is in alert. The phone number in this object will be selected from the assigned user's phone numbers in the following order:

  1. Mobile Phone Number
  2. Work Phone Number
  3. Home Phone Number

If the user has no phone number the phone_number field's value will be an empty string

The phone_numbers object and the pin value in the alert object will be displayed if the voice device in alert has a voice service plan.


Note:

The gas_type field will only be populated for alerts involving gas readings. It will contain a string that identifies what gas type caused the alert. Some examples are h2s and o2.