Update workspace settings
update_workspaceChange the workspace's settings as a PATCH: every input is optional and only the settings you pass are touched — unsent settings keep their stored value, and a value that already matches is a no-op. Covers timezone (IANA), date_format, default_currency (refused while any manual exchange rate exists — remove them with set_exchange_rates first), currency_display, logo_url, deal_value_metric, auto_create_contacts, the meeting recorder (recorder_enabled + recorder_auto_scope; enabling connects every member's calendar), recorder_notice_enabled, allow_domain_join and flags.automation_enabled. The workspace NAME and qualification FRAMEWORK are not here: they are set through finalize_workspace_setup. The three posture switches — recorder_enabled, recorder_notice_enabled, allow_domain_join — need confirm:true whether turning on or off; without it the call returns a preview of every change and writes nothing. An invalid value or a refused change writes nothing and names the problem. Admin-only. Returns the full settings block (name, framework, timezone, date_format, default_currency, currency_display, logo_url, deal_value_metric, auto_create_contacts, recorder_enabled, recorder_auto_scope, recorder_notice_enabled, allow_domain_join, flags) plus changed, the settings that actually moved.
When to use: When an admin wants to change a workspace setting from the conversation — the time zone, date or money format, the default currency, the logo, how deal values normalize, whether ingestion mints contacts, the meeting recorder and its notice, domain join, or the automation flag. A patch: only what you pass changes; the posture switches ask for confirm:true.
Example: Set our timezone to Europe/Stockholm and the date format to DD/MM/YYYY.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| flags | No | Workspace capability flags, currently { automation_enabled }. | |
| confirm | No | true carries out a change to recorder_enabled, recorder_notice_enabled or allow_domain_join; omitted or false returns the preview and writes nothing. | |
| logo_url | No | Workspace logo as an http(s) URL; null clears it. | |
| timezone | No | IANA time zone name, e.g. Europe/Stockholm or America/New_York; an unknown zone is refused. | |
| date_format | No | Workspace-wide numeric date format; null restores Automatic (the pinned MM/DD/YYYY canon). | |
| currency_display | No | Money read style — symbol ($1,200) or code (USD 1,200); null restores the default symbol rendering. | |
| default_currency | No | ISO 4217 code (USD, EUR, GBP, SEK, DKK, NOK, JPY, KWD, BHD). Locked while any manual exchange rate exists because stored rates are denominated in it. | |
| recorder_enabled | No | The meeting recorder's one admin switch; on connects every member's calendar to the recorder. Posture change: needs confirm:true. | |
| allow_domain_join | No | Let colleagues on the workspace's organisational email domain join without an invite. Access posture: needs confirm:true. | |
| deal_value_metric | No | How product-derived deal values normalize onto a time basis; existing amounts are never rewritten. | |
| recorder_auto_scope | No | Which meetings the recorder joins by itself: external (customer calls, the default) or off (only a human's record_meeting). | |
| auto_create_contacts | No | Whether mail and calendar ingestion may mint NEW contacts; false stops minting while existing contacts keep getting activity. | |
| recorder_notice_enabled | No | Email external attendees about an hour before a recorded meeting with a one-click opt-out. Consent posture: needs confirm:true. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| changed | No | ||
| changes | No | ||
| updated | No | ||
| problems | No | ||
| settings | No | ||
| requires_confirm | No |