by Incrementors
Financial Insight Automation: Market Cap to Telegram via Bright Data 📊 Description An automated n8n workflow that scrapes financial data from Yahoo Finance using Bright Data, processes market cap information, generates visual charts, and sends comprehensive financial insights directly to Telegram for instant notifications. 🚀 How It Works This workflow operates through a simple three-zone process: 1. Data Input & Trigger User submits a keyword (e.g., "AI", "Crypto", "MSFT") through a form trigger that initiates the financial data collection process. 2. Data Scraping & Processing Bright Data API discovers and scrapes comprehensive financial data from Yahoo Finance, including market cap, stock prices, company profiles, and financial metrics. 3. Visualization & Delivery The system generates interactive market cap charts, saves data to Google Sheets for record-keeping, and sends visual insights to Telegram as PNG images. ⚡ Setup Steps > ⏱️ Estimated Setup Time: 15-20 minutes Prerequisites Active n8n instance (self-hosted or cloud) Bright Data account with Yahoo Finance dataset access Google account for Sheets integration Telegram bot token and chat ID Step 1: Import the Workflow Copy the provided JSON workflow code In n8n: Go to Workflows → + Add workflow → Import from JSON Paste the JSON content and click Import Step 2: Configure Bright Data Integration Set up Bright Data Credentials: In n8n: Navigate to Credentials → + Add credential → HTTP Header Auth Add Authorization header with value: Bearer BRIGHT_DATA_API_KEY Replace BRIGHT_DATA_API_KEY with your actual API key Test the connection to ensure it works properly > Note: The workflow uses dataset ID gd_lmrpz3vxmz972ghd7 for Yahoo Finance data. Ensure you have access to this dataset in your Bright Data dashboard. Step 3: Set up Google Sheets Integration Create a Google Sheet: Go to Google Sheets and create a new spreadsheet Name it "Financial Data Tracker" or similar Copy the Sheet ID from the URL Configure Google Sheets credentials: In n8n: Credentials → + Add credential → Google Sheets OAuth2 API Complete OAuth setup and test connection Update the workflow: Open the "📊 Filtered Output & Save to Sheet" node Replace YOUR_SHEET_ID with your actual Sheet ID Select your Google Sheets credential Step 4: Configure Telegram Bot Set up Telegram Integration: Create a Telegram bot using @BotFather Get your bot token and chat ID In n8n: Credentials → + Add credential → Telegram API Enter your bot token Update the "📤 Send Chart on Telegram" node with your chat ID Replace YOUR_TELEGRAM_CHAT_ID with your actual chat ID Step 5: Test and Activate Test the workflow: Use the form trigger with a test keyword (e.g., "AAPL") Monitor the execution in n8n Verify data appears in Google Sheets Check for chart delivery on Telegram Activate the workflow: Turn on the workflow using the toggle switch The form trigger will be accessible via the provided webhook URL 📋 Key Features 🔍 Keyword-Based Discovery: Search companies by keyword, ticker, or industry 💰 Comprehensive Financial Data: Market cap, stock prices, earnings, and company profiles 📊 Visual Charts: Automatic generation of market cap comparison charts 📱 Telegram Integration: Instant delivery of insights to your mobile device 💾 Data Storage: Automatic backup to Google Sheets for historical tracking ⚡ Real-time Processing: Fast data retrieval and processing with Bright Data 📊 Output Data Points | Field | Description | Example | |-------|-------------|---------| | Company Name | Full company name | "Apple Inc." | | Stock Ticker | Trading symbol | "AAPL" | | Market Cap | Total market capitalization | "$2.89T" | | Current Price | Latest stock price | "$189.25" | | Exchange | Stock exchange | "NASDAQ" | | Sector | Business sector | "Technology" | | PE Ratio | Price to earnings ratio | "28.45" | | 52 Week Range | Annual high and low prices | "$164.08 - $199.62" | 🔧 Troubleshooting Common Issues Bright Data Connection Failed: Verify your API key is correct and active Check dataset permissions in Bright Data dashboard Ensure you have sufficient credits Google Sheets Permission Denied: Re-authenticate Google Sheets OAuth Verify sheet sharing settings Check if the Sheet ID is correct Telegram Not Receiving Messages: Verify bot token and chat ID Check if bot is added to the chat Test Telegram credentials manually Performance Tips Use specific keywords for better data accuracy Monitor Bright Data usage to control costs Set up error handling for failed requests Consider rate limiting for high-volume usage 🎯 Use Cases Investment Research:** Quick financial analysis of companies and sectors Market Monitoring:** Track market cap changes and stock performance Competitive Analysis:** Compare financial metrics across companies Portfolio Management:** Monitor holdings and potential investments Financial Reporting:** Generate automated financial insights for teams 🔗 Additional Resources n8n Documentation Bright Data Datasets Google Sheets API Telegram Bot API For any questions or support, please contact: info@incrementors.com or fill out this form: https://www.incrementors.com/contact-us/
by DuyTran
Description: Overview This workflow generates automated revenue and expense comparison reports from a structured Google Sheet. It enables users to compare financial data across the current period, last month, and last year, then uses an AI agent to analyze and summarize the results for business reporting. Prerequisites A connected Google Sheets OAuth2 credential. A valid DeepSeek AI API (or replaceable with another Chat Model). A sub-workflow (child workflow) that handles processing logic. Properly structured Google Sheets data (see below). Required Google Sheet Structure Column headers must include at least: Date, Amount, Type. Setup Steps Import the workflow into your n8n instance. Connect your Google Sheets and DeepSeek API credentials. Update: Sheet ID and Tab Name (already embedded in node: Get revenual from google sheet). Custom sub-workflow ID (in the Call n8n Workflow Tool node). Optionally configure chatbot webhook in the When chat message received node. What the Workflow Does Accepts date inputs via AI chat interface (ChatTrigger + AI Agent). Fetches raw transaction data from Google Sheets. Segments and pivots revenue by classification for: Current period Last month Last year Aggregates totals and applies custom titles for comparison. Merges all summaries into a final unified JSON report. Customization Options Replace DeepSeek with OpenAI or other LLMs. Change the date fields or cycle comparisons (e.g., quarterly, weekly). Add more AI analysis steps such as sentiment scoring or forecasting. Modify the pivot logic to suit specific KPI tags or labels. Troubleshooting Tips If Google Sheets fetch fails: ensure the document is shared with your n8n Google credential. If parsing errors: verify that all dates follow the expected format. Sub-workflow must be active and configured to accept the correct inputs (6 dates). SEO Keywords (ẩn hoặc mô tả ngầm): Google Sheets report, AI financial report, compare revenue by month, expense analysis automation, chatbot n8n report generator, n8n Google Sheet integration
by Jaruphat J.
This workflow automates the entire process of creating and publishing social media ads — directly from Telegram. By simply sending a product photo to your Telegram bot, the system analyzes the image, generates an AI-based advertising prompt, creates a marketing image via Fal.AI, writes an engaging Facebook/Instagram caption, and posts it automatically. This template saves hours of manual work for marketers and small business owners who constantly need to design, write, and publish product campaigns. It eliminates repetitive steps like prompt writing, AI model switching, and post scheduling — letting you focus on strategy, not execution. The workflow integrates seamlessly with Fal.AI for image generation, OpenAI Vision for image analysis, and the Facebook Graph API for automated publishing. Whether you’re launching a 10.10 campaign or promoting a new product line, this template transforms your product photo into a ready-to-publish ad in just minutes. Who’s it for This workflow is designed for: Marketers and e-commerce owners** who need to create social content quickly. Agencies** managing multiple clients’ campaigns. Small business owners** who want to automate Facebook/Instagram posts. n8n creators** who want to learn AI-assisted content automation. What problem does this solve Manually creating ad images and captions is time-consuming and repetitive. You need to: Edit the product photo. Write a creative brief or prompt. Generate an image in Fal.AI or Midjourney. Write a caption. Log into Facebook and post. This workflow combines all five steps into one automation — triggered directly by sending a Telegram message. It handles AI analysis, image creation, caption writing, and posting, removing human friction while maintaining quality and creative control. What this workflow does The workflow is divided into four main zones, color-coded inside the canvas: 🟩 Zone 1 – Product Image Analysis Trigger: User sends a product image to a Telegram bot. n8n retrieves the file path using Telegram API. OpenAI Vision analyzes the product photo and describes color, material, and shape. An AI agent converts this into structured data for generating ad prompts. 🟥 Zone 2 – Generate Ad Image Prompt The AI agent creates a professional advertising prompt based on the product description and campaign (e.g., “10.10 Sale”). The prompt is sent to the user for confirmation via Telegram before proceeding. 🟨 Zone 3 – Create Ad Image via Fal.AI The confirmed prompt and image are sent to Fal.AI’s image generation API. The system polls the generation status until completion. The generated image is sent back to Telegram for user review and approval. 🟦 Zone 4 – Write Caption & Publish The approved image is re-analyzed by AI to write a Facebook/Instagram caption. The user confirms the text on Telegram. Once approved, the workflow uploads the final post (image + caption) to Facebook automatically using the Graph API. Setup Prerequisites n8n self-hosted or Cloud account** Telegram Bot Token** (via @BotFather) Fal.AI API key** Facebook Page Access Token** with publishing permissions OpenAI API Key** for image analysis and text generation Steps Create a Telegram Bot and paste its token into n8n Credentials. Set up Fal.AI Credentials under HTTP Request → Authentication. Connect your Facebook Page through Facebook Graph API credentials. In the HTTP Request node, set: URL: https://fal.run/fal-ai/nano-banana Auth: Bearer {{ $credentials.FalAI.apiKey }} Configure all LLM and Vision nodes using your OpenAI credentials. Node settings 🟩 Analyze Image (OpenAI Vision) { "model": "gpt-4o-mini", "input": [ { "role": "user", "content": [ { "type": "image_url", "image_url": "{{$json.image_url}}" }, { "type": "text", "text": "Describe this product in detail for advertising context." } ] } ] } 🟥 Set Node – Prepare Fal.AI Body { "prompt": {{ JSON.stringify(($json.ad_prompt || '').replace(/\r?\n/g, ' ')) }}, "image_urls": [{{ JSON.stringify($json.image_url || '') }}], "num_images": 1, "output_format": "jpeg" } 🟦 HTTP Request (Facebook Graph API) { "method": "POST", "url": "https://graph.facebook.com/v19.0/me/photos", "body": { "caption": "{{ $json.caption_text }}", "url": "{{ $json.final_image_url }}", "access_token": "{{ $credentials.facebook.accessToken }}" } } How to customize the workflow Change AI Models:** Swap Fal.AI for Flux, Veo3, or SDXL by adjusting API endpoints. Add Channels:** Extend the workflow to post on LINE OA or Instagram. Add Approval Logic:** Keep Telegram confirmation steps before every publish. Brand Rules:** Adjust AI prompt templates to enforce tone, logo, or color palette consistency. Multi-language Posts:** Add translation nodes for global campaigns. Troubleshooting | Problem | Cause | Solution | |----------|--------|-----------| | Telegram message not triggering | Webhook misconfigured | Reconnect Telegram Trigger | | Fal.AI API error | Invalid JSON or token | Use JSON.stringify() in Set node and check credentials | | Facebook upload fails | Missing permissions | Ensure Page Access Token has pages_manage_posts | | LLM parser error | Output not valid JSON | Add Structured Output Parser and enforce schema | ⚠️ Security Notes Do NOT hardcode API keys** in Set or HTTP Request nodes. Always store credentials securely under n8n Credentials Manager. For self-hosted setups, use .env variables for sensitive keys (OpenAI, Fal.AI, Facebook). 🏷️ Hashtags #n8n #Automation #AIworkflow #FalAI #FacebookAPI #TelegramBot #nanobanana #NoCode #MarketingAutomation #SocialMediaAI #JaruphatJ #WorkflowTemplate #OpenAI #LLM #ProductAds #CreativeAutomation Product Image Process Step
by KlickTipp
Community Node Disclaimer This workflow uses KlickTipp community nodes, available for self-hosted n8n instances only. Who’s it for Digital marketers, social media managers, and coaches who engage leads through Instagram DMs and want to automate personalized outreach, lead enrichment, and segmentation in KlickTipp — without manual follow-ups or data entry. How it works This workflow creates a complete Instagram-to-email enrichment loop — starting with personalized DM outreach, capturing responses via JotForm, enriching profile data, and syncing everything with KlickTipp. When a workflow trigger or campaign action occurs, it: Sends a personalized Instagram DM inviting the user to fill out a JotForm. Listens for form submissions in real time. Retrieves the lead’s Instagram profile data via the Facebook Graph API. Matches the username to the Instagram DM ID in a Google Sheet. Generates AI-powered marketing insights using OpenAI. Subscribes or updates the lead in KlickTipp, mapping enriched fields and tags. The result: every DM-initiated lead is captured, analyzed, and segmented — ready for intelligent follow-ups and personalized campaigns. How to set up Connect accounts for KlickTipp, JotForm, Google Sheets, Facebook Graph API, and OpenAI. Set up a KlickTipp tag or campaign trigger to initiate the DM sending. Create KlickTipp fields for Instagram data (e.g., Bio, Follower count, Insights). Add tags: Instagram | Outreach, Instagram | Enrichment, Instagram | Username found. Test a sample flow: send a DM → fill the JotForm → verify data enrichment in KlickTipp. 💡 Pro Tip: Personalize the DM message template and test both personal and business accounts to ensure optimal engagement and AI insight quality. Requirements Meta (Instagram) Business Account Facebook Graph API with instagram_basic and pages_show_list permissions KlickTipp account with API access OpenAI connection (gpt-4.1-mini model) (Optional) Active Instagram Page connected to your Facebook App for DM messaging How to customize Adjust DM content and message timing for different campaigns or audiences. Edit tags and field mappings in KlickTipp to match your segmentation logic. Modify the AI prompt to emphasize tone, purchase intent, or niche interests. Add conditional logic (e.g., followers > 1,000 → influencer tag). Extend the flow to LinkedIn, website tracking, or CRM syncing for multi-channel enrichment.
by Elay Guez
🔍 AI-Powered Web Research in Google Sheets with Bright Data 📋 Overview Transform any Google Sheets cell into an intelligent web scraper! Type =BRIGHTDATA("cell", "search prompt") and get AI-filtered result from every website in ~20 seconds. What happens automatically: AI optimizes your search query Bright Data scrapes the web (bypasses bot detection) AI analyzes and filters result Returns clean data directly to your cell Completes in <25 seconds Cost: ~$0.02-0.05 per search | Time saved: 3-5 minutes per search 👥 Who's it for Market researchers needing competitive intelligence E-commerce teams tracking prices Sales teams doing lead prospecting SEO specialists gathering content research Real estate agents monitoring listings Anyone tired of manual copy-paste ⚙️ How it works Webhook Call - Google Sheets function sends POST request Data Preparation - Organizes input structure AI Query Optimization - GPT-4.1 Mini refines search query Web Scraping - Bright Data fetches data while bypassing blocks AI Analysis - GPT-4o Mini filters and summarizes result Response - Returns plain text to your cell Logging - Updates logs for monitoring 🛠️ Setup Instructions Time to deploy: 20 minutes Requirements n8n instance with public URL Bright Data account + API key OpenAI API key Google account for Apps Script Part 1: n8n Workflow Setup Import this template into your n8n instance Configure Webhook node: Copy your webhook URL: https://n8n.yourdomain.com/webhook/brightdata-search Set authentication: Header Auth Set API key: 12312346 (or create your own) Add OpenAI credentials to AI nodes. Configure Bright Data: Add API credentials Configure Output Language: Manually edit the "Set Variables" Node. Test workflow with manual execution Activate the workflow Part 2: Google Sheets Function Open Google Sheet → Extensions → Apps Script Paste this code: function BRIGHTDATA(prompt, source) { if (!prompt || prompt === "") { return "❌ Must enter prompt"; } source = source || "google"; // Update with YOUR webhook URL const N8N_WEBHOOK_URL = "https://your-n8n-domain.com/webhook/brightdata-search"; // Update with YOUR password const API_KEY = "12312346"; let spreadsheetId, sheetName, cellAddress; try { const sheet = SpreadsheetApp.getActiveSheet(); const activeCell = sheet.getActiveCell(); spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); sheetName = sheet.getName(); cellAddress = activeCell.getA1Notation(); } catch (e) { return "❌ Cannot identify cell"; } const payload = { prompt: prompt, source: source.toLowerCase(), context: { spreadsheetId: spreadsheetId, sheetName: sheetName, cellAddress: cellAddress, timestamp: new Date().toISOString() } }; const options = { method: "post", contentType: "application/json", payload: JSON.stringify(payload), muteHttpExceptions: true, headers: { "Accept": "text/plain", "key": API_KEY } }; try { const response = UrlFetchApp.fetch(N8N_WEBHOOK_URL, options); const responseCode = response.getResponseCode(); if (responseCode !== 200) { Logger.log("Error response: " + response.getContentText()); return "❌ Error " + responseCode; } return response.getContentText(); } catch (error) { Logger.log("Exception: " + error.toString()); return "❌ Connection error: " + error.toString(); } } function doGet(e) { return ContentService.createTextOutput(JSON.stringify({ status: "alive", message: "Apps Script is running", timestamp: new Date().toISOString() })).setMimeType(ContentService.MimeType.JSON); } Update N8N_WEBHOOK_URL with your webhook Update API_KEY with your password Save (Ctrl+S / Cmd+S) - Important! Close Apps Script editor 💡 Usage Examples =BRIGHTDATA("C3", "What is the current price of the product?") =BRIGHTDATA("D30", "What is the size of this company?") =BRIGHTDATA("A4", "Do this comapny is hiring Developers?") 🎨 Customization Easy Tweaks AI Models** - Switch to GPT-4o for better optimization Response Format** - Modify prompt for specific outputs Speed** - Optimize AI prompts to reduce time Language** - Change prompts for any language Advanced Options Implement rate limiting Add data validation Create async mode for long queries Add Slack notifications 🚀 Pro Tips Be Specific** - "What is iPhone 15 Pro 256GB US price?" beats "What is iPhone price?" Speed Matters** - Keep prompts concise (30s timeout limit) Monitor Costs** - Track Bright Data usage Debug** - Check workflow logs for errors ⚠️ Important Notes Timeout:** 30-second Google Sheets limit (aim for <20s) Plain Text Only:** No JSON responses Costs:** Monitor Bright Data at console.brightdata.com Security:** Keep API keys secret No Browser Storage:** Don't use localStorage/sessionStorage 🔧 Troubleshooting | Error | Solution | |-------|----------| | "Exceeded maximum execution time" | Optimize AI prompts or use async mode | | "Could not fetch data" | Verify Bright Data credentials | | Empty cell | Check n8n logs for AI parsing issues | | Broken characters | Verify UTF-8 encoding in webhook node | 📚 Resources Bright Data API Docs n8n Webhook Documentation Google Apps Script Reference Built with ❤️ by Elay Guez
by vinci-king-01
How it works This workflow automatically scrapes commercial real estate listings from LoopNet and sends opportunity alerts to Telegram while logging data to Google Sheets. Key Steps Scheduled Trigger - Runs every 24 hours to collect fresh CRE market data AI-Powered Scraping - Uses ScrapeGraphAI to extract property information from LoopNet Market Analysis - Analyzes listings for opportunities and generates market insights Smart Notifications - Sends Telegram alerts only when investment opportunities are found Data Logging - Stores daily market metrics in Google Sheets for trend analysis Set up steps Setup time: 10-15 minutes Configure ScrapeGraphAI credentials - Add your ScrapeGraphAI API key for web scraping Set up Telegram connection - Connect your Telegram bot and specify the target channel Configure Google Sheets - Set up Google Sheets integration for data logging Customize the LoopNet URL - Update the URL to target specific CRE markets or property types Adjust schedule - Modify the trigger timing based on your market monitoring needs Keep detailed configuration notes in sticky notes inside your workflow
by Jaruphat J.
⚠️ Note: All sensitive credentials should be set via n8n Credentials or environment variables. Do not hardcode API keys in nodes. Who’s it for Marketers, creators, and automation builders who want to generate UGC-style ad images and short videos automatically from a Google Sheet. Ideal for e‑commerce SKUs, agencies, or teams that need many variations quickly. What it does (Overview) This template turns a spreadsheet row into ad images and optionally 5–8s videos. Zone 0 — Image-only pipeline (Gemini/OpenRouter)**: Creates an ad image from a product link and prompt, uploads it to Drive, and updates the sheet (no video step). Zone 1 — Create image (Fal nano‑banana) + prepare for video**: Generates an image via Fal.ai, polls status, fetches URL, then analyzes the image with LLM to prepare scene prompts. Zone 2 — Generate video (WAN2.2 & Veo3)**: Uses the generated image + structured scene prompts to create short clips, uploads them to Drive, and writes the video URL back to the sheet. Requirements Fal.ai API key** (env: FAL_KEY) Google Sheets / Google Drive** OAuth2 credentials OpenAI / Gemini (via OpenRouter)** for image analysis or alternative image generation A Google Sheet with columns, e.g.: product | presenter | prompt | img_url | video_url Google Drive files set to Anyone with link → Viewer so APIs can fetch them How to set up Credentials: Add Google Sheets + Google Drive (OAuth2), Fal.ai (Header Auth with Authorization: Key {{$env.FAL_KEY}}), and OpenAI/OpenRouter. Google Sheet: Create the columns above. Paste product image Drive links (the workflow converts them to direct links automatically). Import the workflow: Use the provided JSON. Confirm node credentials resolve. Run: Start with Zone 0 to verify image-only flow, then test Zone 1 + Zone 2 for full image→video. Zone 0 — Create Ad Image (Image-only) This path is for creating just an image and stopping. It reads the Gemini tab in the Sheet, generates an image via OpenRouter/Gemini, converts base64 to a file, uploads to Drive, and writes back img_url. Key nodes Get Data1 (Google Sheets)** → reads Gemini tab setImgeURL (Set)** → converts Drive URLs to direct (uc?export=view&id=...) CreateImagebyOpernRouter (Gemini)** → calls google/gemini-2.5-flash-image-preview:free wait20sec (Wait)** → small delay setBase64data (Code)** → splits data URI into { data, mimeType, fileName } Convert to File** → creates binary uploadImagetoGdrive (Google Drive)** → uploads image updateImageURL (Google Sheets)** → writes back img_url Zone 1 — Create Image (Fal nano‑banana) + Prepare for Video Reads product rows, normalizes Drive links, generates image with Fal nano‑banana, polls until complete, fetches the output image URL, then runs an image analysis (OpenAI Vision) to prepare structured text for the video step. Key nodes Get Data (Google Sheets)** → reads nanoBanana tab Edit Fields (Set)** → converts Drive links to direct (uc?export=view&id=...) Call Fal.ai API (nanoBanana)** → POST https://queue.fal.run/fal-ai/nano-banana/edit Get image status / If / Wait / Get the image** → job polling until complete Analyze image (OpenAI Vision)** → returns structured description (brand text, colors, type, short description) Zone 2 — Generate Video (WAN2.2 & Veo3) Creates a 5–8s UGC clip using the generated image + structured scene prompt. Key nodes Describe Each Scene for Video (AI Agent)** → expands analysis + user intent into detailed scene sections (Characters, Scene Background, Camera Movement, Movement in Scene, Sound Design) Structured Output Parser2 (Schema)** → enforces consistent JSON structure Veo3 (HTTP)** → POST /fal-ai/veo3/image-to-video with prompt + image_url Call Fal.ai API (WAN2.2) [Optional]** → POST /fal-ai/wan/v2.2-a14b/image-to-video Wait for the video / Get the video status / Video status / Get the video** → polling loop HTTP Request (Download File)** → downloads MP4 uploadImagetoGdrive1 (Google Drive)** → uploads video updateVideoURL (Google Sheets)** → writes back video_url Node settings (high‑level) Drive Link Parser (Set)** {{ (() => { const u = $json.product || ''; const q = u.match(/[?&]id=([-\w]{25,})/); const d = u.match(/\/d\/([-\w]{25,})/); const any = u.match(/[-\w]{25,}/); const id = q?.[1] || d?.[1] || (any ? any[0] : ''); return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; })() }} How to customize the workflow Adjust AI prompts to change ad style (funny, luxury, cozy, techy). Change video aspect ratio for TikTok/IG/Shorts (9:16, 1:1, 16:9). Extend Sheet schema for campaign labels, audiences, hashtags. Add distribution (Slack/LINE/Telegram) after Drive upload. Troubleshooting JSON parameter needs to be valid JSON** → Ensure expressions return objects, not strings. 403 on images** → Make Drive files public (Viewer) and convert links. Video never completes* → Check status_url, retry with -fast models or off‑peak times. Template metadata Uses:** Google Sheets, Google Drive, HTTP Request, Wait/If/Switch, Code, Convert to File, OpenAI/Gemini (optional), Fal.ai models (nano‑banana, WAN2.2, Veo3) Source workflow JSON:** Gemini\_NanoBanana\_Template.json (node names and connections match) Product Image Product Image - nano Banana Product Video - Veo3 Product Video - Wan2.2
by Elay Guez
Enrich Monday.com leads with AI-powered company research and personalized email drafts using Explorium MCP and GPT-4.1 AI-Powered Lead Enrichment & Email Writer for Monday.com 🚀 Overview Stop losing deals to slow response times! Transform your inbound leads into qualified opportunities with this intelligent workflow that automates lead enrichment and personalized outreach. When a new lead drops into your Monday.com board, magic happens: 🔍 Deep-dives into company data using Explorium MCP's advanced intelligence engine 🧠 Analyzes business priorities, pain points, and growth opportunities 💡 Identifies specific AI automation use cases tailored to each company ✉️ Crafts hyper-personalized email drafts with GPT-4.1 (under 120 words!) 📊 Enriches your CRM with actionable insights and AI solution recommendations 📧 Saves draft emails directly to Gmail for your review 🔄 Updates Monday.com automatically with all the juicy insights Perfect for sales teams, growth marketers, and BizDev pros who want to turn every lead into a conversation starter that actually converts! 👥 Who's it for? B2B sales teams drowning in inbound leads Growth teams needing lightning-fast lead qualification BizDev professionals seeking that personal touch at scale Companies rocking Monday.com as their CRM ⚡ How it works Webhook triggers when fresh lead hits Monday.com Company Researcher agent unleashes Explorium MCP for company intel Email Writer agent crafts personalized outreach that doesn't sound like a robot CRM Enrichment agent adds golden nuggets of AI recommendations Gmail integration parks the draft in your inbox Monday.com updates with all the enriched goodness 🛠️ Setup Instructions Time to magic: 20 minutes You'll need: OpenAI API Key (for GPT-4.1) Explorium MCP API Key Monday.com API Token Gmail OAuth credentials Monday.com webhook setup Step-by-step: Import this template into your n8n instance Hook up Monday.com webhook via "Respond to Webhook" node Deactivate that "Respond to Webhook" node (important!) Plug in your API credentials Customize agent prompts with YOUR company's secret sauce Match your Monday.com columns to the workflow Test drive with a dummy lead Hit activate and watch the magic! ✨ 📋 Requirements Monday.com board with these columns: Company Name, Contact Name, Email, Comments Explorium MCP access (for that company intelligence gold) OpenAI API (GPT-4.1 model ready) Gmail account (where drafts go to shine) 🎨 Make it yours Tweak email tone - formal, casual, or somewhere in between Adjust research depth in Company Researcher Add your unique value props to agent prompts Connect more data sources for extra enrichment Hook up other CRMs (HubSpot, Salesforce, Pipedrive) Add Slack alerts for hot leads 🔥 💪 Why this rocks Real talk: Manual lead research is SO 2023. While your competitors are still googling companies, you're already in their inbox with an email that mentions their latest funding round, understands their tech stack, and offers solutions to problems they didn't even know you could solve. This isn't just another "Hi {{first_name}}" template. It's AI that actually gets context, writes like a human, and makes your prospects think "How did they know exactly what we need?" Results you can expect: Faster lead response time Higher email open rates Actually useful CRM data (not just "interested in our product") Your sales team thanking you (seriously) Built with ❤️ by: Elay Guez Pro tip: The more context you feed the AI agents about your business, the scarier-good the personalization gets. Don't hold back on those System Message customizations!
by Karol
Who’s it for This template is designed for small and medium businesses, startups, and agencies that want to automate customer inquiries, provide instant support, and capture leads without losing valuable conversations. It’s especially useful for teams that get many repetitive questions about products, services, or locations but don’t want to miss out on collecting contact details for follow-up. What it does / How it works The workflow creates a 24/7 AI-powered chatbot that answers company-related questions and collects customer information. It uses: • GPT-4o for natural conversations • Pinecone Vector Store for Retrieval-Augmented Generation (RAG) with your company knowledge base • Google Sheets to store structured lead data • Telegram to instantly notify your team When a customer asks about products, services, or hours, the AI answers using the Pinecone database. Afterwards, it politely asks for their name, email, phone number, and interest. The details are saved to Google Sheets and your team receives a Telegram message with a summary. How to set up Connect your OpenAI account. Create a Pinecone index with company FAQs, documents, or policies. Link your Google Sheet with columns: Name, Email, Phone, Interested in. Add your Telegram bot token and chat/group ID. Replace [INSERT_YOUR_COMPANY_NAME_HERE] in the system prompt with your company name. Requirements • OpenAI API key • Pinecone account • Google Sheets access • Telegram bot & chat ID How to customize • Change the system prompt to match your brand’s tone. • Update the Pinecone namespace and embeddings model if needed. • Add extra fields in Google Sheets (e.g., “Budget” or “Preferred product”). • Extend the flow with CRM integrations or automated email follow-ups. With this setup, you get a smart, RAG-powered chatbot that not only answers questions but also turns every conversation into a potential lead.
by Le Nguyen
PDF Invoice Extractor (AI) End-to-end pipeline: Watch Drive ➜ Download PDF ➜ OCR text ➜ AI normalize to JSON ➜ Upsert Buyer (Account) ➜ Create Opportunity ➜ Map Products ➜ Create OLI via Composite API ➜ Archive to OneDrive. Node by node (what it does & key setup) 1) Google Drive Trigger Purpose**: Fire when a new file appears in a specific Google Drive folder. Key settings**: Event: fileCreated Folder ID: google drive folder id Polling: everyMinute Creds: googleDriveOAuth2Api Output**: Metadata { id, name, ... } for the new file. 2) Download File From Google Purpose**: Get the file binary for processing and archiving. Key settings**: Operation: download File ID: ={{ $json.id }} Creds: googleDriveOAuth2Api Output**: Binary (default key: data) and original metadata. 3) Extract from File Purpose**: Extract text from PDF (OCR as needed) for AI parsing. Key settings**: Operation: pdf OCR: enable for scanned PDFs (in options) Output**: JSON with OCR text at {{ $json.text }}. 4) Message a model (AI JSON Extractor) Purpose: Convert OCR text into **strict normalized JSON array (invoice schema). Key settings**: Node: @n8n/n8n-nodes-langchain.openAi Model: gpt-4.1 (or gpt-4.1-mini) Message role: system (the strict prompt; references {{ $json.text }}) jsonOutput: true Creds: openAiApi Output (per item): $.message.content → the parsed **JSON (ensure it’s an array). 5) Create or update an account (Salesforce) Purpose: Upsert **Buyer as Account using an external ID. Key settings**: Resource: account Operation: upsert External Id Field: tax_id__c External Id Value: ={{ $json.message.content.buyer.tax_id }} Name: ={{ $json.message.content.buyer.name }} Creds: salesforceOAuth2Api Output: Account record (captures Id) for downstream **Opportunity. 6) Create an opportunity (Salesforce) Purpose**: Create Opportunity linked to the Buyer (Account). Key settings**: Resource: opportunity Name: ={{ $('Message a model').item.json.message.content.invoice.code }} Close Date: ={{ $('Message a model').item.json.message.content.invoice.issue_date }} Stage: Closed Won Amount: ={{ $('Message a model').item.json.message.content.summary.grand_total }} AccountId: ={{ $json.id }} (from Upsert Account output) Creds: salesforceOAuth2Api Output**: Opportunity Id for OLI creation. 7) Build SOQL (Code / JS) Purpose: Collect unique product **codes from AI JSON and build a SOQL query for PricebookEntry by Pricebook2Id. Key settings**: pricebook2Id (hardcoded in script): e.g., 01sxxxxxxxxxxxxxxx Source lines: $('Message a model').first().json.message.content.products Output**: { soql, codes } 8) Query PricebookEntries (Salesforce) Purpose**: Fetch PricebookEntry.Id for each Product2.ProductCode. Key settings**: Resource: search Query: ={{ $json.soql }} Creds: salesforceOAuth2Api Output**: Items with Id, Product2.ProductCode (used for mapping). 9) Code in JavaScript (Build OLI payloads) Purpose: Join lines with PBE results and Opportunity Id ➜ build **OpportunityLineItem payloads. Inputs**: OpportunityId: ={{ $('Create an opportunity').first().json.id }} Lines: ={{ $('Message a model').first().json.message.content.products }} PBE rows: from previous node items Output**: { body: { allOrNone:false, records:[{ OpportunityLineItem... }] } } Notes**: Converts discount_total ➜ per-unit if needed (currently commented for standard pricing). Throws on missing PBE mapping or empty lines. 10) Create Opportunity Line Items (HTTP Request) Purpose**: Bulk create OLIs via Salesforce Composite API. Key settings**: Method: POST URL: https://<your-instance>.my.salesforce.com/services/data/v65.0/composite/sobjects Auth: salesforceOAuth2Api (predefined credential) Body (JSON): ={{ $json.body }} Output**: Composite API results (per-record statuses). 11) Update File to One Drive Purpose: Archive the **original PDF in OneDrive. Key settings**: Operation: upload File Name: ={{ $json.name }} Parent Folder ID: onedrive folder id Binary Data: true (from the Download node) Creds: microsoftOneDriveOAuth2Api Output**: Uploaded file metadata. Data flow (wiring) Google Drive Trigger → Download File From Google Download File From Google → Extract from File → Update File to One Drive Extract from File → Message a model Message a model → Create or update an account Create or update an account → Create an opportunity Create an opportunity → Build SOQL Build SOQL → Query PricebookEntries Query PricebookEntries → Code in JavaScript Code in JavaScript → Create Opportunity Line Items Quick setup checklist 🔐 Credentials: Connect Google Drive, OneDrive, Salesforce, OpenAI. 📂 IDs: Drive Folder ID (watch) OneDrive Parent Folder ID (archive) Salesforce Pricebook2Id (in the JS SOQL builder) 🧠 AI Prompt: Use the strict system prompt; jsonOutput = true. 🧾 Field mappings: Buyer tax id/name → Account upsert fields Invoice code/date/amount → Opportunity fields Product name must equal your Product2.ProductCode in SF. ✅ Test: Drop a sample PDF → verify: AI returns array JSON only Account/Opportunity created OLI records created PDF archived to OneDrive Notes & best practices If PDFs are scans, enable OCR in Extract from File. If AI returns non-JSON, keep “Return only a JSON array” as the last line of the prompt and keep jsonOutput enabled. Consider adding validation on parsing.warnings to gate Salesforce writes. For discounts/taxes in OLI: Standard OLI fields don’t support per-line discount amounts directly; model them in UnitPrice or custom fields. Replace the Composite API URL with your org’s domain or use the Salesforce node’s Bulk Upsert for simplicity.
by Grace Gbadamosi
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. How it works This workflow automatically synchronizes contact data from multiple CRM systems (HubSpot, Pipedrive, and Salesforce) into a unified Google Sheets database. The system runs on a daily schedule or can be triggered manually via webhook. It uses AI-powered data processing to intelligently deduplicate records, calculate data quality scores, and merge similar contacts. The workflow generates comprehensive quality reports and sends notifications via Slack, ensuring your master database stays clean and up-to-date. Who is this for This template is designed for revenue operations teams, data managers, and business analysts who need to consolidate customer data from multiple CRM platforms. It's particularly valuable for organizations using multiple sales tools simultaneously or during CRM migration projects. The workflow helps maintain data integrity while providing insights into data quality across different systems. Requirements Google Sheets Account**: For storing master database and quality reports CRM Platform Access**: API credentials for HubSpot, Pipedrive, and/or Salesforce OpenAI API Key**: For AI-powered data processing and deduplication MCP Server**: Github:marlonluo2018/pandas-mcp-server (optional - can be replaced with Code node) Slack Webhook**: For receiving sync completion and error notifications How to set up Configure Environment Variables - Set up secure credential storage for all API keys: HUBSPOT_API_KEY, PIPEDRIVE_API_KEY, SALESFORCE_ACCESS_TOKEN, OPENAI_API_KEY, and SLACK_WEBHOOK_URL Create Google Sheets Structure - Create a master Google Sheet with two tabs: "Master_CRM_Data" for the unified contact database and "Quality_Reports" for tracking sync statistics and data quality metrics Set Up MCP Server - Install and configure "marlonluo2018/pandas-mcp-server" Update Configuration Center - Modify all placeholder values in the Configuration Center node with your actual Google Sheet IDs, quality thresholds, deduplication keys, and batch processing settings
by Alexandra Spalato
Who's it for This workflow is for community builders, marketers, consultants, coaches, and thought leaders who want to grow their presence in Skool communities through strategic, value-driven engagement. It's especially useful for professionals who want to: Build authority in their niche by providing helpful insights Scale their community engagement without spending hours manually browsing posts Identify high-value conversation opportunities that align with their expertise Maintain authentic, helpful presence across multiple Skool communities What problem is this workflow solving Many professionals struggle to consistently engage meaningfully in online communities due to: Time constraints**: Manually browsing multiple communities daily is time-consuming Missed opportunities**: Important discussions happen when you're not online Inconsistent engagement**: Sporadic participation reduces visibility and relationship building Generic responses**: Quick replies often lack the depth needed to showcase expertise This workflow solves these problems by automatically monitoring your target Skool communities, using AI to identify posts where your expertise could add genuine value, generating thoughtful contextual comment suggestions, and organizing opportunities for efficient manual review and engagement. How it works Scheduled Community Monitoring Runs daily at 7 PM to scan your configured Skool communities for new posts and discussions from the last 24 hours. Intelligent Configuration Management Pulls settings from Airtable including target communities, your domain expertise, and preferred tools Possibility to add several configurations Filters for active configurations only Processes multiple community URLs efficiently Comprehensive Data Extraction Uses Apify Skool Scraper to collect: Post content and metadata Comments over 50 characters (quality filter) Direct links for easy access AI-Powered Opportunity Analysis Leverages OpenAI GPT-4.1 to: Analyze each post for engagement opportunities based on your expertise Identify specific trigger sentences that indicate a need you can address Generate contextual, helpful comment suggestions Maintain authentic tone without being promotional Smart Filtering and Organization Only surfaces genuine opportunities where you can add value Stores results in Airtable with detailed reasoning Provides suggested comments ready for review and posting Tracks engagement history to avoid duplicate responses Quality Control and Review All opportunities are saved to Airtable where you can: Review AI reasoning and suggested responses Edit comments before posting Track which opportunities you've acted on Monitor success patterns over time How to set up Required credentials OpenAI API key** - For GPT-4.1 powered opportunity analysis Airtable Personal Access Token** - For configuration and results storage Apify API token** - For Skool community scraping Airtable base setup Create an Airtable base with two tables: Config Table (config): Name (Single line text): Your configuration name Skool URLs (Long text): Comma-separated list of Skool community URLs cookies (Long text): Your Skool session cookies for authenticated access Domain of Activity (Single line text): Your area of expertise (e.g., "AI automation", "Digital marketing") Tools Used (Single line text): Your preferred tools to recommend (e.g., "n8n", "Zapier") active (Checkbox): Whether this configuration is currently active Results Table (Table 1): title (Single line text): Post title/author url (URL): Direct link to the post reason (Long text): AI's reasoning for the opportunity trigger (Long text): Specific sentence that triggered the opportunity suggested answer (Long text): AI-generated comment suggestion config (Link to another record): Reference to the config used date (Date): When the opportunity was found Select (Single select): Status tracking (not commented/commented) Skool cookies setup To access private Skool communities, you'll need to: Install Cookie Editor: Go to Chrome Web Store and install the "Cookie Editor" extension Login to Skool: Navigate to any Skool community you want to monitor and log in Open Cookie Editor: Click the Cookie Editor extension icon in your browser toolbar Export cookies: Click "Export" button in the extension Copy the exported text Add to Airtable: Paste the cookie string into the cookies field in your Airtable config Trigger configuration Ensure the Schedule Trigger is set to your preferred monitoring time Default is 7 PM daily, but adjust based on your target communities' peak activity Requirements Self-hosted n8n or n8n Cloud account** Active Skool community memberships** - You must be a legitimate member of communities you want to monitor OpenAI API credits** Apify subscription** - For reliable Skool data scraping (free tier available) Airtable account** - Free tier sufficient for most use cases How to customize the workflow Modify AI analysis criteria Edit the EvaluateOpportunities And Generate Comments node to: Adjust the opportunity detection sensitivity Modify the comment tone and style Add industry-specific keywords or phrases Change monitoring frequency Update the Schedule Trigger to: Multiple times per day for highly active communities Weekly for slower-moving professional groups Custom intervals based on community activity patterns Customize data collection Modify the Apify scraper settings to: Adjust the time window (currently 24 hours) Change comment length filters (currently >50 characters) Include/exclude media content Modify the number of comments per post Add additional filters Insert filter nodes to: Skip posts from specific users Focus on posts with minimum engagement levels Exclude certain post types or keywords Prioritize posts from influential community members Enhance output options Add nodes after Record Results to: Send Slack/Discord notifications for high-priority opportunities Create calendar events for engagement tasks Export daily summaries to Google Sheets Integrate with CRM systems for lead tracking Example outputs Opportunity analysis result { "opportunity": true, "reason": "The user is struggling with manual social media management tasks that could be automated using n8n workflows.", "trigger_sentence": "I'm spending 3+ hours daily just scheduling posts and responding to comments across all my social accounts.", "suggested_comment": "That sounds exhausting! Have you considered setting up automation workflows? Tools like n8n can handle the scheduling and even help with response suggestions, potentially saving you 80% of that time. The initial setup takes a day but pays dividends long-term." } Airtable record example Title: "Sarah Johnson - Social Media Burnout" URL: https://www.skool.com/community/post/123456 Reason: "User expressing pain point with manual social media management - perfect fit for automation solutions" Trigger: "I'm spending 3+ hours daily just scheduling posts..." Suggested Answer: "That sounds exhausting! Have you considered setting up automation workflows?..." Config: [Your Config Name] Date: 2024-12-09 19:00:00 Status: "not commented" Best practices Authentic engagement Always review and personalize AI suggestions before posting Focus on being genuinely helpful rather than promotional Share experiences and ask follow-up questions Engage in subsequent conversation when people respond Community guidelines Respect each community's rules and culture Avoid over-promotion of your tools or services Build relationships before introducing solutions Contribute value consistently, not just when selling Optimization tips Monitor which types of opportunities convert best A/B test different comment styles and approaches Track engagement metrics on your actual comments Adjust AI prompts based on community feedback