SIGNL4
SIGNL4 offers critical alerting, incident response and service dispatching for operating critical infrastructure. It alerts you persistently via app push, SMS text, voice calls, and email including tracking, escalation, on-call duty scheduling and collaboration.
Messaging and Conferencing · SIGNL4
Details
| ID | SIGNL4 |
|---|---|
| Provider | Derdack GmbH |
| Category | Messaging and Conferencing |
| From Version | 5.0.0 |
| Docker Image | demisto/python3:3.12.8.3296088 |
| Supported Modules | Agentix Cloud Runtime Security Cloud Posture Security XSIAM EDR Cortex Cloud |
README
SIGNL4 offers critical alerting, incident response and service dispatching for operating critical infrastructure. It alerts you persistently via app push, SMS text, voice calls, and email including tracking, escalation, on-call duty scheduling and collaboration.
Configure SIGNL4 on Cortex XSOAR
- Navigate to Settings > Integrations > Servers & Services.
- Search for SIGNL4.
-
Click Add instance to create and configure a new integration instance.
Parameter Description Required SIGNL4 team or integration secret True Use system proxy settings False - Click Test to validate the URLs, token, and connection.
Commands
You can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a SIGNL4 alert is either triggered or closed.
signl4_alert
Sends a mobile alert to a SIGNL4 team.
Base Command
signl4_alert
Input
| Argument Name | Description | Required |
|---|---|---|
| title | The title of the SIGNL4 alert. | Required |
| message | The message of the SIGNL4 alert. | Required |
| s4_external_id | The external ID is used to reference the alert in order to close it later. | |
| s4_service | The SIGNL4 category to use for this alert. | Optional |
| s4_location | Transmit location information (‘latitude, longitude’) with your event and display a map in the mobile app. | Optional |
| s4_alerting_scenario | If this event triggers an, allows to control how SIGNL4 notifies the team. single_ack: Only one person needs to acknowledge this alert. multi_ack: The alert must be confirmed by the number of people who are on duty at the time this alert is created. emergency: All people in the team are notified regardless of their duty status and must acknowledge the alert, which is also assigned to the built-in emergency category. | Optional |
| s4_filtering | Specify a boolean value of true or false to apply event filtering for this event, or not. If set to true, the event will only trigger a notification to the team, if it contains at least one keyword from one of your services and system categories (i.e. it is whitelisted). | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| SIGNL4.AlertCreated.eventId | String | SIGNL4 event ID. |
Command example
!signl4-alert name="Test Alert"
Context Example
{
"title": "Alert from Cortex XSOAR",
"message": "Hello world.",
"s4_external_id": "id1234"
}
Human Readable Output
SIGNL4 alert created
{
"s4_external_id": "id1234"
}
signl4_close
Close a SIGNL4 alert.
Base Command
signl4_close_alert
Input
| Argument Name | Description | Required |
|---|---|---|
| s4_external_id | The external ID is used to reference the open alert which shall be closed. |
Context Output
| Path | Type | Description |
|---|---|---|
| SIGNL4.AlertClosed.eventId | String | SIGNL4 event ID. |
Command example
!signl4_close_alert name="Close Alert"
Context Example
{
"s4_external_id": "id1234"
}
Human Readable Output
SIGNL4 alert closed
{
"s4_external_id": "id1234"
}
This is how a SIGNL4 might look like in the mobile app:

Configuration parameters
secret— Team or Integration Secret (required)proxy— Use system proxy settings
Commands (2)
-
signl4_alertTrigger a SIGNL4 alert.
-
signl4_close_alertClose an alert in SIGNL4
""" Test script for the SIGNL4 ntegration PARAMS: secret: The SIGNL4 team or integration secret. """ from CommonServerPython import * from pytest_mock import MockerFixture from SIGNL4 import ( Client, send_signl4_alert, close_signl4_alert, ) def test_send_signl4_alert_success(mocker: MockerFixture): """ Given: A Client instance and alert data with all required fields. When: The send_signl4_alert function is called with the alert data. Then: The function should return a CommandResults object with the alert data. """ # Mock client client = Client(base_url="https://connect.signl4.com/webhook/mock-secret", verify=False) # Mock client's send_signl4_alert method mock_response = {"eventId": "mock-event-id-12345"} mocker.patch.object(client, "send_signl4_alert", return_value=mock_response) # Test data json_data = {"title": "Test Alert", "message": "This is a test alert", "s4_external_id": "test-id-12345"} # Execute result = send_signl4_alert(client, json_data) # Assert assert result.outputs_prefix == "SIGNL4.AlertCreated" assert result.outputs_key_field == "eventId" assert result.outputs == mock_response assert isinstance(result, CommandResults) assert "SIGNL4 alert created" in result.readable_output def test_signl4_close_alert_success(mocker: MockerFixture): """ Given: A Client instance and alert data with all required fields. When: The close_signl4_alert function is called with the alert data. Then: The function should return a CommandResults object with the alert data. """ # Mock client client = Client(base_url="https://connect.signl4.com/webhook/mock-secret", verify=False) # Mock client's send_signl4_alert method mock_response = {"eventId": "mock-event-id-12345"} mocker.patch.object(client, "close_signl4_alert", return_value=mock_response) # Test data json_data = {"s4_external_id": "test-id-12345"} # Execute result = close_signl4_alert(client, json_data) # Assert assert result.outputs_prefix == "SIGNL4.AlertClosed" assert result.outputs_key_field == "eventId" assert result.outputs == mock_response assert isinstance(result, CommandResults) assert "SIGNL4 alert closed" in result.readable_output