Desk

Update Desk Org Settings

Update org-level desk settings. PARTIAL - unset fields are untouched.

Requires settings:write, declared on this route because the app's own gate is a Depends-defaulted PARAMETER of the handler and a direct call resolves nothing.

THIS IS THE ORG'S ON SWITCH, AND ITS SPEND CAPS. Saving here registers the org on the desk worker's poll list - and saving every decision off unregisters it - so this one call starts or stops the desk producing work for the whole organisation. It also carries max_auto_account_plans_per_day, max_account_replans_per_day and max_skill_plans_per_day, which are daily caps on CHARGED model calls, and desk_acts_on_signals, desk_drafts_with_ai and stalled_deal_send_email, which let the desk act and email on its own. A plain write would make raising an org's spend cap the same grant as renaming a record.

400 with the reason on anything the settings validator refuses, including an empty body - "no settings provided" is an error here rather than a silent no-op.

put/desk/org-settings

Request

  • Base URL: https://be.graph8.com/api/v1
  • URL: https://be.graph8.com/api/v1/desk/org-settings
  • Auth: HTTP bearer

Headers

Authorizationstring nullable
X-Target-Org-Idstring nullable

Request body

no_reply_threshold_daysinteger nullable
no_reply_channelsstring[] nullable
enrichment_win_fieldsstring[] nullable
max_cards_per_generator_per_dayinteger nullable
max_auto_account_plans_per_dayinteger nullable

DAILY CAP on charged auto account plans.

max_account_replans_per_dayinteger nullable

DAILY CAP on charged account re-plans.

max_skill_plans_per_dayinteger nullable

DAILY CAP on charged skill plans.

plan_required_stage_idsstring[] nullable
signals_enabledobject nullable

Per-signal kill switches. ai_briefs is the desk-wide LLM-spend gate and morning_kickoff gates the daily briefing.

daily_action_targetinteger nullable
pipeline_target_quarterlyinteger nullable
lead_sla_minutesinteger nullable
desk_writes_deal_plansboolean nullable
desk_acts_on_signalsboolean nullable
desk_keeps_crm_tidyboolean nullable
desk_drafts_with_aiboolean nullable
reps_may_fire_workflowsboolean nullable
desk_escalates_to_managersboolean nullable
stalled_deal_enabledboolean nullable
stalled_deal_stage_idsstring[] nullable
stalled_deal_warn_after_daysinteger nullable
stalled_deal_approve_after_daysinteger nullable
stalled_deal_manager_user_idstring nullable
stalled_deal_fallback_manager_user_idstring nullable
stalled_deal_reassign_to_user_idstring nullable
stalled_deal_send_emailboolean nullable

Let the stalled-deal escalation EMAIL the manager.

stalled_deal_undo_window_minutesinteger nullable
stalled_deal_reminder_after_hoursinteger nullable
stalled_deal_skip_crm_synced_transferboolean nullable
stalled_deal_require_activity_evidenceboolean nullable
stalled_deal_min_deal_age_daysinteger nullable
stalled_deal_min_amountinteger nullable
overdue_self_task_enabledboolean nullable
overdue_task_max_age_daysinteger nullable
contact_update_planned_deals_onlyboolean nullable
fallback_owner_emailsstring[] nullable
signal_policiesobject nullable

Response

Successful Response

dataDeskPayload required

An open envelope for one desk object.

Open on purpose - see the module docstring. A rebuilder gets every field the desk returns, including ones added after this contract version.

Changes

No recorded changes to this operation across all 2 revisions of this API.