Workspace setup
Conversational workspace onboarding and settings editing — read the current customization, fetch the canonical taxonomy, patch settings axis by axis, then finish onboarding to build the feeds. The workspace is always resolved from your sign-in; no tool takes a workspace ID.
get_workspace_settings
Read this workspace's current customization settings.
Parameters
None. The workspace is resolved from your sign-in.
Returns
{ workspaceId, name, settings } where settings is the whitelisted projection: description, socials, industries, subSectors, excludedSubSectors, countries / states / cities + geographyMode, sources, audience, targetMarkets, brandSize, excludedSponsors, sponsorWhitelist, sportsBusinessFilters, entity, onboardingComplete, trial.
entity is the LOCKED read-only seed entity (the club/brand this workspace is built around) — it cannot be changed here. Use get_entity(entity.id) to list its known sponsors when building the excluded-sponsors step.
Example prompt
"Show me my workspace's current targeting settings"
get_onboarding_taxonomy
The canonical onboarding taxonomy — call this first before writing settings with update_workspace_settings.
Parameters
None. The workspace is resolved from your sign-in.
Returns
industries: ordered industry taxonomy with their sub-sectors and FR labelsbrandSize: canonical revenue buckets (ordered 0–50M → 10B+)audience: canonical axes —ageRanges,incomeTiers,origins,gendersgeography:continents,groups,countries({name, iso2, continent}),popularCountries
Only canonical tokens are stored — a non-canonical token sent to update_workspace_settings is DROPPED (not stored) and reported in the PATCH response's dropped map. Age ranges use an EN-DASH (e.g. "18–24"), not a hyphen.
Example prompt
"What industries and sub-sectors can I target?"
update_workspace_settings
Update this workspace's customization settings (partial update). An omitted parameter leaves the stored value untouched; a provided list REPLACES the stored one entirely (send the full new list, not a delta). List order = ranking (first item weighs most).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | Workspace description |
socials | string[] | No | Social profile URLs |
industries | string[] | No | Industry scope (canonical tokens) |
sub_sectors | string[] | No | THE matcher gate — drives the recommendations and hot-brands feed. Canonical tokens from get_onboarding_taxonomy. |
excluded_sub_sectors | string[] | No | Sub-sectors to exclude |
countries | string[] | No | Target countries |
countries_all | boolean | No | true targets every country |
states | string[] | No | Target states/regions |
cities | string[] | No | Target cities |
geography_mode | string | No | "local" or "national" |
sources | object[] | No | Signal-source toggle list: {id, label, url, preset, enabled} |
audience | object[] | No | Audience portions: {percentage, ageRanges, incomeTiers, origins, genders}; age ranges use an EN-DASH (e.g. "18–24") |
target_markets | array | No | Ranked b2b/b2c target-market entries (at most 2) |
brand_size | string[] | No | Canonical revenue buckets |
excluded_sponsors | string[] | No | Brand DISPLAY NAMES to silence (e.g. the entity's current sponsors) — they disappear from feeds and recommendations |
sponsor_whitelist | string[] | No | Brand names OR ids; names are resolved to KG Brand ids server-side |
sports_business_filters | object | No | Deal-scan filters: {sports, continents, countries, dealTypes} |
Returns
{ ok, updated, dropped, settings } — dropped lists any non-canonical tokens that were rejected per field. If it is non-empty, self-correct using the exact tokens from get_onboarding_taxonomy and PATCH again. Prefer updating one axis at a time so a drop is easy to attribute.
Example prompt
"Target luxury and automotive sub-sectors in France and Monaco"
finish_onboarding
Mark onboarding complete and start the personalize pipeline: feeds, morning recap, contacts, and recommendations (~2–6 min). Idempotent — safe to call again. Also call this after MAJOR settings changes (e.g. new sub-sectors or geography) to rebuild the feeds.
Parameters
None. The workspace is resolved from your sign-in.
Returns
{ ok, onboardingComplete, personalize: { mode }, warnings } — mode is queued / inline / already-running / failed-to-start; warnings surfaces soft preflight holes (e.g. empty matcher gate, no target geography) without blocking.
Example prompt
"We're done setting up — build my feeds"
get_personalize_status
Status of this workspace's personalize pipeline. Poll after finish_onboarding to see whether the feeds, recap, contacts and recommendations build has completed (or failed) per step.
Parameters
None. The workspace is resolved from your sign-in.
Returns
{ state, stages, error, startedAt, updatedAt }, or { state: "none" } when no run was ever started for this workspace.
Example prompt
"Is my workspace build finished yet?"
get_sources_presets
List the curated scraper source presets available when configuring the workspace's sources setting.
Returns
List of { id, label, url } presets.
Example prompt
"What news sources can I track for deals?"