Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add themesic/perfex-rest-api-examples --skill perfex-crmgit clone --depth 1 https://github.com/themesic/perfex-rest-api-examplesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/themesic/perfex-rest-api-examples/perfex-crm)<a href="https://agentmods.dev/skills/themesic/perfex-rest-api-examples/perfex-crm"><img src="https://agentmods.dev/badge/skills/themesic/perfex-rest-api-examples/perfex-crm/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/themesic/perfex-rest-api-examples/perfex-crm"><img src="https://agentmods.dev/badge/skills/themesic/perfex-rest-api-examples/perfex-crm.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00075 | $0.01214 |
| Opus 5.5 | $0.00030 | $0.00486 |
| Sonnet 5.5 | $0.00015 | $0.00243 |
| Haiku 4.5 | $0.00007 | $0.00121 |
Grade A, and why
perfex-crm scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Working with Perfex CRM
The Perfex CRM connector exposes the user's own CRM through the REST API for Perfex CRM module by Themesic Interactive. Every call runs against the user's CRM with the permissions of the API token they connected.
Tool naming
Resource tools follow the pattern {resource}_{action}, for example customers_list, customers_search, customers_get, leads_create, tasks_update, tickets_delete.
_list:limit(default 25, max 100),offset, optionalcreated_after/created_before(ISO dates) and resource-specific filters (for exampletasks_listacceptsrel_type+rel_id,status,milestone)_search: keywordqpluslimit_get: one record byid_create: fields in adataobject, using the REST API field names_update:idplus adataobject with only the fields to change_delete:id
There are also read-only lookups such as list_currencies, list_taxes, list_payment_modes, list_countries, list_lead_statuses, list_lead_sources, list_departments and list_expense_categories, plus get_current_datetime and get_server_info.
Only the tools the token is allowed to use are offered. If the tool you need is missing, do not improvise with another tool: tell the user their API token lacks that permission and that an admin can grant it in Perfex under Setup > API > API Management.
Workflow
- Orient once. At the start of a CRM task, call
get_server_infoto confirm the connection and see the module version and tool count. For anything date-relative ("this quarter", "last month", "overdue"), callget_current_datetimeinstead of guessing today's date. - Resolve names to ids. Users speak in names; tools take ids. Find the record first with
{resource}_search(for examplecustomers_searchwith the company name), then use its id. If several records match, show the candidates (name, id, one distinguishing field) and ask which one. Never guess an id. - Search before you create. Before
customers_create,leads_createorcontacts_create, search by name, email or VAT number to avoid duplicates. If a likely match exists, show it and ask whether to update it or create a new record. - Use lookups for reference values. Currency, tax, payment mode, country, lead status and lead source fields take ids. Get them from the matching
list_*tool rather than inventing values. - Paginate deliberately.
_listreturns at most 100 rows per call. Page withoffsetonly as far as the question needs, and say so when results were truncated. Prefer_searchor date and relation filters over pulling whole tables. - Update minimally. Send only the fields that change in
data. Read the record with_getfirst when you need its current values.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 56 lines · 75 tokens per session scan A 720af72477ed
perfex-crm is a skill published in the GitHub repository themesic/perfex-rest-api-examples (5 stars, last pushed 3d ago), licensed MIT. It adds 75 tokens to every session and 1,214 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-09.
Other skills, from other repositories
record-gotchas
Capture surprises, workarounds, and rough edges hit while consuming the public surface of Prisma 8, Prisma Compute, or Prisma Postgres — anything a real user of these products would experience. Fires whenever an operator (or agent) writes a workaround, hits a surprising failure mode, or finds undocumented behaviour…
hero-kanban-move
A yellow sticky card slides from the Doing column into Done on a warm cork-board style kanban. Function: workflow state change — productivity motion, not decorative particles.
hero-calendar-flip
A red-header desk calendar flips its page from 3 to 4. Function: date advance / ship-day marker.
stacking-prs
Create and manage GitHub native Stacked PRs in this repo with the gh stack CLI. Use when asked to stack PRs, split a large change into a stack, add a layer to a stack, restack or rebase a stack, adopt existing branches or PRs into a stack, check out someone else's stack, or land a stack. Covers creating and submitting…
auditing-endpoints
Audit every endpoint in a PostHog project for staleness, failed materialisations, and unused materialised versions. Use when the user asks "what endpoints can I clean up?", "are any of my endpoints broken?", "which materialised versions are still being called?", or wants a one-shot cleanup pass over the Endpoints…
setting-up-support-slack-locally
Connect a real Slack workspace to local PostHog Conversations (the SupportHog Slack app) so Slack messages become support tickets and replies post back. Use when the user wants to test the conversations Slack integration locally, hits "Support Slack OAuth client ID is not configured", gets a white screen or "Network…