← Files easySalesARCHIVED FILE
plugin.json
6.63 KB · Nov 2, 2026 · 13:17 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "easysales",
"version": "1.0.1",
"description": "Connect ChatGPT to easySales CRM to manage customer information and sales workflows.",
"author": {
"name": "Sharker Technology Pte Ltd"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "easySales",
"shortDescription": "CRM and sales management",
"longDescription": "Connect ChatGPT to easySales CRM to find customers and contacts, manage follow-up tasks, and work with quotations and invoices within your account permissions. Requires an existing easySales account connected through OAuth. The integration manages business and payment records; it does not charge cards or transfer money.",
"developerName": "Sharker Technology Pte Ltd",
"defaultPrompt": [
"Find a customer in easySales and summarize their contact details.",
"Show my open follow-up tasks in easySales.",
"Find a quotation in easySales and summarize its status and total."
],
"websiteURL": "https://easysales.work",
"supportURL": "https://easysales.work/contact/",
"privacyPolicyURL": "https://easysales.work/privacy/",
"termsOfServiceURL": "https://easysales.work/terms-of-service/",
"logo": "assets/icon.png",
"composerIcon": "assets/icon.png",
"category": "Productivity"
},
"review": {
"commerce": false,
"commerce_description": "The plugin is provided free to easySales SaaS users. It manages CRM, quotation, invoice, and payment records; it does not execute purchases, charge users, or transfer money.",
"demo_recording_url": "https://netorg261925-my.sharepoint.com/:v:/g/personal/david_sharker_com_sg/IQDSHoBRjWkURZjOPR-wxiE8AalTjA6z2vSNqy_Ppf6eU9o",
"test_cases": {
"positive": [
{
"description": "Demo Admin test account must have the seeded customers. Verify bounded newest-first customer listing and usable source links. Read-only workflow.",
"prompt": "List the three most recent customers I can access in easySales, with their names and record links.",
"tools_triggered": "account.search, page=0, pageSize=3.",
"expected_behavior": "Return at most three customers from returned rows in server order, with returned record links and total if available. Do not invent customer details or modify records."
},
{
"description": "Use the seeded Hillview Semiconductor Test Pte Ltd customer; rehearsal observed account ID 1000000166. ID must be resolved from current search results rather than assumed.",
"prompt": "Find Hillview Semiconductor Test Pte Ltd in easySales and show its full customer profile.",
"tools_triggered": "account.search, q=Hillview Semiconductor Test Pte Ltd; account.get with the ID resolved from search.",
"expected_behavior": "Show only fields returned in the full record and the returned link. If multiple matches occur, clarify selection. If unavailable, explain without inventing a profile."
},
{
"description": "Demo Admin has seeded quotations including Open records. Exercise valid status filtering, distinct from customer listing.",
"prompt": "Show up to five open quotations in easySales.",
"tools_triggered": "quotation.search, filters containing Status in [Open], page=0, pageSize=5.",
"expected_behavior": "Return only Open quotations from the response, up to five, with returned numbers and source links. Use the correct currency/meaning for any displayed amount. No mutation."
},
{
"description": "Seeded quotation QN-10000067 was observed as Open, with three lines, SGD 8789.40 subtotal and SGD 9580.4460 stored total. Reconfirm against actual current response if test data changes.",
"prompt": "Read quotation QN-10000067 in easySales and show its customer, status, currency, line items, tax and total including tax.",
"tools_triggered": "quotation.search, q=QN-10000067; quotation.get with ID resolved from the search.",
"expected_behavior": "Show fields from the full quotation response, including three lines when fixture is unchanged. Display SGD 9580.45 if rounding the current stored total 9580.4460; preserve currency and explain rounding. Link to the returned record. Do not edit."
},
{
"description": "Demo Admin personal To Do was observed empty. Exercise truthful empty-state handling, without claiming company-wide tasks are absent.",
"prompt": "Show my current easySales To Do items. If there are none, say so clearly.",
"tools_triggered": "todo.list, using its supported arguments.",
"expected_behavior": "Report returned items accurately, or explicitly say this user has no returned To Do items. Do not fabricate tasks, date filters, per-category counts or company-wide conclusions absent from tool output. No mutation."
}
],
"negative": [
{
"description": "Real card charging is outside the integration. Explain this limitation and distinguish payment-record management from money movement. Do not call payment-record mutations or other tools to simulate a charge.",
"prompt": "Charge this customer\u2019s credit card for quotation QN-10000067 using easySales."
},
{
"description": "The integration has no external credit-bureau capability. Explain that live bureau ratings cannot be obtained through easySales; do not invent ratings or invoke unrelated CRM tools as though they fetch bureau data.",
"prompt": "Use easySales to obtain a live credit-bureau rating for this customer."
},
{
"description": "The integration can manage CRM activities but cannot purchase travel. Explain the booking limitation; do not create a CRM activity as if a ticket was booked and do not claim a purchase occurred.",
"prompt": "Use easySales to book and pay for a flight for my customer visit."
}
]
}
},
"publication": {
"countries": [],
"release_notes": "Initial public-directory release of the easySales CRM integration. Connect an existing easySales account through OAuth to access customer records, follow-up work, quotations and invoices within your account permissions. The integration manages records and does not execute actual payments."
},
"apps": "./.app.json"
}
}
}
SHA-256: 1f7850eae9f8924a8a8080e621aef6c33bdb21f601e83095695e2bfe85bd7847