编辑 | blame | 历史 | 原始文档
---
title: Create custom events for webhooks in Label Studio
short: Webhook development
type: guide
tier: all
order: 410
order_enterprise: 410
meta_title: Create Custom Webhooks in Label Studio
meta_description: Label Studio documentation for creating custom webhook event triggers to create custom integrations between Label Studio and your machine learning pipeline
section: "Integrate & Extend"
parent: "webhooks"
parent_enterprise: "webhooks"

---

If you want to trigger custom events for webhooks in Label Studio, you can extend the webhook event model.


## Create a custom webhook event

To create a custom webhook event, add your own action to the `WebhookActions` model.

For example:

```python
class WebhookAction(models.Model):
    ...
    SOMETHING_HAPPENED = 'SOMETHING_HAPPENED'
    ...
    ACTIONS = {
        SOMETHING_HAPPENED: {
            'name': _('Something happened'),
            'description': _("A thing happened. We wanted to let you know."),
            'key': 'something',
        },
        ...
    ...
```

After declaring the action and the associated properties and payload details in the `WebhookAction` class, call the event action in the code where it occurs. For example:

```
...python
result = do_something()
emit_webhooks(organization, WebhookAction.SOMETHING_HAPPENED, {'something': [result]})
...
```

You can retrieve the organization details using `Organization.objects.first()`.

### Call event actions with Python functions
There are several functions you can use to call event actions. Refer to the following table:

| Python function | When to use | Additional details |
| --- | --- | --- | 
| `get_active_webhooks()` | Get all active webhooks. | |
| `run_webhook()` | Run one webhook and pass some payload. | | 
| `emit_webhooks()` | Send requests for all webhooks for an action. | | 
| `emit_webhooks_for_instances()` | Send serialized instances with webhook requests. | You must declare a `serializer` in the `WebhookAction.ACTIONS` model.|
 

### Call event actions with decorators in API source code 

You can use decorators with the CRUD REST methods to send event actions to webhooks. You can use the following: 

| Decorator syntax | When to use | Details |
| --- | --- | --- | 
| `@api_webhook()` | `POST`/`PUT`/`PATCH` requests | Expects a response with an `id` and uses the `.get_object()` function after the request to send that information. |
| `@api_webhook_for_delete()` | `DELETE` | Sends only the `id` field after a successfully delete operation. |