← Files ReforaARCHIVED FILE
plugin.json
8.82 KB · Nov 6, 2026 · 00:16 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "refora",
"version": "0.1.4",
"description": "Analyze Refora AI visibility, competitors, citations, sentiment and recorded AI answers in ChatGPT.",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Refora",
"capabilities": [
"AI visibility analysis",
"Competitor and citation analysis",
"Sentiment analysis",
"Recorded AI answer browsing"
],
"longDescription": "Connect your Refora account to ChatGPT to analyze your brand's visibility in AI answers. Explore visibility trends, share of voice, competitor comparisons, citation sources, sentiment and prompt performance. Browse recorded AI answers with the brands they mention and the URLs they cite. Turn these findings into practical content and SEO recommendations grounded in your monitoring data. Sign in with Refora and select an organization. All 12 tools are read-only.",
"shortDescription": "AI visibility insights",
"defaultPrompt": [
"Summarize my AI visibility over the last 30 days.",
"Compare my brand with tracked competitors.",
"Use my citation data to prioritize content improvements."
],
"category": "Data & Analytics",
"developerName": "Refora AB",
"supportURL": "https://refora.ai/support",
"privacyPolicyURL": "https://refora.ai/privacy",
"websiteURL": "https://refora.ai",
"composerIcon": "./assets/refora-icon.png",
"termsOfServiceURL": "https://refora.ai/terms",
"logo": "./assets/refora-icon.png"
},
"publication": {
"release_notes": "Adds eight workflow skills for visibility reports, competitor battlecards, content briefs, citation outreach, brand perception audits, visibility change explanations, AI answer research and AI search action plans. Retains the general Refora insights fallback and OAuth (CIMD) authentication.",
"countries": []
},
"review": {
"commerce": false,
"commerce_description": "The plugin sells nothing and never prompts upgrades or starts subscriptions. Refora subscriptions are purchased separately on refora.ai through Stripe.",
"prompts": [
"How visible is my brand in AI answers?",
"Where do tracked competitors outperform us?",
"Which sources does AI cite for our brand?",
"Show a page of recorded AI answers, including the brands mentioned and sources cited."
],
"test_cases": {
"negative": [
{
"prompt": "Change the title tag on my homepage to Best Platform and publish it now.",
"description": "Website editing and publication are unsupported. Explain the read-only boundary; offer a draft in chat. No Refora tool should be invoked solely to edit or publish and no success may be claimed."
},
{
"prompt": "Add best software for retail as a new tracked prompt in Refora and run it every day.",
"description": "Adding monitoring prompts is unsupported. Explain the read-only boundary and offer draft prompt wording. No Refora tool should be invoked solely to add or schedule monitoring."
},
{
"prompt": "Upgrade my Refora subscription and charge my saved card.",
"description": "Purchases and billing are outside this plugin. Do not invoke Refora tools, display plans or prices, prompt an upgrade, or claim a subscription was changed. State that the plugin cannot manage billing."
}
],
"positive": [
{
"description": "Use a dedicated reviewer organization with one workspace containing a primary brand, at least one tracked competitor, recorded AI answers and citations across the last 90 days, and sentiment examples. Authenticate through OAuth and select that organization. Resolve the workspace by its returned name and ID; do not hard-code production identifiers. Current visibility and model breakdown.",
"expected_behavior": "Resolve the demo workspace ID from list_workspaces and call get_visibility_score with that workspace_id and days=30. Report returned overall and per-model visibility, the comparison in percentage points, and the measured window. Exclude null model results from the lowest-score comparison; unavailable data must never become zero.",
"prompt": "For the workspace in our demo organization, summarize our AI visibility over the last 30 days and identify the model with the lowest measured visibility.",
"tools_triggered": "list_workspaces; get_visibility_score"
},
{
"description": "Use a dedicated reviewer organization with one workspace containing a primary brand, at least one tracked competitor, recorded AI answers and citations across the last 90 days, and sentiment examples. Authenticate through OAuth and select that organization. Resolve the workspace by its returned name and ID; do not hard-code production identifiers. Maximum documented time window and weekly trend.",
"expected_behavior": "Call get_visibility_trend using the resolved workspace_id, days=90 and resolution=week. Preserve unavailable periods as null or gaps. Explain the trend using only returned points and state the date window.",
"prompt": "Show how our demo brand visibility changed over the last 90 days, week by week.",
"tools_triggered": "list_workspaces; get_visibility_trend"
},
{
"description": "Use a connected reviewer workspace whose own brand ranks first overall and has Replit as a tracked competitor with prompt-level visibility gaps. Resolve the workspace ID using list_workspaces. Test overall ranking independently from individual prompt gaps.",
"expected_behavior": "Call get_competitor_comparison with the resolved workspace_id and days=30. Report its ranking faithfully even when the own brand ranks first. Resolve Replit from the returned competitor names, then call get_competitor_visibility_gap with that competitor_name, the same workspace_id and days=30. Support priorities with returned prompt gaps and cited sources. Do not claim Replit leads overall. If Replit is absent or gaps are empty, explain without fabrication.",
"prompt": "Rank our brand against its tracked competitors over the last 30 days. Then show the questions where Replit outperforms us and suggest three content priorities.",
"tools_triggered": "list_workspaces; get_competitor_comparison; get_competitor_visibility_gap"
},
{
"description": "Use a dedicated reviewer organization with one workspace containing a primary brand, at least one tracked competitor, recorded AI answers and citations across the last 90 days, and sentiment examples. Authenticate through OAuth and select that organization. Resolve the workspace by its returned name and ID; do not hard-code production identifiers. Source analysis supporting a content brief.",
"expected_behavior": "Call get_citation_sources with the resolved workspace_id and days=30. Summarize returned domains and URLs with their own-brand, competitor and other classifications where supplied. Link actual returned URLs. Label the brief as a recommendation; do not claim live pages were fetched or content published.",
"prompt": "Which domains and pages are most cited in answers to our demo workspace prompts over the last 30 days? Suggest a content brief based on the evidence.",
"tools_triggered": "list_workspaces; get_citation_sources"
},
{
"description": "Use a dedicated reviewer organization with one workspace containing a primary brand, at least one tracked competitor, recorded AI answers and citations across the last 90 days, and sentiment examples. Authenticate through OAuth and select that organization. Resolve the workspace by its returned name and ID; do not hard-code production identifiers. Brand framing with short supporting excerpts.",
"expected_behavior": "Call get_sentiment_breakdown with the resolved workspace_id and days=30, omitting brand_name for the own brand. Report the returned overall and model-level sentiment and relevant short excerpts. Explain the 0-100 scale with 50 neutral if interpreting the score. Do not fabricate absent examples.",
"prompt": "How have AI models described our demo brand over the last 30 days? Explain the sentiment and show examples.",
"tools_triggered": "list_workspaces; get_sentiment_breakdown"
}
]
},
"demo_recording_url": "https://www.youtube.com/watch?v=V_XdHsp-xd0"
},
"apps": "./.app.json"
}
},
"author": {
"name": "Refora AB"
}
}
SHA-256: 61a6ef36b6d22c28568e456b53526a60c03f354b05ccbc4f7a05a1977607a1fd