TL;DR — Subscribe an n8n webhook node to Customermates events, use the HTTP Request node with your API key to push changes back. No custom node required — the Customermates REST and MCP surfaces work directly.
When n8n fits
- Your team prefers visual flows over writing code.
- You want to branch and transform events before routing them (to Slack, HubSpot, Google Sheets, your data warehouse).
- You already run n8n for other automations.
If you want an AI to drive the CRM in conversation, use MCP instead or alongside.
Pattern 1 — Trigger n8n from CRM changes
- In n8n, add a Webhook node. Copy the URL it generates.
- In Customermates, Company → Webhooks → New and paste the URL. Pick the events you care about.
- Add steps after the Webhook node to transform and forward the payload.
The payload shape is documented at webhook events. Common next steps:
- Slack: post "new deal: $[amount]" to a channel.
- Google Sheets: append a row every time a contact is created.
- HubSpot: mirror the contact.
Pattern 2 — Push to Customermates from n8n
Use the HTTP Request node:
- Method:
POST (or PATCH for updates)
- URL:
https://customermates.com/api/v1/<endpoint>
- Headers:
x-api-key set to your API key (use n8n credentials)
- Body: JSON matching the OpenAPI spec
For MCP-style tool calls from n8n, hit /api/v1/mcp with method: "tools/call". Useful when you want n8n to get the same guardrails (null-wipe rejection, type-mismatch routing).
Pattern 3 — Scheduled cleanup
n8n's Cron trigger + Customermates REST makes scheduled jobs easy:
- Daily: find contacts without an organization, post a reminder.
- Weekly: export last week's won deals to a Google Sheet.
- Monthly: archive closed-lost deals older than 90 days.
Authentication
Store the API key as an n8n Header Auth credential with name x-api-key. Reuse across nodes. Rotate in one place.
Common gotchas
- Null-wipe guard — if you pass
null on a relationship array, the server rejects. Use [] or link_entities / unlink_entities.
- Rate limits — high-frequency loops hit API limits. Batch where possible.
- Webhook ordering — deliveries are not strictly ordered. Treat them as idempotent messages keyed by
entityId.
Next
- Webhooks — the trigger side in detail.
- OpenAPI — full REST reference for the action side.
- MCP — if you want an AI in the loop.