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": "Sync Local Falcon rankings to Zoho CRM",
"nodes": [
{
"parameters": {
"content": "## Sync Local Falcon Rankings to Zoho CRM\n\n**Who is this for:** Agencies using Zoho CRM who want client ranking data automatically synced to account or deal records.\n\n**What this workflow does:**\n1. Fetches scan reports from Local Falcon daily\n2. Matches locations to Zoho accounts via custom field\n3. Updates account records with latest ranking data\n4. Creates notes for significant ranking changes\n\n**How to set up:**\n1. Add your Local Falcon API credentials (get your key at https://www.localfalcon.com/api/credentials)\n2. Add your Zoho CRM API credentials\n3. Create custom fields in Zoho: Local_Falcon_Place_ID, Avg_Rank, Last_Scan_Date\n4. Populate place IDs on your account records\n5. Activate the workflow\n\n**Requirements:**\n- Local Falcon account with API access\n- Zoho CRM account with API access\n- Custom fields configured in Zoho\n\n**How to customize:**\n- Sync to Deals, Contacts, or Leads instead\n- Trigger Zoho workflows based on rankings\n- Create tasks for rank drops\n- Add to Zoho Analytics for reporting",
"height": 520,
"width": 460,
"color": 5
},
"id": "sticky-main",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
100,
-180
]
},
{
"parameters": {
"content": "### Step 1: Schedule\nRuns daily to sync data.",
"height": 100,
"width": 200
},
"id": "sticky-step1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
40,
660
]
},
{
"parameters": {
"content": "### Step 2: Get Reports\nFetches ranking data.",
"height": 100,
"width": 200
},
"id": "sticky-step2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
300,
660
]
},
{
"parameters": {
"content": "### Step 3: Transform\nFormats for Zoho fields.",
"height": 100,
"width": 200
},
"id": "sticky-step3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
560,
660
]
},
{
"parameters": {
"content": "### Step 4: Find Account\nSearches by place_id.",
"height": 100,
"width": 200
},
"id": "sticky-step4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
820,
660
]
},
{
"parameters": {
"content": "### Step 5: Update Zoho\nSyncs ranking data.",
"height": 100,
"width": 200
},
"id": "sticky-step5",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1080,
660
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"triggerAtHour": 6
}
]
}
},
"id": "schedule",
"name": "Every Day 6am",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
140,
440
]
},
{
"parameters": {
"resource": "scan",
"operation": "listReports",
"additionalFields": {
"limit": 50
}
},
"id": "get-reports",
"name": "Get Scan Reports",
"type": "@local-falcon/n8n-nodes-localfalcon.localFalcon",
"typeVersion": 1,
"position": [
400,
440
],
"credentials": {
"localFalconApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const reports = $input.first().json.reports || [];\n\nreturn reports.map(report => ({\n json: {\n place_id: report.place_id,\n location_name: report.location_name,\n avg_rank: report.avg_rank,\n scan_date: report.scan_date,\n platform: report.platform,\n keyword: report.keyword\n }\n}));"
},
"id": "transform",
"name": "Transform Data",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
660,
440
]
},
{
"parameters": {
"operation": "search",
"module": "Account",
"criteria": "={{ $json.place_id }}",
"options": {}
},
"id": "find-account",
"name": "Find Zoho Account",
"type": "n8n-nodes-base.zohoCrm",
"typeVersion": 1,
"position": [
920,
440
],
"credentials": {
"zohoOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"module": "Account",
"id": "={{ $json.id }}",
"additionalFields": {
"Avg_Rank": "={{ $('Transform Data').item.json.avg_rank }}",
"Last_Scan_Date": "={{ $('Transform Data').item.json.scan_date }}"
}
},
"id": "update-account",
"name": "Update Zoho Account",
"type": "n8n-nodes-base.zohoCrm",
"typeVersion": 1,
"position": [
1180,
440
],
"credentials": {
"zohoOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Every Day 6am": {
"main": [
[
{
"node": "Get Scan Reports",
"type": "main",
"index": 0
}
]
]
},
"Get Scan Reports": {
"main": [
[
{
"node": "Transform Data",
"type": "main",
"index": 0
}
]
]
},
"Transform Data": {
"main": [
[
{
"node": "Find Zoho Account",
"type": "main",
"index": 0
}
]
]
},
"Find Zoho Account": {
"main": [
[
{
"node": "Update Zoho Account",
"type": "main",
"index": 0
}
]
]
}
},
"meta": {
"templateCredsSetupCompleted": true
}
}
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.
localFalconApizohoOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Local Falcon's daily SEO rankings for your locations sync seamlessly into Zoho CRM, keeping your sales team informed about search performance without manual effort. This saves hours of data entry, enabling quicker decisions on marketing strategies based on real-time visibility insights. Ideal for agencies or businesses managing multiple sites, the workflow's key step fetches fresh scan reports from Local Falcon every morning via a scheduled trigger, then maps and updates the relevant CRM records.
Use this workflow when you need automated, consistent ranking updates to track SEO progress across locations and tie it to client CRM profiles. Avoid it for one-off reports or if your rankings require custom filters beyond basic scans, as it focuses on daily full syncs. Common variations include adjusting the cron schedule for hourly checks or adding email alerts for ranking drops in Zoho.
About this workflow
Sync Local Falcon rankings to Zoho CRM. Uses @local-falcon/n8n-nodes-localfalcon, zohoCrm. Scheduled trigger; 11 nodes.
Source: https://github.com/local-falcon/n8n-templates/blob/3dd7676046b6b8efc3bda40821cc944664db80f2/templates/22-zoho-crm-sync.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.
Sync Local Falcon rankings to HubSpot company records. Uses @local-falcon/n8n-nodes-localfalcon, hubspot. Scheduled trigger; 12 nodes.
Sync Local Falcon rankings to Pipedrive deals. Uses @local-falcon/n8n-nodes-localfalcon, pipedrive. Scheduled trigger; 11 nodes.
Sync Local Falcon rankings to Salesforce. Uses @local-falcon/n8n-nodes-localfalcon, salesforce. Scheduled trigger; 11 nodes.
This workflow is designed for B2B/SaaS teams who want to secure renewals before it’s too late.
This workflow extracts Lead and Opportunity data from Salesforce, transforms and normalizes the data, and loads it into PostgreSQL as a structured data bank for reporting and analytics.