Automate HubSpot + Salesforce
The CRM your pipeline reporting depends on. The enterprise system of record for revenue. Put an agent between them and the hand-off stops being manual: it reads, decides, acts, and shows its work.
Lead Researcher already works across HubSpot and Salesforce — free, and it runs on your machine.
Automations teams run
Unlike field-mapping automation, the step in the middle is an agent: it can summarise, classify, judge and draft, not merely copy values from HubSpot into Salesforce.
When a contact or deal is created in HubSpot…
…an agent can update records and fields in Salesforce — after reading the context and deciding it should.
When a stage changes in HubSpot…
…an agent can create tasks and notes in Salesforce — after reading the context and deciding it should.
When a form submits in HubSpot…
…an agent can extract report data in Salesforce — after reading the context and deciding it should.
When a lead or opportunity changes in Salesforce…
…an agent can create and enrich contacts in HubSpot — with the reasoning recorded in the run’s receipt.
When a task is due in Salesforce…
…an agent can update deals and notes in HubSpot — with the reasoning recorded in the run’s receipt.
When a report cycle begins in Salesforce…
…an agent can log activity in HubSpot — with the reasoning recorded in the run’s receipt.
The HubSpot and Salesforce hand-off, in full
HubSpot is reached through a custom-api call to api.hubapi.com and Salesforce through a custom-api call to {instance}.my.salesforce.com. Between them sits the agent, which is the part a field-mapping tool cannot do: it reads the item and decides whether the hand-off is warranted at all.
{
"id": "f46a2bce-b6d0-4c3e-a212-dd3e44a4d6e4",
"name": "HubSpot → Salesforce",
"nodes": [
{
"id": "83ccd839-f570-4f2f-a4f9-61e4c2e1a452",
"text": "Poll HubSpot",
"x": 512,
"y": 144,
"isEditing": false,
"type": "trigger-timer",
"icon": "connect",
"category": "trigger",
"isSelected": false,
"parameters": {
"interval": "15",
"unit": "minutes"
},
"description": "Checks HubSpot on a schedule.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "259fa3b4-a9ac-4820-add1-6dd4418874a8",
"text": "Read it and decide",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"instructions": "Read the HubSpot item. Decide whether it warrants action in Salesforce, and explain why."
},
"description": "Decides whether this HubSpot item warrants anything in Salesforce.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "635ec8fe-8d81-4369-a847-dde7f27690de",
"text": "Call Salesforce",
"x": 512,
"y": 528,
"isEditing": false,
"type": "custom-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"url": "https://{instance}.my.salesforce.com/services/data/v59.0/sobjects/Contact",
"method": "POST"
},
"description": "Writes into Salesforce over its API.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "7dd3b18d-43d4-4cac-a91f-f7e7eb121c40",
"start": {
"id": "83ccd839-f570-4f2f-a4f9-61e4c2e1a452",
"type": "output"
},
"end": {
"id": "259fa3b4-a9ac-4820-add1-6dd4418874a8",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "e06d83c7-2d46-4acf-a536-163a9e1739ba",
"start": {
"id": "259fa3b4-a9ac-4820-add1-6dd4418874a8",
"type": "output"
},
"end": {
"id": "635ec8fe-8d81-4369-a847-dde7f27690de",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Install Lead Researcher
Lead Researcher already uses both HubSpot and Salesforce, so installing it gives you this exact hand-off wired up — connected, editable, and running on your own machine.
Runs on your own machine · See what it does
Wiring HubSpot to Salesforce
- Install AGNT — it runs on your own machine and needs no account to start.
- Authorise Salesforce (one OAuth sign-in) and HubSpot (one OAuth sign-in). Nothing is stored anywhere but your disk.
- Describe the job in plain language, or paste the definition above; custom-api does the reading and custom-api the writing.
- Gate anything you would not want done unattended, then let it run and read the first receipt end to end.
HubSpot and Salesforce — common questions
Can I connect HubSpot to Salesforce without writing code?
You can build it entirely from the canvas. Authorise HubSpot with one OAuth sign-in, Salesforce with one OAuth sign-in, then tell the agent what every inbound lead researched and scored should look like once Salesforce is involved. Code is an option for the unusual cases, never a requirement for the common ones.
How is this different from a field-mapping HubSpot to Salesforce automation?
The difference shows up on the messy inputs. A rule chain needs every case enumerated in advance; an agent handles every inbound lead researched and scored the way a colleague would — reading the HubSpot context, judging it, then writing to Salesforce with the reasoning recorded.
Does my HubSpot and Salesforce data leave my machine?
Not to us. AGNT runs locally and both sets of credentials are encrypted on your own disk. Outbound traffic goes only to HubSpot, Salesforce and whichever model you chose — and pointing that at Ollama or LM Studio keeps everything on your hardware.
What does a HubSpot and Salesforce run leave behind?
You get an auditable trail rather than a success flag. It shows the HubSpot context the agent worked from, the judgment it made about hygiene enforced across the pipeline, and the exact change applied in Salesforce, with approvals attached where you required them.