The strategic brief (Strategic Direction) is the workspace’s master business document, mission, goals, SWOT, finances, org chart, systems, and 100+ structured fields stored on business_briefs. GET returns the full row; PATCH accepts any allowlisted column (see field reference below).
Endpoints
GET /strategic-brief, get latest brief (or specific brief with ?briefId=)
PATCH /strategic-brief, partial update of allowlisted fields
Scopes and permissions
brief:read for GET; brief:write for PATCH
Token owner must have read (GET) or update (PATCH) permission on the Strategic Direction workspace page
Existing MCP OAuth connections created before brief:read / brief:write were added must reconnect to grant the new scopes.
Get strategic brief (GET /strategic-brief)
Without briefId, returns the latest brief for the workspace
briefId (query), optional UUID of a specific business_briefs row
curl "https://api.elevale.app/v1/workspaces/{workspaceId}/strategic-brief" \
-H "Authorization: Bearer elv_pat_..."Example GET response
{
"data": {
"brief": {
"id": "uuid",
"business_name": "Acme Ltd",
"mission_statement": "Help SMEs scale with clarity",
"short_term_goals": [{ "title": "Grow MRR", "description": "20% growth", "status": "identified" }],
"swot_strengths": [{ "text": "Expert team", "description": "Deep sector experience" }],
"financial_metrics": { "currentMonthlyTurnover": 85000, "netMargin": 12 },
"staff_members": [{ "id": "ceo-1", "name": "Alex Morgan", "role": "CEO" }],
"sector": "Professional services",
"version": 3,
"updated_at": "2026-07-29T12:00:00.000Z"
}
},
"meta": { "requestId": "..." }
}Field names use snake_case matching database columns. The response includes every column on the row, use the field reference below to interpret values. Complex fields are JSON (arrays or objects) stored as jsonb.
Update strategic brief (PATCH /strategic-brief)
Send only the fields you want to change. Preferred shape wraps fields in updates; top-level allowlisted fields are also accepted. camelCase keys (e.g. missionStatement) are normalized to snake_case when they match an allowlisted column.
PATCH body
briefId (optional), target brief UUID; defaults to latest
updates (preferred), object of field → value pairs
Or top-level fields, e.g. mission_statement, swot_strengths without wrapping in updates
senderAs / mcpClientName (optional), MCP attribution; ignored for column mapping
curl -X PATCH "https://api.elevale.app/v1/workspaces/{workspaceId}/strategic-brief" \
-H "Authorization: Bearer elv_pat_..." \
-H "Content-Type: application/json" \
-d '{"updates":{"mission_statement":"Help SMEs scale with clarity","swot_strengths":[{"text":"Expert team","description":"Deep sector experience"}]}}'JSON shapes for common complex fields
// Goals
"short_term_goals": [
{ "title": "Grow recurring revenue", "description": "Target 20% MRR growth", "status": "identified" }
]
// SWOT item
"swot_strengths": [
{ "text": "Expert team", "description": "Deep sector experience across leadership" }
]
// USP
"unique_selling_points": [
{ "text": "Done-for-you implementation", "status": "Unique" }
]
// Business challenge
"key_business_challenges": [
{ "text": "Capacity constraints", "description": "Delivery team at 95% utilisation", "status": "High" }
]
// Org chart member (send full staff_members array when replacing)
"staff_members": [
{ "id": "ceo-1", "name": "Alex Morgan", "role": "CEO", "email": "[email protected]", "parentId": null }
]
// Financial metrics (partial example)
"financial_metrics": {
"currentMonthlyTurnover": 85000,
"netMargin": 12,
"grossMargin": 45,
"debtorDays": 32
}When updating array fields (goals, SWOT, staff_members, USPs), send the complete array you want stored, the API replaces the column value; it does not merge individual array items.
Full field reference (PATCH allowlist)
Only columns listed here can be updated via PATCH. Unknown keys are silently ignored. Grouped by Strategic Direction section.
Identity & mission
Core business identity shown at the top of Strategic Direction.
business_name (string), Legal or trading name of the business.
mission_statement (string), Mission statement, why the business exists.
core_values (string[]), List of core values (plain strings).
sector (string), Industry or sector label.
company_details (object), Structured company profile (addresses, registration, contacts). Shape matches in-app Company Details section.
is_draft (boolean), When true, brief is marked as draft in the workspace.
Goals
Short- and long-term strategic goals. Each goal may be a plain string or { title, description?, status? }.
short_term_goals (string[] | object[]), Near-term goals. Prefer { title, description, status } objects; legacy string entries are supported.
long_term_goals (string[] | object[]), Long-term goals. Same shape as short_term_goals.
goal_details (string), Free-text elaboration on goals and priorities.
short_term_goals_status (object), Per-goal status metadata keyed by goal id or index.
long_term_goals_status (object), Per-goal status metadata for long-term goals.
Challenges & situational analysis
key_business_challenges (object[]), Primary challenges as { text, description?, status } where status is High | Medium | Low.
business_challenges (object[]), Additional challenge list (same shape as key_business_challenges).
situational_analysis (string), Market context, competitive landscape, and business environment narrative.
improvement_areas (string | object), Areas targeted for improvement.
business_dependency (string), Key dependencies (people, systems, clients) the business relies on.
SWOT analysis
Each SWOT array holds { text, description? } items. Removed items are archived in removed_swot_* arrays. Status objects track review state.
swot_strengths (object[]), Strengths, { text, description? }.
swot_weaknesses (object[]), Weaknesses, { text, description? }.
swot_opportunities (object[]), Opportunities, { text, description? }.
swot_threats (object[]), Threats, { text, description? }.
removed_swot_strengths (object[]), Archived strengths removed from the active list.
removed_swot_weaknesses (object[]), Archived weaknesses.
removed_swot_opportunities (object[]), Archived opportunities.
removed_swot_threats (object[]), Archived threats.
swot_strengths_status (object), Review/status metadata for strengths.
swot_weaknesses_status (object), Review/status metadata for weaknesses.
swot_opportunities_status (object), Review/status metadata for opportunities.
swot_threats_status (object), Review/status metadata for threats.
Market, customers & positioning
target_audience (string[]), Audience segments (plain strings or labels).
target_audience_distribution (object[]), Weighted segments, { segment, percentage, category? }.
unique_selling_points (object[]), USPs, { text, status } where status is Unique | Competitive | Not Relevant | Losing.
removed_unique_selling_points (object[]), Archived USPs removed from the active list.
ideal_clients (string[] | object[]), Ideal client profiles, strings or rich IdealClientProfile objects (demographics, psychographics, approach strategy).
competitors (object | object[]), Competitor analysis data from Strategic Direction.
client_retention_methods (string[]), Methods used to retain clients.
has_client_retention_methods (boolean), Whether formal client retention methods exist.
has_repeat_value_products (boolean), Whether the business offers repeat-value products or services.
repeat_value_products_details (string), Details on repeat-value offerings.
Partners & promotion
strategic_partners (string[]), Legacy list of partner names.
strategic_partners_v2 (object), { active: string[], pursued: string[], reach: home_counties | national | global | null }.
promotion_methods (string[]), Legacy promotion channel list.
promotion_methods_v2 (object[]), Promotion methods, { method, category } where category is Digital | Traditional | Direct | Relationships | Other.
Operations & systems
sales_systems (string), How sales is managed (CRM, pipeline, process).
marketing_systems (string), Marketing tools and processes.
operational_systems (string), Day-to-day operational systems.
financial_systems (string), Accounting, invoicing, and financial tooling.
admin_systems (string), Admin and back-office systems.
business_software (object[]), Software stack, { name, description?, category?, websiteUrl?, logoUrl? }.
workflow_consistency (string), How consistently workflows are followed.
sop_implementation (string), SOP adoption and implementation notes.
sop_accessibility (string), How staff access and use SOPs.
operational_radius (number), Service radius in miles/km (used with location fields).
central_location (string), Primary operating location label.
Financial
financial_analysis (string), Narrative financial overview and commentary.
financial_metrics (object), Turnover, margins, debtor/creditor days, turnover history, etc., { currentMonthlyTurnover, accountPeriodEnd, turnoverHistory, netMargin, grossMargin, debtorDays, creditorDays, quickRatio, directorsLoanAccount }.
financial_kpi_refs (object), Links to workspace KPIs used for financial tracking.
generated_financial_analysis (string), AI-generated financial analysis (read-only in UI; PATCH overwrites if sent).
remuneration_setup (object), { salary: number, dividends: number }, owner remuneration split.
Capacity, location & growth
capacity_tracking (string), How capacity is monitored.
capacity_metrics (object), Capacity snapshot, { currentCapacity, maxProjectCapacity, currentProjectCount, centralLocation, operationalRadius, mapData, locationPins[] }.
working_within_zone (boolean), Whether the business operates within a defined service zone.
zone_benefits (string), Benefits of operating within the zone.
quiet_periods (string), Seasonal or cyclical quiet periods.
expansion_readiness (string), Readiness for geographic or market expansion.
scalability (string), How the business scales operations.
growth_bottlenecks (string), Constraints limiting growth.
Organisation & staff structure
staff_members powers the org chart. Always PATCH the full array when replacing structure, partial array merges are not supported.
organizational_structure (string), Narrative description of org structure (also reflected in org chart).
staff_members (object[]), Org chart nodes, { id, name, role, email?, department?, parentId?, reportsTo?, responsibilities?, showInHierarchy?, ... }.
office_support (string), Office-based support roles and coverage.
onsite_support (string), On-site / field support arrangements.
efficient_sections (string), Best-performing teams or departments.
poor_performing_sections (string), Underperforming areas needing attention.
Staff retention & development
staff_retention (string), Legacy retention summary text.
staff_retention_strategy (string), Retention strategy narrative.
staff_retention_issues (string), Known retention issues.
staff_retention_marketing (string), Internal marketing used for retention.
has_staff_retention_strategy (boolean), Toggle, formal retention strategy exists.
offers_training_development (boolean), Toggle, training and development offered.
uses_retention_marketing (boolean), Toggle, retention marketing in use.
has_staff_leaving_issues (boolean), Toggle, experiencing staff attrition issues.
measures_employee_satisfaction (boolean), Toggle, employee satisfaction is measured.
recognizes_staff_performance (boolean), Toggle, performance recognition programme exists.
employee_satisfaction (string), How satisfaction is measured and recent results.
employee_recognition (string), Recognition programmes and practices.
training_and_development (string), L&D approach, budgets, and cadence.
Staff recruitment
is_currently_recruiting (boolean), Toggle, actively recruiting.
has_recruitment_difficulties (boolean), Toggle, facing hiring difficulties.
uses_recruitment_channels (boolean), Toggle, uses defined recruitment channels.
has_formal_recruitment_process (boolean), Toggle, documented recruitment process exists.
staff_recruiting_details (string), Current open roles and hiring priorities.
recruitment_channels (string), Channels used (agencies, LinkedIn, referrals, etc.).
staff_recruitment_process (string), Step-by-step recruitment process.
staff_sourcing_challenges (string), Challenges finding suitable candidates.
Leadership & feedback
leadership_effectiveness (string), Leadership structure and effectiveness notes.
feedback_gathering (string), How employee and customer feedback is collected and used.
gathers_feedback (boolean), Toggle, formal feedback gathering in place.
has_effective_leadership (boolean), Toggle, leadership considered effective.
Compliance & accreditations
accreditations (object[]), Workspace accreditations/certifications tracked in Strategic Direction.
targeted_certification_ids (string[]), UUIDs of certification journeys the workspace is pursuing.
collateral_audit (object), Marketing collateral audit data (may include HTML notes fields).
Extended / internal
Rarely needed for integrations. additional_data is a catch-all JSON bag.
additional_data (object), Arbitrary JSON extension bucket for custom integrations.
saint_commentary (string), AI advisor commentary stored on the brief.
saint_global_message (string), Global advisor message field.
has_saint_global_support (boolean), Whether Saint Global support is enabled.
Immutable & server-managed fields
Ignored on PATCH: id, workspace_id, version, created_at
Set server-side: updated_by, updated_at
A minor BD log entry is recorded on successful PATCH
Example PATCH success response
{
"data": {
"message": "Updated strategic brief",
"briefId": "uuid"
},
"meta": { "requestId": "..." }
}Recommended workflow
GET /strategic-brief (or getStrategicBrief via MCP) to read current values
PATCH only changed fields inside { updates: { ... } }
For org chart or SWOT edits, copy the existing array from GET, modify, and send the full array back
GET again to confirm persistence
MCP tools
getStrategicBrief, returns full brief object (scope brief:read). Optional briefId query param.
updateStrategicBrief, PATCH with { updates: { field: value } } (scope brief:write). Always call getStrategicBrief first.
Related
Personal access tokens (PATs) · Scopes and permissions · OpenAPI reference