Bolsivo + n8n
Use Bolsivo's outgoing webhooks as n8n triggers. Build visual workflows that connect your lead pipeline to Google Sheets, Slack, Jobber, any REST API, or your own internal systems — with copy-paste JSON templates to get started in minutes.
Open source
Run n8n on your own server for full control — or use n8n Cloud for a managed option.
Visual + code
Build flows visually or write JavaScript/Python in custom nodes. No limits on logic.
Self-hosted option
Keep all your data on-premise. Perfect for teams with compliance requirements.
Before you start
- Bolsivo Scale plan — webhooks are a Scale feature
- n8n account: n8n Cloud (n8n.io) or self-hosted instance accessible from the internet
- Access to Bolsivo Settings → Integrations → Webhooks
Setup guide
4 steps to your first workflow
Takes about 10 minutes start to finish.
Create a Webhook node in n8n
- 1Open your n8n dashboard → click "+ New Workflow".
- 2Click "+ Add node" → search "Webhook" → select the built-in Webhook node.
- 3Set HTTP Method to POST. Set Path to something memorable like "bolsivo-qualified".
- 4Set Response Mode to "Immediately" (returns 200 OK without waiting for downstream nodes).
- 5Click "Listen for Test Event" — n8n shows you the webhook URL to copy.
Register the URL in Bolsivo
- 1In Bolsivo → Settings → Integrations → Webhooks → "+ Add Webhook".
- 2Paste the n8n webhook URL into the "Target URL" field.
- 3Select the events you want to receive (lead.qualified, lead.status_changed, etc.).
- 4Optionally set a secret — Bolsivo signs each request with X-Bolsivo-Signature (SHA-256).
- 5Click "Save". Bolsivo sends a test payload immediately.
Receive the test payload in n8n
- 1Switch back to n8n — you should see the test payload appear in the Webhook node output.
- 2Click on the node to inspect the JSON structure (business_name, city, score, etc.).
- 3Click "Stop Listening" once you have captured the test payload.
Add action nodes and activate
- 1Add downstream nodes: Google Sheets, Slack, HTTP Request (for Jobber), or any n8n connector.
- 2Reference Bolsivo fields using n8n's expression syntax: {{ $json.data.business_name }}.
- 3Test each node individually with the sample payload.
- 4Click "Save" → toggle the workflow to "Active" in the top-right corner.
Template library
3 ready-to-import JSON workflows
Copy the JSON below → in n8n click the menu (⋯) in the top-right → Import from JSON → paste → Save. Then replace the placeholder values with your own credentials.
Bolsivo → Google Sheets: Log qualified leads
Every time a lead scores ≥ 60 in Bolsivo, append a row to a Google Sheet with business name, city, score, and offer.
{
"name": "Bolsivo → Google Sheets (Qualified Leads)",
"nodes": [
{
"name": "Bolsivo Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "bolsivo-qualified",
"responseMode": "onReceived",
"httpMethod": "POST"
},
"position": [240, 300]
},
{
"name": "Append to Sheet",
"type": "n8n-nodes-base.googleSheets",
"parameters": {
"operation": "append",
"sheetId": "YOUR_SHEET_ID",
"range": "Sheet1!A:E",
"values": {
"values": [
[
"={{$json.data.business_name}}",
"={{$json.data.city}}",
"={{$json.data.score}}",
"={{$json.data.recommended_offer}}",
"={{$json.timestamp}}"
]
]
}
},
"position": [460, 300]
}
],
"connections": {
"Bolsivo Webhook": {
"main": [[ { "node": "Append to Sheet", "type": "main", "index": 0 } ]]
}
}
}Bolsivo → Slack: Instant lead notification
Post a Slack message to your #sales channel the moment a lead qualifies — includes name, city, score, and AI recommendation.
{
"name": "Bolsivo → Slack (Lead Qualified)",
"nodes": [
{
"name": "Bolsivo Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "bolsivo-qualified",
"responseMode": "onReceived",
"httpMethod": "POST"
},
"position": [240, 300]
},
{
"name": "Slack Notification",
"type": "n8n-nodes-base.slack",
"parameters": {
"operation": "postMessage",
"channel": "#sales",
"text": "🏆 *New qualified lead!*\n*Business:* {{$json.data.business_name}} ({{$json.data.city}})\n*AI Score:* {{$json.data.score}}/100\n*Recommended offer:* {{$json.data.recommended_offer}}"
},
"position": [460, 300]
}
],
"connections": {
"Bolsivo Webhook": {
"main": [[ { "node": "Slack Notification", "type": "main", "index": 0 } ]]
}
}
}Bolsivo → Jobber: Auto-create client on deal close
When a lead moves to closed_won in Bolsivo, automatically create a new client in Jobber via the Jobber REST API.
{
"name": "Bolsivo → Jobber (Closed Won)",
"nodes": [
{
"name": "Bolsivo Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "bolsivo-status",
"responseMode": "onReceived",
"httpMethod": "POST"
},
"position": [240, 300]
},
{
"name": "Filter: Closed Won Only",
"type": "n8n-nodes-base.if",
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json.data.new_status}}",
"operation": "equal",
"value2": "closed_won"
}
]
}
},
"position": [460, 300]
},
{
"name": "Create Jobber Client",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.getjobber.com/api/graphql",
"authentication": "headerAuth",
"headerParameters": {
"parameters": [
{ "name": "Authorization", "value": "Bearer YOUR_JOBBER_TOKEN" },
{ "name": "Content-Type", "value": "application/json" }
]
},
"body": {
"query": "mutation { clientCreate(input: { companyName: \"{{$json.data.business_name}}\" }) { client { id } } }"
}
},
"position": [700, 240]
}
],
"connections": {
"Bolsivo Webhook": { "main": [[ { "node": "Filter: Closed Won Only", "type": "main", "index": 0 } ]] },
"Filter: Closed Won Only": { "main": [[ { "node": "Create Jobber Client", "type": "main", "index": 0 } ]] }
}
}n8n expression reference for Bolsivo payloads
Verifying the HMAC signature in n8n
Add a "Function" node after the Webhook node and paste the snippet below to verify that requests really came from Bolsivo:
const crypto = require('crypto');
const secret = 'YOUR_WEBHOOK_SECRET';
const sig = $input.item.headers['x-bolsivo-signature'];
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(JSON.stringify($input.item.body))
.digest('hex');
if (sig !== expected) {
throw new Error('Invalid webhook signature');
}
return $input.item;Related
Start automating your pipeline
Enable webhooks in Bolsivo Scale, import a JSON template into n8n, and connect your leads to Jobber, Slack, or any tool your team uses — today.