N8N
Build visual workflows over Customermates with webhook triggers and HTTP action nodes against the REST API.
Connect n8n to Customermates by subscribing a Webhook node to CRM events and calling the REST API from HTTP Request nodes. No custom node is required for this; the REST and MCP surfaces work directly. A Customermates community node is also available at github.com/customermates/n8n-nodes-crm if you prefer dedicated CRM nodes over generic HTTP Request nodes.
When n8n fits
- Your team prefers visual flows over writing code.
- You want to branch and transform events before routing them to another system, such as Slack, HubSpot, Google Sheets, or a 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
Add a Webhook node in n8n
Copy the URL it generates.
Subscribe in Customermates
Go to Company → Webhooks → New, paste the URL, and select the events you want.
Handle the payload
Add steps after the Webhook node to transform and forward it.
The payload shape is documented at Webhooks. Common next steps:
- Slack: post a message to a channel when a deal is created.
- 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:
POSTfor creates,PATCHfor updates. - URL:
https://customermates.com/api/v1/<endpoint>, where<endpoint>iscontacts,organizations,deals,services, ortasks. - Headers:
x-api-keyset to your API key, stored as an n8n credential. - Body: JSON matching the OpenAPI spec.
To make MCP tool calls from n8n, send a request to /api/v1/mcp with method: "tools/call". This routes writes through the same guardrails the MCP layer adds, such as rejecting a null on a relationship array.
Pattern 3: scheduled jobs
n8n's Cron trigger plus the Customermates REST API covers recurring work:
- Daily: find contacts without an organization and post a reminder.
- Weekly: export records matching a filter to a Google Sheet.
- Monthly: archive records whose custom status column holds a given value.
Deal and task lifecycle values such as status or priority are workspace-configurable singleSelect custom columns, not fixed fields. Call get_record_schema or read the OpenAPI spec to see which columns and options exist in your workspace before filtering on them.
Authentication
Store the API key as an n8n Header Auth credential with header name x-api-key. Reuse it across nodes so you rotate it in one place. Keys are 64-character base62 strings and inherit the owning user's permissions; there is no per-key scoping.
Common gotchas
- Relationship arrays: passing
nullon a relationship array is rejected. Send[]to clear, or use themanage_record_linkstool to add or remove links. - Rate limits: high-frequency loops can hit API limits. Batch where possible.
- Webhook ordering: deliveries are not strictly ordered. Treat them as idempotent messages keyed by
entityId.