When Partner integrated AutoResolve is enabled for a NoiseAware user account, all NoiseAware alerts are sent to the partner's specified web hook endpoint.

Partner requirements

Webhook endpoint spec

You'll need an HTTP POST endpoint, with no auth, that accepts the following JSON payload:

{
    "NoiseawarePropertyID": 1,
    "NoiseawarePropertyName": "example_prop",
    "PartnerPropertyID": 1,
    "PartnerOrgID": 1,
    "NoiseawareAZID": 1,
    "NoiseawareAZName": "living room",
    "AlertTime": "2021-10-04T15:58:09.145985-05:00",
    "AlertType": "newDisconnect"
}

And returns the following JSON response:
{"message": "Message sent"}

Request details

  • NoiseawarePropertyID: NoiseAware identifier for the property. Used to map between NoiseAware and Partner PropertyID.
  • NoiseawarePropertyName: The name associated with the property within NoiseAware. Used for populating variables in the given SMS templates.
  • PartnerPropertyID: Partner's property identifier.
  • PartnerOrgID: User's partner account ID.
  • NoiseawareAZID: The identifier for the NoiseAware activity zone. Activity zones are user-defined zones within a property occupied by a NoiseAware sensor.
  • NoiseawareAZName: NoiseAware activity zone name. Used for populating variables in the given SMS templates.
  • AlertTime: The time NoiseAware generated the alert.
  • AlertType: What this alert was generated for. This determines the SMS destination(customer vs guest) and template. Descriptions included below.

The following is the list of possible AlertTypes and their descriptions:

  • newDisconnect: A device located at this property has not sent data for 30 mins deeming it disconnected.
  • resolvedDisconnect: A device has resumed sending data deeming it reconnected.
  • newTamper: A device has been physically moved or jarred.
  • newLowBattery: A device's battery level is below a threshold.
  • newPropertyDisconnect: All devices at this property have not sent data for 30 mins.
  • resolvedPropertyDisconnect: At least one of the devices at a property has resumed sending data following a full property disconnect.
  • newAdvancedAlert: Sustained noise levels above the set threshold has been detected.
  • secondAdvancedAlert: Noise levels have sustained for another 10 mins following the newAdvancedAlert alert type.
  • thirdAdvancedAlert: Noise levels have sustained for another 10 mins following the secondAdvancedAlert alert type.
  • resolvedAdvancedAlert: Sustained noise levels that resulted in any of the advanced alert types above has now dropped below the threshold.
  • firstAutoResolveGuest: Sustained noise levels above the set threshold has been detected. A warning message should be sent to the guest.
  • secondAutoResolveGuest: Noise levels have sustained for another 10 mins following the firstAutoResolveGuest alert type. A firm warning message should be sent to the guest.
  • thirdAutoResolvePM: Noise levels have sustained for another 10 mins following the secondAutoResolveGuest alert type. A message should be sent to the property manager to inform.

Alert types ending with "AdvancedAlert" are used for alerting property management only when there's been sustained noise and they should take action. This is generally not used with partner integrations, instead see below on our Auto Resolve alerts.

Alert types containing 'AutoResolve' are used for automated guest/customer messaging. The next section details the requirements for those alert types.

Guest/Customer messaging - Instructions based on alert type:

