Subscribe to every meaningful change in your Perfex CRM. Three processing modes, automatic retries, and a dead-letter queue — bundled with every PerfexAPI license from $49.
Polling a REST API every minute burns CPU on both ends and leaks the current state of your CRM to anyone watching the wire. Webhooks push a signed payload only when something actually changes — with latencies measured in milliseconds instead of minutes.
PerfexAPI ships 100+ webhook events across all 19 CRM resources. Every event carries the full resource payload, a unique delivery ID, a timestamp, and an HMAC-SHA256 signature so you never have to call back to verify authenticity.
Pick the delivery semantics that match your workload — no other Perfex CRM module offers this.
Fires on the request thread
Lowest latency. Best for low-volume installs or when the receiving endpoint responds in under 100ms.
Debounces rapid events
Collapses repeated events from the same resource within a 2-second window. Ideal for customer-edit flows where users save multiple times.
Background queue worker
Queues delivery to a worker process. Request thread returns immediately. Recommended for production and for downstream endpoints with variable response times.
The most common events are documented below. The module also ships internal events for advanced use cases — the full catalog totals 100+ hooks.
customer.createdNew customer record added
customer.updatedExisting customer fields changed
customer.deletedCustomer record removed
customer.contact_addedContact attached to customer
customer.contact_updatedContact details changed
customer.contact_deletedContact removed
customer.note_addedInternal note added to customer
customer.group_changedCustomer group membership changed
invoice.createdNew invoice issued
invoice.updatedInvoice content changed
invoice.sentInvoice emailed to customer
invoice.paidInvoice fully paid
invoice.partially_paidPartial payment recorded
invoice.overdueDue date passed without payment
invoice.cancelledInvoice cancelled
invoice.deletedInvoice removed
invoice.payment_addedNew payment linked to invoice
lead.createdNew lead captured
lead.updatedLead fields changed
lead.assignedLead assigned to staff
lead.status_changedPipeline stage moved
lead.convertedLead converted to customer
lead.lostLead marked as lost
lead.note_addedInternal note added to lead
lead.deletedLead removed
ticket.createdSupport ticket opened
ticket.updatedTicket fields changed
ticket.reply_addedNew reply posted to ticket
ticket.status_changedTicket status changed
ticket.assignedTicket assigned to agent
ticket.closedTicket resolved and closed
ticket.deletedTicket removed
project.createdNew project created
project.updatedProject fields changed
project.status_changedProject status changed
project.milestone_addedMilestone added
project.milestone_completedMilestone completed
project.finishedProject marked finished
project.deletedProject removed
contract.createdNew contract created
contract.updatedContract fields changed
contract.signedContract signed by client
contract.renewedContract renewed
contract.expiredContract reached end date
contract.deletedContract removed
task.createdNew task created
task.updatedTask fields changed
task.assignedTask assigned to staff
task.status_changedTask status changed
task.completedTask completed
task.comment_addedComment posted on task
task.deletedTask removed
estimate.createdNew estimate created
estimate.sentEstimate emailed to customer
estimate.acceptedEstimate accepted
estimate.declinedEstimate declined
estimate.convertedEstimate converted to invoice
proposal.createdNew proposal created
proposal.sentProposal emailed to customer
proposal.acceptedProposal accepted
proposal.declinedProposal declined
staff.createdNew staff account added
staff.updatedStaff profile changed
staff.role_changedStaff role or permissions changed
staff.deactivatedStaff account deactivated
staff.deletedStaff removed
staff.password_changedPassword reset or changed
expense.createdNew expense logged
expense.updatedExpense fields changed
expense.deletedExpense removed
payment.receivedPayment recorded
payment.refundedPayment refunded
payment.failedPayment attempt failed
Every webhook request is signed with your per-endpoint secret. Verify in constant time and reject requests that fail the check.
// Node.js — verify the X-PerfexAPI-Signature header
import crypto from 'crypto';
function verifyWebhook(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody, 'utf8')
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature, 'hex'),
Buffer.from(expected, 'hex'),
);
}
// In your Express handler
app.post('/perfex-webhook', (req, res) => {
const ok = verifyWebhook(
req.rawBody,
req.header('X-PerfexAPI-Signature'),
process.env.PERFEX_WEBHOOK_SECRET,
);
if (!ok) return res.status(401).end();
// ... process req.body.event and req.body.payload
res.sendStatus(200);
});PHP and Python equivalents in the docs.
Up to 8 retries at 30s, 1m, 5m, 15m, 1h, 6h, 12h, 24h. Any 2xx response is treated as success; 4xx and 5xx trigger the next retry.
Payloads that exhaust their retries are moved to the DLQ and surfaced in the Webhooks admin page. Replay a single delivery or bulk-replay all failures in one click.
Themesic's separate Webhooks module ships ~35 events for an additional $59. PerfexAPI bundles everything in the $49 base license — and real-time webhooks beat 15-minute Zapier polling every day of the week.
Each webhook request includes an X-PerfexAPI-Signature header with an HMAC-SHA256 of the raw body computed with your per-endpoint secret. Recompute on your side and use a constant-time compare. See the code snippet above.
Up to 8 retries with exponential backoff (30s, 1m, 5m, 15m, 1h, 6h, 12h, 24h). Exhausted payloads move to the dead-letter queue and can be replayed from the admin page.
Immediate fires on the request thread for lowest latency. Smart debounces repeated events within 2 seconds. Async queues delivery to a background worker — recommended for production.
Yes. The free n8n-nodes-perfexcrm community node exposes a PerfexCRM Trigger that listens for every supported event and verifies the HMAC signature automatically.
Bundled free with every PerfexAPI license starting at $49. Competitors sell API and Webhooks as separate $59 modules.
Yes. Each endpoint can hold a primary secret and a grace secret for up to 24 hours. New deliveries sign with the primary; your verifier can accept either during the window.
Install PerfexAPI, create an endpoint, pick a processing mode, and you are live.