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 Webhooks. 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 plus 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.