AutomationFlowsWeb Scraping › Fl Trends -> Openwebui Kb (trends_county) - Fixed

Fl Trends -> Openwebui Kb (trends_county) - Fixed

FL Trends -> OpenWebUI KB (trends_county) - FIXED. Uses httpRequest. Event-driven trigger; 10 nodes.

Event trigger★★★★☆ complexity10 nodesHTTP Request
Web Scraping Trigger: Event Nodes: 10 Complexity: ★★★★☆ Added:

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": "FL Trends -> OpenWebUI KB (trends_county) - FIXED",
  "description": "Collects FL trends data and injects into OpenWebUI knowledge base using correct API endpoints",
  "nodes": [
    {
      "id": "1",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        250,
        200
      ],
      "parameters": {}
    },
    {
      "id": "2",
      "name": "Set Input Params",
      "type": "n8n-nodes-base.set",
      "position": [
        450,
        200
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "kb_id",
              "value": "={{$env['OPENWEBUI_KB_TRENDS_ID'] || 'fl-trends'}}"
            },
            {
              "name": "openwebui_url",
              "value": "={{$env['OPENWEBUI_API_URL'] || 'https://openwebui.local'}}"
            },
            {
              "name": "openwebui_token",
              "value": "={{$env['OPENWEBUI_API_TOKEN']}}"
            }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "2b",
      "name": "Florida Counties List",
      "type": "n8n-nodes-base.set",
      "position": [
        650,
        200
      ],
      "parameters": {
        "values": {
          "json": {
            "counties": [
              {
                "name": "Alachua",
                "lat": 29.8416,
                "lon": -82.3125
              },
              {
                "name": "Baker",
                "lat": 30.3694,
                "lon": -82.3686
              },
              {
                "name": "Bradford",
                "lat": 29.9531,
                "lon": -82.2447
              },
              {
                "name": "Brevard",
                "lat": 28.3814,
                "lon": -80.6086
              },
              {
                "name": "Broward",
                "lat": 26.3667,
                "lon": -80.1333
              },
              {
                "name": "Calhoun",
                "lat": 30.3604,
                "lon": -85.3062
              },
              {
                "name": "Charlotte",
                "lat": 26.9124,
                "lon": -81.9023
              },
              {
                "name": "Citrus",
                "lat": 28.8997,
                "lon": -82.4131
              },
              {
                "name": "Clay",
                "lat": 30.0647,
                "lon": -81.7844
              },
              {
                "name": "Collier",
                "lat": 26.1667,
                "lon": -81.5
              },
              {
                "name": "Columbia",
                "lat": 30.2683,
                "lon": -82.6428
              },
              {
                "name": "DeSoto",
                "lat": 27.0225,
                "lon": -81.7728
              },
              {
                "name": "Dixie",
                "lat": 29.8583,
                "lon": -83.1147
              },
              {
                "name": "Duval",
                "lat": 30.3369,
                "lon": -81.6617
              },
              {
                "name": "Escambia",
                "lat": 30.5597,
                "lon": -87.277
              },
              {
                "name": "Flagler",
                "lat": 29.4308,
                "lon": -81.2381
              },
              {
                "name": "Franklin",
                "lat": 29.8206,
                "lon": -84.8936
              },
              {
                "name": "Gadsden",
                "lat": 30.5453,
                "lon": -84.6269
              },
              {
                "name": "Gilchrist",
                "lat": 29.8317,
                "lon": -82.9314
              },
              {
                "name": "Glades",
                "lat": 26.9089,
                "lon": -80.9558
              },
              {
                "name": "Gulf",
                "lat": 29.5556,
                "lon": -85.4364
              },
              {
                "name": "Hamilton",
                "lat": 30.1269,
                "lon": -82.8522
              },
              {
                "name": "Hardee",
                "lat": 27.4211,
                "lon": -81.6697
              },
              {
                "name": "Hendry",
                "lat": 26.5731,
                "lon": -81.1139
              },
              {
                "name": "Hernando",
                "lat": 28.5236,
                "lon": -82.4522
              },
              {
                "name": "Highlands",
                "lat": 27.4847,
                "lon": -81.3386
              },
              {
                "name": "Hillsborough",
                "lat": 27.8386,
                "lon": -82.2705
              },
              {
                "name": "Holmes",
                "lat": 30.7542,
                "lon": -85.6794
              },
              {
                "name": "Indian River",
                "lat": 27.8364,
                "lon": -80.7406
              },
              {
                "name": "Jackson",
                "lat": 30.7839,
                "lon": -85.2881
              },
              {
                "name": "Jefferson",
                "lat": 30.4497,
                "lon": -83.4322
              },
              {
                "name": "Lafayette",
                "lat": 29.9819,
                "lon": -82.9394
              },
              {
                "name": "Lake",
                "lat": 28.8708,
                "lon": -81.7664
              },
              {
                "name": "Lee",
                "lat": 26.6402,
                "lon": -81.8439
              },
              {
                "name": "Leon",
                "lat": 30.4383,
                "lon": -84.3047
              },
              {
                "name": "Levy",
                "lat": 29.5547,
                "lon": -83.1925
              },
              {
                "name": "Liberty",
                "lat": 30.2297,
                "lon": -84.9486
              },
              {
                "name": "Madison",
                "lat": 30.3614,
                "lon": -83.3783
              },
              {
                "name": "Manatee",
                "lat": 27.6386,
                "lon": -82.4644
              },
              {
                "name": "Marion",
                "lat": 29.1878,
                "lon": -82.1525
              },
              {
                "name": "Martin",
                "lat": 27.1314,
                "lon": -80.3417
              },
              {
                "name": "Miami-Dade",
                "lat": 25.7617,
                "lon": -80.1918
              },
              {
                "name": "Monroe",
                "lat": 24.555,
                "lon": -81.7822
              },
              {
                "name": "Nassau",
                "lat": 30.6783,
                "lon": -81.5739
              },
              {
                "name": "Okaloosa",
                "lat": 30.4317,
                "lon": -86.5281
              },
              {
                "name": "Okeechobee",
                "lat": 27.2539,
                "lon": -80.8475
              },
              {
                "name": "Orange",
                "lat": 28.5383,
                "lon": -81.3792
              },
              {
                "name": "Osceola",
                "lat": 28.2167,
                "lon": -81.5667
              },
              {
                "name": "Palm Beach",
                "lat": 26.4767,
                "lon": -80.2783
              },
              {
                "name": "Pasco",
                "lat": 28.3583,
                "lon": -82.3067
              },
              {
                "name": "Pinellas",
                "lat": 27.895,
                "lon": -82.7667
              },
              {
                "name": "Polk",
                "lat": 28.0083,
                "lon": -81.7603
              },
              {
                "name": "Putnam",
                "lat": 29.2742,
                "lon": -81.895
              },
              {
                "name": "St Johns",
                "lat": 30.3311,
                "lon": -81.4406
              },
              {
                "name": "St Lucie",
                "lat": 27.24,
                "lon": -80.4594
              },
              {
                "name": "Santa Rosa",
                "lat": 30.7139,
                "lon": -86.9997
              },
              {
                "name": "Sarasota",
                "lat": 27.3364,
                "lon": -82.5364
              },
              {
                "name": "Seminole",
                "lat": 28.7961,
                "lon": -81.2742
              },
              {
                "name": "Sumter",
                "lat": 28.7919,
                "lon": -82.1897
              },
              {
                "name": "Suwannee",
                "lat": 30.0867,
                "lon": -83.0058
              },
              {
                "name": "Taylor",
                "lat": 29.9267,
                "lon": -83.3503
              },
              {
                "name": "Union",
                "lat": 30.1567,
                "lon": -82.5606
              },
              {
                "name": "Volusia",
                "lat": 28.9953,
                "lon": -81.0265
              },
              {
                "name": "Wakulla",
                "lat": 30.2342,
                "lon": -84.3769
              },
              {
                "name": "Walton",
                "lat": 30.5789,
                "lon": -86.2314
              },
              {
                "name": "Washington",
                "lat": 30.8283,
                "lon": -85.3261
              }
            ]
          }
        },
        "options": {}
      }
    },
    {
      "id": "2c",
      "name": "Loop Counties",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        850,
        200
      ],
      "parameters": {
        "batchSize": 1
      }
    },
    {
      "id": "2d",
      "name": "Set Config Params",
      "type": "n8n-nodes-base.set",
      "position": [
        1050,
        200
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "county_name",
              "value": "={{$node[\"Loop Counties\"].json['name']}}"
            },
            {
              "name": "lat",
              "value": "={{$node[\"Loop Counties\"].json['lat']}}"
            },
            {
              "name": "lon",
              "value": "={{$node[\"Loop Counties\"].json['lon']}}"
            }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "3",
      "name": "Census ACS (Demographics & Housing)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1300,
        80
      ],
      "parameters": {
        "authentication": "none",
        "requestMethod": "GET",
        "url": "https://api.census.gov/data/2023/acs/acs5",
        "queryParametersUi": {
          "parameter": [
            {
              "name": "get",
              "value": "NAME,B19013_001E,B25077_001E,B01003_001E"
            },
            {
              "name": "for",
              "value": "county:*"
            },
            {
              "name": "in",
              "value": "state:12"
            },
            {
              "name": "key",
              "value": "={{$env[\"CENSUS_API_KEY\"] || \"YOUR_CENSUS_API_KEY\"}}"
            }
          ]
        },
        "responseFormat": "json",
        "options": {
          "timeout": 30000
        }
      }
    },
    {
      "id": "4",
      "name": "County Parcel / Zoning (ArcGIS FeatureServer Template)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1300,
        240
      ],
      "parameters": {
        "authentication": "none",
        "requestMethod": "GET",
        "url": "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/query",
        "queryParametersUi": {
          "parameter": [
            {
              "name": "geometry",
              "value": "={{$node[\"Set Config Params\"].json[\"lon\"] + ',' + $node[\"Set Config Params\"].json[\"lat\"]}}"
            },
            {
              "name": "geometryType",
              "value": "esriGeometryPoint"
            },
            {
              "name": "inSR",
              "value": "4326"
            },
            {
              "name": "spatialRel",
              "value": "esriSpatialRelIntersects"
            },
            {
              "name": "outFields",
              "value": "*"
            },
            {
              "name": "f",
              "value": "json"
            }
          ]
        },
        "responseFormat": "json",
        "options": {
          "timeout": 30000
        }
      }
    },
    {
      "id": "5",
      "name": "Normalize & Combine Results",
      "type": "n8n-nodes-base.function",
      "position": [
        950,
        160
      ],
      "parameters": {
        "functionCode": "const censusRaw = items[0].json;\nconst parcelRaw = items[1].json;\n\nlet census = {};\ntry {\n  if (Array.isArray(censusRaw) && censusRaw.length >= 2) {\n    const headers = censusRaw[0];\n    const values = censusRaw[1];\n    census = headers.reduce((acc, key, idx) => ({ ...acc, [key]: values[idx] }), {});\n  } else {\n    census = censusRaw || {};\n  }\n} catch (e) { census = { error: e.message, raw: censusRaw }; }\n\nlet parcel = {};\ntry { parcel = (parcelRaw && parcelRaw.features && parcelRaw.features[0]) ? (parcelRaw.features[0].attributes || parcelRaw.features[0]) : { note: 'No parcel feature; check county service URL' }; } catch (e) { parcel = { error: e.message, raw: parcelRaw }; }\n\nconst content = {\n  period: new Date().toISOString().slice(0,10),\n  county: $node[\"Set Config Params\"].json.county_name,\n  lat: $node[\"Set Config Params\"].json.lat,\n  lon: $node[\"Set Config Params\"].json.lon,\n  census,\n  county_parcel: parcel\n};\n\nconst contentText = `FL Trends Report for ${$node[\"Set Config Params\"].json.county_name} County, FL\nLocation: ${$node[\"Set Config Params\"].json.lat}, ${$node[\"Set Config Params\"].json.lon}\nDate: ${content.period}\n\nCensus Data (ACS):\n${JSON.stringify(census, null, 2)}\n\nCounty Parcel/Zoning Info:\n${JSON.stringify(parcel, null, 2)}`;\n\nreturn [{ json: { content, contentText } }];"
      }
    },
    {
      "id": "6",
      "name": "Inject to OpenWebUI KB via Text API (CORRECT)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1700,
        160
      ],
      "parameters": {
        "authentication": "none",
        "requestMethod": "POST",
        "url": "={{$node[\"Set Input Params\"].json['openwebui_url']}}/api/retrieval/process/text",
        "headers": {
          "Authorization": "Bearer {{$node[\"Set Input Params\"].json['openwebui_token']}}",
          "Content-Type": "application/json"
        },
        "jsonParameters": true,
        "bodyParametersJson": "={\n  \"name\": \"FL Trends {{$node[\\\"Set Config Params\\\"].json['county_name']}} {{new Date().toISOString().split('T')[0]}}\",\n  \"content\": {{JSON.stringify($node[\\\"Normalize & Combine Results\\\"].json.contentText)}},\n  \"collection_name\": \"{{$node[\\\"Set Input Params\\\"].json['kb_id']}}\"\n}",
        "options": {
          "timeout": 30000,
          "otherOptions": {
            "allowUnauthenticatedDownloads": false
          }
        }
      }
    },
    {
      "id": "7",
      "name": "Return Success",
      "type": "n8n-nodes-base.set",
      "position": [
        1900,
        160
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "status",
              "value": "success"
            },
            {
              "name": "message",
              "value": "Trends data injected into OpenWebUI KB"
            },
            {
              "name": "county",
              "value": "={{$node[\"Set Config Params\"].json['county_name']}}"
            },
            {
              "name": "timestamp",
              "value": "={{new Date().toISOString()}}"
            }
          ]
        },
        "options": {}
      }
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Set Input Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Input Params": {
      "main": [
        [
          {
            "node": "Florida Counties List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Florida Counties List": {
      "main": [
        [
          {
            "node": "Loop Counties",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Counties": {
      "main": [
        [
          {
            "node": "Set Config Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Config Params": {
      "main": [
        [
          {
            "node": "Census ACS (Demographics & Housing)",
            "type": "main",
            "index": 0
          },
          {
            "node": "County Parcel / Zoning (ArcGIS FeatureServer Template)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Census ACS (Demographics & Housing)": {
      "main": [
        [
          {
            "node": "Normalize & Combine Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "County Parcel / Zoning (ArcGIS FeatureServer Template)": {
      "main": [
        [
          {
            "node": "Normalize & Combine Results",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Normalize & Combine Results": {
      "main": [
        [
          {
            "node": "Inject to OpenWebUI KB via Text API (CORRECT)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Inject to OpenWebUI KB via Text API (CORRECT)": {
      "main": [
        [
          {
            "node": "Return Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "saveExecutionProgress": true,
    "errorWorkflow": "error_handler_workflow_id"
  },
  "staticData": {},
  "notes": "FIXED VERSION: Uses correct OpenWebUI API endpoints with Bearer token authentication. Converts data to text format for /api/retrieval/process/text endpoint."
}
Pro

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

About this workflow

FL Trends -> OpenWebUI KB (trends_county) - FIXED. Uses httpRequest. Event-driven trigger; 10 nodes.

Source: https://github.com/beaudamore/openwebui-repliers-real-estate-tool/blob/b3e659fd3d57bf9d4e08d7b295b96e79d01ab15c/n8n/trends.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

This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link b

Trello Trigger, HTTP Request
Web Scraping

02_LLM_Pipeline v1.0. Uses executeWorkflowTrigger, httpRequest, seaTable. Event-driven trigger; 65 nodes.

Execute Workflow Trigger, HTTP Request, Sea Table
Web Scraping

This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t

Execute Command, Read Write File, HTTP Request +3
Web Scraping

[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.

HTTP Request, GitHub, Stop And Error +1
Web Scraping

[](https://youtu.be/c7yCZhmMjtI)

HTTP Request, GitHub, Stop And Error +1