Change organization settings
update_settingsChanges one or more of the organization's settings, as a person on the Settings page would, with this seat's role deciding what it may change. Sending controls, anything that opens a page to the public, payments, spend increases, and access are never available to agents. Owner-level and confirm-level settings are available when the owner turned on "Let this agent change owner settings" for this seat on the Team page (on by default for an agent the owner adds); the owner is told about each such change, with your justification if you give one. Pass changes as { "": value }. Keys: notification_settings.enabled (toggle); notification_settings.rules (editor); settings.booking_platforms (list); urgency_settings.do_now_lead_minutes (number); urgency_settings.task_lookahead_days (number); org.chime_enabled (toggle); settings.reply_chime.delayMinutes (number); settings.reply_chime.repeatSeconds (number); settings.reply_chime.muteMinutes (number); settings.schedule.view (enum); settings.schedule.startHour (number); settings.schedule.weekStart (enum); settings.holiday_behavior (enum); settings.holiday_audience (enum); org_holidays (list); settings.field_schedule_requests_enabled (toggle); settings.training_access_code_hours (number); platform_email_rules (list); settings.review_alert_at_or_below (number); blocked_senders (list); auto_assignment_config.enabled (toggle); auto_assignment_config.pool (list); auto_assignment_config.auto_classify_flows (toggle); booking_settings.policies.clock.autoClockOut (toggle); booking_settings.policies.clock.signatureRequired (toggle); booking_settings.policies.clock.geofenceRadiusHighM (number); booking_settings.policies.clock.geofenceRadiusMediumM (number); booking_settings.policies.clock.geofenceRadiusFallbackM (number); booking_settings.policies.notifications.cleanerMessageMode (enum); settings.persona_name (text, null resets it); tone_settings.preset (enum); tone_settings.customPrompt (text); org_preferences (editor); settings.notification_admin_phone (text, null resets it); settings.notification_admin_email (text, null resets it); settings.checks.callback_enabled (toggle); settings.checks.callback_minutes (number); settings.checks.close_on_activity (toggle). Editor-owned keys run one operation on that editor's own save, sent alone in its own call; read the current value first with read("settings",{area:""}): notification_settings.rules = { op, id?, body? } with op one of: set_destinations ({ edit: "destinations", alerts?: string[] (keys from grouped.catalog), groups?: ("waiting"|"wrong"|"decide"|"fyi")[], destinations: list } sets EXACTLY these destinations for the named alerts and groups; every other alert keeps its own. A destination is { channel: "discord", target_type: "channel", channel_id } (an id from channels), { channel: "discord", target_type: "user", user_id }, { channel: "sms" }, { channel: "push" } or { channel: "webhook" }); set_in_sergio ({ edit: "in_sergio", groups: ("waiting"|"wrong"|"decide"|"fyi")[], value: boolean } shows (or stops showing) every alert of those groups in Sergio); org_holidays = { op, id?, body? } with op one of: add ({ date: "YYYY-MM-DD", label?: string, recurringAnnual?: boolean } (re-adding a date updates it)); remove ({ id } (the holiday id from the read)); platform_email_rules = { op, id?, body? } with op one of: add ({ name, sender_pattern?, subject_pattern?, source_label?, is_active?, priority?, extract_*?: boolean } (one of sender_pattern / subject_pattern)); update (id = the rule id; body = the fields to change, as in add); remove (id = the rule id; no body); blocked_senders = { op, id?, body? } with op one of: add ({ email_pattern: string (an address or *@domain), reason?: string }); remove (id = the blocked sender id; no body); org_preferences = { op, id?, body? } with op one of: add ({ text: string } (one plain-English rule) or { kind, statement, priority?, params? }); update ({ id, statement?, priority?, active?: boolean, kind?, params? }); remove (id = the rule id; no body). Pass the same idempotency_key when retrying; a repeat returns the original result.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"changes": "<changes>",
"idempotency_key": "<idempotency_key>"
},
"name": "update_settings"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | Setting key -> new value. Send only the keys that change. | |
| justification | No | Optional: why the business wants this change. Shown to the owner in the notice Sergio sends after an owner-level change. | |
| idempotency_key | Yes | Your id for this operation (8-128 of A-Z a-z 0-9 . _ : -). Reuse it on every retry of the same operation; use a new one for a new operation. |