Generate business strategy canvases with GPT-4o, Tavily, MongoDB and Gmail

Go to Workflow
0 views
Built by Łukasz Łukasz
Created on July 28, 2026

Description

Quick Overview
This workflow runs a chat-based AI consultant that researches your market with Tavily, generates a Business Model Canvas, Lean Canvas, and/or SWOT analysis, converts the results into a multi-sheet Excel file, and emails it to you via Gmail while keeping conversation context in MongoDB.

How it works
Receives a new message in an n8n Chat session and passes it to an OpenAI (GPT-4o) agent.
Uses MongoDB-backed chat memory and Tavily web search/research to ask targeted questions and build research-backed canvas content during the conversation.
Detects when the agent signals completion by including the marker [CANVAS_READY] in its chat output.
Extracts the confirmed canvas details from the full conversation into a structured JSON format using OpenAI with a strict schema parser.
Generates an Excel (.xlsx) workbook with one sheet per selected canvas plus a positioning/next-steps sheet.
Sends the Excel file as a Gmail attachment and posts a short confirmation message back in the chat.

Setup
Add an OpenAI API credential (GPT-4o) for both the canvas-generation agent and the structured data extraction step.
Provide a Tavily API key and replace the hardcoded key in both HTTP requests to https://api.tavily.com/search.
Add a MongoDB credential and ensure the database N8N_Business_model_canvas_generator exists (or update the database name in the chat memory configuration).
Add a Gmail OAuth2 credential and set the recipient address/logic for where the generated canvases should be emailed.
Test the n8n Chat trigger in your environment and confirm the chat UI/webhook configuration is reachable before activating the workflow.

Nodes Used (6)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
Gmail
n8n-nodes-base.gmail
MongoDB Chat Memory
@n8n/n8n-nodes-langchain.memoryMongoDbChat
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured