perfexcrm-api

Manage PerfexCRM from any messaging app. Full CRUD for customers, invoices, leads, tickets, projects, contracts, and 13 more resources (170 API endpoints). Check overdue invoices, create leads, reply to tickets, track project progress — all through natural conversation on WhatsApp, Telegram, Slack, or Discord.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "perfexcrm-api" with this command: npx skills add kostasmm/perfexcrm-api

PerfexCRM API Skill

Manage your entire PerfexCRM installation through conversation. This skill connects to the PerfexCRM API & Webhooks module, giving you access to 170 API endpoints across 19 resources.

Get the API module: https://perfexapi.com

Environment Variables

Set these before using the skill:

export PERFEXCRM_API_URL="https://your-crm.com/api/v1"
export PERFEXCRM_API_KEY="your-api-key-here"
  • PERFEXCRM_API_URL: Your PerfexCRM installation URL with /api/v1 suffix
  • PERFEXCRM_API_KEY: API key created in PerfexCRM Admin > Setup > API & Webhooks > API Keys

Authentication

All requests use the X-API-KEY header. The key controls which resources and operations are available.

Available Resources (19)

ResourceListGetCreateUpdateDeleteSub-resources
Customerscontacts, invoices, estimates, projects, contracts, tickets
Invoicespayments (paginated)
Leadsactivity_log, proposals
Ticketsreplies, assign, status
Projectstasks, milestones, files, discussions (all paginated)
Contracts
Taskscomments, checklist, followers, timers
Estimates
Proposalscomments
Expenses
Staff
Credit Notes
Subscriptions
Payments
Items
Contacts
Timesheets
Notes
Utilitiescurrencies, countries, taxes, payment_modes, groups

Common Operations

Customers

List all customers:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers"

Search customers:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers?search=acme"

Create a customer:

curl -s -X POST -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/customers" \
  -d '{"company":"Acme Corp","phonenumber":"+1234567890","city":"New York","state":"NY","country":"US"}'

Get a specific customer:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers/123"

Get customer's invoices:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers/123/invoices"

Invoices

List all invoices:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/invoices"

Filter overdue invoices:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/invoices?status=overdue"

Create an invoice:

curl -s -X POST -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/invoices" \
  -d '{"clientid":123,"currency":1,"items":[{"description":"Web Development","qty":1,"rate":2500}]}'

Get invoice payments (paginated):

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/invoices/45/payments?page=1&per_page=25"

Leads

List leads:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/leads"

Create a lead:

curl -s -X POST -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/leads" \
  -d '{"name":"John Smith","email":"john@example.com","phonenumber":"+1234567890","company":"TechCorp","source":1,"status":1}'

Tickets

List open tickets:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/tickets?status=open"

Reply to a ticket:

curl -s -X POST -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/tickets/55/replies" \
  -d '{"message":"Thank you for reaching out. We are looking into this issue."}'

Assign a ticket:

curl -s -X PUT -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/tickets/55/assign" \
  -d '{"assigned":3}'

Projects

List projects:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/projects"

Get project tasks (paginated):

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/projects/10/tasks?page=1&per_page=25"

Get project milestones:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/projects/10/milestones"

Tasks

Create a task:

curl -s -X POST -H "X-API-KEY: $PERFEXCRM_API_KEY" -H "Content-Type: application/json" \
  "$PERFEXCRM_API_URL/tasks" \
  -d '{"name":"Review proposal","rel_id":10,"rel_type":"project","startdate":"2026-03-15","duedate":"2026-03-20","priority":2,"assignees":[3]}'

Pagination

All list endpoints support pagination:

ParameterDefaultMaxDescription
page1Page number
per_page25100Results per page
limit25100Alias for per_page

Response includes pagination metadata:

{
  "data": [...],
  "meta": {
    "total": 150,
    "per_page": 25,
    "current_page": 1,
    "last_page": 6,
    "from": 1,
    "to": 25
  }
}

Response Filtering

Select specific fields:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers?fields=id,company,phonenumber"

Include related data:

curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/projects?include=members,tasks"

Sorting & Search

# Sort by date descending
curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/invoices?sort=date&order=desc"

# Search across all fields
curl -s -H "X-API-KEY: $PERFEXCRM_API_KEY" "$PERFEXCRM_API_URL/customers?search=acme"

Webhook Events (100+)

The module fires 100+ webhook events for real-time notifications. Key events:

  • customer.created, customer.updated, customer.deleted
  • invoice.created, invoice.paid, invoice.overdue
  • lead.created, lead.converted, lead.status_changed
  • ticket.created, ticket.reply_added, ticket.status_changed
  • project.created, task.created, task.completed
  • payment.received, contract.signed, estimate.accepted

Error Handling

CodeMeaning
200Success
201Created
400Bad request (missing or invalid parameters)
401Unauthorized (invalid or missing API key)
403Forbidden (insufficient permissions)
404Resource not found
429Rate limited
500Server error

Recommended Agent Behavior

When the user asks about their CRM data:

  1. Always paginate large result sets — use ?per_page=25 and iterate if needed
  2. Use ?fields= to reduce response size — only fetch columns you need
  3. Search first — use ?search= before listing all records
  4. Summarize results — don't dump raw JSON, extract key information
  5. Confirm destructive actions — ask before deleting records
  6. Use natural language — translate user intent to the correct API call

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

API Hunter

Automatically searches and compiles reports of free APIs based on specific functional requirements.

Registry SourceRecently Updated
120Profile unavailable
Automation

Charmie CRM Lite

Lightweight CRM with SQLite – manage contacts. Upgrade to Pro for email, messaging, and more.

Registry SourceRecently Updated
521Profile unavailable
Automation

Google Suite Skill

Provides unified access to Gmail, Google Calendar, and Drive APIs for managing emails, calendar events, and files with OAuth2 authentication.

Registry SourceRecently Updated
2900Profile unavailable
Automation

Twitter API Integration (Web Reversed )

Cookie-based Twitter/X automation toolkit (timeline, notifications, posting, follow ops) for OpenClaw agents.

Registry SourceRecently Updated
6310Profile unavailable