facade
Manage Settings
Update company configuration — the consolidated settings writer.
Actions (no ids — settings are singletons per company):
- offer_publish: make an offer public (id = offer UUID). First fetch type='offer_publication', then review its exact facts. Payload: {expected_version: preview.version, facts: preview.facts}. Owner/operator approval publishes these facts for buyers and agents, including discovery and incoming inquiries. Third-party copies cannot be recalled.
- offer_withdraw: make an offer private (id = offer UUID; payload = {expected_version}). Revokes its buyer sessions too.
- buyer_inquiry_decide: review a buyer inquiry (id = inquiry UUID; payload = {expected_version: action_version, decision: reply|decline, reply?: exact reviewed text}). Reply appears only in the buyer session.
- profile: update the company profile / ICP (payload = the profile fields; this steers research match scoring). If supplied, industry must be one CanonicalIndustry value: Agriculture, Construction, Consumer Goods, Consumer Services, Education, Energy & Utilities, Financial Services, Government, Healthcare, Hospitality & Travel, Legal Services, Manufacturing, Marketing & Advertising, Media & Entertainment, Nonprofit, Professional Services, Real Estate, Retail & E-commerce, Software & Technology, Staffing & Recruiting, Telecommunications, Transportation & Logistics, Wholesale & Distribution, or Other. Provider labels and Unspecified are rejected.
- auto_fill: AI-fill the company profile from the website (payload optional: {website_url?}; returns a job to poll via fetch type='job').
- automation: update workspace automation settings (payload = the automation fields, including the per-workspace diagnosis switch diagnosis_loop_disabled, and impact_verifier_default: who verifies customer impact on new promises, {roles, customer_confirmation_required}; the role agent verifies only from the customer's own words and needs customer_confirmation_required=true and a human role beside it; owners and operators only).
- marketing: update LinkedIn marketing settings (payload = the marketing fields).
- cta_link: manage call-to-action links (payload = {action: create|update|delete, cta_link_id?, name?, url?, cta_type?, is_active?}).
- offer_create: add a live offer to the catalog objectives sell from (payload = {name, pricing_type?: fixed|commission|hybrid|custom, list_price_minor?, currency?, billing_period?, commission_rate_bps?, commission_basis?, pricing_notes?, description?, monetization_model?, contract_term_months?}). Fixed/hybrid require a minor-unit price (zero means free); commission/custom omit price and period. Commission rate may be unknown; a stated rate is 1–10000 basis points (100 = 1%) and requires its revenue basis. Custom requires pricing_notes. Hybrid is a base fee plus commission. Monetary forecasts require fixed pricing or separate agreed deal terms. contract_term_months (1–120) is the declared contract term of a subscription or retainer offer, never its billing period: a 12-month contract billed monthly declares 12. The offer-term autopilot proposes one for a recurring offer that declares none; a term set here carries basis operator and no agent overwrites it.
- offer_update: edit a live offer (id = offer UUID; payload = {name?, description?, contract_term_months?}). Setting contract_term_months records basis operator; null clears the declaration so the autopilot may propose one again. Economic terms (price, currency, billing period, commission, monetization model) are immutable; retire and create a successor to change them.
- offer_retire: retire an offer no live objective sells (id = offer UUID; no payload); the name frees for a new live offer.
- view_save: save a private view of the Accounts, People or Deals table (payload = {tab: accounts|people|deals, name, definition: {params}}). params are the table's URL keys: accounts q, industry, account_list, research_objective, owner (me | member id), open_deals (yes|no), sort, dir, cols; people q, objective, research (researched|stub), account_list, list, stage, enrollment (enrolled|paused|stopped), score (60- | -39 | 40-59), added (7d|30d|90d|365d), persona, sort, dir, cols; deals q, scope, pipeline, stage (a stage label), owner, sort, dir, cols, mode (board; the table is the default). Returns the view with url, which opens it. List views with fetch type='settings' subtype='record_views' filters={tab}. A new view is private; share it with view_update.
- view_update: rename, redefine, share or unshare a view the caller may change (id = view id; payload = {expected_revision, name?, definition?, shared?}). shared: true shows the view to everyone in the workspace; only the view's creator shares or unshares it.
- hubspot_sync_settings: set the custom HubSpot contact properties to mirror into company_people.custom_fields (payload = {extra_contact_properties: [...]}); CHANGING the list auto-enqueues a full backfill so existing contacts pick up the new attributes.
- hubspot_backfill: kick a full HubSpot re-pull for this company (owners → companies → pipelines → contacts → deals → lists → engagements). No payload. Heavy (hours at 250k+ contacts). The recovery path when contacts were imported before their custom properties were configured. Operators target a client with for_company. Team objective-delegation grant/revoke moved to manage_outreach (objective_delegate / objective_revoke_delegation, VRU-878).
Payloads are validated by the underlying route's own schema, so a bad field returns that route's precise 422.
post/api/facade/manage_settings
Request
- Base URL: https://api.vruum.ai
- URL: https://api.vruum.ai/api/facade/manage_settings
- Auth: HTTPBearer (a scheme the document does not define)
Request body
Response
Successful Response
unknown required
Changes
No recorded changes to this operation across all 1 revision of this API.