What a sales manager asks LeadPerfection in ChatGPT about jobs
A sales manager at a roofing and windows company opens the week with the same questions. Which jobs changed status since Friday? What did the Henderson job sell for, and where is its paperwork? Which reps are owed commission this month? LeadPerfection holds every answer, and putting LeadPerfection in ChatGPT is worth doing for those reads.
Elaichi's LeadPerfection connector carries 59 tools, 39 of them reads. MCP (Model Context Protocol) is the standard way an AI assistant calls tools in other apps. The job reads a manager reaches for:
| Question | Tool |
|---|---|
| Jobs by contract date, job number or appointment | list_all_leadperfection_jobs |
| One job's sales detail | leadperfection_jobs_get_sales_detail |
| Jobs whose status changed in a date range | leadperfection_jobs_list_status_changes |
| A job's notes | list_all_leadperfection_job_notes |
| Full prospect records, with job history and payments | list_all_leadperfection_prospect_data |
Most of these reads carry little risk, but the prospect-data read returns payments, so it stays with the manager role. The design question is the other side of the same connector: the tools that write money onto a job.
Five LeadPerfection tools that move money
Five of the connector's 20 write tools change what a job is worth or what someone is paid:
| Tool | What it writes |
|---|---|
create_a_leadperfection_job_payment |
A payment amount, date, type and method on a job |
create_a_leadperfection_job_commission |
A commission amount for a named sales rep |
create_a_leadperfection_job_cost |
A cost line with quantity, cost and price |
leadperfection_job_costs_update_cost |
Changes an existing cost line |
leadperfection_jobs_update_sales_detail |
The job's paperwork status, commission type and total commission amount |
The last one is the one a restriction naming only the payment, commission and cost tools misses. Its name reads like a status update, and it also sets the total commission on the job.
None of the five is tiered as a delete. Every LeadPerfection tool sends HTTP POST, and Elaichi tiers the reads from their read-only annotations and the rest as writes. On Elaichi's consent screen, "Run your connected tools" runs a connected app's reads and writes alike, and only a delete also needs "Delete data and remove access". So nothing at consent stands between a member and a payment write. The control is a restriction.
Two roles: one reads jobs, one writes money
Write the decision on roles, because a restriction targets a role or one member. Each member holds exactly one role, so the manager and the reps sit on different ones. Custom roles come with Gold; see the pricing page for plan contents.
On the sales manager role, create an allow rule naming the job reads above and all five money writes. On the sales rep role, the allow rule names the appointment and lead reads from the appointments playbook, plus leadperfection_jobs_list_status_changes and list_all_leadperfection_job_notes. It names none of the five, and it leaves out list_all_leadperfection_prospect_data. In Elaichi, the allowlist stage engages on the presence of an allow rule, not its contents, so an allow rule that names nothing denies everything. Each role also needs allow rules naming every other app it uses, whole, or it loses them.
Name tools, not the whole connector, on both roles. A rule cannot name LeadPerfection whole and some of its tools at once, and a whole-connector entry would admit all 20 writes. An allowlist also keeps a write the connector gains later off the role until someone names it. A restriction naming five tools would need re-checking on every connector update. The trade-off is set out in restricting one tool against the whole app, and shaping the roles themselves in designing roles for AI agents.
A restriction change takes effect within about two minutes. The appointment side of the same connector, for reps and setters, is in LeadPerfection in Claude for the sales floor.
Is there a human approval step for a LeadPerfection payment?
Not in Elaichi, over MCP. The grant a person approves on Elaichi's consent screen is the standing approval for that client's calls, and Elaichi runs every call that passes the grant's scopes and the person's restrictions as already approved. A per-call prompt the manager sees comes from the client.
ChatGPT has its own step. OpenAI says that for write or modify actions, ChatGPT may ask for confirmation, depending on app permissions and the action's context (help.openai.com, checked October 2026). That prompt is ChatGPT's behavior, and it asks the person in the moment.
So the human check on a payment has three parts. A role whose allow rule leaves out the five money tools cannot call them, and a role with no restriction rules can, so check the admin roles too. An access grant can also add a tool for one person. ChatGPT may confirm the write before it runs. And the audit trail shows every write afterwards. If a payment must have a second person's sign-off, leave the payment tool off every role and keep posting payments in LeadPerfection.
Freezing who entered a job cost
A frozen parameter is an argument value written into a toolbox entry that the caller cannot change. create_a_leadperfection_job_cost requires enteredBy, the employee number of the user entering the data. leadperfection_job_costs_update_cost requires 14 fields, including updatedBy.
The model does not know the manager's LeadPerfection employee number, and a guessed one puts the wrong name on a cost line. Freeze enteredBy and updatedBy to the manager's number in the manager's toolbox. Elaichi removes a frozen key from the schema the model sees and writes the value over whatever the call sends.
The freeze holds only on calls through that entry. Keep the connection unshared and share the toolbox, because anyone who can use the connection directly has the same tool without the freeze. The AI can see that the value is set, and often what it is, but it cannot change it. More on the mechanism is in locking a tool argument the AI cannot change.
Whose LeadPerfection account the money writes run as
Every call through a connection uses that connection's one credential, whoever makes it. So every payment the manager posts reaches LeadPerfection as the account behind the connection. Elaichi still records which member made each call.
Make that account a company API user. ActiveProspect's LeadPerfection guide tells customers to create API credentials for the company rather than use an existing user's, with API access checked (checked October 2026). Siro's setup guide sets that user's permissions per API method, under Security, User Access and API Security (checked October 2026). The same guide says its sync fails when a listed method is not ticked, so tick the methods the office needs and no more, and keep Elaichi's restrictions as the limit you can see and audit.
A company user also survives staff changes. When the connection's owner leaves, Elaichi's offboarding lists every connection they own, and a connection can be transferred to a member who is staying. A transfer sets a new owner and leaves every share as it was. It never changes the credential, which is why a company API user is the better one to connect with.
Two limits matter here. A private connection that nothing beyond the member depends on cannot be transferred at offboarding: the request is refused, and the only outcome for it is deletion. The owner can transfer their own private connection before they leave. And the person whose connection backs a shared toolbox's entries should be someone who will stay, because entries the departing member pinned stop resolving until someone re-pins them, even after a transfer. Offboarding when the agent holds access covers the rest.
Publishing Elaichi as an app in ChatGPT
On ChatGPT Business, only admins and owners can enable developer mode and deploy a custom MCP app (help.openai.com, checked October 2026). The admin creates it under Workspace settings, Apps, Create, gives https://api.elaichi.ai/mcp as the endpoint, clicks Scan Tools and completes the sign-in. Then the admin publishes it from Drafts. Members see it in their Apps settings, labeled custom, and each signs in with their own Elaichi grant.
ChatGPT sees Elaichi as one app. Admins enable read actions and write actions separately in an app's Actions settings (help.openai.com, checked October 2026), but those switches sit on Elaichi as a whole. No connected tool is listed by name, and the tools that run them are not marked read-only. A ChatGPT setting cannot tell a job read from a payment write. That line exists only in Elaichi's restrictions. The admin steps are in the ChatGPT setup walkthrough.
Reconciling commissions from the audit trail at month end
Elaichi writes one entry for each connected-tool call that reaches execution (a call refused earlier writes none). Each entry names the member, the tool, the LeadPerfection connection the call reached and whether it worked. It records the surface as MCP and names the client, so a payment from ChatGPT reads differently from one made elsewhere. Its approval line reads "Allowed by the access ChatGPT was granted".
At month end, the manager reads every create_a_leadperfection_job_commission and leadperfection_jobs_update_sales_detail call against the commission report. Everyone can see their own activity in the audit log. Someone holding the audit permission, such as an Org Admin or the free Auditor role, sees the whole organization. Entries arrive through a queue, so a new one can take a moment to appear. The full record is described in what an AI agent audit log must capture.
When job money should stay out of ChatGPT
If one office manager posts every payment from LeadPerfection's own screens, keep it there. ChatGPT adds speed to reading jobs, not to a payment that already has a home. The read-only half of this playbook still helps: the rep role gets job status and notes, and no money writes.
Whether LeadPerfection offers an MCP server of its own could not be checked. Its site answered automated requests with a robot challenge in October 2026, and an API reference or MCP server is not documented on api.leadperfection.com (checked October 2026). Ask your LeadPerfection account manager. A vendor's own server needs no second vendor. Elaichi's case is one address, one set of rules and one audit log across LeadPerfection and the other apps a sales office runs, such as the books in QuickBooks read-only for a finance team. Browse the 600+ connectors for the rest of the stack.