by Jakkrapat Ampring
Main Use Case This workflow enables automated, AI-assisted replies to users messaging a LINE Official Account, while storing and referencing chat history from Google Sheets to maintain context. Ideal for businesses or support teams that want to provide smart, personalized customer interactions using AI with memory. How It Works (Step-by-Step) Connect to LINE Official Account's API A Webhook listens for incoming messages from users on LINE. When a message is received, it triggers the workflow. Prepare the Data An Edit Fields module structures incoming data (e.g. extracts user ID, message content). This ensures data is clean and usable downstream. Retrieve Chat History The user’s previous conversations are fetched from a Google Sheet. This ensures the AI has memory and can continue conversations contextually. Prepare Prompt The retrieved chat history is combined with the new message to form a complete prompt for the AI. Example format: “User previously said X. Now they said Y. How should we respond?” AI Agent: Google Gemini The formatted prompt is passed to an AI Agent (Google Gemini Chat Model). The AI generates a response based on the message + history. Tools used: Chat ModeMemory, ToolOutputParser for accurate replies. Split & Clean History The conversation history is split into smaller chunks for cleaning and storage. This ensures the Google Sheet remains readable and manageable over time. Save Chat History The cleaned new message and AI reply are saved to Google Sheets. This updates the chat history for future context. Send Reply to LINE The AI-generated reply is sent back to the user via a POST HTTP Request to the LINE Messaging API. How to Set Up Prerequisites: LINE Official Account Google Sheet to store chat history Google Gemini API or AI agent with context memory Automation platform (e.g., n8n, as this seems visually similar) Step-by-Step: Create a Webhook on LINE: Set the webhook URL to your automation service. Enable webhook events. Design Your Google Sheet: Create a sheet with columns: User ID, Timestamp, Message, AI Reply. Set Up Modules in Automation Platform: Webhook: receives user messages. Edit Fields: extract user ID and message. Google Sheets Read: fetch message history. Prompt Composer: format prompt using past history + new message. AI Agent: connect to Google Gemini for smart replies. Split & Clean: clean and chunk history if needed. Google Sheets Write: save the updated conversation. HTTP Request: send reply to LINE via Messaging API. Test Your Workflow: Send a message from LINE. Watch the full loop: receive → process → AI → store → reply. Deploy & Monitor: Ensure error handling is in place (e.g., for blank messages or failed API calls). Regularly check your Google Sheets for storage limits. (If limits reached, you can increase the history row.) 📦 Benefits Maintains context in conversations Personalized, AI-driven responses Easy history tracking via Google Sheets Fully automated and scalable
by Angel Menendez
CallForge - AI Sales Call Processing & Insights Extraction Automate sales call analysis with AI-powered insights for sales, marketing, and product teams. Who is This For? This workflow is designed for: ✅ Sales teams looking to extract structured insights from Gong call transcripts. ✅ Marketing professionals seeking AI-driven customer pain points & content strategy. ✅ Product teams needing feedback from sales calls to prioritize feature development. 🔍 What Problem Does This Workflow Solve? Manually analyzing Gong.io sales call transcripts is slow, inconsistent, and lacks structured insights. With CallForge, you can: ✔ Extract AI-powered insights about use cases, objections, competitors, and next steps. ✔ Provide structured marketing & product intelligence to enhance strategy. ✔ Automatically store call insights in Notion and Salesforce for easy access. ✔ Ensure resilience with automated reruns on failed workflows (handling Notion API limits). ✔ Improve decision-making with AI-powered competitor and sentiment analysis. 📌 Key Workflow Features 🎤 AI-Powered Transcript Analysis Uses AI to identify use cases, objections, competitors, and customer pain points. Categorizes insights for sales, marketing, and product teams. 📌 AI Agent Breakdown 🔹 Sales AI Agent – Extracts customer objections, pain points, competitors, and next steps. 🔹 Marketing AI Agent – Identifies recurring topics, keyword trends, and content opportunities. 🔹 Product AI Agent – Captures feature requests and AI/ML-related references. 📊 Structured Output Processing Sales Data Processor* → Stores insights in *Notion & Salesforce** for sales tracking. Marketing Data Processor* → Extracts *SEO & content strategy insights** for marketing teams. Product AI Data Processor* → Logs *customer feedback* to prioritize *feature development**. 💡 Competitor & Integration Analysis Tracks competing products mentioned in calls**. Identifies integration needs**, flagging workarounds used by prospects. 📢 Real-Time Slack Notifications Alerts teams on workflow progress** and completed call analyses. 🔄 Failure Resilience & Automated Re-Runs If a Notion API limit is reached, the process resumes automatically. 🚀 How This Works 🛠 1. Trigger & Call Data Processing The workflow retrieves Gong call transcripts and metadata. Normalizes data**, correcting common mispronunciations like "n8n." 🤖 2. AI Agents Analyze the Call Sales Agent** – Extracts actionable insights for sales follow-ups. Marketing Agent* – Identifies *recurring themes* and *keyword trends**. Product Agent* – Captures *feature requests and AI/ML usage mentions**. 📡 3. Data is Stored in Notion & Salesforce Logs AI-extracted insights* in *Notion** for structured tracking. Pushes sales-related data* to *Salesforce** for team accessibility. 🔔 4. Slack Alerts for Teams Notifies sales, marketing, and product teams** about extracted insights. CallForge - 01 - Filter Gong Calls Synced to Salesforce by Opportunity Stage CallForge - 02 - Prep Gong Calls with Sheets & Notion for AI Summarization CallForge - 03 - Gong Transcript Processor and Salesforce Enricher CallForge - 04 - AI Workflow for Gong.io Sales Calls CallForge - 05 - Gong.io Call Analysis with Azure AI & CRM Sync CallForge - 06 - Automate Sales Insights with Gong.io, Notion & AI CallForge - 07 - AI Marketing Data Processing with Gong & Notion CallForge - 08 - AI Product Insights from Sales Calls with Notion 📊 Sample Output Data 1️⃣ Sales Insights { "UseCases": [ { "Summary": "A manufacturing company wants to automate inventory tracking and reduce manual entry delays.", "DepartmentTags": ["Operations"], "IndustryTags": ["Manufacturing"], "ImplementationStatus": "Evaluating" } ], "Objection": { "ObjectionTags": ["Feature Limitation"], "Nature": "The prospect wanted a deeper integration with their ERP system, which n8n currently lacks." }, "CallSummary": "The call focused on automation for supply chain processes. The prospect expressed interest but wanted confirmation on ERP integration capabilities.", "NextSteps": ["Schedule a follow-up demo for ERP integration."] } 2️⃣ Marketing Insights { "MarketingInsights": [ { "Tag": "Workflow Template Request", "Summary": "The prospect requested a template for automating CRM lead tracking." } ], "RecurringTopics": [ { "Topic": "CRM Integration", "Mentions": 3, "Context": "Discussed how n8n could sync CRM data automatically." } ], "ActionableInsights": [ { "RecommendationType": "Tutorial", "Title": "How to Automate CRM Lead Tracking with n8n", "Topic": "CRM Integration", "Rationale": "The prospect expressed a need for CRM automation templates." } ] } 3️⃣ Product Feedback { "ProductFeedback": [ { "Sentiment": "Positive", "Feedback": "The external speaker praised the simplicity of n8n's UI, making it easier for non-developers to automate tasks." }, { "Sentiment": "Negative", "Feedback": "The external speaker mentioned frustration over the lack of a dedicated ERP integration node." } ], "AI_ML_References": { "Exist": true, "Context": "The external speaker mentioned using AI for automating customer ticket categorization.", "Details": { "DevelopmentStatus": "Building", "Department": "Support", "RequiresAgents": true, "RequiresRAG": false, "RequiresChat": "Yes: External App (e.g., Slack)" } } } 🔧 How to Customize This Workflow 💡 🔗 Change Data Storage – Swap Notion for Airtable, HubSpot, or another CRM. 💡 📩 Customize Slack Notifications – Send alerts via email, webhook, or another channel. 💡 🛠 Modify AI Processing – Adjust AI models or processing prompts. 💡 📊 Add More Integrations – Sync insights with Pipedrive, HubSpot, or another CRM. 🚀 Why Use This Workflow? ✔ Automates Gong call transcript analysis, eliminating manual work. ✔ Improves collaboration by structuring insights for sales, marketing, and product teams. ✔ Boosts sales conversions by identifying objections and next steps. ✔ Enhances marketing and SEO strategy with AI-driven insights. ✔ Optimizes product roadmap decisions based on customer feedback. This workflow scales AI-powered sales intelligence for better decision-making, content strategy, and sales enablement. 🚀
by NanaB
This n8n workflow provides a comprehensive solution for user authentication and management, leveraging Airtable as the backend database. It includes flows for user sign-up and login, aswell as the sample crud operations retrieving user details, and updating user information. Youtube Video of me explaining the flow: https://www.youtube.com/watch?v=gKcGfyq3dPM How it Works User Sign-Up Flow Receives POST request: A webhook listens for POST requests containing new user details (email, first name, last name, password). Checks for existing email: The workflow queries Airtable to see if the submitted email already exists. Handles email in use: If the email is found, it responds with {"response": "email in use"}. Creates new user: If the email is unique, the password is SHA256 hashed (Base64 encoded), and the user's information (including the hashed password) is stored in Airtable. A successful response of {"response": "success"} is then sent. User Login Flow Receives POST request: A webhook listens for POST requests with user email and password for login. Verifies user existence: It checks Airtable for a user with the provided email. If no user is found, it responds with a failure message ("wrong email"). Compares passwords: If a user is found, the submitted password is hashed (SHA256, Base64 encoded) and compared with the stored hashed password in Airtable. Responds with JWT or error: If passwords match, a JWT token containing the user's ID and email is issued. If they don't match, a "wrong password" response is sent. Flows for a Logged-In User These flows require a JWT-authenticated request. Get User Details:** Webhook (GET): Receives a JWT-authenticated request. Airtable (Read): Fetches the current user’s record using the jwtPayload.id. Set Node ("Specify Current Details"): Maps fields like "First Name," "Last Name," "Email," and "Date" from Airtable to a standard output format. Update User Details:** Webhook (POST): Receives updated user data (email, name, password). Airtable (Upsert): Updates the record matching jwtPayload.id using the submitted fields. Set Node ("Specify New Details"): Outputs the updated data in a standard format. Set Up Steps (Approx. 5 Minutes) Step 1: Set up your Airtable Base and Table You'll need an Airtable Base and a table to store your user data. Ensure your table has at least the following columns: Email** (Single Line Text) First Name** (Single Line Text) Last Name** (Single Line Text) Password** (Single Line Text - this will store the hashed password) Date** (Date - optional, for user sign-up date) Step 2: Obtain an Airtable Personal Access Token Go to the Airtable website and log in to your account. Navigate to your personal access token page (usually found under your developer settings or by searching for "personal access tokens"). Click "Create new token." Give your token a name (e.g., "n8n User Management"). Grant necessary permissions: Scope: data.records:read, data.records:write for the specific base you will be using. Base: Select the Airtable base where your user management table resides. Generate the token and copy it immediately. You won't be able to see it again. Store it securely. Step 3: Create a JWT Auth Credential in n8n In your n8n instance, go to "Credentials" (usually found in the left-hand sidebar). Click "New Credential" and search for "JWT Auth". Give the credential a name (e.g., "UserAuthJWT"). For the "Signing Secret," enter a strong, random string of characters. This secret will be used to sign and verify your JWT tokens. Keep this secret highly confidential. Save the credential. Customization Options This workflow is designed to be highly adaptable: Database Integration**: Easily switch from Airtable to other databases like PostgreSQL, MySQL, MongoDB, or even Google Sheets by replacing the Airtable nodes with the appropriate database nodes in n8n. Authentication Methods**: Extend the authentication to include multi-factor authentication (MFA), social logins (Google, Facebook), or integrate with existing identity providers (IdP) by adding additional nodes. User Profile Fields**: Add or remove user profile fields (e.g., phone number, address, user roles) by adjusting the Airtable table columns and the Set nodes in the workflow. Notification System**: Integrate notification systems (e.g., email, SMS) for events like new user sign-ups, password resets, or account changes. Admin Panel**: Build an admin panel using n8n to manage users directly, including functionalities for adding, deleting, or updating user records, and resetting passwords. This workflow provides a solid foundation for building robust user management systems, adaptable to a wide range of applications and security requirements. Need Assistance or Customization? Do you have specific integrations in mind, or are you looking to add more user management features to this workflow? If you need help setting this up, or want to adapt it for a unique use case, don't hesitate to reach out! You can contact me directly at nanabrownsnr@gmail.com. I'd be glad to assist you.
by Vincent
Automate Actions After PDF Generation with PDFMonkey in n8n Overview This n8n workflow template allows you to automatically react to PDF generation events from PDFMonkey. When a new PDF is successfully created, this workflow retrieves the file and processes it based on your needs—whether it’s sending it via email, saving it to cloud storage, or integrating it with other apps. How It Works Trigger: The workflow listens for a PDFMonkey webhook event when a new PDF is generated. Retrieve PDF: It fetches the newly generated PDF file from PDFMonkey. Process & Action: Depending on the outcome: ✅ On success: The workflow downloads the PDF and can distribute or store it. ❌ On failure: It handles errors accordingly (e.g., sending alerts, retrying, or logging the issue). Configuration To set up this workflow, follow these steps: Copy the Webhook URL generated by n8n. Go to your PDFMonkey Webhooks dashboard and paste the URL in the appropriate field to define the callback URL. Save your settings and trigger a test to ensure proper integration. 📖 For detailed setup instructions, visit: PDFMonkey Webhooks Documentation Use Cases This workflow is ideal for: Automating invoice processing (e.g., sending PDFs to customers via email). Archiving reports** in cloud storage (e.g., Google Drive, Dropbox, or AWS S3). Sending notifications** via Slack, Microsoft Teams, or WhatsApp when a new PDF is available. Logging generated PDFs** in Airtable, Notion, or a database for tracking. Customization You can customize this workflow to: Add conditional logic** (e.g., different actions based on the document type). Enhance security** (e.g., encrypting PDFs before sharing). Extend integrations** by connecting with CRM tools, task managers, or analytics platforms. Need Help? If you need assistance setting up or customizing this workflow, feel free to reach out to us via chat on pdfmonkey.io—we’ll be happy to help! 🚀
by Wessel Bulte
What this template does Receives meeting data via a webform, cleans/structures it, fills a Word docx template, uploads the file to SharePoint, appends a row to Excel 365, and sends an Outlook email with the document attached. Good to know Uses a community node: DocxTemplater to render the DOCX from a template. Install it from the Community Nodes catalog. The template context is the workflow item JSON. In your docx file, use placeholders. Includes a minimal HTML form snippet (outside n8n) you can host anywhere. Replace the placeholder WEBHOOK_URL with your Webhook URL before testing. Microsoft nodes require Azure app credentials with correct permissions (SharePoint, Excel/Graph, Outlook). How it works Webhook — Receives meeting form JSON (POST). Code (Parse Meeting Data) — Parses/normalizes fields, builds semicolon‑separated strings for attendees/absentees, and flattens discussion points / action items. SharePoint (Download) — Fetches the DOCX template (e.g., meeting_minutes_template.docx). Merge — Combines template binary + JSON context by position. DocxTemplater — Renders meeting_{{now:yyyy-MM-dd}}.docx using the JSON context. SharePoint (Upload) — Saves the generated DOCX to a target folder (e.g., /Meetings). Microsoft Excel 365 (Append) — Appends a row to your sheet (Date, Time, Attendees, etc.). Microsoft Outlook (Send message) — Emails the generated DOCX as an attachment. Requirements Community node DocxTemplater installed Microsoft 365 access with credentials for: SharePoint (download template + upload output) Excel 365 (append to table/worksheet) Outlook (send email) A Word template with placeholders matching the JSON keys Need Help 🔗 LinkedIn – Wessel Bulte
by Onur
Yelp Business Scraper by URL via Scrape.do API with Google Sheets Storage Overview This n8n workflow automates the process of scraping comprehensive business information from Yelp using individual business URLs. It integrates with Scrape.do for professional web scraping with anti-bot bypass capabilities and Google Sheets for centralized data storage, providing detailed business intelligence for market research, competitor analysis, and lead generation. Workflow Components 1. 📥 Form Trigger | Property | Value | |----------|-------| | Type | Form Trigger | | Purpose | Initiates the workflow with user-submitted Yelp business URL | | Input Fields | Yelp Business URL | | Function | Captures target business URL to start the scraping process | 2. 🔍 Create Scrape.do Job | Property | Value | |----------|-------| | Type | HTTP Request (POST) | | Purpose | Creates an async scraping job via Scrape.do API | | Endpoint | https://q.scrape.do/api/v1/jobs | | Authentication | X-Token header | Request Parameters: Targets**: Array containing the Yelp business URL Super**: true (uses residential/mobile proxies for better success rate) GeoCode**: us (targets US-based content) Device**: desktop Render**: JavaScript rendering enabled with networkidle2 wait condition Function: Initiates comprehensive business data extraction from Yelp with headless browser rendering to handle dynamic content. 3. 🔧 Parse Yelp HTML | Property | Value | |----------|-------| | Type | Code Node (JavaScript) | | Purpose | Extracts structured business data from raw HTML | | Mode | Run once for each item | Function: Parses the scraped HTML content using regex patterns and JSON-LD extraction to retrieve: Business name Overall rating Review count Phone number Full address Price range Categories Website URL Business hours Image URLs 4. 📊 Store to Google Sheet | Property | Value | |----------|-------| | Type | Google Sheets Node | | Purpose | Stores scraped business data for analysis and storage | | Operation | Append rows | | Target | "Yelp Scraper Data - Scrape.do" sheet | Data Mapping: Business Name, Overall Rating, Reviews Count Business URL, Phone, Address Price Range, Categories, Website Hours, Images/Videos URLs, Scraped Timestamp Workflow Flow Form Input → Create Scrape.do Job → Parse Yelp HTML → Store to Google Sheet │ │ │ │ ▼ ▼ ▼ ▼ User submits API creates job JavaScript code Data appended Yelp URL with JS rendering extracts fields to spreadsheet Configuration Requirements API Keys & Credentials | Credential | Purpose | |------------|---------| | Scrape.do API Token | Required for Yelp business scraping with anti-bot bypass | | Google Sheets OAuth2 | For data storage and export access | | n8n Form Webhook | For user input collection | Setup Parameters | Parameter | Description | |-----------|-------------| | YOUR_SCRAPEDO_TOKEN | Your Scrape.do API token (appears in 3 places) | | YOUR_GOOGLE_SHEET_ID | Target spreadsheet identifier | | YOUR_GOOGLE_SHEETS_CREDENTIAL_ID | OAuth2 authentication reference | Key Features 🛡️ Anti-Bot Bypass Technology Residential Proxy Rotation**: 110M+ proxies across 150 countries WAF Bypass**: Handles Cloudflare, Akamai, DataDome, and PerimeterX Dynamic TLS Fingerprinting**: Authentic browser signatures CAPTCHA Handling**: Automatic bypass for uninterrupted scraping 🌐 JavaScript Rendering Full headless browser support for dynamic Yelp content networkidle2 wait condition ensures complete page load Custom wait times for complex page elements Real device fingerprints for detection avoidance 📊 Comprehensive Data Extraction | Field | Description | Example | |-------|-------------|---------| | name | Business name | "Joe's Pizza Restaurant" | | overall_rating | Average customer rating | "4.5" | | reviews_count | Total number of reviews | "247" | | url | Original Yelp business URL | "https://www.yelp.com/biz/..." | | phone | Business phone number | "(555) 123-4567" | | address | Full street address | "123 Main St, New York, NY 10001" | | price_range | Price indicator | "$$" | | categories | Business categories | "Pizza, Italian, Delivery" | | website | Business website URL | "https://joespizza.com" | | hours | Operating hours | "Mon-Fri 11:00-22:00" | | images_videos_urls | Media content links | "https://s3-media1.fl.yelpcdn.com/..." | | scraped_at | Extraction timestamp | "2025-01-15T10:30:00Z" | 🗂️ Centralized Data Storage Automatic Google Sheets export Organized business data format with 12 data fields Historical scraping records with timestamps Easy sharing and collaboration Use Cases 📈 Market Research Competitor business analysis Local market intelligence gathering Industry benchmark establishment Service offering comparison 🎯 Lead Generation Business contact information extraction Potential client identification Market opportunity assessment Sales prospect development 📊 Business Intelligence Customer sentiment analysis through ratings Competitor performance monitoring Market positioning research Brand reputation tracking 📍 Location Analysis Geographic business distribution Local competition assessment Market saturation evaluation Expansion opportunity identification Technical Notes | Specification | Value | |--------------|-------| | Processing Time | 15-45 seconds per business URL | | Data Accuracy | 95%+ for publicly available business information | | Success Rate | 99.98% (Scrape.do guarantee) | | Proxy Pool | 110M+ residential, mobile, and datacenter IPs | | JS Rendering | Full headless browser with networkidle2 wait | | Data Format | JSON with structured field mapping | | Storage Format | Structured Google Sheets with 12 predefined columns | Setup Instructions Step 1: Import Workflow Copy the JSON workflow configuration Import into n8n: Workflows → Import from JSON Paste configuration and save Step 2: Configure Scrape.do Get your API token: Sign up at Scrape.do Navigate to Dashboard → API Token Copy your token Update workflow references (3 places): 🔍 Create Scrape.do Job node → Headers → X-Token 📡 Check Job Status node → Headers → X-Token 📥 Fetch Task Results node → Headers → X-Token Replace YOUR_SCRAPEDO_TOKEN with your actual API token. Step 3: Configure Google Sheets Create target spreadsheet: Create new Google Sheet named "Yelp Business Data" or similar Add header row with columns: name | overall_rating | reviews_count | url | phone | address | price_range | categories | website | hours | images_videos_urls | scraped_at Copy the Sheet ID from URL (the long string between /d/ and /edit) Set up OAuth2 credentials: In n8n: Credentials → Add Credential → Google Sheets OAuth2 Complete the Google authentication process Grant access to Google Sheets Update workflow references: Replace YOUR_GOOGLE_SHEET_ID with your actual Sheet ID Update YOUR_GOOGLE_SHEETS_CREDENTIAL_ID with credential reference Step 4: Test and Activate Test with sample URL: Use a known Yelp business URL (e.g., https://www.yelp.com/biz/example-business-city) Submit through the form trigger Monitor execution progress in n8n Verify data appears in Google Sheet Activate workflow: Toggle workflow to "Active" Share form URL with users Sample Business Data The workflow captures comprehensive business information including: | Category | Data Points | |----------|-------------| | Basic Information | Name, category, location | | Performance Metrics | Ratings, review counts, popularity | | Contact Details | Phone, website, address | | Visual Content | Photos, videos, gallery URLs | | Operational Data | Hours, services, price range | Advanced Configuration Batch Processing Modify the input to accept multiple URLs by updating the job creation body: { "Targets": [ "https://www.yelp.com/biz/business-1", "https://www.yelp.com/biz/business-2", "https://www.yelp.com/biz/business-3" ], "Super": true, "GeoCode": "us", "Render": { "WaitUntil": "networkidle2", "CustomWait": 3000 } } Enhanced Rendering Options For complex Yelp pages, add browser interactions: { "Render": { "BlockResources": false, "WaitUntil": "networkidle2", "CustomWait": 5000, "WaitSelector": ".biz-page-header", "PlayWithBrowser": [ { "Action": "Scroll", "Direction": "down" }, { "Action": "Wait", "Timeout": 2000 } ] } } Notification Integration Add alert mechanisms: Email notifications for completed scrapes Slack messages for team updates Webhook triggers for external systems Error Handling Common Issues | Issue | Cause | Solution | |-------|-------|----------| | Invalid URL | URL is not a valid Yelp business page | Ensure URL format: https://www.yelp.com/biz/... | | 401 Unauthorized | Invalid or missing API token | Verify X-Token header value | | Job Timeout | Page too complex or slow | Increase CustomWait value | | Empty Data | HTML parsing failed | Check page structure, update regex patterns | | Rate Limiting | Too many concurrent requests | Reduce request frequency or upgrade plan | Troubleshooting Steps Verify URLs: Ensure Yelp business URLs are correctly formatted Check Credentials: Validate Scrape.do token and Google OAuth Monitor Logs: Review n8n execution logs for detailed errors Test Connectivity: Verify network access to all external services Check Job Status: Use Scrape.do dashboard to monitor job progress Performance Specifications | Metric | Value | |--------|-------| | Processing Time | 15-45 seconds per business URL | | Data Accuracy | 95%+ for publicly available information | | Success Rate | 99.98% (with Scrape.do anti-bot bypass) | | Concurrent Processing | Depends on Scrape.do plan limits | | Storage Capacity | Unlimited (Google Sheets based) | | Proxy Pool | 110M+ IPs across 150 countries | Scrape.do API Reference Async API Endpoints | Endpoint | Method | Purpose | |----------|--------|---------| | /api/v1/jobs | POST | Create new scraping job | | /api/v1/jobs/{jobID} | GET | Check job status | | /api/v1/jobs/{jobID}/{taskID} | GET | Retrieve task results | | /api/v1/me | GET | Get account information | Job Status Values | Status | Description | |--------|-------------| | queuing | Job is being prepared | | queued | Job is in queue waiting to be processed | | pending | Job is currently being processed | | rotating | Job is retrying with different proxies | | success | Job completed successfully | | error | Job failed | | canceled | Job was canceled by user | For complete API documentation, visit: Scrape.do Documentation Support & Resources Scrape.do Documentation**: https://scrape.do/documentation/ Scrape.do Dashboard**: https://dashboard.scrape.do/ n8n Documentation**: https://docs.n8n.io/ Google Sheets API**: https://developers.google.com/sheets/api This workflow is powered by Scrape.do - Reliable, Scalable, Unstoppable Web Scraping
by Angel Menendez
Have you ever wanted to throttle Plex when connecting remotely to your server? Well here is the script for you! The instructions to deploy are below: You will need: A plex server with Plex Pass (for webhooks) n8n running locally (either in docker on via the desktop app) Qbittorent with WebUI enabled Begin by installing n8n by visiting n8n.io. You can install the desktop version or the docker version, whichever works best for your but I'm doing this on my desktop version of n8n. Copy the code from this page into your n8n install canvas. You should see the script appear before your eyes. From there, you Double click on the Webhook node at the beginning of the script. Copy both the Test and Production URLs that appear there. Now make your way to Plex and visit your settings. On the left, you should see the webhooks option if you have Plex Pass. This will setup your triggers. Next visit your qBitTorrent instance and enable WebUI. Notate your Username, Password, and Port. You will also need to know the IP of the machine that qbittorent is running on. If you have an iPhone you can connect to the same wireless network as your computer and use the Fing app to scan the network for the IP. Open up the script and edit the Global Variables to reflect the values you copied. Hit save at the top right, and then activate the script. Enjoy!!
by Aitor | 1Node
Talk to Your Apps: Building a Personal Assistant MCP Server with Google Gemini Wouldn't it be cool to just tell your computer or phone to "schedule a meeting with Sarah next Tuesday at 3 PM" or "find John Doe's email address" and have it actually do it? That's the dream of a personal assistant! With n8n and the power of MCP and AI models like Google Gemini, you can actually build something pretty close to that. We've put together a workflow that shows you how you can use a natural language chat interface to interact with your other apps, like your CRM, email, and calendar. What You Need to Get Started Before you dive in, you'll need a few things: n8n:** An n8n instance (either cloud or self-hosted) to build and run your workflow. Google Gemini Access:** Access to the Google Gemini model via an API key. Credentials for Your Apps:** API keys or login details for the specific CRM, Email, and Calendar services you want to connect (like Google Sheets for CRM, Gmail, Google Calendar, etc., depending on your chosen nodes). A Chat Interface:** A way to send messages to n8n to trigger the workflow (e.g., via a chat app node or webhook). How it Works (In Simple Terms) Imagine this workflow is like a helpful assistant who sits between you and your computer. Step 1: You Talk, the AI Agent Listens It all starts when you send a message through your connected chat interface. Think of this as you speaking directly to your assistant. Step 2: The Assistant's Brain (Google Gemini) Your message goes straight to the assistant's "brain." In this case, the brain is powered by a smart AI model like Google Gemini. In our template we are using the latest Gemini 2.5 Pro. But this is totally up to you. Experiment and track which model fits the kind of tasks you will pass to the agent. Its job is to understand exactly what you're asking for. Are you asking to create something? Are you asking to find information? Are you asking to update something? The brain also uses a "memory" so it can remember what you've talked about recently, making the conversation feel more natural. We are using the default context window, which is the past 5 interactions. Step 3: The Assistant Decides What Tool to Use Once the brain understands your request, the assistant figures out the best way to help you. It looks at the request and thinks, "Okay, to do this, I need to use one of my tools." Step 4: The Assistant's Toolbox (MCP & Your Apps) Here's where the "MCP" part comes in. Think of "MCP" (Model Context Protocol) as the assistant's special toolbox. Inside this toolbox are connections to all the different apps and services you use – your CRM for contacts, your email service, and your calendar. The MCP system acts like a manager for these tools, making them available to the assistant whenever they're needed. Step 5: Using the Right Tool for the Job Based on what you asked for, the assistant picks the correct tool from the toolbox. If you asked to find a contact, it grabs the "Get Contact" node from the CRM section. If you wanted to schedule a meeting, it picks the "Create Event" node from the Calendar section. If you asked to draft an email, it uses the "Draft Email" node. Step 6: The Tool Takes Action Now, the node or set of nodes get to work! It performs the action you requested within the specific app. The CRM tool finds or adds the contact. The Email tool drafts the message. The Calendar tool creates the event. Step 7: Task Completed! And just like that, your request is handled automatically, all because you simply told your assistant what you wanted in plain language. Why This is Awesome This kind of workflow shows the power of combining AI with automation platforms like n8n. You can move beyond clicking buttons and filling out forms, and instead, interact with your digital life using natural conversation. n8n makes it possible to visually build these complex connections between your chat, the AI brain, and all your different apps. Taking it Further (Possible Enhancements) This is just the start! You could enhance this personal assistant by: Connecting more apps and services (task managers, project tools, etc.). Adding capabilities to search the web or internal documents. Implementing more sophisticated memory or context handling. Getting a notification when the AI agent is done completing each task such as in Slack or Microsoft Teams. Allowing the assistant to ask clarifying questions if needed. Building a robust prompt for the AI agent. Ready to Automate Your Workflow? Imagine the dozens of hours your team could save weekly by automating repetitive tasks through a simple, natural language interface. Need help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Davide
This workflow allows users to convert a 2D image into a 3D model by integrating multiple AI and web services. The process begins with a user uploading or providing an image URL, which is then sent to a generative AI model capable of interpreting the content and generating a 3D representation in .glb format. The model is then stored and a download link is returned to the user. Main Steps Trigger Node: Initiates the workflow either via HTTP request, webhook, or manual execution. Image Upload or Input: The image is acquired via direct upload or URL input. API Integration: The image is sent to a 3D generation API (e.g., a service like Kaedim, Luma Labs, or a custom AI model). Model Generation: The external API processes the image and creates a 3D model. File Storage: The resulting 3D model is stored in cloud storage (e.g., S3, Google Drive, or a local server). Response to User: A download link for the 3D model is returned to the user via the same communication channel (HTTP response, email, or chat). Advantages Automation**: Eliminates the need for manual 3D modeling, saving time for artists, developers, and designers. AI-Powered**: Leverages AI to generate realistic and usable 3D models from simple 2D inputs. Scalability**: Can be triggered automatically and scaled up to handle many requests via n8n's automation. Integration-Friendly**: Easily extendable with other services like Discord, Telegram, or marketplaces for 3D assets. No-Code Configuration**: Built with n8n’s visual interface, making it editable without programming knowledge. How It Works Trigger: The workflow can be started manually ("When clicking ‘Test workflow’") or automatically at scheduled intervals ("Schedule Trigger"). Data Retrieval: The "Get new image" node fetches data from a Google Sheet, including the model image, product image, and product ID. 3D Image Creation: The "Create 3D Image" node sends the image data to the Fal.run API (Trellis) to generate a 3D model. Status Check: The workflow periodically checks the request status ("Get status" and "Wait 60 sec.") until the job is marked as "COMPLETED." Result Processing: Once completed, the 3D model URL is retrieved ("Get Url 3D image"), the file is downloaded ("Get File 3D image"), and uploaded to Google Drive ("Upload 3D Image"). Sheet Update: The final 3D model URL is written back to the Google Sheet ("Update result"). Set Up Steps Prepare Google Sheet: Create a Google Sheet with columns: IMAGE MODEL and 3D RESULT (empty). Example sheet: Google Sheet Template. Obtain Fal.run API Key: Sign up at Fal.ai and get an API key. Configure the Authorization header in the "Create 3D Image" node with Key YOURAPIKEY. Configure Workflow Execution: Run manually via the Test workflow button. For automation, set up the Schedule Trigger node (e.g., every 5 minutes). Verify Credentials: Ensure Google Sheets, Google Drive, and Fal.run API credentials are correctly set in n8n. Once configured, the workflow processes new entries in the Google Sheet, generates 3D models, and updates the results automatically. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Hugues Stock
What does this template do? This workflow sets a small "lock" value in Redis so that only one copy of a long job can run at the same time. If another trigger fires while the job is still busy, the workflow sees the lock, stops early, and throws a clear error. This protects your data and keeps you from hitting rate limits. Because the workflow also stores simple progress flags ("working", "loading", "finishing"), you can poll the current status and show live progress for very long jobs. Use Case Great when the same workflow can be called many times in parallel (for example by webhooks, cron jobs, or nested Execute Workflow calls) and you need an "only run once at a time" guarantee without building a full queue system. What the Workflow Does ⚡ Starts through Execute Workflow Trigger called by another workflow 🔄 A Switch sends the run to Get, Set, or Unset actions 💾 Redis reads or writes a key named process_status_<key> with a time‑to‑live (default 600 s) 🚦 If nodes check the key and decide to continue or stop ⏱️ Wait nodes stand in for the slow part of your job (replace these with your real work) 📈 Updates the key with human‑readable progress values that another workflow can fetch with action = get 🏁 When done, the lock is removed so the next run can start Apps & Services Used Redis Core n8n nodes (Switch, If, Set, Wait, Stop and Error) Pre‑requisites A Redis server that n8n can reach Redis credentials stored in n8n A second workflow that calls this one and sends: action set to get, set, or unset key set to a unique name for the job Optional timeout in seconds Customization Tips Increase or decrease the TTL in the Set Timeout node to match how long your job usually runs Add or rename status values ("working", "loading", "finishing", and so on) to show finer progress Replace Stop and Error with a Slack or email alert, or even push the extra trigger into a queue if you prefer waiting instead of failing Use different Redis keys if you need separate locks for different tasks Build a small "status endpoint" workflow that calls this one with action = get to display real‑time progress to users Additional Use Cases 🛑 Telegram callback spam filter If a Telegram bot sends many identical callbacks in a burst, call this workflow first to place a lock. Only the first callback will proceed; the rest will exit cleanly until the lock clears. This keeps your bot from flooding downstream APIs. 🧩 External API rate‑limit protection Run heavy API syncs one after the other so parallel calls do not break vendor rate limits. 🔔 Maintenance window lock Block scheduled maintenance tasks from overlapping, making sure each window finishes before the next starts.
by ainabler
Overall Description & Potential << What Does This Flow Do? >> Overall, this workflow is an intelligent sales outreach automation engine that transforms raw leads from a form or a list into highly personalized, ready-to-send introductory email drafts. The process is: it starts by fetching data, enriches it with in-depth AI research to uncover "pain points," and then uses those research findings to craft an email that is relevant to the solutions you offer. This system solves a key problem in sales: the lack of time to conduct in-depth research on every single lead. By automating the research and drafting stages, the sales team can focus on higher-value activities, like engaging with "warm" prospects and handling negotiations. Using Google Sheets as the main dashboard allows the team to monitor the entire process—from lead entry, research status, and email drafts, all the way to the send link—all within a single, familiar interface. << Potential Future Enhancements >> This workflow has a very strong foundation and can be further developed into an even more sophisticated system: Full Automation (Zero-Touch): Instead of generating a manual-click link, the output from the AI Agent can be directly piped into a Gmail or Microsoft 365 Email node to send emails automatically. A Wait node could be added to create a delay of a few minutes or hours after the draft is created, preventing instant sending. Automated Follow-up Sequences: The workflow can be extended to manage follow-up emails. By using a webhook to track email opens or replies, you could build logic like: "If the intro email is not replied to within 3 days, trigger the AI Agent again to generate follow-up email #1 based on a different template, and then send it." AI-Powered Lead Scoring: After the research stage, the AI could be given the additional task of scoring leads (e.g., 1-10 or High/Medium/Low Priority) based on how well the target company's profile matches your ideal customer profile (ICP). This helps the sales team prioritize the most promising leads. Full CRM Integration: Instead of Google Sheets, the workflow could connect directly to HubSpot, Salesforce, or Pipedrive. It would pull new leads from the CRM, perform the research, draft the email, and log all activities (research results, sent emails) back to the contact's timeline in the CRM automatically. Multi-Channel Outreach: Beyond email, the AI could be instructed to draft personalized LinkedIn Connection Request messages or WhatsApp messages. The workflow could then use the appropriate APIs to send these messages, expanding your outreach beyond just email.
by Nazmy
Bearer Token Validation This n8n template helps you manage and validate tokens easily using: n8n as your backend workflow engine Airtable as your lightweight token store 🚀 What It Does Stores user tokens securely in Airtable with expiry or usage metadata. Validates incoming tokens in your workflows (e.g., webhook APIs). Rejects invalid or expired tokens automatically for security. Can be extended to generate, rotate, or revoke tokens for user management. How It Works Webhook node receives requests with a Bearer header. Airtable Query looks up the provided token. Validation Logic (Code node): Checks if the token exists. Verifies expiry or usage limits if configured. Returns success if valid, or error if error with describing the issue. Note: This is the simplest way to do auth, just for simplification Why Use This No need for a full backend to manage secure token validation. Clean, modular, and ready for your SaaS workflows. Enjoy building secure automations with n8n + Airtable! 🚀 Built by: Nazmy