{
  "name": "Sync CRM contacts with Mailchimp and Pipedrive",
  "nodes": [
    {
      "id": "ad3a6351-b389-4c84-9821-c630039d67de",
      "name": "Incoming Contact Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        288,
        400
      ]
    },
    {
      "id": "5a7326b9-121d-4e12-99a0-63f67fb4e35e",
      "name": "Split Contacts",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        480,
        400
      ]
    },
    {
      "id": "2920cb9e-f9f0-45aa-9682-ff14f89fec80",
      "name": "Fetch Contact Details (Source CRM)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        688,
        400
      ]
    },
    {
      "id": "857756fa-ed62-4ed2-8f36-a063e3fd8a85",
      "name": "Normalize Contact Data",
      "type": "n8n-nodes-base.code",
      "position": [
        912,
        400
      ]
    },
    {
      "id": "d43aef50-dade-4eae-ac30-6df77bdd50b0",
      "name": "Search Person by Email",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        1088,
        288
      ]
    },
    {
      "id": "3e8aa3da-b08e-4f14-a620-f8e2c47d5158",
      "name": "Combine Contact & Search",
      "type": "n8n-nodes-base.merge",
      "position": [
        1088,
        496
      ]
    },
    {
      "id": "76039f69-fd0c-46b8-8ca8-447b2c263733",
      "name": "Determine Existence & Prepare Data",
      "type": "n8n-nodes-base.code",
      "position": [
        1376,
        400
      ]
    },
    {
      "id": "88ae0120-b273-4211-b27f-c1eb64a7b236",
      "name": "Is Person Existing?",
      "type": "n8n-nodes-base.if",
      "position": [
        1600,
        400
      ]
    },
    {
      "id": "8412367f-3c78-42ea-83a5-9582da1cdc0e",
      "name": "Create Person",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        1920,
        528
      ]
    },
    {
      "id": "6547b18d-f675-4890-ba35-6b3e257a63ba",
      "name": "Prepare New Notification",
      "type": "n8n-nodes-base.code",
      "position": [
        2112,
        528
      ]
    },
    {
      "id": "1953300c-92df-4603-9aeb-e6947b7c3a93",
      "name": "Update Person",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        1920,
        336
      ]
    },
    {
      "id": "100ebfaa-0123-45e2-b32e-4a2f30eb1158",
      "name": "Prepare Updated Notification",
      "type": "n8n-nodes-base.code",
      "position": [
        2448,
        320
      ]
    },
    {
      "id": "e579c91d-09eb-429d-a0c0-a0e7ec9cc12f",
      "name": "Merge Notifications",
      "type": "n8n-nodes-base.merge",
      "position": [
        2640,
        496
      ]
    },
    {
      "id": "8ba16c91-af56-48e6-9296-f0c6acb69022",
      "name": "Build Mailchimp Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        2896,
        432
      ]
    },
    {
      "id": "5640ca3e-be77-47b6-a2b4-484db733a681",
      "name": "Send Sync Notification",
      "type": "n8n-nodes-base.mailchimp",
      "position": [
        3104,
        368
      ]
    },
    {
      "id": "b6afc1b9-0ee5-41f6-9b61-e615f9e587d7",
      "name": "Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        32
      ],
      "parameters": {
        "width": 550,
        "height": 834,
        "content": "## How it works\nThis workflow keeps contact records aligned across your CRM stack whenever the source CRM fires a webhook. Each inbound contact ID is expanded into full profile data via the source-CRM"
      }
    },
    {
      "id": "3c6bdf3a-bab1-4cf5-8bb4-ee3d8b129bda",
      "name": "Trigger & Source",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        48
      ],
      "parameters": {
        "width": 610,
        "height": 734,
        "content": "## Trigger & Source\n\nThis section ingests webhook events from any modern CRM (HubSpot, Salesforce, etc.) that can push contact notifications. The **Incoming Contact Webhook** node exposes a POST endpo"
      }
    },
    {
      "id": "0fab0022-c26b-49ef-813e-a8256946e42b",
      "name": "Pipedrive Sync",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        64
      ],
      "parameters": {
        "width": 1394,
        "height": 718,
        "content": "## Pipedrive Sync\n\nNodes in this block handle the heavy lifting of matching incoming contacts against Pipedrive and writing changes. After normalisation we perform a **Search Person by Email** operati"
      }
    },
    {
      "id": "4481f4eb-66fa-47f6-ae78-9fdbf57ee80e",
      "name": "Notification & Error Handling",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2304,
        64
      ],
      "parameters": {
        "width": 1026,
        "height": 622,
        "content": "## Mailchimp Notification & Error Handling\n\nOnce Pipedrive confirms a successful create or update, the workflow prepares a concise payload for Mailchimp. Both success branches funnel into a **Merge No"
      }
    }
  ],
  "connections": {
    "Create Person": {
      "main": [
        [
          {
            "node": "Prepare New Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Person": {
      "main": [
        [
          {
            "node": "Prepare Updated Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Contacts": {
      "main": [
        [
          {
            "node": "Fetch Contact Details (Source CRM)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Person Existing?": {
      "main": [
        [
          {
            "node": "Update Person",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Person",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Notifications": {
      "main": [
        [
          {
            "node": "Build Mailchimp Payload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Contact Data": {
      "main": [
        [
          {
            "node": "Search Person by Email",
            "type": "main",
            "index": 0
          },
          {
            "node": "Combine Contact & Search",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Person by Email": {
      "main": [
        [
          {
            "node": "Combine Contact & Search",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Send Sync Notification": {
      "main": [
        []
      ]
    },
    "Build Mailchimp Payload": {
      "main": [
        [
          {
            "node": "Send Sync Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Contact & Search": {
      "main": [
        [
          {
            "node": "Determine Existence & Prepare Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Incoming Contact Webhook": {
      "main": [
        [
          {
            "node": "Split Contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare New Notification": {
      "main": [
        [
          {
            "node": "Merge Notifications",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Prepare Updated Notification": {
      "main": [
        [
          {
            "node": "Merge Notifications",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Determine Existence & Prepare Data": {
      "main": [
        [
          {
            "node": "Is Person Existing?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Contact Details (Source CRM)": {
      "main": [
        [
          {
            "node": "Normalize Contact Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}