> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/in-vivo/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/in-vivo/_mcp/server.

# Observation type created

POST 

Sent once per observation type added to your team's glossary. The payload is the observation type.

Reference: https://docs.benchling.com/in-vivo/webhooks/webhook-team-glossary-observation-created

## Request

### Headers

- `Signature` (string, required) — Lowercase hex-encoded HMAC-SHA256 of the raw request body, keyed with your webhook's signing secret. Compute it over the bytes exactly as received, before parsing, and compare in constant time.

### Payload

- `id` (string, required) — Unique identifier for a webhook event. A retried delivery carries the same identifier, so use it to discard duplicates.
- `event` (enum, required) — The event that occurred.
  - Allowed values: `team.glossary_observation.created`, `team.glossary_observation.updated`, `team.glossary_observation.deleted`
- `version` (enum, required) — A released version of the public API. Each OAuth client is registered against one version, which determines the response shape it receives.
  - Allowed values: `2022-12-14`
- `created_at` (datetime, required) — UTC timestamp with microsecond precision, always suffixed with `Z`, in the form `yyyy-MM-ddTHH:mm:ss.SSSSSSZ`.
- `payload` (TeamObservationGlossaryV1, required) — An observation type in your team's glossary.
- `client_id` (string, optional) — The OAuth client whose API request caused the event. Omitted when the event did not originate from an API request, and on events that never carry it.

## Types

### TeamObservationGlossaryV1

An observation type in your team's glossary.

- `id` (string, required) — Unique identifier for an entry in your team's own glossary.
- `title` (string, required) — The title of the observation type.
- `label` (string, required, nullable) — A short label for the observation type.
- `description` (string, required, nullable) — A longer description of the observation type.
- `status` (enum, required) — Whether a team glossary entry is available for use or archived.
  - Allowed values: `active`, `archived`
- `type` (enum, required) — How values are recorded against a team glossary entry. `numeric` entries have a configured min/max range, `severity` entries accept Mild/Moderate/Severe, and `none` entries carry free-form text with no structured value.
  - Allowed values: `none`, `severity`, `numeric`
- `numeric` (ObservationTeamGlossaryOptionsV1, optional) — The bounds of a numeric observation type. At least one of `min` and `max` is set.

### ObservationTeamGlossaryOptionsV1

The bounds of a numeric observation type. At least one of `min` and `max` is set.

- `min` (string, required, nullable) — The minimum accepted value, as a string.
- `max` (string, required, nullable) — The maximum accepted value, as a string.