> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# StatusCake Alert Source

> Send StatusCake uptime alerts through a Generic Webhook source, map check details, route failures, and resolve alerts on recovery.

Connect StatusCake to Rootly using the [Generic Webhook Alert Source](/integrations/generic-webhook-alert-source/generic-webhook-alert-source). StatusCake sends form-encoded webhook data; Rootly uses the decoded fields to create, route, and resolve alerts.

## Connect StatusCake

<Steps>
  <Step title="Create the Rootly Source" icon="plus">
    Follow the [Generic Webhook installation instructions](/integrations/generic-webhook-alert-source/generic-webhook-alert-source#installation) to create and name your source.

    Copy its base webhook URL and add the source's `secret` query parameter as described in [Authentication](/integrations/generic-webhook-alert-source/generic-webhook-alert-source#authentication). Configure routing in Rootly using the instructions below.
  </Step>

  <Step title="Configure the StatusCake Contact Group" icon="webhook">
    Paste the complete Rootly URL into a StatusCake contact group's webhook configuration and choose HTTP POST.

    Follow [StatusCake's contact group instructions](https://www.statuscake.com/kb/knowledge-base/creating-a-contact-group-for-alerts/) to associate the group with the uptime checks you want to send to Rootly. For supported encoding and shared troubleshooting, see [Generic Webhook payload formats](/integrations/generic-webhook-alert-source/generic-webhook-alert-source#payload-formats).
  </Step>
</Steps>

## Map StatusCake Fields

Use the fields in the actual StatusCake webhook payload when configuring your source's [field mappings](/integrations/generic-webhook-alert-source/generic-webhook-alert-source#mapping-payload-fields). StatusCake's [webhook reference](https://www.statuscake.com/kb/knowledge-base/how-to-use-the-web-hook-url/) describes these fields:

| Rootly Field | StatusCake Field | Liquid Reference                                                                                                             |
| ------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Title        | `Name`           | `{{ alert.data.Name }}`                                                                                                      |
| Description  | `Description`    | `StatusCake {{ alert.data.Status }} — HTTP {{ alert.data.StatusCode }}. Check interval: {{ alert.data.Checkrate }} seconds.` |
| State        | `Status`         | `{{ alert.data.Status }}`                                                                                                    |
| External URL | `URL`            | `{{ alert.data.URL }}`                                                                                                       |

For the external identifier, choose a value that is unique per check and stays the same between `Down` and `Up` events. Use `URL` only when each check has a unique URL; checks monitoring the same URL need another stable identifier from their payload. Confirm the extracted values in the payload preview. For Liquid mappings, see [Alert Fields](/alerts/alert-fields).

## Route and Resolve Alerts

Create an [Alert Route](/alerts/alert-routing#creating-an-alert-route) for this source. Add a rule that matches `$.Status` equal to `Down`, with your intended team, service, or escalation policy as the destination. Rootly selects the destination from this rule, so the StatusCake payload does not need Rootly target IDs. Add check-specific conditions and destinations when checks should notify different responders.

Enable [deduplication by unique identifier](/alerts/alert-deduplication#combining-alerts-by-unique-identifier) using the stable check identifier. Configure [auto-resolution](/integrations/generic-webhook-alert-source/generic-webhook-alert-source#auto-resolution) with the same identifier and the recovery state `Up`. Send recovery events to the same webhook URL.

## Test the Connection

Test the following sequence from StatusCake:

* Send a `Down` event and confirm that Rootly creates an alert and notifies the intended destination.
* Send another `Down` event for the same check and confirm that deduplication uses the existing alert.
* Send an `Up` event and confirm that it resolves that alert.
* Repeat with a second check to confirm that its alerts stay separate.
