Skip to main content
PUT
Updates the authenticated organization’s notification preferences and, when supplied, its default webhook URL or secret. The update is a partial upsert: omitted fields keep their current values. Email and Slack delivery are graph-wide for enabled fields; this endpoint does not change which people are visible from List events. The Gateway stores the webhook URL and secret in organization settings, but it does not POST profile diffs to that URL. Poll the events endpoint instead.

Request body

All fields are optional. Send JSON with Content-Type: application/json.
string[]
Replaces the subscribed field list when supplied. Supported values are open_to_work, between_roles, exploring, left_company, joined_company, removed_position, headline, about, and role_description. Unknown and non-string array items are ignored, and duplicates are removed. At least one known value must remain, or the Gateway returns 400. Omit this field to preserve the current list. A non-array value currently selects the default field list rather than failing validation; always send an array to avoid an unintended reset.
boolean
Enables or disables email delivery. Omit to preserve the current value.
string[]
Replaces the saved email list. String entries containing @ are trimmed, lowercased, and the first 20 accepted entries are stored. Omit to preserve the current list. The implementation does not apply a stricter email-format validator.
boolean
Enables or disables Slack delivery. Omit to preserve the current value. A successful send still requires a Slack installation and a selected channel.
string
Optional channel identifier, trimmed to at most 64 characters. Omit to preserve the current value.
string
Optional display name, trimmed to at most 80 characters. Omit to preserve the current value.
string
Optional organization default webhook URL. It is trimmed when stored; a non-empty value updates it. An empty string is treated as no update by the Gateway. The Gateway stores it and reports only whether one is configured. It does not validate or deliver to the URL here.
string
Optional organization webhook secret. It is trimmed when stored and is never returned. An empty string does not replace an existing secret.

Response

200
org_id is a string; fields, emails, and the enabled flags are non-nullable. slack_channel_id and slack_channel_name are nullable strings. webhook.configured is a non-nullable boolean based only on whether a default webhook URL exists. Neither the URL nor the secret is returned.

Errors, side effects, and retries

A successful call persists notification preferences and any supplied webhook setting. There is no idempotency key. Repeating the same complete body should converge to the same settings, but after a timeout do not assume whether the write committed: GET /signals/preferences first to reconcile readable preferences. GET /me can confirm only whether a webhook is configured, not the URL or secret; do not treat that boolean as proof a particular webhook update succeeded. Preferences and webhook settings are written separately, so a failure can leave a partial update. The default Gateway limit is 300 requests per minute per client IP, not per API key.