Some partners choose to hold onto the NoiseawarePropertyID/PartnerPropertyID mapping themselves. In this case the above partner values will be null and the partner will have to infer them from their internal mapping based on the populated NoiseawarePropertyID. If the partner doesn't hold that mapping, and NoiseAware is not integrated with the partner's APIs to gather properties for matching, then the above IDs would have to come from an export of client property information. NoiseAware would then take this export and upload them to our system in order for the clients to manually match the properties via a NoiseAware user interface.

  • firstAutoResolveGuest
    • Partner defined fields:
      • GuestFirstName: First name of the guest at a booked property.
      • CompanyName: Name of the property management company that owns the booking.
    • If NoiseAware holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): PartnerOrgId, NoiseAwareAZName, NoiseAwarePropertyName, AlertTime
      • If PartnerPropertyID is null or not found:
        • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. This property was not found in [CompanyName], there is no guest we can contact."
        • Respond HTTP 400 with message "PartnerPropertyID not found"
      • If PartnerPropertyID exists, look up the current guest:
        • If property is vacant:
          • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. No reservation data was available for this property, there is no guest we can contact."
          • Respond HTTP 200 with message "No current guest to contact"
        • If property is booked:
          • Send message to guest: "Hello [GuestFirstName], we are reaching out on behalf of [CompanyName]. We were made aware that there was an elevated amount of noise at the property. Please note that we want to keep an appropriate noise level to ensure comfort for all of our guests and neighbors."
          • Respond HTTP 200 with message "Message sent"
          • If guest is unreachable due to SMS failure or missing contact information:
            • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. The guest cannot be messaged due to missing or incorrect contact information."
            • Respond HTTP 200 with message "Guest unreachable"
    • If Partner holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): NoiseawarePropertyID, NoiseAwareAZName, NoiseAwarePropertyName, AlertTime
      • Lookup the property based on the NoiseawarePropertyID
        • If not found:
          • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. This property was not found in [CompanyName], there is no guest we can contact."
          • Respond HTTP 400 with message "NoiseawarePropertyID not found". This may indicate an issue with user property mapping.
        • If property is vacant:
          • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. No reservation data was available for this property, there is no guest we can contact."
          • Respond HTTP 200 with message "No current guest to contact"
        • If property is booked:
          • Send message to guest: "Hello [GuestFirstName], we are reaching out on behalf of [CompanyName]. We were made aware that there was an elevated amount of noise at the property. Please note that we want to keep an appropriate noise level to ensure comfort for all of our guests and neighbors."
          • Respond HTTP 200 with message "Message sent"
          • If guest is unreachable due to SMS failure or missing contact information:
            • Send notification to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [AlertTime]. The guest cannot be messaged due to missing or incorrect contact information."
            • Respond HTTP 200 with message "Guest unreachable"
  • secondAutoResolveGuest
    • If NoiseAware holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): PartnerOrgId
      • If PartnerPropertyID is null or not found:
        • Respond HTTP 400 with message "PartnerPropertyID not found"
      • If property is vacant respond HTTP 200 with message "No current guest to contact".
      • If property is booked:
        • Send message to guest: "Hello again, elevated noise continues to be reported at the property. Please refer to the rental agreement/house rules for our noise policy and quiet hours to avoid any potential fines."
        • Respond HTTP 200 with message "Message sent"
        • If guest is unreachable due to SMS failure or missing contact information respond HTTP 200 with message "Guest unreachable"
    • If Partner holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): NoiseawarePropertyID
      • Lookup the property based on the NoiseawarePropertyID
        • If not found:
          • Respond HTTP 400 with message "NoiseawarePropertyID not found". This may indicate an issue with user property mapping.
        • If property is vacant respond HTTP 200 with message "No current guest to contact".
        • If property is booked:
          • Send message to guest: "Hello again, elevated noise continues to be reported at the property. Please refer to the rental agreement/house rules for our noise policy and quiet hours to avoid any potential fines."
          • Respond HTTP 200 with message "Message sent"
        • If guest is unreachable due to SMS failure or missing contact information respond HTTP 200 with message
  • thirdAutoResolvePM
    • Partner defined fields:
      • StartTime: 10 mins before Escalation1Time
      • Escalation1Time: Time the firstAutoResolveGuest was sent
      • Escalation2Time: Time the secondAutoResolveGuest was sent
      • GuestFirstName: First name of the guest at the booked property
      • GuestPhoneNumber: Phone number of the guest at the booked property
    • If NoiseAware holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): PartnerOrgId, NoiseAwareAZName, NoiseAwarePropertyName, AlertTime
      • If PartnerPropertyID is null or not found:
        • Respond HTTP 400 with message "PartnerPropertyID not found"
      • If property is vacant respond HTTP 200 with message "Property vacant"
      • If property is booked:
        • Send message to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [Start Time]. The guest was contacted at [Escalation1Time] and [Escalation2Time]. Noise is still ongoing. It’s time to intervene. [GuestFirstName],[GuestPhoneNumber]."
        • Respond HTTP 200 with message "Message sent"
    • If Partner holds the NoiseAware/Partner property mapping
      • Validation:
        • Required(return HTTP 400): NoiseawarePropertyID, NoiseAwareAZName, NoiseAwarePropertyName, AlertTime
      • Lookup the property based on the NoiseawarePropertyID
        • If not found:
          • Respond HTTP 400 with message "NoiseawarePropertyID not found". This may indicate an issue with user property mapping.
        • If property is vacant respond HTTP 200 with message "Property vacant"
        • If property is booked:
          • Send message to customer(s): "[NoiseawareAZName] Noise at [NoiseAwarePropertyName] since [Start Time]. The guest was contacted at [Escalation1Time] and [Escalation2Time]. Noise is still ongoing. It’s time to intervene. [GuestFirstName],[GuestPhoneNumber]."
          • Respond HTTP 200 with message "Message sent"

Error scenarios

Please respond with HTTP 500 and include a helpful error message. This will be used for logging and error resolution on the NoiseAware side.