# Webhook

Webhook for integrating external notification systems with Fiddler alerts.

A Webhook represents an integration endpoint for delivering alert notifications to external systems like Slack, Microsoft Teams, or custom HTTP endpoints. Webhooks enable real-time alert delivery to team communication tools.

## name

Human-readable name for the webhook. Should be descriptive and indicate the target system or team.

## url

The webhook endpoint URL provided by the external system. This is the destination where alert notifications will be sent.

## provider

The webhook provider type (`WebhookProvider`). Determines message formatting and delivery method.

### Example

```python
# Create Slack webhook for critical alerts
slack_webhook = Webhook(
    name="critical-alerts-slack",
    url="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
    provider=WebhookProvider.SLACK
).create()

# Create Microsoft Teams webhook for team notifications
teams_webhook = Webhook(
    name="ml-team-notifications",
    url="https://outlook.office.com/webhook/xxxxx/IncomingWebhook/xxxxx",
    provider=WebhookProvider.MS_TEAMS
).create()

# List all webhooks
webhooks = list(Webhook.list())
for webhook in webhooks:

    print(f"Webhook: {webhook.name} ({webhook.provider})")

    # Update webhook URL
    webhook = Webhook.from_name("critical-alerts-slack")
    webhook.url = "https://hooks.slack.com/services/NEW/WEBHOOK/URL"
    webhook.update()
```

{% hint style="info" %}
Webhook URLs are sensitive credentials that should be kept secure. The provider type determines how messages are formatted and delivered. Test webhooks thoroughly before using them in production alert rules.
{% endhint %}

Initialize a Webhook instance.

Creates a webhook configuration for integrating external notification systems with Fiddler alert notifications. The webhook defines where and how alert messages should be delivered to external platforms.

## Parameters

| Parameter  | Type                     | Required | Default | Description                                                                                                                                                                            |
| ---------- | ------------------------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`     | `str`                    | ✓        | `-`     | Human-readable name for the webhook. Should be descriptive and indicate the target system, team, or purpose (e.g., "ml-team-slack", "critical-alerts-teams").                          |
| `url`      | `str`                    | ✓        | `-`     | The webhook endpoint `URL` provided by the external system. This is the destination where Fiddler will send `HTTP` `POST` requests with alert notification payloads.                   |
| `provider` | `WebhookProvider \| str` | ✓        | `-`     | The webhook provider type (`SLACK`, `MS_TEAMS`, or `GENERIC`). Determines message formatting, payload structure, and delivery method for optimal integration with the target platform. |

## Example

```python
# Slack webhook for ML team alerts
slack_webhook = Webhook(
    name="ml-team-slack-alerts",
    url="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
    provider=WebhookProvider.SLACK
)

# Microsoft Teams webhook for data quality alerts
teams_webhook = Webhook(
    name="data-quality-teams",
    url="https://outlook.office.com/webhook/xxxxx/IncomingWebhook/xxxxx",
    provider=WebhookProvider.MS_TEAMS
)

# Generic webhook for custom integrations
custom_webhook = Webhook(
    name="custom-monitoring-system",
    url="https://monitoring.company.com/webhooks/fiddler",
    provider=WebhookProvider.GENERIC
)
```

{% hint style="info" %}
After initialization, call create() to register the webhook with the Fiddler platform. Webhook URLs are sensitive and should be kept secure.
{% endhint %}

## *classmethod* get(id\_)

Get the webhook instance using webhook id

* **Params uuid:** UUID belongs to the Webhook

### Returns

Webhook object **Return type:** [*Webhook*](#webhook)

## *classmethod* from\_name(name)

Get the webhook instance using webhook name

**Return type:** [*Webhook*](#webhook)

## *classmethod* list()

Get a list of all webhooks in the organization

**Return type:** *Iterator*\[[*Webhook*](#webhook)]

## create()

Create a new webhook

* **Params name:** name of webhook
* **Params url:** webhook url
* **Params provider:** Either 'SLACK' or 'MS\_TEAMS'

### Returns

Created Webhook object.

**Return type:** [*Webhook*](#webhook)

## update()

Update an existing webhook.

**Return type:** None

## delete()

Delete an existing webhook.

**Return type:** None


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fiddler.ai/api/fiddler-python-client-sdk/entities/webhook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
