← Files Perfex CRMARCHIVED FILE
plugin.json
7.84 KB · Oct 10, 2026 · 12:05 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "rest-api-for-perfex-crm",
"version": "1.0.0",
"description": "Search, read, create and update customers, leads, invoices, projects, tasks, tickets and more in your own self-hosted Perfex CRM.",
"author": {
"name": "Themesic Interactive",
"email": "support@themesic.com",
"url": "https://themesic.com"
},
"homepage": "https://perfex-mcp.themesic.com/requirements",
"repository": "https://github.com/themesic/perfex-rest-api-examples",
"license": "MIT",
"keywords": [
"perfex",
"perfex-crm",
"crm",
"customers",
"leads",
"invoices",
"projects",
"tasks",
"tickets"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Perfex CRM",
"shortDescription": "Work with your Perfex CRM data",
"longDescription": "Perfex CRM connects ChatGPT to your own self-hosted Perfex CRM, so you can look up and update your business records in conversation.\n\nWhat you can do:\n- Search and read customers, contacts, leads, invoices, estimates, proposals, credit notes, payments, projects, tasks, milestones, tickets, contracts, expenses, items and staff.\n- Read an invoice or estimate with its line items, or a support ticket with its replies, and get a summary.\n- Create and update records, for example add a lead, draft an estimate, record a payment or add a checklist item to a task.\n\nSign-in: when you connect, you enter the web address of your Perfex CRM and an API token created in Setup > API > API Management. ChatGPT gets exactly the permissions of that token, so you decide what it can see and change. Tools that delete records, overwrite fields or may email your customers are marked so that ChatGPT asks for your confirmation first.\n\nYour data: the connector passes requests between ChatGPT and your CRM and does not store your CRM data. Your CRM address and token are kept encrypted only to keep you connected; disconnecting revokes access, and deleting the token in Perfex CRM stops it immediately.\n\nRequirements: a self-hosted Perfex CRM reachable over https, with the REST API for Perfex CRM module by Themesic Interactive installed, licensed for that CRM's domain, and its MCP server enabled in Setup > API > Settings. Without the module the plugin cannot access your CRM.\n\nLimitations: the plugin works only with the one CRM you connect, within the permissions of your token. It does not process card payments and cannot reach CRMs on private networks.\n\nPerfex CRM is a trademark of its owner. This plugin is published by Themesic Interactive and is not affiliated with the makers of Perfex CRM.",
"developerName": "Themesic Interactive",
"category": "Business & Operations",
"capabilities": [
"Search CRM records",
"Read CRM records",
"Create and update CRM records"
],
"websiteURL": "https://perfex-mcp.themesic.com/requirements",
"supportURL": "https://perfex-mcp.themesic.com/support",
"privacyPolicyURL": "https://perfex-mcp.themesic.com/privacy",
"termsOfServiceURL": "https://perfex-mcp.themesic.com/terms",
"defaultPrompt": [
"Find the customer Mega Plumbers and show their paid invoices.",
"Show invoice INV-000001 with its line items.",
"Summarise the latest support ticket with High Priority."
],
"brandColor": "#B72974",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Find a customer and their paid invoices",
"prompt": "Find the customer Mega Plumbers and show their paid invoices.",
"tools_triggered": "customers_search, invoices_search",
"expected_behavior": "Calls customers_search for Mega Plumbers, then lists that customer's invoices with status Paid (number, date, total) exactly as returned by the CRM. If several customers match, it asks which one is meant. It does not invent invoices."
},
{
"description": "Read an invoice with its line items",
"prompt": "Show invoice INV-000001 with its line items.",
"tools_triggered": "invoices_search, invoices_get",
"expected_behavior": "Finds invoice INV-000001, calls invoices_get for its id and presents the invoice number, customer (John Doe), each line item (description, quantity, rate) and the totals exactly as returned."
},
{
"description": "Create a lead",
"prompt": "Create a lead for Jane Smith from Northwind, email jane@northwind.com.",
"tools_triggered": "leads_search, list_lead_sources, list_lead_statuses, leads_create",
"expected_behavior": "Checks with leads_search that Jane Smith or the email does not already exist, picks a default source and status, asks for confirmation, then calls leads_create with name, company and email and reports the new lead id. If the lead exists it shows it instead of creating a duplicate."
},
{
"description": "Summarize a high-priority ticket",
"prompt": "Summarise the latest support ticket with High Priority.",
"tools_triggered": "tickets_list, tickets_get",
"expected_behavior": "Lists tickets, picks the newest one with priority High, calls tickets_get and summarises the subject, the customer's request, the replies in order and the current status, based only on the returned data."
},
{
"description": "List newest customers",
"prompt": "List my 5 newest customers.",
"tools_triggered": "customers_list",
"expected_behavior": "Calls customers_list with a limit of 5, newest first, and lists company name, phone and date created as returned by the CRM."
}
],
"negative": [
{
"description": "Card payments are out of scope",
"prompt": "Charge the customer's card for invoice INV-5567454",
"expected_behavior": "Does not attempt a charge. Explains that the plugin cannot process card payments; at most it can look up the invoice (which may not exist) or record a payment that was already received, if the user asks."
},
{
"description": "Bulk delete needs explicit intent",
"prompt": "Delete every customer in the CRM.",
"expected_behavior": "Does not delete anything without explicit, specific confirmation. Explains that deletion is permanent, asks which customers are meant, and never runs a bulk delete on its own."
},
{
"description": "Only the connected CRM is reachable",
"prompt": "Show the customers from crm.competitor.example.",
"expected_behavior": "Explains that it can only access the one Perfex CRM the user connected and cannot read data from another CRM or website."
}
]
},
"demo_recording_url": "https://youtu.be/TaW8Zu3h5fI",
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments."
},
"publication": {
"release_notes": "1.0.0: First release for ChatGPT. Connects ChatGPT to your own self-hosted Perfex CRM through the MCP server of the REST API for Perfex CRM module: permission-filtered tools to search, read, create and update customers, contacts, leads, invoices, estimates, proposals, credit notes, payments, projects, tasks, tickets, contracts, expenses and more. OAuth sign-in with the CRM address and an API token; tools that delete, overwrite or may email customers are annotated so ChatGPT asks for confirmation."
},
"apps": "./.app.json"
}
}
}
SHA-256: 00c321a6a8b2ac48a7260b1796d737f6424cc435ba2a22c07bd52b9ef7e5498a