The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"_meta": {
"template": "CRM Sync Pipeline",
"version": "1.0.0",
"author": "Jos\u00e9 Neto @zNeto.AI",
"note": "Replace all [PLACEHOLDER] values before activating."
},
"nodes": [
{
"id": "node_001",
"name": "Webhook \u2014 Event Intake",
"type": "n8n-nodes-base.webhook",
"description": "Receives customer interaction events from any source",
"parameters": {
"httpMethod": "POST",
"path": "[WEBHOOK_PATH]"
}
},
{
"id": "node_002",
"name": "Data Normalizer",
"type": "n8n-nodes-base.function",
"description": "Standardizes payload structure regardless of source channel",
"parameters": {
"functionCode": "// Normalize to standard schema: id, name, message, source, timestamp\n// [SANITIZED]"
}
},
{
"id": "node_003",
"name": "Lead Enrichment",
"type": "n8n-nodes-base.function",
"description": "Adds derived data: interaction count, channel history, priority tag",
"parameters": {
"functionCode": "// Enrich lead data with derived fields\n// [SANITIZED]"
}
},
{
"id": "node_004",
"name": "CRM Duplicate Check",
"type": "n8n-nodes-base.httpRequest",
"description": "Queries CRM for existing record matching the contact identifier",
"parameters": {
"method": "GET",
"url": "[CRM_API_URL]/contacts?identifier=[CONTACT_ID]",
"headers": {
"Authorization": "Bearer [CRM_API_KEY]"
}
}
},
{
"id": "node_005",
"name": "Exists Router",
"type": "n8n-nodes-base.switch",
"description": "Routes to Create or Update based on duplicate check result",
"parameters": {
"rules": [
{
"value": "false",
"output": 0
},
{
"value": "true",
"output": 1
}
]
}
},
{
"id": "node_006",
"name": "CRM \u2014 Create Contact",
"type": "n8n-nodes-base.httpRequest",
"description": "Creates a new contact record in the CRM with full lead data",
"parameters": {
"method": "POST",
"url": "[CRM_CREATE_ENDPOINT]",
"headers": {
"Authorization": "Bearer [CRM_API_KEY]"
}
}
},
{
"id": "node_007",
"name": "CRM \u2014 Update Contact",
"type": "n8n-nodes-base.httpRequest",
"description": "Updates existing contact with latest interaction data and score",
"parameters": {
"method": "PATCH",
"url": "[CRM_UPDATE_ENDPOINT]",
"headers": {
"Authorization": "Bearer [CRM_API_KEY]"
}
}
},
{
"id": "node_008",
"name": "Confirmation Logger",
"type": "n8n-nodes-base.httpRequest",
"description": "Logs sync result with timestamp for audit trail",
"parameters": {
"method": "POST",
"url": "[LOG_WEBHOOK]"
}
}
],
"connections": {
"node_001": {
"next": "node_002"
},
"node_002": {
"next": "node_003"
},
"node_003": {
"next": "node_004"
},
"node_004": {
"next": "node_005"
},
"node_005": {
"outputs": {
"0": "node_006",
"1": "node_007"
}
},
"node_006": {
"next": "node_008"
},
"node_007": {
"next": "node_008"
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
N8N Automation Templates. Uses httpRequest. Webhook trigger; 8 nodes.
Source: https://github.com/joseneto-ai/n8n-automation-templates/blob/main/crm-sync-pipeline/workflow.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
GiveWP Donations to Beacon. Uses httpRequest, stopAndError. Webhook trigger; 43 nodes.
Remove Video Background & Compose on Custom Image Background with Google Drive. Uses httpRequest, googleDrive. Webhook trigger; 25 nodes.
AI Website Chatbot — Main Handler. Uses httpRequest. Webhook trigger; 22 nodes.
GYRA+ | 2. Receber Decisão → Rotear para CRM. Uses httpRequest. Webhook trigger; 15 nodes.
Voice-Agent Orchestrator (Spec Example - import into n8n and adapt secrets). Uses httpRequest, respondToWebhook. Webhook trigger; 8 nodes.