Overview
Access your AirOps workspaces, Brand Kits, and AEO (AI Engine Optimization) analytics directly through ChatGPT. Monitor your brand's performance in AI search results, analyze citation rates, and optimize your content strategy. You can use AirOps to: Brand Performance Analysis: "Show me my brand's citation rate and share of voice for the last 30 days" Content Optimization: "What are the top questions citing my website and how can I improve my answers?" Competitive Intelligence: "Compare my brand's AI search performance against my top 3 competitors" Use your Brand Kit to create content: "Write a blog post about the product described in the attached document"
Tools
add_aeo_region
ChatGPTcreate_aeo_prompt or update_aeo_prompt_assignments returns a validation_error mentioning that the country code is "not configured on this brand kit", call this tool to add the missing region first, then retry. Behavior: - Re-adding an already-configured region is a no-op (idempotent) and returns success. - The country code must be a valid ISO 3166-1 alpha-2 code supported by the platform (e.g. US, GB, DE, FR, JP, BR, IN, ...). - Optional add_to_all_prompts (default false): when true, the new region is also assigned to every existing live prompt in the Brand Kit. This may incur additional answer credits/month; if the workspace's estimated answers limit would be exceeded, the call is rejected with a validation_error containing estimated_answers and max_answers in details. Defaults to false so the agent does not silently incur credits. IMPORTANT: Always show the user the region you plan to add (and whether add_to_all_prompts is on) and get explicit confirmation before calling. Adding a region cannot be undone via this tool.add_grid_column
ChatGPTanalytics_chart
ChatGPTautomated_feedback_report
ChatGPTbulk_update_aeo_prompt_tags
ChatGPTadd — adds the supplied tag_ids to each prompt's existing tags. Duplicates are silently deduped. - remove — removes the supplied tag_ids from each prompt. Tags not currently on a prompt are silently no-oped. Specifying tags: - Pass tag_ids (use list_tags to discover them). - Tags must already exist on the Brand Kit. This tool does NOT create new tags. Atomicity: - The call is fully atomic. If ANY supplied prompt_id is missing/discarded/ cross-brand-kit, or ANY tag_id is unknown on the Brand Kit, the call is refused with a validation_error listing every problem, and no taggings are changed. - On success, all listed prompts receive the operation in a single DB transaction. Limits: - Up to 100 prompt_ids per call. IMPORTANT: Always show the user the prompts and tags you plan to operate on, and get explicit confirmation before calling.bulk_update_aeo_prompt_topics
ChatGPTtopic_id (use list_topics to discover them). - The topic must already exist on the Brand Kit. This tool does NOT create topics. To create a new topic first, use create_topic, then pass its id here. Specifying prompts: - Pass prompt_ids (use list_aeo_prompts filtered by topic_id to find prompts currently under a source topic). - IDs that are missing, discarded, or not in the Brand Kit are skipped; only matching prompts are updated. IMPORTANT: Always show the user the prompts and destination topic you plan to operate on, and get explicit confirmation before calling.commit_aeo_prompt_assignments
ChatGPTAnswersLimitExceeded validation error containing estimated_answers and max_answers in details. Recover by calling update_aeo_prompt_assignments to adjust, or discard_aeo_prompt_assignments to abandon. IMPORTANT: - This action affects live data and is not undoable except by manually editing assignments again. Always get explicit user confirmation before calling. - If the human user has unsaved UI edits in the same draft, those will also be committed. Surface this to the user before proceeding. - After a successful commit, a fresh empty draft is automatically re-mirrored from the new live data. You may immediately stage further edits with update_aeo_prompt_assignments. - This tool does NOT return the new live estimated-answers/month. If you or the user need the post-commit estimates, call get_aeo_prompt_assignments_status. Do NOT reuse the pre-commit draft_estimated_answers from update_aeo_prompt_assignments and do NOT compute the estimate yourself — repetition-times, persona/country/platform interactions, and concurrent edits can all shift the result.create_aeo_persona
ChatGPTtitle must be unique within the Brand Kit (max 200 chars) and description is required (max 5000 chars). - Optional add_to_all_prompts (default false): when true, the new persona is also assigned to every existing live prompt in the Brand Kit. This may incur additional answer credits/month; if the workspace's estimated answers limit would be exceeded, the call is rejected with a validation_error containing estimated_answers and max_answers in details. Defaults to false so the agent does not silently incur credits. Writing guidance: avoid including specific brand names in the persona's title or description — the LLM may then mention the brand in its answer, which the analyzer will count as a mention and skew the data. IMPORTANT: Always show the user the persona you plan to create (title, description, and whether add_to_all_prompts is on) and get explicit confirmation before calling. You can verify the persona was created by calling list_personas sorted by created_at descending.create_aeo_prompt
ChatGPTlist_aeo_prompts sorted by created_at descending. A topic_id is required. If the user hasn't specified a topic, use the list_topics tool first to discover available topics and either suggest one or ask the user to choose.create_aeo_tag
ChatGPTbulk_update_aeo_prompt_tags. Behavior: - name must be unique within the Brand Kit (case-insensitive). The model enforces this via a unique index on (brand_kit_id, lower(name)). - color is optional. If omitted, a color is auto-assigned from the platform palette. Valid colors: light_grey, grey, green, teal, blue, purple, lilac, pink, red, coral, orange. - This tool does NOT apply the new tag to any prompts. Use bulk_update_aeo_prompt_tags with operation: 'add' to assign it afterward. IMPORTANT: Always show the user the tag you plan to create (name and color) and get explicit confirmation before calling. You can verify the tag was created by calling list_tags filtered by name.create_brand_kit_direct_upload
ChatGPTupload_url using an HTTP PUT with all the provided upload_headers. No additional authentication is needed — the URL is a time-limited presigned URL. Example: curl -X PUT -H "Content-Type: <type>" -H "Content-MD5: <checksum>" --upload-file <path> "<upload_url>" 3. Pass the returned signed_id to a manage tool (e.g. manage_brand_kit_logo_variant, manage_brand_kit_visual_example, or manage_brand_kit_font). IMPORTANT: Always confirm with the user before initiating an upload.create_brand_kit_recap_entry
ChatGPTbody_markdown: verbatim quotes, source URLs, and pages. Example: create_brand_kit_recap_entry( brand_kit_id: 123, title: "Refreshed tone & voice and added 2 regions", body_markdown: "Made the tone more concise per the latest brand guidelines (https://acme.com/brand). Added US East and US West to support the Q3 launch." )create_grid
ChatGPTcreate_grid_sheet
ChatGPTcreate_opportunity
ChatGPTcreate_page
ChatGPTlist_pages filtered by URL.create_topic
ChatGPTname must be unique within the Brand Kit. - color is optional. If omitted, a color is auto-assigned from the platform palette. Valid colors: light_grey, grey, green, teal, blue, purple, lilac, pink, red, coral, orange. - This tool does NOT create or assign prompts. Use create_aeo_prompt with the returned topic ID to add prompts to the topic. IMPORTANT: Always show the user the topic you plan to create (name and color) and get explicit confirmation before calling. You can verify the topic was created by calling list_topics filtered by name.delete_aeo_prompt
ChatGPTlist_aeo_prompts to find the prompt ID and verify the prompt text before deletion. IMPORTANT: This action is destructive. Always show the user the exact prompt text and get explicit confirmation before calling this tool.delete_aeo_tag
ChatGPTAeo::Tag has_many :taggings, dependent: :destroy). Every prompt that had this tag will lose it. - The response includes tagged_prompts_count: the number of prompts that lost the tag. Use this to communicate the blast radius back to the user. IMPORTANT: This action is destructive and cannot be undone via this tool. Always show the user the tag name AND tagged_prompts_count (look it up first via list_tags + list_aeo_prompts if needed) and get explicit confirmation before calling.delete_brand_kit_writing_rules
ChatGPTdelete_grid_column
ChatGPTdelete_topic
ChatGPTlist_aeo_prompts filtered by topic_id to inspect prompts before deleting. - Candidate questions and question recommendations for the topic are deleted by model associations when the topic is deleted. IMPORTANT: This action is destructive and cannot be undone via this tool. Always show the user the topic name and associated prompt count, then get explicit confirmation before calling.discard_aeo_prompt_assignments
ChatGPTupdate_aeo_prompt_assignments calls work without setup.find_page_creation_matches
ChatGPTget_aeo_ad
ChatGPTget_aeo_citation
ChatGPTget_aeo_page_content_update
ChatGPTget_aeo_prompt_assignments_status
ChatGPTcommit_aeo_prompt_assignments, to read the new live estimated_answers — the commit tool does not return them. - Before staging more changes via update_aeo_prompt_assignments, to compare against max_answers. Returns: - has_draft: whether a draft session exists for this brand kit. - has_changes: whether the draft has uncommitted edits relative to live (null if no draft). - draft_id: the draft's ID (null if no draft). - live_estimated_answers: current workspace estimated answers/month based on live assignments. - draft_estimated_answers: what the workspace estimated answers/month would be if the draft were committed now (null if no draft). - max_answers: the workspace's effective answers limit. - limit_exceeded: whether committing the draft now would exceed the limit (false if no draft).get_answer
ChatGPTget_answer_evaluation_test_run
ChatGPTget_brand_kit
ChatGPTlist_brand_kits confirms brand_management_enabled: true. Decision flow 1. Specific entity by ID → includes=["<type>"], filters=[{field: "<type>.id", operator: "EQ", value: <id>}]. 2. Entity by name (product_lines, content_types, audiences, regions, custom_variables, visual_examples) → includes=["<type>"], filters=[{field: "<type>.name", operator: "CONTAINS", value: "<fragment>"}]. 3. Find text content ("rule about tone", "any mention of Red List") → filter by the text field: includes=["writing_rules"], filters=[{field: "writing_rules.text", operator: "CONTAINS", value: "tone"}]. 4. Structural discovery → small includes with fields=["<type>.id","<type>.name"] only. Fields and includes fields selects declared fields, not associations. It never adds includes automatically. Example: includes=["product_lines.competitors"], fields=["product_lines.id","product_lines.name"] returns those product-line fields plus nested competitors. Do not put product_lines.competitors in fields. Deeper field paths such as content_types.writing_rules.id are not supported; nested includes return the child resource's declared fields. Scale (typical kit vs outliers) Most kits are small — these rarely need filtering: - audiences, regions, usage_rules, palettes, content_samples: usually 0-2, rarely >10 - content_types, product_lines: usually 1-3 These have tails you must handle: - writing_rules: usually 3, outliers exceed 200. Never include in full without a filter — filter by text (CONTAINS) or by id. - competitors: usually 10, outliers exceed 250. Include via product_lines.competitors only when needed, and consider a name filter. - custom_variables: outliers exceed 150. Filter by name (CONTAINS) for known variables (e.g. "Red List"), or by value (CONTAINS) for content. - Scoped writing_rules via audience/region/content_type nesting: outliers exceed 200. Filter the parent by id or name first. Writing rules — global vs scoped Writing rules are EITHER global OR scoped to a single audience/content_type/region (never both). For content targeting a specific audience/region/content_type, fetch BOTH: 1. Global: includes=["writing_rules"], fields=["writing_rules.id","writing_rules.text"]. 2. Scoped: includes=["content_types.writing_rules"], fields=["content_types.id","content_types.name"]. Rules appear under each content type. The same pattern applies to audiences and regions. Filter the parent first. content_types.writing_rules does NOT include global writing_rules; selecting writing_rules.id or writing_rules.text still requires the separate writing_rules include. Merge client-side. Anti-patterns - includes=["writing_rules","custom_variables","product_lines.competitors", "content_types.writing_rules"] without filters → blows context on outlier kits. - Calling without fields on a large kit → returns full text (template_outline, rule text, ICP) for every row. - Forgetting filters on writing_rules, custom_variables, or competitors — those are the three biggest tails. Versioning version: "draft" reads pending edits; defaults to "active". Use active for on-brand output unless the user explicitly asks for draft.get_campaign
ChatGPTget_grid_row_execution_status
ChatGPTget_insights_settings
ChatGPTlist_brand_kits first to find Brand Kits with aeo_enabled: true.get_page_details
ChatGPTget_page_prompts
ChatGPTget_playbook_session
ChatGPTget_prompt_answers
ChatGPTget_report
ChatGPTget_sentiment_theme_answers
ChatGPTget_workflow_execution
ChatGPTknowledge_base_add_file
ChatGPTsigned_id returned by knowledge_base_create_direct_upload (step 1) plus the file's metadata, and registers the document with the Knowledge Base. Returns immediately with the new document_id in pending status — poll knowledge_base_get_status to monitor indexing. Workflow: 1. Call knowledge_base_create_direct_upload with the file metadata to get back a signed_id and a presigned upload_url. 2. PUT the file bytes to the upload_url with the provided headers. 3. Call this tool with the signed_id, the desired name (used as the document's display name), the document_type MIME (must match the supported types), and an optional metadata hash. The metadata hash, if provided, is a single-level key/value object. It replaces any existing metadata on the document (no merge) and is filterable at search time via search_knowledge_base.knowledge_base_add_urls
ChatGPTpending state — poll knowledge_base_get_status to check progress. URLs must be absolute and include the http:// or https:// scheme (e.g. https://example.com/page). No documents are created if any URL fails validation. The metadata hash, if provided, is applied identically to every document in the batch (single-level keys only); it replaces (not merges) any existing metadata and is filterable at search time.knowledge_base_create_direct_upload
ChatGPTsigned_id you'll use with knowledge_base_add_file to register the document. This is the first call in the two-step file ingestion flow — large files (PDFs, DOCX, MD, HTML, etc.) don't fit through the MCP transport, so the file bytes go directly from your client to S3. Workflow: 1. Call this tool with the file metadata (filename, content_type, byte_size, checksum). The checksum must be the Base64-encoded MD5 digest of the file contents. 2. PUT the raw file bytes to the returned upload_url with all the provided upload_headers. No additional authentication is needed — the URL is a time-limited presigned URL. 3. Pass the returned signed_id to knowledge_base_add_file to register the document. Only after step 3 is the file searchable. Example: > knowledge_base_create_direct_upload(knowledge_base_id: 1, filename: "report.pdf", content_type: "application/pdf", byte_size: 1234567, checksum: "...") → { signed_id: "abc...", upload_url: "https://s3...", upload_headers: { ... } } > knowledge_base_add_file(knowledge_base_id: 1, signed_id: "abc...", name: "Q4 Report", document_type: "application/pdf") → { document_ids: [42], status: "pending" } Maximum file size is 256 MB.knowledge_base_delete
ChatGPTknowledge_base_delete_document
ChatGPTknowledge_base_get_document
ChatGPTposition order. Use when chunked search results aren't enough: summarizing a whole document, answering questions across an entire report, or reading back a doc before delete-and-recreate. For finding specific passages, prefer search_knowledge_base. Returns up to max_chars characters starting at offset (defaults to 0 and 200000). When the document is larger than the slice, the response includes next_offset (the value to pass on the next call to continue reading); when fully read, next_offset is null. For documents still indexing (status: pending) or in error (status: error), content may be empty — check status first. Content is reconstructed by joining chunks; minor overlap or duplication between adjacent chunks is possible depending on the original loader's chunking strategy. For the original source file, use the existing download path outside MCP.knowledge_base_get_status
ChatGPTcursor back to fetch the next page; pass document_ids to filter to specific documents.knowledge_base_manage
ChatGPTknowledge_base_id to create a new one; pass it to update an existing one. On create, name is required; pass workspace_id if you have access to more than one workspace. On update, only the fields you pass change.knowledge_base_update_document_metadata
ChatGPT{}. Filterable at search time via search_knowledge_base. Metadata-only — does not re-embed the document. Loader-derived metadata (scraped page metadata for URLs, chunker metadata for files) is not touched. Search filters may take a few seconds to reflect the new values. The document must be fully indexed (status: ready) before calling this tool. If indexing isn't complete, the tool returns a validation error.list_aeo_ads
ChatGPTlist_aeo_advertisers
ChatGPTlist_aeo_agent_analytics
ChatGPTlist_aeo_citations
ChatGPTlist_aeo_domains
ChatGPTlist_aeo_page_content_updates
ChatGPTlist_aeo_prompts
ChatGPTlist_answers
ChatGPTlist_artifact_comments
ChatGPTlist_brand_kit_owned_subreddits
ChatGPTlist_brand_kits
ChatGPTbrand_management_enabled and aeo_enabled flags for each brand kit. Use get_brand_kit for brand management details, or get_insights_settings for AEO configuration. Optionally filter by workspace_name, workspace_id, brand_management_enabled, or aeo_enabled. IMPORTANT: If multiple brand kits are returned and the user has not specified which one to use, present the list and ask them to confirm. Do NOT arbitrarily pick one.list_campaigns
ChatGPTlist_grids
ChatGPTlist_knowledge_bases
ChatGPTlist_opportunities
ChatGPTlist_pages
ChatGPTlist_personas
ChatGPTlist_playbook_sessions
ChatGPTlist_reports
ChatGPTlist_tags
ChatGPTlist_topics
ChatGPTlist_workspaces
ChatGPTmanage_brand_kit_audience
ChatGPTid to create a new audience; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_competitor
ChatGPTid to create a new competitor; provide id to update an existing one. On update, only provided fields are changed. Competitors must be associated with at least one product line from the same brand kit. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_content_sample
ChatGPTid to create a new content sample; provide id to update an existing one. On create, provide either url (content will be extracted asynchronously) or content (plain text, stored immediately). On update, only content, url, audience_ids, and region_ids can be changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_content_type
ChatGPTid to create a new content type; provide id to update an existing one. On create, you may provide a sample_url to seed the content type with a content sample: - If only sample_url is provided (no content fields), the system will scrape the URL and use AI to generate all content type fields automatically. - If sample_url is provided along with content fields, the URL will be scraped for reference but the provided field values will be kept as-is. - If no sample_url is provided, the content type is created with the given fields only. On update, only provided fields are changed and sample_url is ignored. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_custom_variable
ChatGPTid to create a new custom variable; provide id to update an existing one. On create, name and value are required. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_font
ChatGPTid to create a new font; provide id to update an existing one. On update, only provided fields are changed. To attach a font file, either: - Use signed_id with the token from create_brand_kit_direct_upload after direct upload (preferred). - Use file_url with a publicly accessible URL to a font file (TTF, OTF, WOFF, WOFF2, or EOT). Alternatively, provide google_font_link with a Google Fonts URL. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_logo_size
ChatGPTid to create a new logo size; provide id to update an existing one. On update, only provided fields are changed. At least one of width or height must be provided on create. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_logo_variant
ChatGPTid to create a new logo variant; provide id to update an existing one. On update, only provided fields are changed. To attach a logo image, either: - Use signed_id with the token from create_brand_kit_direct_upload after direct upload (preferred). - Use file_url with a publicly accessible URL to a PNG or SVG image. Always provide usage_instructions when creating a logo variant — describe when and how to use this logo (e.g. "Primary logo for light backgrounds", "Monochrome version for print materials"). This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_palette
ChatGPTid to create a new palette; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_palette_color
ChatGPTid to create a new color; provide id to update an existing one. On create, palette_id is required. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_product_line
ChatGPTid to create a new product line; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_region
ChatGPTid to create a new region; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_type_size
ChatGPTid to create a new type size; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_usage_rule
ChatGPTid to create a new usage rule; provide id to update an existing one. On update, only provided fields are changed. applies_to is set on creation and cannot be changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_visual_example
ChatGPTid to create a new visual example; provide id to update an existing one. On update, only provided fields are changed. Visual examples must be grouped under a Visual Use Case — pass visual_use_case_id on create. Use manage_brand_kit_visual_use_case first if no use case exists yet. To attach an image, either: - Use signed_id with the token from create_brand_kit_direct_upload after direct upload (preferred). - Use file_url with a publicly accessible URL to an image. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_visual_use_case
ChatGPTid to create a new visual use case; provide id to update an existing one. On update, only provided fields are changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.manage_brand_kit_writing_rule
ChatGPTid to create a new rule; provide id to update an existing one. Scoping: A rule can optionally be scoped to exactly one dimension — a single content type, audience, OR region. Provide at most one of content_type_id, audience_id, or region_id on create. They are mutually exclusive. A rule with no scoping is global (applies everywhere). Scoping is immutable: it is set on create only. On update, only text can be changed. This tool edits the Brand Kit draft version only; it does not change the active (live) version. IMPORTANT: Always show the user exactly which fields will be created or changed and ask for confirmation before calling this tool.publish_brand_kit
ChatGPTpublish_playbook
ChatGPTquery_analytics
ChatGPTread_grid
ChatGPTread_grid_cell
ChatGPTread_playbook_output
ChatGPTreject_opportunity
ChatGPTrun_grid_rows
ChatGPTsearch_knowledge_base
ChatGPTstart_answer_evaluation_test_run
ChatGPTtrack_aeo_page_content_update
ChatGPTupdate_aeo_prompt_assignments
ChatGPTcommit_aeo_prompt_assignments. Semantics: - For each entry in prompts, a non-empty array REPLACES that prompt's current draft assignments for the given dimension. - An empty array CLEARS that dimension on the prompt. - Omitting a dimension or passing null leaves that dimension UNCHANGED. - At most 100 prompts can be updated per call. Workflow: 1. Call update_aeo_prompt_assignments to stage your changes in the draft. 2. Inspect limit_exceeded in the response. If true, the workspace would exceed its estimated-answers quota on commit. Adjust by calling update_aeo_prompt_assignments again, or call discard_aeo_prompt_assignments to abandon. 3. When ready, call commit_aeo_prompt_assignments to apply the draft to live. Always confirm with the user before committing. IMPORTANT — shared draft with the UI: - There is one draft per brand kit, shared between MCP and the human-facing UI. - If the user has unsaved UI edits, your edits accumulate in the same draft. A subsequent commit will publish both sets of edits together; a discard will destroy both. Surface this to the user before committing or discarding. To discover prompt IDs and current assignments, use list_aeo_prompts. To inspect current draft state without modifying it, use get_aeo_prompt_assignments_status.update_aeo_tag
ChatGPTname or color must be provided. - If name is provided, it must remain unique within the Brand Kit (case-insensitive). - Valid colors: light_grey, grey, green, teal, blue, purple, lilac, pink, red, coral, orange. - Existing taggings on prompts are preserved — only the tag's own attributes change. IMPORTANT: Always show the user the tag (current name) and the change you plan to apply, and get explicit confirmation before calling. You can verify the change by calling list_tags.update_brand_kit
ChatGPTupdate_topic
ChatGPTname or color must be provided. - If name is provided, it must remain unique within the Brand Kit. - Valid colors: light_grey, grey, green, teal, blue, purple, lilac, pink, red, coral, orange. - Existing prompt assignments are preserved. This tool cannot move a topic to another Brand Kit. IMPORTANT: Always show the user the topic (current name) and the change you plan to apply, and get explicit confirmation before calling. You can verify the change by calling list_topics.write_grid
ChatGPTget_brand_kit
Claudeget_page_details
Claudeget_page_prompts
Claudeget_prompt_answers
Claudelist_aeo_prompts
Claudelist_brand_kit_competitors
Claudelist_brand_kits
Claudelist_pages
Claudelist_personas
Claudelist_topics
Claudelist_workspaces
Claudequery_analytics
ClaudeCapabilities
Example Prompts
Click any prompt to copy it.
Links
App Stats
118
Tools
3
Prompts
ChatGPT, Claude
Platforms
Category
Status TrackingWorks with
Data refreshed daily





