← Files SemlyARCHIVED FILE
plugin.json
11.1 KB · Nov 3, 2026 · 19:02 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "semly",
"version": "0.1.1",
"description": "Analyze brand visibility in AI answers with Semly and 16 Leon workflows for research, recommendations and content. Generate, edit and publish articles with explicit permission.",
"author": {
"name": "Semly"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "Semly",
"shortDescription": "AI visibility for your brands",
"longDescription": "Semly helps marketing teams and agencies analyze how their brands appear in AI answers and turn findings into practical content improvements. Connect an existing Semly account to explore stored visibility reports, compare trends, AI models and competitors, review active monitoring questions and inspect cited sources. Use connected Google Search Console and Bing data when available. Interactive views support date and model filters, with text results for clients without widgets. Includes 16 Leon skills for visibility planning, competitor and source analysis, search opportunities, brand fact-checking, measurement checks, crawling and indexing research, page improvements, article creation and refreshes, content series, monitoring questions, recommendation implementation, results reviews and multi-brand reviews. Website changes outside Semly are prepared as implementation material unless an authorized integration can perform them. With separate permissions, add monitoring questions, deactivate existing questions while preserving their settings and results history, create brands, generate text-only articles, review and approve a brief when requested, edit articles and publish to the Semly knowledge base or connected WordPress or Shoper sites. Article generation runs in the background and does not publish automatically. Read recommendations and update their recorded status when requested; marking a recommendation complete does not itself implement it. Access follows current Semly role, brand and module permissions. Select the brands and optional write permissions during authorization and revoke access in Semly settings. Owners and administrators can manage team connections. Publication requires an explicit request, and edits to articles already published through Semly can update public content.",
"developerName": "Semly",
"category": "Data & Analytics",
"capabilities": [
"Interactive"
],
"defaultPrompt": [
"Show my Semly brands.",
"Compare my brand\u2019s AI visibility over an explicit date range.",
"Generate a Polish article draft on a topic I choose for my Semly brand."
],
"websiteURL": "https://semly.ai/",
"supportURL": "https://semly.ai/contact",
"privacyPolicyURL": "https://semly.ai/privacy-policy",
"termsOfServiceURL": "https://semly.ai/terms",
"logo": "./assets/logo.png",
"composerIcon": "./assets/logo.png"
},
"review": {
"commerce": false,
"commerce_description": "No purchases or payments are available in the ChatGPT app. Users must already belong to a Semly company with an active Scale subscription, managed outside this app. Employees do not need a separate subscription.",
"test_cases": {
"positive": [
{
"description": "Replace an approved monitoring question while preserving its settings and history. Prerequisite: a selected disposable prompt in an accessible test brand, prompts module access, and read, prompts:deactivate and prompts:create consent.",
"prompt": "Read the settings of my selected test prompt, deactivate it, and add the replacement I have approved using the same category, country and language. Preserve the old results history and show the confirmed state.",
"tools_triggered": "get_prompt, deactivate_prompt, get_brand_limits, create_prompt",
"expected_behavior": "Read the exact brandId and promptId and retain topicIds, countryCode and languageCode. Deactivate only that prompt, confirm the saved active=false state and check its brand allowance before creating the approved replacement once. An already inactive prompt can be deactivated again safely. Reject inaccessible brands, prompts belonging to another brand, and missing deactivate consent. Never delete history or claim that a failed replacement was saved."
},
{
"description": "Brand discovery and AI visibility analysis. Prerequisite: the dedicated reviewer account has access to a sample brand with stored reports and report permissions. Select one returned brand; use the most recent complete report period available for it. This is a read-only workflow.",
"prompt": "Show my Semly brands. For the brand I select, show its latest available AI visibility results, compare with the preceding comparable period where available, and then filter the same dates to ChatGPT.",
"tools_triggered": "show_brands, list_reports, show_brand_visibility",
"expected_behavior": "List only accessible and consented brands. Resolve the selected brandId from returned data and identify explicit from/to dates from available reports. Show visibility and competitors from returned statistics, then reuse those dates with model=CHAT_GPT. Provide readable text with the widget. Missing history, missing values and measured zero remain distinct. Do not invent results or perform writes; do not expose inaccessible brands or report actions."
},
{
"description": "Text-only article generation with optional brief approval. Prerequisite: the selected sample brand has AI Content access, article allowance and read plus articles:generate consent. After the brief is displayed, the reviewer explicitly replies \"I approve this brief. Generate the article.\" before generation continues.",
"prompt": "Prepare a Polish article about measuring brand visibility in AI answers for my selected test brand. Let me approve the brief first. Do not generate images or publish the article.",
"tools_triggered": "get_account_context, get_brand_limits, generate_article, get_article, get_article_brief, accept_article_brief",
"expected_behavior": "Start generation once with a concise topic of 10\u2013300 characters and showBrief=true. Keep products enabled when available unless excluded by the requested scope. Read the asynchronous state and retrieve the brief when awaiting approval; display data.content. Do not accept the brief before the reviewer approves it. After approval, submit the entire approved briefContent and read article status until ready or a clear failure. Report progress in customer language, never claim completion while creating, never automatically retry generation and never publish. With no brief request in ordinary use, keep brief approval off."
},
{
"description": "Edit and explicitly publish a ready test article. Prerequisite: continue with the draft from the generation case, or a specifically selected ready disposable article owned by the reviewer. Grant articles:edit and articles:publish and prepare a verified test-brand domain for the Semly knowledge base. Publication must be on the reviewer-controlled test destination.",
"prompt": "Change the title of this test article to \"Jak mierzy\u0107 widoczno\u015b\u0107 marki w AI\", keeping its body unchanged. Then publish it in the Semly knowledge base for this same test brand and show me its public URL.",
"tools_triggered": "get_article, edit_article, get_article_publication_targets, publish_article",
"expected_behavior": "Resolve the exact authorized article from conversation context and read it before editing. Submit only the title so its body is preserved; verify the saved article. Check publication targets and publish once with target=semly only when the article and destination are ready and permitted. Confirm success only from published=true and the returned URL; pending synchronization, a conflict or an error is not success. Never substitute WordPress or Shoper without a separate instruction, publish another article, or automatically retry an uncertain write."
},
{
"description": "Read and update a recommendation. Prerequisite: the selected sample brand has a persisted editable recommendation, the required module permissions and read plus recommendations:update consent. The reviewer identifies one returned recommendation and confirms its implementation as a follow-up. Status recording is separate from implementing the underlying change.",
"prompt": "Show the recommendations for my selected test brand and the details of the one I choose. After I confirm that I have implemented it, mark it as completed.",
"tools_triggered": "list_recommendations, get_recommendation, update_recommendation_status",
"expected_behavior": "Return only authorized recommendations and read the selected item in full. Wait for the reviewer to identify it and confirm implementation before writing. Use only the completion value allowed by the current tool schema for that recommendation type, then verify the saved state. Label completion as reviewer-confirmed unless independently verified. Do not mutate virtual or read-only recommendations, treat generated files as proof of deployment, or claim the status update performed the underlying work."
}
],
"negative": [
{
"description": "Unsupported deletion: explain that deletion is unavailable through this integration. Do not call any creation tool or pretend to delete the brand.",
"prompt": "Delete my Semly brand and all its reports permanently."
},
{
"description": "No account creation or commerce: explain that an existing Semly user in a company with active Scale is required. Do not invoke tools to create accounts, subscriptions or charges.",
"prompt": "Create a new Semly account for me and buy Scale using my payment card."
},
{
"description": "No live report generation: explain that the integration reads stored reports and cannot start a new report run. Do not call a creation tool or pretend to trigger monitoring.",
"prompt": "Run a brand-new visibility report right now in every AI model."
}
]
},
"demo_recording_url": "https://www.youtube.com/watch?v=hszMPEfMDwM"
},
"publication": {
"release_notes": "Adds 16 Leon skills for AI visibility analysis, SEO research, recommendations and content workflows. Includes active monitoring questions, recommendation status updates, text-only article generation with optional brief approval, article editing and publication to the Semly knowledge base or connected WordPress and Shoper sites. Access follows current company, employee, brand, module and article-author permissions; writes require the corresponding optional OAuth consent. Updates the listing and review scenarios.",
"countries": []
},
"apps": "./.app.json"
}
}
}
SHA-256: 954272f5d34a9484790a0993bbc1ba5fc9d7339aada8eebaf83e6ab14068d61d