← Files SayliARCHIVED FILE
plugin.json
6.69 KB · Nov 3, 2026 · 19:10 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "sayli",
"version": "1.0.0",
"description": "Your Sayli meeting history in ChatGPT and Codex. Prepare for a call, draft a follow-up, and review what you still owe, each line with the call it came from.",
"author": {
"name": "SAYLI, LLC",
"email": "support@sayli.ai",
"url": "https://sayli.ai"
},
"homepage": "https://sayli.ai",
"keywords": [
"meetings",
"call preparation",
"follow-up",
"action items",
"sales"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Sayli",
"shortDescription": "Walk into your next call ready",
"longDescription": "Know what was promised before the next call. Sayli brings your meeting history into ChatGPT, so you can see what was decided, what you still owe, and what is still open, each line with the call it came from.\n\nPrepare for a call. Name a company or a person and get what past calls established, what is unresolved, and questions worth asking.\n\nDraft a follow-up. Start from one call, with what was confirmed kept apart from suggestions. Nothing is sent.\n\nReview open commitments. See what you promised across your calls, and what is overdue.\n\nSayli reads the calls you can already see in your Sayli workspace and never changes them. It does not listen to calls or record anything here. Calls come from the Sayli desktop app, or from transcripts you import into Sayli.\n\nRequires a Sayli account with recorded or imported calls.",
"developerName": "SAYLI, LLC",
"category": "Productivity",
"capabilities": [
"Prepare for a call",
"Draft a follow-up",
"Review open commitments"
],
"websiteURL": "https://sayli.ai",
"supportURL": "https://docs.sayli.ai/integrations/chatgpt/",
"privacyPolicyURL": "https://sayli.ai/privacy",
"termsOfServiceURL": "https://sayli.ai/terms",
"defaultPrompt": [
"Help me prepare for my next call.",
"Draft a follow-up from my last call.",
"Which commitments are still open?"
],
"brandColor": "#101012",
"brandColorDark": "#FFFFFF",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"onboardingSkill": "./skills/get-started/SKILL.md",
"review": {
"test_cases": {
"positive": [
{
"description": "Prepare for a call with a customer, from the user's own calls and one a teammate shared",
"prompt": "I'm meeting Northwind tomorrow. What did we agree, what is still open, and what should I ask? Include calls my team shared.",
"tools_triggered": "prepare_call, show_call_prep",
"expected_behavior": "Shows a call preparation view for Northwind built from two calls: Northwind security review and Northwind renewal. Decided includes \"Northwind moves to annual billing, starting next quarter.\" and \"Halden returns the security questionnaire by Friday.\" Promised includes \"Reply to the Northwind security questionnaire\" (You) and \"Put annual in the order form\" (Dana Holm). Each line names the call it came from and each call has an Open in Sayli link. Suggested questions are labelled as the assistant's own."
},
{
"description": "Review the user's open commitments across calls",
"prompt": "Which commitments are still open?",
"tools_triggered": "show_open_commitments",
"expected_behavior": "Shows four open items grouped by call: \"Send the cohort chart\" and \"Refresh the retention slide\" (Investor call), \"Send Ines the 2.4 notes\" (Check in, marked overdue), and \"Reply to the Northwind security questionnaire\" (Northwind security review). Nothing is marked done or changed."
},
{
"description": "Draft a follow-up from one call without sending it",
"prompt": "Draft a follow-up to Anders from my investor call.",
"tools_triggered": "list_meetings, get_brief",
"expected_behavior": "Returns a draft based on the Investor call brief that mentions the cohort chart and NRR of 112%, up from 104%. Confirmed commitments (\"Send the cohort chart\", \"Refresh the retention slide\") are listed apart from the assistant's suggested next steps. The reply says the draft was not sent."
},
{
"description": "Find calls by a company name",
"prompt": "Which calls mention Northwind?",
"tools_triggered": "list_meetings",
"expected_behavior": "Lists two calls with their dates and links: Northwind security review and Northwind renewal."
},
{
"description": "A company with no history is reported as such",
"prompt": "Prepare me for a call with Fabrikam.",
"tools_triggered": "prepare_call",
"expected_behavior": "Says that no call in Sayli mentions Fabrikam and offers a next step, such as another spelling, including shared calls, or listing recent calls. It does not invent any history, people or commitments."
}
],
"negative": [
{
"description": "Run after positive case 3, the follow-up draft to Anders. Sending is not supported. The assistant must say nothing was sent and that the user sends it themselves, without invoking a Sayli tool to send email.",
"prompt": "Email that follow-up to Anders now."
},
{
"description": "Changing or deleting records is not supported. Every Sayli tool is read-only. The assistant must decline and point to the Sayli app, without invoking a tool to change or delete a record.",
"prompt": "Mark the cohort chart item as done and delete the Investor call."
},
{
"description": "Live capture is not available here. Sayli in ChatGPT reads past calls only. The assistant must say it cannot join, listen to or record a call, without invoking a Sayli tool for live capture.",
"prompt": "Join my Zoom call now and take notes."
}
]
},
"commerce": false,
"commerce_description": "This plugin does not sell products, show plans or process payments.",
"demo_recording_url": "https://docs.sayli.ai/videos/sayli-chatgpt-walkthrough.mp4"
},
"publication": {
"release_notes": "First release. Prepare for a call, draft a follow-up, and review open commitments from your Sayli meeting history, with the call each line came from.",
"countries": []
},
"apps": "./.app.json"
}
}
}
SHA-256: 6dab5f7992e102a5830f7d906c0cae5b93c5ae83b07bb00c597951069e195ce5