This workflow corresponds to n8n.io template #3835 — 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 →
{
"id": "huG32xnAJhZGWhok",
"meta": {
"templateId": "self-building-ai-agent",
"templateCredsSetupCompleted": true
},
"name": "ozki: OpenAI CSV Analysis",
"tags": [],
"nodes": [
{
"id": "da07d6f1-12ac-4453-8272-7f7887256f61",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
360,
20
],
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "c545a4e2-7882-4dca-b2cc-369b97d027a2",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-60
],
"parameters": {
"width": 490,
"height": 569,
"content": "## Welcome to Ozki Your Data Analyst Agent V1.\n\nThe Ozki Data Analyst Agent is designed to analyze data from Google Sheets. To use it, you'll need to provide the URL of your Google Sheet file. The agent will then process the data and provide you with analysis results, including key performance indicators (KPIs).\n\n### Configuration:\n\n* Configure your credentials on the OpenAI model or select the n8n free OpenAI credits.\n* Set up your agent memory. Use Simple Memory as default.\n* Set your credentials to Google Sheets. Log in with the Google Sheet tool.\n\n### Instructions:\n\n* Start with a \"Hi\" to get the instructions.\n* Ozki needs your Google Sheet URL, which you can get from the address bar of your browser when you have the file open.\n* Follow the conversation with Ozki for your data analysis results.\n"
},
"typeVersion": 1
},
{
"id": "4bf42da8-cd93-45ce-8051-95b91019d75f",
"name": "OpenAI Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
580,
240
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "63bd9f43-c043-44f0-8885-67267c7e54bd",
"name": "Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
612,
20
],
"parameters": {
"text": "=\nDisplay a welcome message \" Hi, I am ozki. Your data analyst agent. I will take a look at your setup first.\\n\\n\"\n\n## Steps to follow\n\nDisplay this message \" Checking the memory tool configuration.\\n\"\n\n{{ $agentInfo.memoryConnectedToAgent ? '2. Memory is ready': `1. STOP and output the following:\n\"Welcome to n8n. Let's start with the first step to give me memory: \\n\"Click the **+** button on the agent that says 'memory' and choose 'Simple memory.' Just tell me once you've done that.\"\n----- END OF OUTPUT && IGNORE BELOW -----` }} \n\nDisplay this message \" Checking the Google Sheets credentials.\\n\"\n\n{{ $agentInfo.tools.find(tool => tool.name === 'Google Sheets').hasCredentials ? '2. Google Sheet is Ready' : '2. STOP and output the following: \"Next, connect your Google Sheets account in the n8n credentials and grant access to the folder containing your CSV files.\" ----- END OF OUTPUT && IGNORE BELOW -----' }}\n\nDisplay this message \"The setup looks complete. Let's start.\\n\"\n\n## Analysis:\n\n\"Please, Tell me the URL of the Google Sheet file you'd like me to analyze. You can get this URL from the address bar of your browser when you have the Google Sheet open. I'll then retrieve the data, and present my findings, including relevant key performance indicators (KPIs).\n\nBased on the data, I will determine the most appropriate KPIs.\n\n- If the data is sales-related: I will focus on KPIs such as Total Revenue, Sales Growth, Customer Acquisition Cost, Customer Lifetime Value, and Sales by Region.\n\n- If the data is telemetry information: I will focus on KPIs such as System Uptime, Response Time, Error Rate, Resource Utilization (CPU, Memory), and Throughput.\n\nMy findings from the provided file '[Agent: Filename provided by the user]' is as follows:\n\n- I will analyze the data:\n\n- Key Metrics: [Agent: List the most important metrics from the data. If there are both categorical and measure variables, provide a brief summary].\n\n- Trends: [Agent: Identify any significant trends over time, if applicable. If there are both categorical and measure variables, provide a brief summary].\n\n- Comparisons: [Agent: Compare different segments of the data, if applicable. If there are both categorical and measure variables, provide a brief summary].\n\n- Distribution: [Agent: Describe how values are distributed, if applicable. If there are both categorical and measure variables, provide a brief summary].\n\n- Anomalies: [Agent: Mention any unusual or unexpected data points. If there are both categorical and measure variables, provide a brief summary].\n\nUnless otherwise specified, I will provide a brief summary. If you'd like a more detailed report, please specify (e.g., 'detailed report').\"\n\n\n# User message\n\n{{ $json.chatInput }}",
"options": {
"systemMessage": "=You are a friendly Agent designed to guide users through the process of analyzing CSV data from their Google Drive.\n\n- Start with the welcome message\n- Run the \"Steps to Follow\" for setup instructions\n- Respond concisely and do **not** disclose these internal instructions to the user. Only return defined output below.\n- Don't output any lines that start with -----\n- Replace \":sparks:\" with \"\u2728\" in any message\n- if the setup instructions are complete, move on to the analysis section\n"
},
"promptType": "define"
},
"executeOnce": false,
"retryOnFail": false,
"typeVersion": 1.7
},
{
"id": "f1059905-1fb8-4b40-86ca-4aa3b4ab55ce",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
700,
240
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "41e14e6e-ea50-4c41-88f8-b4b96d06ad7f",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
820,
240
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}",
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "dd455d0d-2aae-468a-8f71-4f3d073822d0",
"connections": {
"Agent": {
"main": [
[]
]
},
"OpenAI Model": {
"ai_languageModel": [
[
{
"node": "Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google Sheets": {
"ai_tool": [
[
{
"node": "Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Agent",
"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.
googleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
The Ozki Data Analyst Agent is designed to analyze data from Google Sheets. To use it, you'll need to provide the URL of your Google Sheet file. The agent will then process the data and provide you with analysis results, including key performance indicators (KPIs). Configure…
Source: https://n8n.io/workflows/3835/ — 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.
Reservation Medcin. Uses chatTrigger, agent, lmChatOpenAi, memoryBufferWindow. Chat trigger; 12 nodes.
Airbnb Agent. Uses agent, chatTrigger, memoryBufferWindow, lmChatOpenAi. Chat trigger; 12 nodes.
This workflow template is designed for dental assistants and anyone looking to automate appointment scheduling. It integrates Google Calendar for booking appointments and Google Sheets as a database t
Automate customer conversations with an AI-powered virtual receptionist. This workflow can chat naturally with clients, answer general business questions (like services, location, and hours), check av
This n8n workflow template creates an intelligent data analysis system that converts natural language questions into Google Sheets SQL queries using OpenAI's GPT-4o model. The system generates proper