Providers are a fundamental part of workflows in Keep. They enable workflows to interact with external systems, fetch data, and perform actions. Each provider is designed to handle specific integrations such as Datadog, Slack, ServiceNow, or custom-built APIs.

Key Features of Providers

  • Extensibility: Providers can be easily extended to support new systems or custom use cases.

  • Parameterization: Parameters under the with section are passed directly to the provider. This allows you to configure provider-specific settings for each step or action.

  • Provisioning: Providers can be provisioned via CI/CD pipelines or through the Keep UI, providing flexibility for both automated and manual setups.


Defining a Provider

To define a provider, include its configuration under the providers section of your workflow file. Here’s an example:

providers:
  slack:
    description: "Slack provider for sending messages"
    authentication:
      webhook_url: "{{ env.SLACK_WEBHOOK_URL }}"

Using a Provider in a Workflow

Once a provider is defined, it can be used in workflow steps or actions by specifying its type and configuration.

For example:

actions:
  - name: trigger-slack
    provider:
      type: slack
      config: "{{ providers.slack }}"
      with:
        channel: "#alerts"
        message: "Alert triggered: {{ alert.name }}"

  • The config field links the action to the provider.
  • The with section includes parameters that are passed to the provider.

Examples

Fetching Data with a Provider

steps:
  - name: get-alerts
    provider:
      type: datadog
      config: "{{ providers.datadog }}"
      with:
        query: "avg:cpu.usage{*}"
        timeframe: "1h"

Sending Notifications with a Provider

actions:
  - name: notify-slack
    provider:
      type: slack
      config: "{{ providers.slack }}"
      with:
        channel: "#alerts"
        message: "Critical alert: {{ alert.name }}"