Adds real-time alert notifications by push, text and voice calls incl. escalations and status updates
Integrated on-call duty and shift scheduling allows for automated routing of ticket alerts to the right people at the right time
User-friendly mobile app for Android and iPhone provides incident and alert management on-the-go
Integrates with a few mouse-clicks into n8n to interact or set the device state
Why SIGNL4
n8n is a free and open workflow automation tool. It helps you to automate your daily tasks, synchronize data, or to react to certain events. The platform offers various integrations and helps you to create your own no-code / low-code workflows in no time. Pairing the n8n platform with SIGNL4 can enhance your daily operations with an extension to your team wherever it is.
How it Works
SIGNL4 is available as a native integration in n8n. Using the SIGNL4 node, you can easily alert your team through an automated workflow.
Benefits and Value-Add
Scenarios
Integration Type
Tickets and Incidents are sent to n8n
Event categorization, routing and automated delivery based on availability, duty schedules, etc.
Persistent Notifications by push, text and voice call with Tracking, Escalation and Confirmation to Staff on Duty
SIGNL4 is a mobile alert notification app for powerful alerting, alert management and mobile assignment of work items. Get the app at https://www.signl4.com.
In the workflow below we send information from a file to SIGNL4. For example, this can be data from a monitoring tool.
n8n Workflow
In n8n, you can connect anything to everything. In our example we read data from a file and if a certain condition is met we send this information to our SIGNL4 team.
If you would like to use our sample workflow you can just copy the code below, click anywhere in the n8n window, and paste the code there.
{
"name": "SIGNL4 Alert",
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
300,
60
]
},
{
"parameters": {
"subject": "Alert from n8n",
"body": "={{$node["Binary to JSON"].json["Body"]}}",
"xS4Location": "52.3984235,13.0544149"
},
"name": "SIGNL4",
"type": "n8n-nodes-base.SIGNL4",
"typeVersion": 1,
"position": [
1020,
60
],
"credentials": {
"SIGNL4Api": "SIGNL4 Team"
}
},
{
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyHour"
}
]
}
},
"name": "Cron",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [
380,
290
]
},
{
"parameters": {
"fileName": "alert-data.json"
},
"name": "Write Binary File",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
910,
290
],
"typeVersion": 1
},
{
"parameters": {
"filePath": "alert-data.json"
},
"name": "Read Binary File",
"type": "n8n-nodes-base.readBinaryFile",
"position": [
480,
60
],
"typeVersion": 1
},
{
"parameters": {
"options": {}
},
"name": "Binary to JSON",
"type": "n8n-nodes-base.moveBinaryData",
"typeVersion": 1,
"position": [
660,
60
]
},
{
"parameters": {
"mode": "jsonToBinary",
"options": {}
},
"name": "JSON to Binary",
"type": "n8n-nodes-base.moveBinaryData",
"typeVersion": 1,
"position": [
750,
290
]
},
{
"parameters": {
"functionCode": "items[0].json = $node["Binary to JSON"].json;nnitems[0].json.Done = true;nitems[0].json.eventId = $node["SIGNL4"].json.eventId;nnreturn items;"
},
"name": "Mark as Done",
"type": "n8n-nodes-base.function",
"position": [
590,
290
],
"typeVersion": 1
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$node["Binary to JSON"].json["Done"]}}"
}
]
},
"combineOperation": "=all"
},
"name": "IF",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
840,
60
]
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "Read Binary File",
"type": "main",
"index": 0
}
]
]
},
"SIGNL4": {
"main": [
[
{
"node": "Mark as Done",
"type": "main",
"index": 0
}
]
]
},
"Read Binary File": {
"main": [
[
{
"node": "Binary to JSON",
"type": "main",
"index": 0
}
]
]
},
"Binary to JSON": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"JSON to Binary": {
"main": [
[
{
"node": "Write Binary File",
"type": "main",
"index": 0
}
]
]
},
"Mark as Done": {
"main": [
[
{
"node": "JSON to Binary",
"type": "main",
"index": 0
}
]
]
},
"IF": {
"main": [
[
{
"node": "SIGNL4",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"timezone": "Europe/Berlin"
},
"id": "1"
}
The file that we are reading here is a simple JSON file.
{"Body":"Alert in building A2.","Done":false}
SIGNL4 Integration
For the SIGNL4 node you just need to configure your team secret. This is the last part of your webhook URL. For the other settings you can use whatever is suitable for your scenario.
Test It
Start the workflow and when the SIGNL4 node is executed, an alarm will be sent to your SIGNL4 team.
Alert Optimization
SIGNL4 can further increase the visibility of alerts through its Signals and Services categories. Augmenting the color and icon of alerts will provide more relevant information at a glance without having to open the alert. You can also augment ticket alerts with maps or change the subject or message to a more comprehensible content.
Alert categories in SIGNL4 also allow to group ticket alerts and even to route those ticket notifications to your staff based on skills or other criteria. Screenshots show how to override text, colors and titles are triggered by keywords set within the mobile app.