SIGNL4 is a tool for instant mobile alerting. It generates real-time alerts to inform teams about any incidents and automatically delivers critical information to the right people at the right time.

RudderStack also supports SIGNL4 as a destination. Refer to the SIGNL4 destination documentation for more information.

Getting started

Follow these steps to set up your SIGNL4 source in the RudderStack dashboard:

  1. Go to your RudderStack dashboard and click Add Source. From the list of Event Streams sources, select SIGNL4.
  2. Assign a name to your source and click Continue.
  3. Your SIGNL4 source is now configured. Note the Webhook URL in the Settings tab, as shown:
SIGNL4 source webhook URL
  1. Log into your SIGNL4 account.
  2. Go to Teams > Developer. Add a name and the Webhook URL under Outbound Webhooks, as shown:
SIGNL4 source webhook URL
  1. Finally, click Add.

Event transformation

SIGNL4 acts as a webhook source and ingests all the events mentioned in SIGNL4 documentation.

Each event has a unique code present in the eventType property. The event name is mapped on the basis of this code, as explained below:

eventType codeEvent nameSIGNL4 action
200New Alert CreatedNew alert created in SIGNL4.
201Alert Confirmed/Alert ResolvedAlert confirmed by the user. Alert resolved if the statusCode is 4.
202Alert EscalatedAlert escalated when not confirmed in specified time.
203Alert AnnotatedMessage/Annotation sent by the receiver for an alert.
300Duty Period StartedDuty period started for a team.
301Duty Period EndedDuty period ended for a team.
302Somebody Punched-InWhen a team member comes on duty.
303Somebody Punched-OutWhen a team member goes off duty.
Any otherAlert UpdatedDefault behavior.

RudderStack ingests the SIGNL4 events after converting them into the RudderStack event format. It also maps the following properties from the SIGNL4 event payload to the RudderStack properties:

SIGNL4 propertyRudderStack property
eventTypeevent
eventRaisedUtcoriginalTimestamp
user.idcontext.externalId
idmessageId
team.idproperties.team.id
annotation.messageproperties.annotation.message
annotation.idproperties.annotation.id
alert.eventIdproperties.alert.eventId
alert.idproperties.alert.id
alert.externalEventIdproperties.alert.externalEventId
alert.statusCodeproperties.alert.statusCode
user.usernamecontext.traits.name
user.mailaddresscontext.traits.email
subscription.idproperties.subscription.id
alert.acknowledgedUserIdsproperties.alert.acknowledgedUserIds

How RudderStack creates the event payload

This section details how RudderStack receives the data from SIGNL4 source and creates the resulting payload.

A sample payload sent by SIGNL4 is shown below:

{
"eventType": 203,
"eventRaisedUtc": "2018-04-17T15:00:32Z",
"subscription": {
"id": "1578ebd9-0a27-44ab-bc8e-52cd7d32e81d"
},
"user": {
"username": "Alex",
"mailaddress": "alex@signl4.com",
"id": "f0bd5063-9588-51cf-b3d9-94e5647dedc5"
},
"alert": {
"statusCode": 0,
"eventId": "2518783235949759942_fbc7b4a4-badd-47b8-9e1d-702fb6a1a0b2",
"externalEventId": "INC091210",
"id": "2518783235958846071_4e2dfab2-4717-42bc-8d37-8682402309c2"
},
"annotation": {
"message": "OK, I'll take care about it.",
"id": "2518783235661483318_99ebffe0-1b90-40ef-990a-fbd842484761"
},
"id": "141c0f88-7831-4d5e-b055-f6e83c269770"
}

RudderStack transforms the above payload into the following track payload:

{
"type": "track",
"event": "Alert Annotated",
"context": {
"library": {
"name": "unknown",
"version": "unknown"
},
"traits": {
"name": "Alex",
"email": "alex@signl4.com"
},
"externalId": [{
"type": "signl4UserId",
"id": "f0bd5063-9588-51cf-b3d9-94e5647dedc5",
}],
"integration": {
"name": "SIGNL4"
}
},
"messageId": "141c0f88-7831-4d5e-b055-f6e83c269770",
"originalTimestamp": "2017-09-01T08:11:37.000Z",
"properties": {
"alert.statusCode": 0,
"alert.eventId": "2518783235949759942_fbc7b4a4-badd-47b8-9e1d-702fb6a1a0b2",
"alert.externalEventId": "INC091210",
"alert.id": "2518783235958846071_4e2dfab2-4717-42bc-8d37-8682402309c2",
"subscription.id": "183f8d00-3bb8-4636-9a8f-89d6af26374a",
"annotation.id": "2518783235661483318_99ebffe0-1b90-40ef-990a-fbd842484761",
"message": "OK, I'll take care of it."
},
"anonymousId": "6f0a3dc76a335860e17fa1d8ab779742e2ca",
"integrations": {
"SIGNL4": false
}
}

Contact us

For more information on the topics covered on this page, email us or start a conversation in our Slack community.

On this page