This workflow corresponds to n8n.io template #4872 — we link there as the canonical source.
This workflow follows the Agent → Chat Trigger 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "d9e07286-a8be-4c28-8519-acf7cd35ad86",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-900,
-40
],
"parameters": {
"public": true,
"options": {
"showWelcomeScreen": true
},
"initialMessages": "Hi there! \ud83d\udc4b\n\nMy name is Miquel and I am your personal Real Estate agent. I help you to find your new home.\n\nWhat are you looking for?"
},
"typeVersion": 1.1
},
{
"id": "7ca48714-3c65-4f32-9491-7b7b621aaa00",
"name": "Simple Memory1",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-420,
140
],
"parameters": {
"contextWindowLength": 30
},
"typeVersion": 1.3
},
{
"id": "79bea812-5a33-40a1-aa74-fe202d39dded",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-580,
140
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "30ef3cfc-56db-4092-af0d-304afdad94f0",
"name": "Filter Dataset",
"type": "n8n-nodes-brightdata.brightDataTool",
"position": [
-260,
140
],
"parameters": {
"resource": "marketplaceDataset",
"operation": "filterDataset",
"dataset_id": {
"__rl": true,
"mode": "list",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Dataset', ``, 'string') }}"
},
"filter_type": "filters_group",
"filters_group": "={{ $fromAI('Filters_Group') }}",
"records_limit": "=3",
"descriptionType": "manual",
"toolDescription": "Create a dataset snapshot based on a provided filter in BrightData. use always filter homeStatus = FOR_SALE. We have the next operators: =, >, >=, in, <, <=, not_array_includes, !=, not_in, not_includes\n\nFilter must follow the next format:\n{\n \"operator\": \"and\",\n \"filters\": [\n {\n \"name\": \"homeStatus\",\n \"operator\": \"=\",\n \"value\": \"FOR_SALE\"\n },\n {\n \"name\": \"price\",\n \"operator\": \"=\",\n \"value\": 1000000\n },\n {\n \"name\": \"city\",\n \"operator\": \"=\",\n \"value\": \"new york\"\n },\n {\n \"name\": \"bathrooms\",\n \"operator\": \"=\",\n \"value\": 2\n },\n {\n \"name\": \"bedrooms\",\n \"operator\": \"=\",\n \"value\": 4\n }\n ]\n}"
},
"credentials": {
"brightdataApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "6c4c4338-e4d2-40ee-89c0-89e1dd1dc330",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
-660,
-340
],
"parameters": {
"inputSource": "passthrough"
},
"typeVersion": 1.1
},
{
"id": "9db2680e-8bad-4b91-9cd6-8240f53081a0",
"name": "Snapshot is ready?",
"type": "n8n-nodes-base.if",
"position": [
-120,
-340
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "3e99082f-412a-4e33-ab77-c99ddd4d7ff5",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.items[0].abbreviatedAddress }}",
"rightValue": "NodeApiError"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "75f66a3a-7738-4a1c-af8a-29385ad41749",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
100,
-260
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "19beba9e-6089-443f-a384-4be3ec821423",
"name": "Real Estate AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-460,
-40
],
"parameters": {
"text": "={{ $json.chatInput }}",
"options": {
"maxIterations": 10,
"systemMessage": "=You are an expert AI Real Estate Agent.\n\nFollow the next guidelines always:\n\n1) If you have no memory, recover the metadata from the next databases:\n- Zillow properties listing information gd_lfqkr8wm13ixtbd8f5\nWe have the next filters:\n- city: City name where entity is located. Contains valid US city names as text strings.\n- bedrooms: Column stores the number of bedrooms in properties. Values are positive integers ranging from 1 to 7, with most properties having 2-4 bedrooms and no null values.\n- bathrooms: Number of bathrooms in residential properties. Values are positive integers ranging from 1 to 7, with most properties having 2-3 bathrooms and no null values.\n- price: Property price in US dollars. Format sample: 180,000\n\nInform user that only 3 houses will be reported.\nOnly call filterDataset if user completes city, bedrooms, bathrooms and price filters.\n\n2) Use filterDataset to generate a snapshot of the requested houses by mapping filter of the user.\nOnly allow one call to tool \"Filter Dataset\", \n\n3) After calling \"filter Dataset\" tool, use tool \"Get Snapshot Content\". Pass snapshot_id parameter.\n\n4) Use output from tool \"Get Snapshot Content\" to convert json to a list of properties with ul > li\nuse returned images to present home briefing"
},
"promptType": "define"
},
"typeVersion": 1.9
},
{
"id": "679e5b92-7b52-4230-a395-f3840d167756",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-960,
-600
],
"parameters": {
"width": 1260,
"height": 880,
"content": "# Real Estate AI Agent with Bright Data\n\n## TODO\n- After pasting this workflow, update node \"Get Snapshot Content\" tool and add current Workflow ID (for instance, if your workflow in n8n has the next url https://n8n-ai.cr.vps2.clients.killia.com/workflow/fjEIEQ1L6n2IKqlx your workflow Id is fjEIEQ1L6n2IKqlx).\n- Add your Bright Data api key to \"Filter Dataset\" tool and \"Recover Snapshot Content\" node."
},
"typeVersion": 1
},
{
"id": "118c60c3-3a46-4ca2-be84-997218949bde",
"name": "Recover Snapshot Content",
"type": "n8n-nodes-brightdata.brightData",
"position": [
-340,
-340
],
"parameters": {
"resource": "marketplaceDataset",
"operation": "getSnapshotContent",
"snapshot_id": "={{ $('When Executed by Another Workflow').item.json.query }}"
},
"credentials": {
"brightdataApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "5cc00806-6995-4d82-a832-f3159a66e31a",
"name": "Get Snapshot Content",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-100,
140
],
"parameters": {
"workflowId": {
"__rl": true,
"mode": "id",
"value": "Ky9jD15PJgT7PIgP"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.2
}
],
"connections": {
"Wait": {
"main": [
[
{
"node": "Recover Snapshot Content",
"type": "main",
"index": 0
}
]
]
},
"Filter Dataset": {
"ai_tool": [
[
{
"node": "Real Estate AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Simple Memory1": {
"ai_memory": [
[
{
"node": "Real Estate AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Real Estate AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Snapshot is ready?": {
"main": [
[],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Get Snapshot Content": {
"ai_tool": [
[
{
"node": "Real Estate AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Recover Snapshot Content": {
"main": [
[
{
"node": "Snapshot is ready?",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Real Estate AI Agent",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Recover Snapshot Content",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
brightdataApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
📝 Overview This workflow transforms n8n into a smart real-estate concierge by combining an AI chat interface with Bright Data’s marketplace datasets. Users interact via chat to specify city, price, bedrooms, and bathrooms—and receive a curated list of three homes for sale,…
Source: https://n8n.io/workflows/4872/ — 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.
This n8n template provides a powerful AI-powered chatbot that acts as your personal Spotify DJ. Simply tell the chatbot what kind of music you're in the mood for, and it will intelligently create a cu
I prepared a detailed guide showcasing the process of building an AI agent that interacts with a Snowflake database using n8n. This setup enables conversational querying, secure execution of SQL queri
Currently Work-In-Progress
Build your own AI Prompt Hub inside n8n. This template lets ChatGPT automatically search your saved prompts in Notion using semantic embeddings from HuggingFace. Each time a user sends a message, the
Chat with an AI and ask questions about your Meta Ads metrics.