Manage onboarding plan (adsap_manage_onboarding_plan)
Platform: Meta · Read or write: Write · Plan: All plans · Consumes a task: No · Preview supported: No
What it does
Creates, reads, updates or deletes a structured onboarding plan for a Meta ad account. The plan stores business context, recommended steps, a suggested account structure, targeting ideas and budget allocation. Adsap saves the plan, so the copilot can pick it up in a later conversation.
When to use it
- Use
readat the start of a conversation to pick up where the account setup stopped. - Use
createafteradsap_analyze_websiteandadsap_get_account_health, to save the business context and the recommended steps. - An ad account holds one plan. A second
createis refused withALREADY_EXISTS, so useupdateinstead. - The plan is found by
ad_account_idalone.plan_idis optional. - To tick off a step, send
updatewithstep_updates. The planstatuschanges only whenupdate_fieldssets it. - The plan is stored in Adsap. No action here calls Meta, has a preview mode, or uses a task.
Worked example
You ask
“Where are we on the setup plan for act_1234567890?”
The assistant calls adsap_manage_onboarding_plan
{
"action": "read",
"ad_account_id": "act_1234567890"
}Adsap returns
The field names are the ones Adsap returns. The values are examples.
{
"plan_id": "00000000-0000-4000-8000-000000000003",
"ad_account_id": "act_1234567890",
"status": "in_progress",
"business_context": {
"company_name": "Example Home",
"website_url": "https://www.example.com",
"monthly_ad_budget": 3000
},
"recommended_steps": [
{
"step_id": "tracking_1",
"category": "tracking",
"title": "Check the Meta Pixel",
"status": "done",
"priority": "critical"
},
{
"step_id": "campaign_1",
"category": "campaign",
"title": "Create a Sales campaign",
"status": "pending",
"priority": "high"
}
],
"progress": {
"total_steps": 2,
"done": 1,
"in_progress": 0,
"pending": 1,
"completion_pct": 50
},
"created_at": "2026-09-10T14:05:00+00:00",
"updated_at": "2026-09-16T08:40:00+00:00"
}How to read it
recommended_steps is the list the assistant saved, in the shape it was given. Each step has a status: pending, in_progress, done, skipped or blocked. progress is counted from those statuses when you ask, and completion_pct is the share of steps marked done. The plan status is one of draft, in_progress, completed or archived.
The full response also has recommended_structure, targeting_recommendations and budget_allocation, and each step also carries its order and description. When a step is finished, the assistant sends update with step_updates. That answer names the next pending step in next_step.
Parameters
Descriptions are shortened from the tool schema. Your assistant sees the full text.
| Name | Type | Required | Description |
|---|---|---|---|
action | one of create, read, update, delete | Yes | CRUD operation. |
ad_account_id | string | Yes | The ad account this plan is for. Must include act_ prefix. |
plan_id | string | No | Optional. The plan is found by ad_account_id alone. Only pass a plan_id (UUID) previously returned by this tool. |
business_context | object | No | Required for create. Company info gathered by Claude. |
business_context.company_name | string | No | |
business_context.website_url | string | No | |
business_context.industry | string | No | |
business_context.products | string | No | |
business_context.average_order_value | number | No | |
business_context.gross_margin_pct | number | No | |
business_context.target_cpa | number | No | |
business_context.target_roas | number | No | |
business_context.monthly_ad_budget | number | No | |
business_context.target_countries | array of string | No | |
business_context.primary_goal | string | No | |
business_context.experience_level | string | No | |
business_context.website_analysis_id | string | No | |
recommended_steps | array of object | No | Required for create. Array of step objects with step_id, order, category, title, description, status, priority, depends_on, meta_tool, notes. |
recommended_steps[].step_id | string | Yes | |
recommended_steps[].order | number | Yes | |
recommended_steps[].category | one of setup, tracking, audience, campaign, creative, optimization | Yes | |
recommended_steps[].title | string | Yes | |
recommended_steps[].description | string | Yes | |
recommended_steps[].status | one of pending, in_progress, done, skipped, blocked | No | |
recommended_steps[].priority | one of critical, high, medium, low | Yes | |
recommended_steps[].depends_on | array of string | No | |
recommended_steps[].meta_tool | string | No | |
recommended_steps[].notes | string | No | |
recommended_structure | any | No | Campaign hierarchy recommendation. |
targeting_recommendations | any | No | Audience strategy. |
budget_allocation | any | No | Budget split recommendation. |
update_fields | any | No | For update: partial update object. Allowed keys: recommended_steps, recommended_structure, targeting_recommendations, budget_allocation, status. |
step_updates | array of object | No | For update: update specific step statuses. |
step_updates[].step_id | string | Yes | |
step_updates[].status | one of pending, in_progress, done, skipped, blocked | Yes | |
idempotency_key | string | No | Retry safety. Auto-generated server-side from request content if absent. Ignored for read action. |
Example prompts
- “Save an onboarding plan for this account based on what you learned from my website.”
- “Show me the onboarding plan for the US account and mark step 2 as done.”
- “Update the budget allocation in my onboarding plan to 70% prospecting, 30% retargeting.”
Related tools
adsap_analyze_website: Fetch and analyze a website URL to extract business context, tracking scripts (Meta Pixel, GTM, GA4, TikTok), product/pricing signals…adsap_ping: Verify Adsap MCP server connectivity and API key.
Guide
Read AI Copilot setup for the workflow around this tool, and the Tool reference for every tool.
The Meta Ads MCP server page shows how to connect Meta Ads to Claude, ChatGPT or Perplexity.