← Files Zoom CanvasARCHIVED FILE
plugin.json
7.36 KB · Nov 12, 2026 · 19:38 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "zoom-canvas",
"version": "1.0.0",
"description": "Connect Zoom Canvas to ChatGPT to create, read, edit, and share documents without leaving your conversation. ChatGPT can add collaborators by email address, update document permissions, and transfer ownership. Useful for turning drafts into shared documents, updating project plans, collaborating on team content, or managing access to important documents.",
"author": {
"name": "Zoom Communications, Inc"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "Zoom Canvas",
"shortDescription": "Work across docs and tables",
"longDescription": "Connect Zoom Canvas to ChatGPT to create, read, edit, and share documents without leaving your conversation. ChatGPT can add collaborators by email address, update document permissions, and transfer ownership. Useful for turning drafts into shared documents, updating project plans, collaborating on team content, or managing access to important documents.",
"developerName": "Zoom Communications, Inc",
"category": "Communication",
"defaultPrompt": [
"Create a Zoom Canvas document from this draft.",
"Summarize the Zoom Canvas document I select.",
"Show who has access to this Zoom Canvas document."
],
"websiteURL": "https://www.zoom.com/en/products/collaborative-docs/",
"supportURL": "https://support.zoom.com/hc/en/docs?id=docs",
"privacyPolicyURL": "https://www.zoom.com/en/trust/privacy/privacy-statement/",
"termsOfServiceURL": "https://www.zoom.com/en/trust/terms/",
"logo": "assets/icon.png",
"composerIcon": "assets/icon.png",
"logoDark": "assets/icon.png",
"composerIconDark": "assets/icon.png"
},
"review": {
"demo_recording_url": "https://zoom.us/clips/share/BywoUcTHR5GzkAPWeAjlDQ",
"test_cases": {
"positive": [
{
"description": "Create a disposable document in the connected test account. Requires docs:write:import and docs:read:export. No existing document is modified.",
"prompt": "Create a Zoom Canvas document titled \"Plugin Review Plan\" with Goals, Milestones, and Risks sections. Put \"Validate Canvas connection\" in Goals.",
"tools_triggered": "create_file_with_content, get_file_content",
"expected_behavior": "Call create_file_with_content with file_name=\"Plugin Review Plan\" and content containing the requested Markdown sections and Goals text. Omit parent_id to use the default location. Use returned file_id as get_file_content.fileId to verify the content. Return the actual file_link; never invent success."
},
{
"description": "Use the document created in the preceding case, selecting its returned reference in conversation. Its Goals text is \"Validate Canvas connection\" and it has Milestones and Risks sections.",
"prompt": "Summarize the Goals and Milestones in the Zoom Canvas document we just created.",
"tools_triggered": "get_file_content",
"expected_behavior": "Call get_file_content with fileId equal to the selected document ID. Summarize the returned Goals and Milestones accurately, explicitly indicating if Milestones has no details. Do not mutate document content or sharing."
},
{
"description": "Continue with the disposable document created above. The connected reviewer account must be authorized to edit it. Resolve block identifiers using the current schema and content before editing.",
"prompt": "In that document, replace \"Validate Canvas connection\" with \"Validate OAuth and permissions\" in Goals, keeping other sections intact.",
"tools_triggered": "canvas_get_spec, get_file_content, canvas_update_block",
"expected_behavior": "Inspect current content and the editing specification; target the Goals block in the selected document using the live canvas_update_block schema. Replace only the specified text. Read back with get_file_content and confirm the replacement and preservation of Milestones and Risks. Do not invent block IDs."
},
{
"description": "Use the same disposable document. Secure reviewer instructions must supply a dedicated eligible collaborator email; include it in the prompt context. The connected account must be authorized to share. Do not send an invitation message.",
"prompt": "Add the designated reviewer collaborator as a viewer to this test document, then show who has access. Do not send an invitation message.",
"tools_triggered": "canvas_add_file_collaborators, canvas_list_file_collaborators",
"expected_behavior": "Use the provided collaborator email, selected file ID, and viewer role according to live schemas. If the email is absent, ask for it before sharing. Add only that collaborator, omit the optional message, then list collaborators to verify viewer access. Preserve unrelated collaborators and link permissions; report failures truthfully."
},
{
"description": "Use the disposable document and eligible target account from the sharing case. Secure reviewer setup must provide the target account identity, ownership-transfer eligibility, and a current-owner session. Transfer requires explicit authorization and any host-required confirmation.",
"prompt": "Transfer ownership of this disposable Zoom Canvas document to the designated reviewer collaborator, then show its owner.",
"tools_triggered": "canvas_transfer_file_ownership, canvas_get_file_metadata",
"expected_behavior": "Resolve the selected document and eligible target account from the supplied context and live schemas. Transfer only that document after required confirmation. Read owner metadata and report the actual owner. If authorization or eligibility fails, explain the failure and do not claim transfer succeeded."
}
],
"negative": [
{
"description": "Outside the documented Canvas tool catalog: Team Chat sending. Explain that a separate capability is required. Do not invoke Canvas mutation tools or claim a message was sent.",
"prompt": "Send a Zoom Team Chat message to my team saying the project is ready."
},
{
"description": "Outside the documented Canvas tool catalog: meeting scheduling. Explain that a separate capability is required. Do not invoke Canvas mutation tools or claim a meeting was scheduled.",
"prompt": "Schedule a Zoom meeting for tomorrow and invite my team."
},
{
"description": "Outside the documented Canvas tool catalog: billing and purchases. Explain that this connection cannot purchase subscriptions. Do not invoke Canvas tools or claim payment succeeded.",
"prompt": "Upgrade my Zoom subscription and pay for the new plan."
}
]
}
},
"publication": {
"release_notes": "Initial release of Zoom Canvas for ChatGPT. Create and read documents, edit content, manage collaborators and access, and transfer document ownership.",
"countries": []
},
"apps": "./.app.json"
}
}
}
SHA-256: 7fa600070816d38b5c52d1c258c7fad8bf1b54a4830dec4416965f04363ab4f2