Pulse Workflows
Pulse workflows are triggered on changes to the pulses data. The Rootly platform is capable of receiving incoming code change events, known as pulses. These pulses are streamed in from a number of integrations (e.g. Github, Gitlab, etc.). You can leverage the power of workflows to auto pre-declare incidents, send Slack notifications, etc. from these pulses.
Pulse workflows are particularly useful for...
- Auto pre-declaring incidents to prepare for potential outages caused by new code changes
- Tracking code deployments in common team channels (e.g. #deployments, #infrastructure, #product)
In order to use a pulse workflow, you must first ensure that you have pulses flowing into Rootly. See the Pulses page to learn more.
Follow the navigation below to begin configuring a pulse workflow.
Workflows > Create Workflow > Pulse
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/CDRJnOvcZckfUtNRyGNLw_yys1-xkkkxyjxkydljdai-cleanshot-2023-11-26-at-021608.png?format=webp)
There is only one trigger event available for pulse workflows. Select the Pulse Created option as the trigger event. This will cause the workflow to initiate as soon as a pulse is received in your Rootly organization.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/3mhLwkhVNaJtQjlKaXPWH_a8z4vwimduwgvabshcmyc-cleanshot-2023-11-26-at-021640.png?format=webp)
Pulse workflows have three properties that you condition off of.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/bZFk5YL5k2Pu_SjDWIR4K_us9bisyb2qcx-igivxc6-cleanshot-2023-11-26-at-022159.png?format=webp)
The source represents where the pulse originated from.
In the example above, the source condition will only pass if the pulse came from Github.
You can find the source of a pulse on the main Pulses page.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/vThsEQXvZWKfZH_NUmpkf_5burhpj2reajcefzmhxac-cleanshot-2023-11-26-at-022312.png?format=webp)
Each pulse comes with a series of labels. The labels differ depending on the source (e.g an pulse from Github will have a different set of labels from a pulse from Gitlab). Pulse labels are stored as an array of values.
In the example above, the label condition will only pass if the pulse contains both the ref:refs/heads/master AND action:push labels.
You can find the labels for each pulse on the pulse details page. Configuration > Pulses > select a specific pulse.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/QpeCnvns5u0axSHfWWX2n_cleanshot-2023-11-26-at-022811.png?format=webp)
Each pulse comes with a payload. The payload also differs depending on the source. Pulse payload is stored as a JSON structure. JSONPath syntax can be used to filter for a specific value within the payload. Ruby regular expression (regexp) can be used to match the value filtered via JSONPath.
In the example above, the payload condition will only pass if the id field (within the organization object in the payload) equals 12345678.
As with the label, you can also find the payload for each pulse on the pulse details page. Configuration > Pulses > select a specific pulse.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/wGV7HEE5U5-t9kXQbbfzi_cleanshot-2023-11-26-at-023018.png?format=webp)
Unlike other types of workflows, the available actions in pulse workflows are fixed and not dependent on the integrated applications.
In the example below, the workflow will declare an incident in Rootly.
![Document image Document image](https://images.archbee.com/8_w24B7qUsOA0oEkiqb_I/K2YIK0ty1dzaQnf8ezXu7_cleanshot-2023-11-26-at-011022.png?format=webp)
If you need help or more information about this integration, please contact [email protected] or start a chat by navigating to Help > Chat with Us.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)
![Doc contributor](https://s3.amazonaws.com/archbee-animals/koala.png)