Skip to main content

Add metadata to check group or check definitions

Howdy - when creating an API[1] or Browser check, it would be nice to attach arbitrary key/value data in a metadata field to use when setting up a downstream webhook integration.

My use case is I’d like to attach something like “metadata": {"team": "backend-payments"} to be able to configure in the custom Webhook payload[2] in order to route to the correct team in my on-call tool.

Right now I’m using the tags field, but that is a list of strings, which I can hack around a bit by doing some regex parsing, but is a big gross.

Thanks!

[1]

https://www.checklyhq.com/docs/api-reference/checks/create-an-api-check/

[2]

https://www.checklyhq.com/docs/integrations/alerts/webhooks/#basic-webhook-setup

Status: Completed3 comments

Log in to comment and vote

Comments3

  • Hervé Labas

    Team•

    Jul 24

    Hi!

    You can now add key/value-style tags to a check, for example:

    • team:backend-payments

    • project:payments

    • environment:production

    Then retrieve each value by key in your custom webhook payload using the new tagValue helper:

    {
      "team": "{{tagValue TAGS 'team' 'UNKNOWN'}}",
      "project": "{{tagValue TAGS 'project' 'UNKNOWN'}}",
      "environment": "{{tagValue TAGS 'environment' 'UNKNOWN'}}"
    }

    With the tag team:backend-payments, this renders "team": "backend-payments".

    The helper also supports team=backend-payments; the final argument is the fallback when no matching tag exists.

    For group-level routing, another option is to define a group variable such as TEAM=backend-payments and reference it directly as {{TEAM}}. {{GROUP_NAME}} is also available as a built-in webhook variable. Cf. documentation

    We haven’t introduced a general typed or queryable metadata object, but the original requirement—looking up values by key for custom webhook payloads and alert routing—is now covered. I’m therefore closing this request as completed.

    Thanks for the feedback!

  • Tim Nelson

    •

    Mar 30

    Hi Herve!

    I’m interested in the same thing. I’d be just as happy if there were key/value tags (ie. the colon-separated ones currently being used by Rocky), or metadata. I’d like to be able to fetch the value by key.

    I’m using Checkly to forward alerts to OpsGenie. I have a template that I’m using. I’d like to be able to add the following to the alert:

    • The URL that was being checked (I couldn’t find this anywhere in the available variables, so I added a tag for it, but can’t fetch the tag by name)

    • The Project name

    • The Environment name

    • The Team name

    In my template, I might like to have “Assigned to {{metadata TeamName}}” or “Project: {{metadata ProjectName}}”. I can imagine that some people might like to do “Project URL: {{metadata GitHubURL}}” as well, for example. Note that I’ve just picked the “metadata” keyword at random — I’m sure there’s a more appropriate way to do it, to select data from JSON by key using JSONPath.

    As for the different teams business, one of the things we do is have a channel with all the alerts in it from all teams. This means that we can get an overview of what’s going on across teams easily. That’s certainly a place where it’s useful to be able to see the team name.

    HTH,

  • Hervé Labas

    Team•

    Dec 17, 2025

    Hi Miles and thanks for your input.

    I’m trying to understand better the limitation: how would the same Browser or API check possibly alert different teams?
    I can imagine that rotations or so may affect who needs to be notified (e.g

    https://feedback.checklyhq.com/p/time-aware-alert-channels) but I struggle to understand why you wouldn’t create a separate alert channel for each of the teams you want and pick the appropriate channel to alert for each given check?

    I might be missing something so any additional detail may help 🙏
    Thanks!