Incoming Webhook for Alarms

Get 7SIGNAL alarms sent to a Slack or Teams channel with these simple instructions.

Webhooks are HTTPS callbacks that allow you to respond to events generated within the 7SIGNAL platform. When an event is generated (such as an alarm), the platform can reach out via an HTTPS request.

Slack

  • Go to https://api.slack.com/apps to create a new app and name it 7SIGNAL Alarms.
  • Once created, click to add the ‘Incoming Webhooks’ functionality.
  • On the Incoming Webhooks configuration page…
    • ‘Activate’ the feature by clicking the toggle switch.
    • Then click ‘Add New Webhook to Workspace’ to continue.
  • If you are logged into Slack, you will be directed to your workspace
  • Now choose the #channel where you want the alarms to appear.

Slack1

Microsoft Teams

  • Navigate to the channel where you want to add the webhook and select (•••) More Options from the top navigation bar.
  • Choose Connectors from the drop-down menu and search for Incoming Webhook.
  • Select the Configure button and provide a name. 
  • The dialog window will present a unique URL that will map to the channel. Make sure that you copy and save the URL—you will need to input it into the Sapphire Configurator (see below).
  • Select the Done button. The webhook will be available in the team channel.
Teams webhook

Sapphire Configuration

  • Copy the Webhook URL from Slack or Teams
  • Then, login to the 7SIGNAL Configurator and go to…
  • Manage > Alarms > Webhook Forwarding
  • Right-click on ‘Webhook configurations’ and select ‘Add alarm webhook configuration’
  • Type in a name for the configuration then paste the Webhook URL in the field provided.
  • Check the ‘Slack webhook’ box to activate
  • Check the alarm states for which you want messages
  • Check the alarms you want to receive from the list
  • Click the ‘Test’ button, then ‘Save’ button
  • Go to your Slack channel to ensure you have received the message from 7SIGNAL.

Other Integrations

You may also want to take the webhook payload and map it to fields in a ticketing system, like ServiceNow®. If so, then the raw data below will be used in your integration.

Sapphire Eye (Sensor) Webhook Payload

Method:
POST

Headers:
'content-type': 'application/json',
'content-length': '449', 
'user-agent': 'Apache-HttpClient/4.5.14 (Java/11.0.23)',
'accept-encoding': 'gzip,deflate'
host: <your target address>

Body:
{
    "AlarmSeverity": "CRITICAL",
    "Organization": "7SIGNAL - West Akron",
    "EventType": "OFF",
    "ManagingCarat": "east1.cloud.7signal.com (0:0:0:0:0:0:0:1)",
    "AccessPoint": "\"7sCORP\"_C4:13:E2:54:2F:14_G/N",
    "Timestamp": "07.10.2024 at 13:49:52",
    "Eye": "B1-3rdFloor-Eye (10.7.30.179)",
    "Type": "Network Alarm",
    "ServiceArea": "Bldg One - 3rd Floor",
    "ConsecutiveSuccesses": "1",
    "AlarmText": "Attach availability",
    "Alias": "CS-AP1",
    "ConsecutiveMisses": "1",
    "Interface": "WLAN"
}

Mobile Eye (Agent) Webhook Payload

Method:
POST

Headers:
'content-type': 'application/json'
'content-length': '1888'
host: <your target address>
(includes several additional headers starting with 'x-')

Body:
{
    "text": "\n7SIGNAL Incident\n\nDetails:  Incident Type: Wi-Fi Quality (7MCS)\n  Location: 7S West Akron OH Office\n  Network: #momogoboom\n  Band: 5 GHz\n  Impacted Population: 1 clients\n  Total Population: 1 clients\n  Incident Started: Mon, 07 Oct 2024 17:05:00 GMT\n  Incident Identified: Mon, 07 Oct 2024 17:10:00 GMT \n  Incident Ended: Mon, 07 Oct 2024 18:15:00 GMT \n\nThresholds:\n  Minimum Total Population: 1 clients\n  Minimum Impacted Population: 1 clients\n  Minimum Incident Duration:  5 minutes\n  Service Level Threshold: 100%\n\n7SIGNAL has identified that a Wi-Fi performance incident has ended based on the Tell Eric Alarm alarm configuration.\n\nThis incident impacted Wi-Fi Quality (7MCS) performance on 1 out of 1 clients at the 7S West Akron OH Office location on the #momogoboom network and 5 GHz band. \n\nPerformance began to degrade Mon, 07 Oct 2024 17:05:00 GMT. \nPerformance impact ended Mon, 07 Oct 2024 18:15:00 GMT. \n      \nFor more information, visit Mobile Eye at https://eyeq.7signal.com/wifi?tr=1728291900000_1728325550417&incidentTr=1728320700000_1728324900000&incidentId=ba19ce3d-ad53-46d5-9663-1b98bb0b205c&incidentLocationId=bfc88029-c162-48c5-b27c-81cfe0c63842&incidentToggle=true`\n",
  "alarmDescription": "Notify Team",
    "incidentId": "ba19ce3d-ad53-46d5-9663-1b98bb0b205c",
    "organizationName": "7signal2",
    "locationName": "7S West Akron OH Office",
    "locationId": "bfc88029-c162-48c5-b27c-81cfe0c63842",
  "network": "7Scorp",
    "band": 5,
    "incidentType": "SEVEN_MCS",
    "totalClientPopulation": 1,
    "impactedClientPopulation": 1,
    "timeIncidentStarted": "2024-10-07T17:05:00.000Z",
    "timeIncidentEnded": "2024-10-07T18:15:00.000Z",
    "timeIncidentIdentified": "2024-10-07T17:10:00.000Z",
    "thresholds": {
        "minimumTotalClientPopulation": 1,
        "minimumIncidentDurationMinutes": 5,
        "successRate": 100,
        "minimumImpactedClientPopulation": 1,
        "minimumImpactedClientPopulationPercent": null
    }
}

Webhook Authentication Support

While you do not need to provide authentication when using webhooks, you can add additional authentication information with the webhook request. This will allow you to restrict access to the webhook destination endpoint or identify the caller, in this case the 7SIGNAL platform.

Additionally, you may want to provide identification or authentication via query parameters (values following the ? in a URL). In either case, you should choose “No Authentication” (see screenshots below) since this does not require any additional data or configuration.

Authentication is only secure when using HTTPS communication.

Basic Authentication

Provide a username and password. These values are sent with the request according to the HTTP standard (RFC-7617 basic access authentication).

It is important to note that the password cannot be viewed after being saved. However, it can be replaced. Also, the password is encrypted when stored.

Bearer Token

Provide a secret token that is any string of characters and is not parsed or used by 7SIGNAL. The token is transmitted with the request according to the OAuth standard for handing bearer tokens (RFC-6750 OAuth).

It is important to note that the token cannot be viewed after being saved. However, it can be replaced. The value is encrypted when stored.

 

Webhook Configuration in Mobile Eye

image-20250107-185902

Webhook Configuration in Sapphire Eye (Configurator)

image-20250107-192335