---
title: entities.webhook
description: Read webhook records with the webhook repository, and change them with the webhook mutations. Same records as the REST Webhooks entity.
canonical: https://developers.coevera.com/reference/graphql/webhook/
section: graphql
verification: schema
generatedFrom: schema f155746 (2026-10-20)
publisher: Coevera
---

# entities.webhook

Read webhook records with the webhook repository, and change them with the webhook mutations. Same records as the REST Webhooks entity.

REST: [Webhooks](https://developers.coevera.com/reference/rest/webhooks.md).

## Queries

- `getById(entityId: ID!): WebhookEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [WebhookEntity!]!` Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
- `getAll(limit: Int, offset: Int, filter: WebhookFilterInput, orderBy: [WebhookOrderByInput!], includeDeleted: Boolean): [WebhookEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: WebhookFilterInput, orderBy: [WebhookOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): WebhookEntityConnection` Returns the records that match the filter as a cursor-paginated connection.
- `getChangedFieldsSinceRevision(id: UUID!, revision: Int!): [UUID!]!` Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.

## Mutations

- `createWebhook(input: CreateWebhookInput!, validationLevel: [ValidationLevel!]): CreateWebhookPayload` Create one record.
- `updateWebhook(input: UpdateWebhookInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateWebhookPayload` Update fields.
- `bulkUpdateWebhook(input: [CreateOrUpdateWebhookInput!]!, deleteInput: [DeleteWebhookInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput): BulkUpdateWebhookPayload` Create or update many; per-item results.
- `deleteWebhook(input: DeleteWebhookInput!): DeleteWebhookPayload` Soft-delete.

## Types

### WebhookEntity (object)

Registered webhook urls will be called when subscribed events occur with access level corresponding to the Webhook owner. Recipient has to receive the webhook in 10 seconds and respond with HTTP 200 (2XX) status.

- `isDeleteProtected: Boolean!` True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
- `id: ID!` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `application: ApplicationEntity` OAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used.
- `client: ClientEntity` Client who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.
- `applicationId: ID` Id of the OAuth application that registered the Webhook.
- `clientId: ID` Id of the user who defined the Webhook.
- `insecureSsl: Boolean!` If True, remote side ssl certificate will not be validated when delivering notifications.
- `options: JSONString` Params in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
- `signature: ID` Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
- `url: String!` Target URL that webhook event payloads are POSTed to.
- `events: [EventEnum!]!` Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.

### WebhookEntityConnection (object)

Paginated list of Webhook records.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [WebhookEntityEdge]!` Contains the nodes in this connection.
- `totalCount: Int` Total number of items in the connection.

### WebhookEntityEdge (object)

A Relay edge containing a `WebhookEntity` and its cursor.

- `node: WebhookEntity` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### WebhookFilterInput (input)

Filter conditions for Webhook records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

- `OR: [WebhookFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [WebhookFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: WebhookFilterInput` Matches records that do not meet this filter.
- `globalSearchQuery: String` Search term matched against the fields that the global search covers for this entity.
- `id: EntityFilterStringField` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: EntityFilterDateTimeField` Last modification time.
- `created: EntityFilterDateTimeField` Creation time.
- `applicationId: EntityFilterStringField` Id of the OAuth application that registered the Webhook.
- `clientId: EntityFilterStringField` Id of the user who defined the Webhook.
- `insecureSsl: Boolean` If True, remote side ssl certificate will not be validated when delivering notifications.
- `signature: EntityFilterStringField` Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
- `url: EntityFilterStringField` Target URL that webhook event payloads are POSTed to.
- `application: ApplicationFilterInput` OAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used. Matches records where a related record meets these conditions.
- `client: ClientFilterInput` Client who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.

### WebhookOrderByInput (input)

Sorting of Webhook records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `application: [ApplicationOrderByNestedInput!]` OAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used. Sorts by fields of the related record, listed in order of priority.
- `client: [ClientOrderByNestedInput!]` Client who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.
- `applicationId: OrderByEnum` Id of the OAuth application that registered the Webhook.
- `clientId: OrderByEnum` Id of the user who defined the Webhook.
- `insecureSsl: OrderByEnum` If True, remote side ssl certificate will not be validated when delivering notifications.
- `url: OrderByEnum` Target URL that webhook event payloads are POSTed to.

### CreateOrUpdateWebhookInput (input)

Field values of a Webhook record to create, or to update when its id is set.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `insecureSsl: Boolean` If True, remote side ssl certificate will not be validated when delivering notifications.
- `options: JSONString` Params in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
- `signature: ID` Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
- `url: String` Target URL that webhook event payloads are POSTed to.
- `events: [EventEnum!]` Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.

### CreateWebhookInput (input)

Field values of a new Webhook record.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `insecureSsl: Boolean!` If True, remote side ssl certificate will not be validated when delivering notifications.
- `options: JSONString` Params in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
- `signature: ID` Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
- `url: String!` Target URL that webhook event payloads are POSTed to.
- `events: [EventEnum!]!` Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.

### DeleteWebhookInput (input)

Id of the Webhook record to delete.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.

### UpdateWebhookInput (input)

Id of a Webhook record and the field values to change.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `insecureSsl: Boolean` If True, remote side ssl certificate will not be validated when delivering notifications.
- `options: JSONString` Params in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
- `signature: ID` Signature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
- `url: String` Target URL that webhook event payloads are POSTed to.
- `events: [EventEnum!]` Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.

### BulkUpdateWebhookPayload (object)

Result of the bulkUpdateWebhook mutation.

- `result: BulkUpdateResults!` Ids of the created, updated and deleted records, and the items that failed.

### CreateWebhookPayload (object)

Result of the createWebhook mutation.

- `webhook: WebhookEntity` The created record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### DeleteWebhookPayload (object)

Result of the deleteWebhook mutation.

- `webhook: WebhookEntity` The deleted record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### UpdateWebhookPayload (object)

Result of the updateWebhook mutation.

- `webhook: WebhookEntity` The updated record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

Types several repositories share, such as `PageInfo` and the filter fields, are in the [types index](https://developers.coevera.com/reference/graphql/types.md). The [SDL](https://developers.coevera.com/graphql/schema.graphql) has the whole schema in one file.

## Example

```graphql
query FirstWebhooks {
  entities {
    webhook {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id modified } }
      }
    }
  }
}
```

```bash
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query FirstWebhooks { entities { webhook { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id modified } } } } } }"}'
```

## Examples of each operation

Built from the schema and checked against it; replace the placeholders, such as `<webhook id>`, with values from your space.

### getById

```graphql
query WebhookGetById {
  entities {
    webhook {
      getById(entityId: "<webhook id>") {
        id
        modified
      }
    }
  }
}
```

### getByIds

```graphql
query WebhookGetByIds {
  entities {
    webhook {
      getByIds(entityIds: ["<webhook id>"]) {
        id
        modified
      }
    }
  }
}
```

### getAll

```graphql
query WebhookGetAll {
  entities {
    webhook {
      getAll(limit: 10) {
        id
        modified
      }
    }
  }
}
```

### getByCriteria

```graphql
query WebhookGetByCriteria {
  entities {
    webhook {
      getByCriteria(first: 10) {
        totalCount
        edges {
          node {
            id
            modified
          }
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}
```

### getChangedFieldsSinceRevision

```graphql
query WebhookGetChangedFieldsSinceRevision {
  entities {
    webhook {
      getChangedFieldsSinceRevision(id: "<webhook id>", revision: 10)
    }
  }
}
```

### createWebhook

```graphql
mutation CreateWebhook {
  createWebhook(
    input: {insecureSsl: false, url: "https://example.com/coevera-webhook", events: [All]}
  ) {
    webhook {
      id
      modified
    }
  }
}
```

### updateWebhook

```graphql
mutation UpdateWebhook {
  updateWebhook(input: {id: "<webhook id>"}) {
    webhook {
      id
      modified
    }
  }
}
```

### bulkUpdateWebhook

```graphql
mutation BulkUpdateWebhook {
  bulkUpdateWebhook(input: [{id: "<webhook id>"}]) {
    result {
      created {
        id
      }
      errors {
        index
        code
        message
        entityId
      }
      updated
      deleted
      errorsOnDelete {
        index
        code
        message
        entityId
      }
    }
  }
}
```

### deleteWebhook

```graphql
mutation DeleteWebhook {
  deleteWebhook(input: {id: "<webhook id>"}) {
    webhook {
      id
      modified
    }
  }
}
```
