---
title: "Update hook"
method: PATCH
path: "/api/v3/meta/bases/{baseId}/hooks/{hookId}"
tags: ["Hooks"]
---

# Update hook

`PATCH /api/v3/meta/bases/{baseId}/hooks/{hookId}`

## Request

- Base URL: `https://app.nocodb.com`
- URL: `https://app.nocodb.com/api/v3/meta/bases/{baseId}/hooks/{hookId}`
- Auth: one of:
  - API key in header `xc-token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/nocodb/apis/nocodb-v3/docs/api/v3/meta/bases/:baseId/hooks/:hookId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update the details of a specific hook.

**Note**: Hook APIs are available on cloud-hosted **Business** plans and above, and on licensed self-hosted deployments (**Business** plan and above).

## Path parameters

- `baseId` string, required
- `hookId` string, required

## Request body

- HookV3Update: Request body for updating an existing hook.
  - `title` string: Title of the hook.
  - `description` string: Description of the hook.
  - `event` 'record' | 'manual': Event trigger type. 'record' triggers after the operation completes.
  - `operation` string[]: Operations that trigger the hook.
  - `notification` union
    - HookNotificationV3Url: URL webhook notification. Sends an HTTP request when triggered.
      - `type` 'URL', required: Notification channel type.
      - `payload` object, required: HTTP request configuration.
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required: HTTP method for the webhook request.
        - `path` string, required: URL to send the webhook to. Supports Handlebars templates.
        - `body` string: Request body. Supports Handlebars templates.
        - `headers` object[]: Custom HTTP headers to include in the request.
          - `name` string: Header name.
          - `value` string: Header value. Supports Handlebars templates.
          - `enabled` boolean: Whether this header is active.
        - `parameters` object[]: Query parameters to append to the URL.
          - `name` string: Query parameter name.
          - `value` string: Query parameter value. Supports Handlebars templates.
          - `enabled` boolean: Whether this parameter is active.
        - `auth` string: Authentication configuration. Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Email: Email notification via configured email adapter.
      - `type` 'Email', required: Notification channel type.
      - `payload` object, required: Email configuration.
        - `to` string, required: Recipient email address. Supports Handlebars templates.
        - `subject` string, required: Email subject line. Supports Handlebars templates.
        - `body` string, required: Email body (HTML). Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Script: Script notification. Executes a saved script when triggered.
      - `type` 'Script', required: Notification channel type.
      - `payload` object, required: Script execution configuration.
        - `scriptId` string, required: Identifier of the script to execute.
        - `method` string: HTTP method used to invoke the script endpoint.
        - `path` string: Script execution endpoint path.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Messaging: Messaging notification via plugin adapter (Slack, Discord, Telegram, etc.).
      - `type` 'Slack' | 'Discord' | 'Telegram' | 'Whatsapp' | 'Twilio', required: Messaging platform type.
      - `payload` object, required: Messaging configuration.
        - `body` string, required: Message body. Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
  - `active` boolean: Indicates if the hook is active.
  - `trigger_fields` string[]: Field IDs that trigger the hook when modified.

## Response `200`

Hook updated successfully.

- HookV3: Hook configuration for table-level event triggers.
  - `id` string, required: Unique identifier for the hook.
  - `table_id` string, required: Unique identifier of the associated table.
  - `title` string, required: Title of the hook.
  - `description` string, nullable: Description of the hook.
  - `event` 'record' | 'manual', required: Event trigger type. 'record' triggers after the operation completes.
  - `operation` string[], required: Operations that trigger the hook.
  - `notification` union
    - HookNotificationV3Url: URL webhook notification. Sends an HTTP request when triggered.
      - `type` 'URL', required: Notification channel type.
      - `payload` object, required: HTTP request configuration.
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required: HTTP method for the webhook request.
        - `path` string, required: URL to send the webhook to. Supports Handlebars templates.
        - `body` string: Request body. Supports Handlebars templates.
        - `headers` object[]: Custom HTTP headers to include in the request.
          - `name` string: Header name.
          - `value` string: Header value. Supports Handlebars templates.
          - `enabled` boolean: Whether this header is active.
        - `parameters` object[]: Query parameters to append to the URL.
          - `name` string: Query parameter name.
          - `value` string: Query parameter value. Supports Handlebars templates.
          - `enabled` boolean: Whether this parameter is active.
        - `auth` string: Authentication configuration. Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Email: Email notification via configured email adapter.
      - `type` 'Email', required: Notification channel type.
      - `payload` object, required: Email configuration.
        - `to` string, required: Recipient email address. Supports Handlebars templates.
        - `subject` string, required: Email subject line. Supports Handlebars templates.
        - `body` string, required: Email body (HTML). Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Script: Script notification. Executes a saved script when triggered.
      - `type` 'Script', required: Notification channel type.
      - `payload` object, required: Script execution configuration.
        - `scriptId` string, required: Identifier of the script to execute.
        - `method` string: HTTP method used to invoke the script endpoint.
        - `path` string: Script execution endpoint path.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
    - HookNotificationV3Messaging: Messaging notification via plugin adapter (Slack, Discord, Telegram, etc.).
      - `type` 'Slack' | 'Discord' | 'Telegram' | 'Whatsapp' | 'Twilio', required: Messaging platform type.
      - `payload` object, required: Messaging configuration.
        - `body` string, required: Message body. Supports Handlebars templates.
      - `trigger_form` boolean: If true, the hook only fires when submitted via a specific form.
      - `trigger_form_id` string: Form view ID that triggers this hook. Only applicable when trigger_form is true.
      - `include_user` boolean: If true, includes the triggering user's info in the webhook payload.
  - `active` boolean: Indicates if the hook is active.
  - `trigger_fields` string[]: Field IDs that trigger the hook when modified.
  - `created_at` string, date-time: Timestamp when the hook was created.
  - `updated_at` string, date-time: Timestamp when the hook was last updated.

## Other responses

- `400`: Invalid request body.
- `403`: Webhook APIs are not included in this plan.
- `404`: Hook not found.
- `500`: Server error.

## Changes

- **2026-10-13** `2ba4267a99d7`: 1 info
  - added the non-success response with the status `403`

[Operation history](https://skmtc.dev/nocodb/apis/nocodb-v3/changes/api/v3/meta/bases/:baseId/hooks/:hookId/patch.md)

---

[API](https://skmtc.dev/nocodb/apis/nocodb-v3.md) - [All operations](https://skmtc.dev/nocodb/apis/nocodb-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/nocodb/apis/nocodb-v3/revisions/62a735aaf849?raw)
