Save Business Profile
Save or update the user’s business profile with provided details.
⚠️ IMPORTANT: This tool WRITES data. Use when user confirms their business profile.
🎯 What This Tool Does (Performance Agent - Phase 1 Feature 5):
- Saves user’s business profile to database
- Updates existing profile if one exists
- Sets profile source as ‘user_confirmed’ or ‘user_mcp’
- Enables personalized recommendations going forward
Required Parameters:
- business_vertical: retail, services, technology, healthcare, finance, education, travel, food_beverage, automotive, real_estate
- business_size: small (
<50K-500K/month) - primary_goal: leads, sales, awareness, traffic, engagement, app_installs
Optional Parameters:
- target_audience: Free-text description (e.g., “B2B enterprise clients”)
- geographic_focus: local, regional, national, international
- seasonality: none, holiday_heavy, summer_peak, winter_peak, q4_heavy, back_to_school
- customer_id: Optional (uses connected account if omitted)
Use this tool when:
- User provides their business details
- User confirms an inferred profile
- User wants to update their business profile
- After asking user clarifying questions about their business
Example Usage: User: “I run a small local plumbing business targeting homeowners” → Call save_business_profile with:
- business_vertical: “services”
- business_size: “small”
- primary_goal: “leads”
- target_audience: “homeowners”
- geographic_focus: “local”
Execution time: 1-2 seconds (database write)
Authorizations
API key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
Headers
Client-generated UUID to make writes idempotent. Strongly recommended for write tools. A repeat call with the same key returns the cached result instead of re-executing. Example: 550e8400-e29b-41d4-a716-446655440000
Body
All tool arguments are wrapped in an arguments object. The fields accepted inside arguments are listed below — required fields are marked with a red asterisk.
Input schema for saving/updating business profile
Response
Tool executed successfully. data.text carries the human-readable result (markdown-friendly). data.quota shows your current usage against the plan limit. data.structured appears when the tool emits machine-parseable structured content. data.content appears for tools that return non-text blocks (images, resources).
Returned on HTTP 200. data.text is the primary human-readable output. data.quota is always present for billable calls. data.structured is set only when the tool emits machine-parseable structured content. data.content is set only when the tool emits non-text content blocks.

