AutomationFlowsWeb Scraping › Coccinelle - Hubspot Integration

Coccinelle - Hubspot Integration

Coccinelle - HubSpot Integration. Uses hubspot, httpRequest. Webhook trigger; 9 nodes.

Webhook trigger★★★★☆ complexity9 nodesHubSpotHTTP Request
Web Scraping Trigger: Webhook Nodes: 9 Complexity: ★★★★☆ Added:

This workflow follows the HTTP Request → HubSpot recipe pattern — see all workflows that pair these two integrations.

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 →

Download .json
{
  "name": "Coccinelle - HubSpot Integration",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "coccinelle/hubspot",
        "options": {}
      },
      "id": "webhook-hubspot",
      "name": "Webhook Coccinelle",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "condition-action",
              "leftValue": "={{ $json.action }}",
              "rightValue": "create_contact",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "switch-action",
      "name": "Route by Action",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        470,
        300
      ]
    },
    {
      "parameters": {
        "resource": "contact",
        "operation": "create",
        "additionalFields": {
          "firstName": "={{ $json.data.first_name }}",
          "lastName": "={{ $json.data.last_name || '' }}",
          "email": "={{ $json.data.email }}",
          "phone": "={{ $json.data.phone }}",
          "company": "={{ $json.data.company || '' }}",
          "lifecycleStage": "lead",
          "leadStatus": "={{ $json.data.status || 'NEW' }}"
        },
        "options": {}
      },
      "id": "hubspot-create-contact",
      "name": "Create Contact in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [
        700,
        200
      ],
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "contact",
        "operation": "update",
        "contactId": "={{ $json.data.hubspot_id }}",
        "updateFields": {
          "lifecycleStage": "={{ $json.data.lifecycle_stage || 'lead' }}",
          "leadStatus": "={{ $json.data.status }}"
        },
        "options": {}
      },
      "id": "hubspot-update-contact",
      "name": "Update Contact in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [
        700,
        400
      ],
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "deal",
        "operation": "create",
        "additionalFields": {
          "dealName": "={{ $json.data.deal_name || 'Deal from Coccinelle AI' }}",
          "dealStage": "={{ $json.data.deal_stage || 'appointmentscheduled' }}",
          "pipeline": "default",
          "amount": "={{ $json.data.amount || 0 }}",
          "closeDate": "={{ $json.data.close_date || $now.plus(30, 'day').toISODate() }}"
        },
        "options": {}
      },
      "id": "hubspot-create-deal",
      "name": "Create Deal in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [
        700,
        600
      ],
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "engagement",
        "operation": "create",
        "type": "NOTE",
        "metadata": {
          "body": "={{ $json.data.note || 'Interaction via Coccinelle AI Voice Agent' }}"
        },
        "associations": {
          "contactIds": "={{ [$json.data.hubspot_id] }}"
        },
        "options": {}
      },
      "id": "hubspot-create-note",
      "name": "Create Note in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [
        700,
        800
      ],
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "engagement",
        "operation": "create",
        "type": "CALL",
        "metadata": {
          "body": "={{ $json.data.call_summary || 'Call via Coccinelle AI' }}",
          "status": "={{ $json.data.call_status || 'COMPLETED' }}",
          "durationMilliseconds": "={{ ($json.data.call_duration || 0) * 1000 }}",
          "toNumber": "={{ $json.data.phone }}",
          "fromNumber": "={{ $json.data.from_number }}"
        },
        "associations": {
          "contactIds": "={{ [$json.data.hubspot_id] }}"
        },
        "options": {}
      },
      "id": "hubspot-log-call",
      "name": "Log Call in HubSpot",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [
        700,
        1000
      ],
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $json.callback_url }}",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "success",
              "value": "true"
            },
            {
              "name": "hubspot_id",
              "value": "={{ $json.id || $json.vid }}"
            },
            {
              "name": "message",
              "value": "Contact synced to HubSpot"
            }
          ]
        },
        "options": {}
      },
      "id": "callback-coccinelle",
      "name": "Callback to Coccinelle",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        920,
        500
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify({ success: true, message: 'HubSpot sync initiated' }) }}",
        "options": {}
      },
      "id": "respond-webhook",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        1140,
        500
      ]
    }
  ],
  "connections": {
    "Webhook Coccinelle": {
      "main": [
        [
          {
            "node": "Route by Action",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Action": {
      "main": [
        [
          {
            "node": "Create Contact in HubSpot",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Contact in HubSpot",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Deal in HubSpot",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Note in HubSpot",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Log Call in HubSpot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Contact in HubSpot": {
      "main": [
        [
          {
            "node": "Callback to Coccinelle",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Contact in HubSpot": {
      "main": [
        [
          {
            "node": "Callback to Coccinelle",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Deal in HubSpot": {
      "main": [
        [
          {
            "node": "Callback to Coccinelle",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Note in HubSpot": {
      "main": [
        [
          {
            "node": "Callback to Coccinelle",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Call in HubSpot": {
      "main": [
        [
          {
            "node": "Callback to Coccinelle",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Callback to Coccinelle": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "Coccinelle",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    },
    {
      "name": "CRM",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "triggerCount": 1,
  "active": false
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Coccinelle - HubSpot Integration. Uses hubspot, httpRequest. Webhook trigger; 9 nodes.

Source: https://github.com/Agentic-Solutions/coccinelle-ai/blob/59fc77f08a288a24abc9080ff4fdebb76064a0dc/n8n-workflows/hubspot-integration.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

What problem does it solve? Manually copying contacts and testimonials from Feedspace to HubSpot is time-consuming and error-prone. This workflow automates the entire process, ensuring every testimoni

HubSpot, HTTP Request
Web Scraping

This n8n template provides enterprise-level version control for your workflows using GitHub integration. Stop losing hours to broken workflows and manual exports – get proper commit history, visual di

n8n, Execute Workflow Trigger, HTTP Request +1
Web Scraping

This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .

HTTP Request, Ssh
Web Scraping

This workflow receives webhook requests from a content calendar and uses the X API v2 to publish text posts, threads, image/video posts, and polls, as well as delete existing posts and run a credentia

HTTP Request
Web Scraping

This workflow acts as a central API gateway for all technical indicator agents in the Binance Spot Market Quant AI system. It listens for incoming webhook requests and dynamically routes them to the c

HTTP Request