AI-Powered SQL Query Generator from Database Schema

Overview

This workflow lets you chat with your MySQL database using natural language. It first extracts the complete schema (table structures) from your database and saves it locally. Then, via a chat interface, you can ask questions like "Show me all German customers" or "What is the total sales by country?" and the AI (powered by OpenAI's GPT-4o) generates the corresponding SQL query. The workflow can optionally execute the query and return the results, all within the same chat session.

This is especially useful for non-technical team members who need to query databases without writing SQL, or for developers who want to quickly prototype queries without manually inspecting the schema.

Step-by-Step Node Breakdown

Part 1: One-Time Schema Extraction (Run manually first)

  • When clicking "Test workflow" (Manual Trigger) — No auth. Starts the schema extraction process when you click "Test Workflow".
  • List all tables in a database (MySQL) — MySQL credentials (username/password). Executes SHOW TABLES; to retrieve all table names from the connected database.
  • Extract database schema (MySQL) — Same MySQL credentials. For each table, runs DESCRIBE {{ table_name }}; to get column names, types, and constraints.
  • Add table name to output (Set) — No auth. Adds the original table name to each schema record so the AI knows which table each column belongs to.
  • Convert data to binary (Convert to File) — No auth. Converts the collected schema data into JSON format.
  • Save file locally (Read/Write File) — No auth. Writes the JSON schema to a local file named chinook_mysql.json (you can change the filename).

Part 2: Chat Interface (Runs on every message)

  • Chat Trigger (Webhook) — No auth. Provides a chat endpoint (webhook) where users send natural language questions. It outputs chatInput, sessionId, and action.
  • Load the schema from the local file (Read/Write File) — No auth. Reads the previously saved chinook_mysql.json file to get the database schema.
  • Extract data from file (Extract from File) — No auth. Parses the JSON file into a usable object.
  • Combine schema data and chat input (Set) — No auth. Merges the schema (as a string) with the user's chat input, session ID, and action into a single payload for the AI.
  • OpenAI Chat Model (LangChain Chat Model) — OpenAI API key (OAuth2 or API Key). Uses gpt-4o with a low temperature (0.2) for consistent SQL generation.
  • Window Buffer Memory (LangChain Memory) — No auth. Maintains a conversation window of the last 10 exchanges so the AI remembers context.
  • AI Agent (LangChain Agent) — No auth. The core agent that receives the schema and user request. It is configured with a custom system prompt instructing it to generate SQL queries (wrapped in triple quotes) but not to execute them. The agent decides whether a query is needed.
  • Extract SQL query (Set) — No auth. Uses a regex (/SELECT[\s\S]*?;/i) to extract any SQL query from the agent's response.
  • Check if query exists (IF) — No auth. If an SQL query was extracted, it proceeds to execute it; otherwise, it sends the agent's answer directly to the user.
  • Run SQL query (MySQL) — Same MySQL credentials. Executes the extracted SQL query against the database.
  • Format query results (Set) — No auth. Converts the query results into a markdown-style table (headers and rows separated by pipes).
  • Combine query result and chat answer (Merge) — No auth. Merges the original agent response with the formatted SQL output.
  • Prepare final output (Set) — No auth. Combines the agent's text answer and the SQL result into a single output string.
  • No Operation, do nothing (NoOp) — No auth. A placeholder for the branch where no SQL query was needed (the agent's answer is passed through without modification).

Setup Instructions

  1. MySQL Database: You need a MySQL database with your data. The workflow uses a free MySQL hosting service (like db4free.net) in the example. Import your database schema (the Chinook sample database is used in the demo, available on GitHub).
  2. MySQL Credentials: In n8n, create a MySQL credential with your host, port, database name, username, and password.
  3. OpenAI API Key: You need an OpenAI account and an API key. Create an OpenAI credential in n8n (choose "API Key" auth).
  4. Run Part 1: Click "Test Workflow" on the manual trigger to extract the schema. This will create the chinook_mysql.json file on your n8n server.
  5. Chat: After the schema is saved, you can start chatting via the Chat Trigger webhook URL. Send natural language questions and receive SQL queries (and optionally results).

Use Cases and Variations

  • Database Exploration: Quickly understand what data is available without writing SQL.
  • Reporting: Generate ad-hoc reports by asking questions like "What are the top 5 customers by revenue?"
  • Learning SQL: See how natural language translates to SQL queries.
  • Adaptation: Replace MySQL with PostgreSQL or SQLite by swapping the database nodes. You can also change the AI model (e.g., GPT-3.5-turbo) or adjust the system prompt to enforce different SQL dialects.
  • Security: The AI never sees actual data — only the schema. Queries are executed externally, keeping sensitive data safe.
29 nodesmanual triggerAI
Lm Chat Open AIMemory Buffer WindowNo OpMy SQLSetConvert To FileRead Write FileExtract From File

Workflow JSON

{
  "id": "P307QnrxpA1ddsM5",
  "meta": {
    "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a",
    "templateCredsSetupCompleted": true
  },
  "name": "Generate SQL queries from schema only - AI-powered",
  "tags": [],
  "nodes": [
    {
      "id": "b7c3ca47-11b3-4378-81fa-68b2f56b295e",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1460,
        440
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {
          "temperature": 0.2
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "rveqdSfp7pCRON1T",
          "name": "Ted's Tech Talks OpenAi"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "977c3a82-440b-4d44-9042-47a673bcb52c",
      "name": "Window Buffer Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1640,
        440
      ],
      "parameters": {
        "contextWindowLength": 10
      },
      "typeVersion": 1.2
    },
    {
      "id": "c6e9c0e2-d238-4f0b-a4c8-2271f2c8b31b",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2340,
// ... truncated (copy to see full JSON)

How to Import This Workflow

  1. 1Copy the workflow JSON above using the Copy Workflow JSON button.
  2. 2Open your n8n instance and go to Workflows.
  3. 3Click Import from JSON and paste the copied workflow.

Don't have an n8n instance? Start your free trial at n8nautomation.cloud

Related Templates

Automated Blog Post Creation from News with AI and Blogger

This workflow automates the entire process of creating a fully SEO-optimized blog post from a news article. It fetches a trending technology news headline from Mediastack, generates relevant images from Pexels, uses two AI agents (via OpenRouter) to produce a title, slug, meta description, and a complete WordPress-compatible HTML blog post, then posts it directly to Blogger and sends you a Telegram notification. It's perfect for content marketers, bloggers, or anyone who wants to consistently publish fresh, data-driven content without manual effort. Node Breakdown Schedule Trigger (No auth) — Runs the workflow at a set interval (configured every minute by default, but you should change it to daily or hourly). Mediastack News (API Key auth via query parameter) — Fetches the latest technology news article in English from the Mediastack API. Parameters: set to . Genarate image (API Key auth via header, ) — Searches Pexels for up to 2 images related to the news title. Parameters: = , = 2. Send a text message1 (Telegram bot token auth) — Sends a Telegram message with the generated image URLs to the chat ID stored in . AI Agent (Uses OpenRouter Chat Model — API Key auth) — This agent takes the news title and returns a JSON object with three fields: , , and (meta description). The prompt includes strict guidelines for SEO-friendly output. OpenRouter Chat Model (API Key auth) — The language model for the first AI agent, using . Parsing (No auth) — A Code node that cleans the raw AI output (removes markdown code fences) and parses the JSON into usable fields. Copywriter AI Agent (Uses OpenRouter Chat Model2 — API Key auth) — This agent writes a complete 1,000-word SEO blog post in HTML format. It uses the title, meta, and the two images from Pexels. The prompt is very detailed, specifying structure, keyword placement, and styling. OpenRouter Chat Model2 (API Key auth) — Same model as the first, but used for the second agent. Cleanup HTML (No auth) — A Set node that removes any leftover htmlurlhttps://www.googleapis.com/blogger/v3/blogs/$vars.bloggerid/postsPOSThttpQueryAuthAuthorization$vars.telegramchatid$vars.bloggeridbusinesssports`) to match your niche. Multi-language Support — Modify the Mediastack query to fetch news in other languages, and adjust the AI prompts to write in that language. Custom Image Sources — Replace the Pexels node with another image API (e.g., Unsplash) or use a local image generation model. Different CMS — Swap the Blogger HTTP Request node with WordPress or any other CMS API (just change the URL and body format). Human-in-the-Loop — Add a Slack or email approval step before publishing to review the AI-generated content. Newsletter Integration — Instead of posting to a blog, send the formatted content as an email newsletter via Gmail or SendGrid.

16 nodes

AI Chat Agent with OpenAI, Memory, and Web Search

Overview This workflow creates an intelligent AI chat agent that combines OpenAI's language model with conversational memory and real-time web search capabilities via SerpAPI. It is designed to power interactive chat applications where the AI can remember context across messages and fetch up-to-date information from the internet when needed. This is particularly useful for building customer support bots, research assistants, or any conversational interface that requires both knowledge retention and live data access. The workflow is triggered by incoming chat messages and processes them through an AI agent that coordinates between the language model, memory buffer, and search tool. The agent can decide when to use web search to answer questions that require current information, while maintaining conversation history for coherent multi-turn dialogues. Workflow Steps Manual Trigger (No auth) — This node allows you to manually start the workflow for testing purposes. It has no parameters configured and simply provides a button to execute the workflow on demand. When chat message received (No auth) — This is a webhook-based trigger that listens for incoming chat messages. It generates a unique webhook URL that you can integrate with your chat frontend or messaging platform. The parameter is empty, meaning default webhook behavior is used. AI Agent (No auth) — This is the core orchestrator node that manages the conversation flow. It coordinates between the OpenAI model, memory buffer, and SerpAPI tool. The agent decides which tool to use based on the user's query and maintains the conversation state. OpenAI Chat Model (API Key auth) — This node connects to OpenAI's GPT-4o-mini model to generate responses. It requires an OpenAI API key configured in n8n credentials. The parameter is set to , which is a cost-effective and fast model suitable for chat applications. The parameter is empty, using default model settings. Window Buffer Memory (No auth) — This node implements a sliding window memory that stores recent conversation history. It allows the AI to remember context from previous messages within a configurable window size. The parameters are empty, using default memory settings. SerpAPI (API Key auth) — This tool node enables web search functionality via SerpAPI (Google Search API). It requires a SerpAPI API key configured in n8n credentials. The parameter is empty, using default search settings. The agent calls this node when it determines that real-time web data is needed to answer a query. Setup Instructions To use this workflow, you need the following accounts and credentials: OpenAI Account: Sign up at platform.openai.com and create an API key. In n8n, create an "OpenAI" credential and paste your API key. SerpAPI Account: Register at serpapi.com and obtain an API key. In n8n, create a "SerpAPI" credential with your key. Webhook URL: After activating the workflow, copy the webhook URL from the "When chat message received" node. Integrate this URL into your chat application (e.g., a custom web chat widget, Slack app, or Telegram bot). Optional: Configure the memory window size in the "Window Buffer Memory" node if you want to limit or extend conversation context. Use Cases and Variations This workflow can be adapted for multiple scenarios: Customer Support Bot: Replace SerpAPI with a knowledge base tool (e.g., vector store or database lookup) to answer product-specific questions. Research Assistant: Keep SerpAPI for web search and add additional tools like Wikipedia or news APIs. Multi-Platform Chat: Connect the webhook to different messaging platforms (Slack, Discord, Telegram) by adding appropriate trigger nodes. Personal Assistant: Add calendar or email tools to let the AI manage schedules and send messages. Language Translation: Replace the OpenAI model with a translation-specific model or add a translation tool node. To extend the workflow, you can add more tool nodes (e.g., database queries, file operations) and connect them to the AI Agent. The agent will automatically learn to use new tools based on their descriptions.

6 nodes

AI Blog Generator For WordPress Posts

AI Blog Generator For WordPress Posts This workflow automates the creation of blog post drafts by combining an n8n form, OpenAI's language model, and WordPress. It's designed for content creators, marketers, and bloggers who want to overcome writer's block and streamline their content pipeline. Instead of starting from a blank page, you submit a topic, target audience, and key points through a simple form, and the workflow generates a structured, well-written draft ready for your review and editing in WordPress. The core value of this workflow is its efficiency. It transforms a time-consuming task—writing a first draft—into a quick, structured process. By keeping the output as a 'draft' in WordPress, it ensures that nothing goes live without your final approval, maintaining editorial control. The workflow also includes thoughtful touches like automatic retries for the AI call and clear instructions for troubleshooting, making it robust and user-friendly. Workflow Nodes and Steps Here is a step-by-step breakdown of the workflow: Setup — read me first (Sticky Note) — Provides an overview, setup time, level, and links to the creator's site. How it runs (Sticky Note) — Explains the workflow's logic and data flow. If something breaks (Sticky Note) — Offers guidance on error handling and setting up an error workflow. Draft Request Form (Form Trigger) — This node hosts a web form with fields for 'Topic', 'Audience', and 'Key points (one per line)'. It starts the workflow when the form is submitted. (No auth required for the form itself). Write Draft (OpenAI) — This node uses the model to generate the blog post. It receives the form data and uses a carefully crafted prompt to produce a title and body in HTML format. (API Key auth). Split Title and Body (Code) — A JavaScript code node that parses the AI's response, extracting the title and the HTML body content into separate fields for the next step. (No auth). Create WordPress Draft (WordPress) — This node creates a new post in WordPress with the generated title and content, setting the status to 'draft' so it's not published immediately. (Application Password auth). Setup Instructions To use this workflow, you will need the following: OpenAI Account: You need an API key from OpenAI. Create an account at platform.openai.com, go to the API keys section, and create a new secret key. Add this key to the 'Write Draft' node's credentials. WordPress Site: You need a self-hosted WordPress.org site (not WordPress.com). To connect, you'll need to generate an Application Password. In your WordPress admin dashboard, go to Users > Profile and scroll down to the 'Application Passwords' section. Create a new one and use those credentials in the 'Create WordPress Draft' node. Activate the Workflow: After connecting your credentials, activate the workflow in n8n. The 'Draft Request Form' node will provide a production URL. Bookmark this URL to access your form. Use Cases and Variations Content Calendars: Integrate this with a Google Sheets node to log all generated drafts and their statuses. Multi-Platform Publishing: Add a step to convert the HTML draft to Markdown and send it to other CMSs like Ghost or Dev.to. SEO Optimization: Insert a node to analyze the generated content for keywords or readability scores before creating the WordPress post. Team Collaboration: Instead of a public form, trigger the workflow from a Slack command or email, allowing your team to submit topics without leaving their communication tools. Different Content Types: Modify the prompt in the 'Write Draft' node to generate other content formats like product descriptions, social media posts, or email newsletters.

7 nodes

Ready to automate with n8n?

Get affordable managed n8n hosting with 24/7 support.