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 →
{
"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.
hubspotApi
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
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
This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .
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
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