Facebook Messenger Bot with GPT-4 for Text, Image & Voice Processing
How it Works
This workflow lets you build a Messenger AI Agent capable of understanding text, images, and voice notes, and replying intelligently in real time.
It starts by receiving messages from a Facebook Page via a Webhook, detects the message type (text, image, or audio), and routes it through the right branch. Each input is then prepared as a prompt and sent to an AI Agent that can respond using text generation, perform quick calculations, or fetch information from Wikipedia.
Finally, the answer is formatted and sent back to Messenger via the Graph API, creating a smooth, fully automated chat experience.
Set Up Steps
1. Connect credentials
Add your OpenAI API key and Facebook Page Access Token in n8n credentials.
2. Plug the webhook
Copy the Messenger webhook URL from your workflow and paste it into your Facebook Page Developer settings (Webhook → Messages → Subscribe).
3. Customize the agent
Edit the System Message of the AI Agent to define tone, temperature, and purpose (e.g. “customer support”, “math assistant”).
4. Enable memory & tools
Turn on Simple Memory to keep conversation context and activate tools like Calculator or Wikipedia.
5. Test & deploy
Switch to production mode, test text, image, and voice messages directly from Messenger.
Benefits
💬 Multi-modal Understanding — Handles text, images, and audio messages seamlessly. ⚙️ Full Automation — End-to-end workflow from Messenger to AI and back. 🧠 Smart Replies — Uses OpenAI + Wikipedia + Calculator for context-aware answers. 🚀 No-Code Setup — Build your first Messenger AI in less than 30 minutes. 🔗 Extensible — Easily connect more tools or APIs like Airtable, Google Sheets, or Notion.
Facebook Messenger Bot with GPT-4 for Text, Image & Voice Processing
This n8n workflow automates a sophisticated Facebook Messenger bot that leverages GPT-4 to process various types of user input, including text, images, and voice messages. It acts as an intelligent assistant, providing dynamic responses and interacting with users in a versatile manner.
What it does
This workflow orchestrates the following steps:
- Listens for incoming Messenger messages: A
Webhooknode acts as the trigger, receiving messages sent to your Facebook Messenger bot. - Pre-processes incoming data: A
Functionnode extracts relevant message details (sender ID, message text, attachments, etc.) and prepares them for subsequent AI processing. - Determines message type: A
Switchnode analyzes the message to identify if it contains text, an image, or a voice recording. - Handles text messages (via OpenAI Chat Model):
- If a text message is detected, a
Simple Memorynode maintains conversational context. - An
OpenAI Chat Modelnode (likely GPT-4) generates a response based on the user's text and the conversation history. - The generated text response is sent back to the user via an
HTTP Requestnode to the Facebook Messenger API.
- If a text message is detected, a
- Handles image messages (via OpenAI Vision):
- If an image attachment is detected, the image URL is extracted.
- An
OpenAInode (likely configured for Vision capabilities) analyzes the image and generates a textual description or response. - The generated text response is sent back to the user via an
HTTP Requestnode to the Facebook Messenger API.
- Handles voice messages (via OpenAI Whisper):
- If a voice message attachment is detected, the audio file URL is extracted.
- An
HTTP Requestnode downloads the audio file. - Another
OpenAInode (likely configured for Whisper ASR) transcribes the voice message into text. - The transcribed text is then processed by the
OpenAI Chat Model(as with regular text messages) to generate a response. - The generated text response is sent back to the user via an
HTTP Requestnode to the Facebook Messenger API.
- Provides utility tools for the AI Agent:
- A
Calculatortool allows the AI to perform mathematical operations. - A
Wikipediatool enables the AI to search for information on Wikipedia. - These tools are integrated with an
AI Agentnode, allowing the AI to decide when and how to use them based on user queries.
- A
- Formats outgoing messages: An
Edit Fields (Set)node ensures the final response is correctly formatted for the Facebook Messenger API.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n instance: A running n8n instance to host the workflow.
- Facebook Developer Account: Access to a Facebook Developer account to create a Messenger App and obtain a Page Access Token and Verify Token.
- OpenAI API Key: An API key for OpenAI with access to GPT-4 (for chat and vision) and Whisper (for audio transcription).
- Facebook Messenger Credentials: Configured credentials for Facebook Messenger within n8n.
- OpenAI Credentials: Configured credentials for OpenAI within n8n.
Setup/Usage
- Import the workflow: Download the JSON provided and import it into your n8n instance.
- Configure Facebook Messenger Webhook:
- In the
Webhooknode (ID: 47), copy the "Webhook URL". - Go to your Facebook Messenger App settings (under "Webhooks") and paste this URL.
- Set the "Verify Token" in the Facebook App to match the one configured in the
Webhooknode's parameters in n8n. - Subscribe to the
messagesandmessaging_postbacksevents. - Ensure your Facebook Page is linked to the Messenger App and the App is live.
- In the
- Configure Credentials:
- Update the
OpenAI Chat Model(ID: 1153) andOpenAI(ID: 1250) nodes with your OpenAI API Key. - Ensure any
HTTP Requestnodes sending messages to Facebook Messenger are configured with your Facebook Page Access Token.
- Update the
- Activate the workflow: Once all credentials and webhook settings are configured, activate the workflow in n8n.
Your Facebook Messenger bot will now be live and ready to interact with users, processing text, image, and voice inputs using the power of GPT-4.
Related Templates
Automate Dutch Public Procurement Data Collection with TenderNed
TenderNed Public Procurement What This Workflow Does This workflow automates the collection of public procurement data from TenderNed (the official Dutch tender platform). It: Fetches the latest tender publications from the TenderNed API Retrieves detailed information in both XML and JSON formats for each tender Parses and extracts key information like organization names, titles, descriptions, and reference numbers Filters results based on your custom criteria Stores the data in a database for easy querying and analysis Setup Instructions This template comes with sticky notes providing step-by-step instructions in Dutch and various query options you can customize. Prerequisites TenderNed API Access - Register at TenderNed for API credentials Configuration Steps Set up TenderNed credentials: Add HTTP Basic Auth credentials with your TenderNed API username and password Apply these credentials to the three HTTP Request nodes: "Tenderned Publicaties" "Haal XML Details" "Haal JSON Details" Customize filters: Modify the "Filter op ..." node to match your specific requirements Examples: specific organizations, contract values, regions, etc. How It Works Step 1: Trigger The workflow can be triggered either manually for testing or automatically on a daily schedule. Step 2: Fetch Publications Makes an API call to TenderNed to retrieve a list of recent publications (up to 100 per request). Step 3: Process & Split Extracts the tender array from the response and splits it into individual items for processing. Step 4: Fetch Details For each tender, the workflow makes two parallel API calls: XML endpoint - Retrieves the complete tender documentation in XML format JSON endpoint - Fetches metadata including reference numbers and keywords Step 5: Parse & Merge Parses the XML data and merges it with the JSON metadata and batch information into a single data structure. Step 6: Extract Fields Maps the raw API data to clean, structured fields including: Publication ID and date Organization name Tender title and description Reference numbers (kenmerk, TED number) Step 7: Filter Applies your custom filter criteria to focus on relevant tenders only. Step 8: Store Inserts the processed data into your database for storage and future analysis. Customization Tips Modify API Parameters In the "Tenderned Publicaties" node, you can adjust: offset: Starting position for pagination size: Number of results per request (max 100) Add query parameters for date ranges, status filters, etc. Add More Fields Extend the "Splits Alle Velden" node to extract additional fields from the XML/JSON data, such as: Contract value estimates Deadline dates CPV codes (procurement classification) Contact information Integrate Notifications Add a Slack, Email, or Discord node after the filter to get notified about new matching tenders. Incremental Updates Modify the workflow to only fetch new tenders by: Storing the last execution timestamp Adding date filters to the API query Only processing publications newer than the last run Troubleshooting No data returned? Verify your TenderNed API credentials are correct Check that you have setup youre filter proper Need help setting this up or interested in a complete tender analysis solution? Get in touch 🔗 LinkedIn – Wessel Bulte
AI-powered code review with linting, red-marked corrections in Google Sheets & Slack
Advanced Code Review Automation (AI + Lint + Slack) Who’s it for For software engineers, QA teams, and tech leads who want to automate intelligent code reviews with both AI-driven suggestions and rule-based linting — all managed in Google Sheets with instant Slack summaries. How it works This workflow performs a two-layer review system: Lint Check: Runs a lightweight static analysis to find common issues (e.g., use of var, console.log, unbalanced braces). AI Review: Sends valid code to Gemini AI, which provides human-like review feedback with severity classification (Critical, Major, Minor) and visual highlights (red/orange tags). Formatter: Combines lint and AI results, calculating an overall score (0–10). Aggregator: Summarizes results for quick comparison. Google Sheets Writer: Appends results to your review log. Slack Notification: Posts a concise summary (e.g., number of issues and average score) to your team’s channel. How to set up Connect Google Sheets and Slack credentials in n8n. Replace placeholders (<YOURSPREADSHEETID>, <YOURSHEETGIDORNAME>, <YOURSLACKCHANNEL_ID>). Adjust the AI review prompt or lint rules as needed. Activate the workflow — reviews will start automatically whenever new code is added to the sheet. Requirements Google Sheets and Slack integrations enabled A configured AI node (Gemini, OpenAI, or compatible) Proper permissions to write to your target Google Sheet How to customize Add more linting rules (naming conventions, spacing, forbidden APIs) Extend the AI prompt for project-specific guidelines Customize the Slack message formatting Export analytics to a dashboard (e.g., Notion or Data Studio) Why it’s valuable This workflow brings realistic, team-oriented AI-assisted code review to n8n — combining the speed of automated linting with the nuance of human-style feedback. It saves time, improves code quality, and keeps your team’s review history transparent and centralized.
🎓 How to transform unstructured email data into structured format with AI agent
This workflow automates the process of extracting structured, usable information from unstructured email messages across multiple platforms. It connects directly to Gmail, Outlook, and IMAP accounts, retrieves incoming emails, and sends their content to an AI-powered parsing agent built on OpenAI GPT models. The AI agent analyzes each email, identifies relevant details, and returns a clean JSON structure containing key fields: From – sender’s email address To – recipient’s email address Subject – email subject line Summary – short AI-generated summary of the email body The extracted information is then automatically inserted into an n8n Data Table, creating a structured database of email metadata and summaries ready for indexing, reporting, or integration with other tools. --- Key Benefits ✅ Full Automation: Eliminates manual reading and data entry from incoming emails. ✅ Multi-Source Integration: Handles data from different email providers seamlessly. ✅ AI-Driven Accuracy: Uses advanced language models to interpret complex or unformatted content. ✅ Structured Storage: Creates a standardized, query-ready dataset from previously unstructured text. ✅ Time Efficiency: Processes emails in real time, improving productivity and response speed. *✅ Scalability: Easily extendable to handle additional sources or extract more data fields. --- How it works This workflow automates the transformation of unstructured email data into a structured, queryable format. It operates through a series of connected steps: Email Triggering: The workflow is initiated by one of three different email triggers (Gmail, Microsoft Outlook, or a generic IMAP account), which constantly monitor for new incoming emails. AI-Powered Parsing & Structuring: When a new email is detected, its raw, unstructured content is passed to a central "Parsing Agent." This agent uses a specified OpenAI language model to intelligently analyze the email text. Data Extraction & Standardization: Following a predefined system prompt, the AI agent extracts key information from the email, such as the sender, recipient, subject, and a generated summary. It then forces the output into a strict JSON structure using a "Structured Output Parser" node, ensuring data consistency. Data Storage: Finally, the clean, structured data (the from, to, subject, and summarize fields) is inserted as a new row into a specified n8n Data Table, creating a searchable and reportable database of email information. --- Set up steps To implement this workflow, follow these configuration steps: Prepare the Data Table: Create a new Data Table within n8n. Define the columns with the following names and string type: From, To, Subject, and Summary. Configure Email Credentials: Set up the credential connections for the email services you wish to use (Gmail OAuth2, Microsoft Outlook OAuth2, and/or IMAP). Ensure the accounts have the necessary permissions to read emails. Configure AI Model Credentials: Set up the OpenAI API credential with a valid API key. The workflow is configured to use the model, but this can be changed in the respective nodes if needed. Connect the Nodes: The workflow canvas is already correctly wired. Visually confirm that the email triggers are connected to the "Parsing Agent," which is connected to the "Insert row" (Data Table) node. Also, ensure the "OpenAI Chat Model" and "Structured Output Parser" are connected to the "Parsing Agent" as its AI model and output parser, respectively. Activate the Workflow: Save the workflow and toggle the "Active" switch to ON. The triggers will begin polling for new emails according to their schedule (e.g., every minute), and the automation will start processing incoming messages. --- Need help customizing? Contact me for consulting and support or add me on Linkedin.