by Dina Lev
Automate Legal Document Generation with n8n, Apify, Google Drive, and AI This tutorial details an end-to-end automation solution for streamlining the lien filing process for Homeowners Associations (HOAs) using an n8n workflow. It significantly reduces manual effort and potential errors for legal professionals by automating document retrieval, information extraction, and document generation. Who's it for This template is ideal for legal professionals, law firms, and property management companies that frequently handle lien filings for Homeowners Associations. If you're looking to reduce manual document processing time, minimize errors, and improve efficiency in your legal operations, this workflow is for you. The Problem Legal professionals often allocate a significant portion of their time—up to 40%—to manual document processing tasks. The traditional process for filing a lien is particularly time-consuming (e.g., 15 minutes per case) and error-prone, involving steps like manual searching, downloading, extracting, and populating legal documents. The Automation Solution Overview This automation leverages an n8n workflow in conjunction with external services like Playwright (via Apify), Google Drive, Google Sheets, Gmail, and the Gemini API. The primary objective is to automate the legal document generation process—from initial data submission to final document generation and notification. Requirements Before importing and running the n8n workflow, you need the following: n8n Instance:** A running n8n instance (self-hosted or cloud). Google Account:** With access to Google Sheets, Google Drive, and Gmail. Google Sheets:** An Input Sheet to receive form responses (e.g., "Legal Automation Input Form (Responses)"). An Output/Review Sheet for extracted data and approval (e.g., "Automation Output data Sheet") with specific columns like "Timestamp", "Legal Description", "Association Name", "Debt", "Parcel", "Owner", "Doc link", "Approval", and "Created". Google Drive:** A main folder for n8n outputs (e.g., "N8N Folder"). A Google Docs Lien Template with placeholders (e.g., {{ASSOCIATION}}, {{DEBT}}, {{PROPERTY}}, {{MONTH}}, {{YEAR}}, {{DAY}}, {{PARCEL}}, {{OWNER}}). Google Gemini API Key:** For text and image processing. Apify Account & Playwright Actor:** An Apify account with access to a Playwright actor capable of scraping property information from your target county's website. Setup Steps n8n Credentials: Add Google Sheets, Google Drive, and Gmail credentials in your n8n instance. Add an HTTP Query Auth credential for your Gemini API key (named "Query Auth account" in the template). Ensure your Apify API token is configured within the Apify Playwright script to find property info node. Google Sheets Configuration: Link the Google Sheets Trigger node to your Input Sheet. Link the Google Sheets node (for appending data) and the Intermediate data received trigger to your Output/Review Sheet. Google Drive Configuration: Update the Create folder to output node with the ID of your "N8N Folder". Update the Make Copy of Template node with the ID of your Google Docs Lien Template. Email Addresses: Update the recipient email addresses in the Approve Through Email and Notify complete nodes to your desired notification email. Detailed Tutorial Steps and n8n Workflow Breakdown Summary This n8n workflow, "Legal Document Generator E2E", automates the process of generating legal lien documents, from initial data input to final document creation and notification. Initiate Workflow: The workflow starts with a Google Sheets Trigger node, which listens for new lien requests submitted via a form that populates a Google Sheet. Gather Property Data: An Apify Playwright script to find property info node fetches property details from county websites, and a Get file for property node downloads associated legal documents. Process and Store Document: The downloaded document is transformed to base64 using Transform to base64 and then uploaded to Google Drive via Upload legal doc for storage and further processing. Extract Information with AI: Call Gemini API for legal desc and Property metadata nodes leverage the Gemini API to extract the precise legal description, parcel number, and owner's name from the document. This extracted data is then structured by the Property Information Extractor. Review and Approve: The extracted information is appended to an intermediate Google Sheet by the first Google Sheets node, and an email is sent via Approve Through Email to the user for review and approval. Generate Documents on Approval: A second Intermediate data received Google Sheets Trigger node monitors the approval status in the sheet. Once "Approved", an If node allows the workflow to proceed. Create and Populate Documents: A new client-specific folder is created in Google Drive using Create folder to output. A blank lien template is copied (Make Copy of Template), and its custom variables are populated with the extracted data using Change Custom Variables. Finalize and Store Output: The populated document is converted to PDF (Generate PDF), and both the new PDF (Add PDF To Drive) and the original source document (Move file in Google Drive) are saved to the client's new folder. Update Records and Notify: The Update Creation Google Sheets node marks the document as "Created" in the tracking sheet and updates the document link. Finally, Notify complete sends a notification email about the completion. How to Customize the Workflow Adjust Input Form Fields:** Modify the column names in your initial Google Sheet and update the expressions in the Google Sheets Trigger and Apify Playwright script to find property info nodes to match your form. Change County Website/Scraper:** If you need to fetch data from a different county or property database, you will need to modify the Apify Playwright script to find property info node to call a different Apify actor or configure a new HTTP Request node to interact with your chosen data source. Customize Document Template:** Update the placeholders in your Google Docs Lien Template to match your specific document needs. Ensure corresponding replaceAll actions are updated in the Change Custom Variables node. Modify AI Prompts:** Refine the prompts within the Call Gemini API for legal desc and Property metadata nodes to improve the accuracy of information extraction based on your document types. Notification Preferences:** Adjust the sendTo email addresses and subject/message content in the Approve Through Email and Notify complete nodes. Benefits of this Automation This automation offers significant advantages for legal professionals: Streamlined Organization:** Ensures all relevant documents—original source files, editable templates, and final PDFs—are systematically organized, tracked, and easily accessible within Google Drive. Time-Saving and Efficiency:** Documents are quickly generated and ready for client sharing, leading to faster turnaround times and improved service delivery. Scalability:** Provides a scalable solution for handling a higher volume of document processing tasks without a proportional increase in manual effort. Learn more about Chill Labs and our services on our website: Chill Labs
by Dr. Firas
Convert YouTube videos to viral Shorts with Klap and auto-post with Blotato > ⚠️ Disclaimer: This workflow uses Community Nodes and requires a self-hosted n8n instance. Who is this for? This workflow is perfect for content creators, YouTubers, marketing teams and entrepreneurs who want to effortlessly convert long YouTube videos into short, viral-ready clips and publish them automatically on TikTok, Instagram, YouTube Shorts and other platforms. What problem is this workflow solving? Manually creating short, engaging clips from YouTube videos takes hours: Selecting highlights Adding subtitles and effects Downloading and editing Posting individually on each platform This workflow eliminates all of that: AI-powered Shorts generation with Klap Smart scheduling based on your posting calendar Full automation of uploads to multiple platforms What this workflow does From a simple YouTube link sent via Telegram, the workflow: Extracts the YouTube URL and number of Shorts requested Sends the video to Klap for AI-powered Shorts generation Checks when the Shorts are ready Schedules publication times based on your custom settings Uploads the Shorts to Blotato Auto-posts on TikTok, YouTube Shorts, Instagram and more Sends a confirmation recap to Telegram Setup Connect your Telegram bot to the trigger node Add your Klap API key for video processing Link your Google Sheets with your scheduling preferences Add your Blotato API key and social platform IDs Adjust the number of Shorts generated if needed Modify the scheduling logic or time windows in the Google Sheets How to customize this workflow to your needs Change AI video settings in the Klap API request Adjust time windows and frequency in the scheduling nodes Limit the workflow to specific platforms (e.g., TikTok only) Add a manual approval step before publishing Modify the Telegram recap message content 📄 Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Mateusz Kosiorek
AI powered content creation and WordPress publishing workflow Summary This workflow automates the entire process of blog content creation, from idea generation and article writing using Google Gemini, to sourcing images from Pexels and publishing directly to your WordPress site. It uses Google Sheets as a central hub for managing content ideas and tracking their status, all orchestrated through interactive n8n forms. Key features AI driven content:** Leverages Google Gemini for generating: Full blog articles based on prompts. Relevant keywords for image searching. New blog topic ideas. Automated image sourcing:** Searches Pexels for suitable images based on AI generated keywords and downloads them. WordPress integration:** Creates new posts with AI generated title and content. Uploads sourced images to the WordPress media library. Sets the uploaded image as the featured image for the post. Google Sheets management:** Fetches content ideas (prompts) marked as "not generated". Updates the sheet after a post is generated with the post ID, title, and generation date. Adds newly AI generated blog topic ideas to the sheet. Interactive forms:** Main trigger form to choose between generating content or adding new ideas. Forms to input topics for idea generation. Confirmation forms at the end of processes. Structured output parsing:** Ensures AI responses for topic generation are correctly formatted as JSON. How it works The workflow is initiated via an n8n Form Trigger: Select Action, allowing the user to choose one of two main paths: 1. Generate content path: Fetch idea: The Fetch unprocessed ideas (Google Sheets) node retrieves a row from your sheet where the "Generated" column is "no". Set prompt: The Set prompt node prepares the topic from the sheet for the AI. Generate article: The Generate article AI (Langchain Agent with Google Gemini) node takes the prompt and writes a full article. Generate image keyword: The Generate image keyword AI (Langchain Agent with Google Gemini) node creates a concise search term based on the article topic. Search image: The Search Pexels image (HTTP Request) node uses the generated keyword to find a relevant image via the Pexels API. Create WordPress post: The Create WordPress post node publishes the AI generated article and initial image metadata to your WordPress site. Download and upload image: The Download Pexels image (HTTP Request) node fetches the actual image file, and the Upload image (HTTP Request) node uploads it to your WordPress media library. Set featured image: The Set featured image (HTTP Request) node links the uploaded image as the featured image for the newly created post. Update sheet: The Update Google Sheet node marks the idea as "yes" in your Google Sheet and adds the WordPress post ID and title. Confirmation: A Form: End post generation node displays a completion message. 2. Add ideas path: Input topic: The Form: Enter topic for ideas node prompts the user to enter a general subject. Generate topics: The Generate blog topics AI (Langchain Agent with Google Gemini and Structured Output Parser) node generates five SEO friendly blog topic ideas based on the user's input, formatted as JSON. Process topics: The Split topics node separates the generated list of topics into individual items. Add to sheet: For each topic, the Add ideas to sheet (Google Sheets) node appends it as a new row, marked with "Generated: no". Loop or end: The Form: Add more topics? node asks the user if they want to generate more ideas or end the process. If "NEXT", it loops back to the Form: Enter topic for ideas. If "END", a Form: End idea generation node displays a completion message with the list of added topics. Nodes used Form Trigger If Google Sheets Set Langchain Agent (with Google Gemini Chat Model) Structured Output Parser (Langchain) HTTP Request (for Pexels API and WordPress Media/Post updates) WordPress Split Out Form (for user interaction and completion messages) Sticky Note (for instructions within the workflow) Setup instructions Credentials: Google Sheets: Configure your Google Sheets OAuth2 credentials in the Fetch unprocessed ideas, Update Google Sheet, and Add ideas to sheet nodes. WordPress: Configure your WordPress API credentials in the Create WordPress post, Upload image, and Set featured image nodes. Google Gemini: Configure your Google Gemini (PaLM) API key in the Gemini model for article, Gemini model for image keyword, and Gemini model for topics nodes. API keys and URLs: Pexels: In the Search Pexels image node, replace <YOUR_PEXELS_API_KEY> in the Authorization header with your actual Pexels API key. WordPress URL: In the Upload image and Set featured image nodes, replace <YOUR_WORDPRESS_URL> in the URL field with your WordPress site's domain (e.g., yourblog.com). Google Sheet configuration: Ensure your Google Sheet (specified by Document ID in Google Sheets nodes) has a sheet named Sheet1 (or update the Sheet Name parameter). The sheet should have at least the following columns: Prompt (for the blog idea/topic), Generated (to track status, e.g., "no" or "yes"), row_number (automatically populated by n8n when reading), Date, Title (for the final WordPress post title), Post ID. Activate the workflow. The Form Trigger: Select Action will provide a webhook URL to initiate the process. Customization ideas Modify the AI prompts in the Langchain Agent nodes for different tones, styles, or content structures. Change the Google Gemini models used for different cost/performance balances. Integrate other image sources instead of or in addition to Pexels. Add steps for social media sharing after a post is published. Extend the Google Sheet to track more metrics like word count or target keywords. Implement more sophisticated error handling. Use cases Automating blog content generation for personal or company blogs. Streamlining content marketing efforts. Quickly populating new websites with initial content. Assisting SEO agencies in creating draft content for clients. Helping solo bloggers maintain a consistent publishing schedule.
by Jan Oberhauser
With this workflow you get a fully automated AI powered Support-Agent for your WooCommerce webshop. It allows customers to request information about things like: the status of their order the ordered products shipping and billing address current DHL shipping status How it works The workflow receives chat messages from an in a website integrated chat. For security and data-privacy reasons, does the website transmit the email address of the user encrypted with the requests. That ensures that user can just request the information about their own orders. An AI agent with a custom tool supplies the needed information. The tool calls a sub-workflow (in this case, in the same workflow for convenience) to retrieve the required information. This includes the full information of past orders plus the shipping information from DHL. If otherr shipping providers are used it should be simple to adjust the workflow to query information from other APIs like UPS, Fedex or others.
by Rod
Telegram Personal Assistant with Long-Term Memory & Note-Taking This n8n workflow transforms your Telegram bot into a powerful personal assistant that handles voice, photo, and text messages. The assistant uses AI to interpret messages, save important details as long-term memories or notes in a Baserow database, and recall information for future interactions. 🌟 How It Works Message Reception & Routing Telegram Integration: The workflow is triggered by incoming messages on your Telegram bot. Dynamic Routing: A switch node inspects the message to determine whether it's voice, text, or photo (with captions) and routes it for the appropriate processing. Content Processing Voice Messages: Audio files are retrieved and sent to an AI transcription node to convert spoken words into text. Text Messages: Text is directly captured and prepared for analysis. Photos: If an image is received, the bot fetches the file (and caption, if provided) and uses an AI-powered image analysis node to extract relevant details. AI-Powered Agent & Memory Management The core AI agent (powered by GPT-4o-mini) processes the incoming message along with any previous conversation history stored in PostgreSQL memory buffers. Long-Term Memory: When a message contains personal or noteworthy information, the assistant uses a dedicated tool to save this data as a long-term memory in Baserow. Note-Taking: For specific instructions or reminders, the assistant saves concise notes in a separate Baserow table. The AI agent follows defined rules to decide which details are saved as memories and which are saved as notes. Response Generation After processing the message and updating memory/notes as needed, the AI agent crafts a contextual and personalized response. The response is sent back to the user via Telegram, ensuring smooth and natural conversation flow. 🚀 Key Features Multimodal Input:** Seamlessly handles voice, photo (with captions), and text messages. Long-Term Memory & Note-Taking:** Uses a Baserow database to store personal details and notes, enhancing conversational context over time. AI-Driven Contextual Responses:** Leverages an AI agent to generate personalized, context-aware replies based on current input and past interactions. User Security & Validation:** Incorporates validation steps to verify the user's Telegram ID before processing, ensuring secure and personalized interactions. Easy Baserow Setup:** Comes with a clear setup guide and sample configurations to quickly integrate Baserow for managing memories and notes. 🔧 Setup Guide Telegram Bot Setup: Create your bot via BotFather and obtain the Bot Token. Configure the Telegram webhook in n8n with your bot's token and URL. Baserow Database Configuration: Memory Table: Create a workspace titled "Memories and Notes". Set up a table (e.g., "Memory Table") with at least two fields: Memory (long text) Date Added (US date format with time) Notes Table: Duplicate the Memory Table and rename it to "Notes Table". Change the first field's name from "Memory" to "Notes". n8n Workflow Import & Configuration: Import the workflow JSON into your n8n instance. Update credentials for Telegram, Baserow, OpenAI, and PostgreSQL (for memory buffering) as needed. Adjust node settings if you need to customize AI agent prompts or memory management rules. Testing & Deployment: Test your bot by sending various message types (text, voice, photo) to confirm that the workflow processes them correctly, updates Baserow, and returns the appropriate response. Monitor logs to ensure that memory and note entries are correctly stored and retrieved. ✨ Example Interactions Voice Message Processing:** User sends a voice note requesting a reminder. Bot Response: "Thanks for your message! I've noted your reminder and saved it for future reference." Photo with Caption:** User sends a photo with the caption "Save this recipe for dinner ideas." Bot Response: "Got it! I've saved this recipe along with the caption for you." Text Message for Memory Saving:** User: "I love hiking on weekends." Bot Response: "Noted! I’ll remember your interest in hiking." Retrieving Information:** User asks: "What notes do I have?" Bot Response: "Here are your latest notes: [list of saved notes]." 🛠️ Resources & Next Steps Telegram Bot Configuration:** Telegram BotFather Guide n8n Documentation:** n8n Docs Community Forums:** Join discussions and share your customizations! This workflow not only streamlines message processing but also empowers users with a personal AI assistant that remembers details over time. Customize the rules and responses further to fit your unique requirements and enjoy a more engaging, intelligent conversation experience on Telegram!
by Mohammadreza azari
🔧 How it works: • The workflow triggers when a new order is created in WooCommerce. • It extracts order details including ID, status, total, and products list. • Sends a formatted message via Telegram to the store admin. • Includes a clickable button that links directly to the order view page. ⚙️ Set up steps: • Estimated setup time: 5–10 minutes. • Requires active WooCommerce REST API credentials. • Requires a Telegram bot and your admin chat ID. • Replace the Telegram chatId and WooCommerce credentials in the workflow. • Make sure your WooCommerce site allows external API access.
by Joseph LePage
Description This workflow automates document processing using LlamaParse to extract and analyze text from various file formats. It intelligently processes documents, extracts structured data, and delivers actionable insights through multiple channels. How It Works Document Ingestion & Processing 📄 Monitors Gmail for incoming attachments or accepts documents via webhook Validates file formats against supported LlamaParse extensions Uploads documents to LlamaParse for advanced text extraction Stores original documents in Google Drive for reference Intelligent Document Analysis 🧠 Automatically classifies document types (invoices, reports, etc.) Extracts structured data using customized AI prompts Generates comprehensive document summaries with key insights Converts unstructured text into organized JSON data Invoice Processing Automation 💼 Extracts critical invoice details (dates, amounts, line items) Organizes financial data into structured formats Calculates tax breakdowns, subtotals, and payment information Maintains detailed records for accounting purposes Multi-Channel Delivery 📱 Saves extracted data to Google Sheets for tracking and analysis Sends concise summaries via Telegram for immediate review Creates searchable document archives in Google Drive Updates spreadsheets with structured financial information Setup Steps Configure API Credentials 🔑 Set up LlamaParse API connection Configure Gmail OAuth for email monitoring Set up Google Drive and Sheets integrations Add Telegram bot credentials for notifications Customize AI Processing ⚙️ Adjust document classification parameters Modify extraction templates for specific document types Fine-tune summary generation prompts Customize invoice data extraction schema Test and Deploy 🚀 Test with sample documents of various formats Verify data extraction accuracy Confirm notification delivery Monitor processing pipeline performance
by Joseph LePage
📄✨ Easy WordPress Content Creation from PDF Docs + Human in the Loop Gmail This n8n workflow automates the process of transforming PDF documents into engaging, SEO-friendly WordPress blog posts. It incorporates AI-powered text analysis, automatic image generation, and a human review step to ensure quality before publishing. 🚀 How It Works 🗂️ PDF Upload & Text Extraction Users upload a PDF document through a form trigger. The workflow extracts text from the uploaded file, ensuring compatibility with supported formats. 🤖 AI-Powered Blog Post Generation The extracted text is analyzed by an AI model (GPT-based) to create a structured blog post. The AI generates: A captivating SEO-friendly title. Well-formatted HTML content, including an introduction, chapters with subheadings, and a conclusion. 🎨 Image Creation & Integration An image is generated using Pollinations.ai based on the blog post title. The vibrant image is uploaded to WordPress and set as the featured image for the post. 📝 WordPress Draft Creation A draft blog post is created on WordPress with the AI-generated title, content, and featured image. ✅ Human-in-the-Loop Approval The draft content is sent via Gmail to a reviewer for manual approval. If approved, the post is published on WordPress. If not, an error message is sent for troubleshooting. 📢 Multi-Channel Notifications Once published, notifications are sent via Gmail and Telegram to relevant stakeholders. 🔧 Setup Steps 🔑 Configure API Credentials Set up API connections for: OpenAI (for AI content generation). WordPress (for post creation and media uploads). Gmail (for sending approval emails). Telegram (for notifications). imgbb (for saving blog image). ⚙️ Customize Workflow Parameters Adjust the AI prompt to match your desired blog structure and tone. Modify the image generation parameters to align with your branding needs. 🧪 Test & Deploy Test the workflow with sample PDFs to ensure: Accurate text extraction. Proper formatting of generated content. Seamless approval and publishing processes. This workflow streamlines content creation while maintaining quality control through human oversight, making it an ideal solution for efficient blog management! 🎉
by Ozgur Karateke
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. 1 — What Does It Do / Which Problem Does It Solve? This workflow turns Google Docs-based contract & form templates into ready-to-sign PDFs in minutes—all from a single chat flow. Automates repetitive document creation.** Instead of copying a rental, sales, or NDA template and filling it by hand every time, the bot asks for the required values and fills them in. Eliminates human error.** It lists every mandatory field so nothing is missed, and removes unnecessary clauses via conditional blocks. Speeds up approvals.** The final draft arrives as a direct PDF link—one click to send for signing. One template → unlimited variations.* Every new template you drop in Drive is auto-listed with *zero workflow edits—**it scales effortlessly. 100 % no-code.** Runs on n8n + Google Apps Script—no extra backend, self-hosted or cloud. 2 — How It Works (Detailed Flow) 📝 Template Discovery 📂 The TemplateList node scans the Drive folder you specify via the ?mode=meta endpoint and returns an id / title / desc list. The bot shows this list in chat. 🎯 Selection & Metadata Fetch The user types a template name. 🔍 GetMetaData opens the chosen Doc, extracts META_JSON, placeholders, and conditional blocks, then lists mandatory & optional fields. 🗣 Data-Collection Loop The bot asks for every placeholder value. For each conditional block it asks 🟢 Yes / 🔴 No. Answers are accumulated in a data JSON object. ✅ Final Confirmation The bot summarizes the inputs → when the user clicks Confirm, the DocProcess sub-workflow starts. ⚙️ DocProcess Sub-Workflow | 🔧 Step | Node | Task | | --- | --- | --- | | 1 | User Choice Match Check | Verifies name–ID match; throws if wrong | | 2 | GetMetaData (renew) | Gets the latest placeholder list | | 3 | Validate JSON Format | Checks for missing / unknown fields | | 4 | CopyTemplate | Copies the Doc via Drive API | | 5 | FillDocument | Apps Script fills placeholders & removes blocks | | 6 | Generate PDF Link | Builds an export?format=pdf URL | 📎 Delivery The master agent sends 🔗 Download PDF & ✏️ Open Google Doc links. 🚫 Error Paths status:"ERROR", missing:[…] → bot lists missing fields and re-asks. unknown:[…] → template list is outdated; rerun TemplateList. Any Apps Script error → the returned message is shown verbatim in chat. 3 — 🚀 Setup Steps (Full Checklist) > Goal: Get a flawless PDF on the first run. > > > Mentally tick the ☑️ in front of every line as you go. > ☁️ A. Google Drive Preparation | Step | Do This | Watch Out For | | --- | --- | --- | | 1 | Create a Templates/ folder → put every template Doc inside | Exactly one folder; no sub-folders | | 2 | Placeholders in every Doc are {{UPPER_CASE}} | No Turkish chars or spaces | | 3 | Wrap optional clauses with [[BLOCK_NAME:START]]…[[BLOCK_NAME:END]] | The START tag must have a blank line above | | 4 | Add a META_JSON block at the very end | Script deletes it automatically after fill | | 5 | Right-click Doc > Details ▸ Description = 1-line human description | Shown by the bot in the list | | 6 | Create a second Generated/ folder (for copies) | Keeps Drive tidy | > 🔑 Folder ID (long alphanumerical) = <TEMPLATE_PARENT_ID> > > > We’ll paste this into the TemplateList node next. > Simple sample template → Template Link 🛠 B. Import the Workflow into n8n Settings ▸ Import Workflow ▸ DocAgent.json If nodes look Broken afterwards → no community-node problem; you only need to select credentials. 📑 C. Customize the TemplateList Node Open Template List node ⚙️ → replace '%3CYOUR_PARENT_ID%3E' in parents with the real folder ID in the URL. Right-click node > Execute Node. Copy the entire JSON response. In the editor paste it into: DocAgent → System Prompt (top) User Choice Match Check → System Prompt (top) Save. > ⚠️ Why manual? Caching the list saves LLM tokens. Whenever you add a template, rerun the node and update the prompts. > 🔗 D. Deploy the Apps Script | Step | Screen | Note | | --- | --- | --- | | 1 | Open Gist files GetMetaData.gs + FillDocument.gs → File ▸ Make a copy | Both files may live in one project | | 2 | Project Settings > enable Google Docs API ✔️ & Google Drive API ✔️ | Otherwise you’ll see 403 errors | | 3 | Deploy ▸ New deployment ▸ Web app | | | • Execute as | Me | | | • Who has access | Anyone | | | 4 | On the consent screen allow scopes:• …/auth/documents• …/auth/drive | Click Advanced › Go if Google warns | | 5 | Copy the Web App URL (e.g. https://script.google.com/macros/s/ABC123/exec) | If this URL changes, update n8n | Apps Script source code → Notion Link 🔧 E. Wire the Script URL in n8n | Node | Field | Action | | --- | --- | --- | | GetMetaData | URL | <WEB_APP_URL>?mode=meta&id={{ $json["id"] }} | | FillDocument | URL | <WEB_APP_URL> | > 💡 Prefer using an .env file? Add GAS_WEBAPP_URL=… and reference it as {{ $env.GAS_WEBAPP_URL }}. > 🔐 F. Add Credentials Google Drive OAuth2* → *Drive API (v3) Full Access Google Docs OAuth2** → same account LLM key** (OpenAI / Gemini) (Optional) Postgres Chat Memory credential for the corresponding node 🧪 G. First Run (Smoke Test) Switch the workflow Active. In the chat panel type /start. Bot lists templates → pick one. Fill mandatory fields, optionally toggle blocks → Confirm. 🔗 Download PDF link appears → ☑️ setup complete. ❌ H. Common Errors & Fixes | 🆘 Error | Likely Cause | Remedy | | --- | --- | --- | | 403: Apps Script permission denied | Web app access set to User | Redeploy as Anyone, re-authorize scopes | | placeholder validation failed | Missing required field | Provide the listed values → rerun DocProcess | | unknown placeholders: … | Template vs. agent mismatch | Check placeholder spelling (UPPER_CASE ASCII) | | Template ID not found | Prompt list is old | Rerun TemplateList → update both prompts | | Cannot find META_JSON | No meta block / wrong tag | Add [[META_JSON_START]] … [[META_JSON_END]], retry | ✅ Final Checklist [ ] Drive folder structure & template rules ready [ ] Workflow imported, folder ID set in node [ ] TemplateList output pasted into both prompts [ ] Apps Script deployed, URL set in nodes [ ] OAuth credentials & LLM key configured [ ] /start test passes, PDF link received 🙋♂️ Need Help with Customizations? Reach out for consulting & support on LinkedIn: Özgür Karateke Full Documentation → Notion Simple sample template → Template Link Apps Script source code → Notion Link
by Joseph LePage
Automate Audio Transcription, AI Summarization, and Google Drive Storage Who is this for? Content Teams, Researchers, and Administrators who need to automatically process voice memos, meeting recordings, or interview audio into structured, searchable documents. What problem does this solve? Eliminates manual transcription work by automatically converting audio files into organized text documents with AI analysis, while maintaining human oversight through approval workflows. What this workflow does Smart Audio Processing: Triggers when new .m4a files appear in Google Drive Uses OpenAI's Whisper for accurate transcription Implements dual-format reporting (JSON + Markdown) Human Oversight (optional): Requires email approval before processing 45-minute response window with escalation options AI-Powered Analysis: Generates structured JSON reports with: Key points & action items Sentiment analysis Technical terminology glossary Creates Markdown versions for easy reading Document Management: Stores raw transcripts + reports in Google Drive Automatic file naming with timestamps Sends completion alerts via Email/Telegram Workflow visualization showing audio file processing path Setup Credentials Needed: Google Drive API access OpenAI API key (GPT-4o-mini) Gmail & Telegram integrations Configuration: Set your Google Drive folder ID in 3 nodes Update email addresses in Gmail nodes Customize approval timeout in "Gmail User for Approval" Customization Points: File extension filters (.m4a) AI report templates and prompts Notification channels (Email/Telegram) How to customize Approval Process**: Add SMS/Teams notifications via additional nodes File Types**: Modify filter node for .mp3/.wav support Analysis Depth**: Adjust GPT-4 prompts in "Summarize to JSON" nodes Storage**: Connect to Notion/Airtable instead of Google Drive
by Vincent LE ROUX
Sync Dartagnan Email Templates to Braze Why Use This Workflow Email marketing demands consistency across platforms. This workflow automatically synchronizes your email templates from Dartagnan to Braze, eliminating manual transfers and ensuring brand consistency. Perfect for marketing teams who need to maintain a unified email experience while leveraging the strengths of both platforms. Business Benefits Save Time**: Eliminate hours of manual template copying and formatting between platforms Maintain Consistency**: Ensure your email templates look identical across Dartagnan and Braze Reduce Errors**: Automated synchronization prevents human error in template transfers Streamline Workflows**: Create once in Dartagnan, use everywhere through Braze's distribution power Preserve Image Assets**: Keep images hosted on Dartagnan while properly formatting them for Braze How It Works This workflow performs a bi-directional sync between your Dartagnan email templates and Braze platform. It intelligently handles: Template Updates: Automatically updates existing templates in Braze when modified in Dartagnan New Template Creation: Creates new templates in Braze when added to Dartagnan Image URL Transformation: Properly embeds and formats image URLs to meet Braze requirements while keeping assets on Dartagnan infrastructure Technical Implementation The workflow uses a scheduled trigger to check for template changes and then processes them in batches: Authentication: Securely connects to both Dartagnan and Braze APIs Template Retrieval: Fetches current templates from Dartagnan Comparison Logic: Determines which templates need updating or creation in Braze Content Transformation: Processes HTML content and image URLs to ensure compatibility API Integration: Pushes changes to Braze through their Content Blocks API Customization Options This workflow can be customized to meet your specific needs: Sync Frequency**: Adjust the schedule to run hourly, daily, or on any custom schedule Template Filtering**: Add conditions to sync only specific templates based on tags or categories Error Handling**: Configure notification emails when synchronization issues occur Logging**: Enable detailed logs for troubleshooting and auditing Setup Requirements Setting up this workflow takes approximately 20-30 minutes and requires: Dartagnan Requirements API Client ID API Client Secret Template access permissions Braze Requirements Braze Instance URL API Key with content block permissions Appropriate rate limits configured Common Use Cases Email Campaign Coordination**: Maintain consistent templates across platforms for multi-channel campaigns Agency Work**: Design in Dartagnan, deploy through client's Braze instance Rebranding Projects**: Update templates once and propagate changes automatically International Marketing**: Maintain language variants across platforms with automatic synchronization Get Started Once installed, configure your API credentials, set your desired synchronization schedule, and let the workflow handle the rest. The initial sync will create all your templates in Braze, with subsequent runs only updating what's changed.
by Julian Kaiser
Startup Funding Research Automation with Claude, Perplexity AI, and Airtable How it works This intelligent workflow automatically discovers and analyzes recently funded startups by: Monitoring multiple news sources (TechCrunch and VentureBeat) for funding announcements Using AI to extract key funding details (company name, amount raised, investors) Conducting automated deep research on each company through perplexity deep research or jina deep search. Organizing all findings into a structured Airtable database for easy access and analysis Set up steps (10-15 minutes) Connect your news feed sources (TechCrunch and VentureBeat). Could be extended. These were easy to scrape and this data can be expensive. Set up your AI service credentials (Claude and Perplexity or jina which has generous free tier) Connect your Airtable account and create a base with appropriate fields (can be imported from my base) or see structure below. Airtable Base Structure Funding Round Base | Field Name | Data Type | Description | |------------|-----------|-------------| | website_url | String | URL of the company website | | company_name | String | Name of the company | | funding_round | String | The funding stage or round (e.g., Series A, Seed, etc.) | | funding_amount | Number | The amount of funding received | | lead_investor | String | The primary investor leading the funding round | | market | String | The market or industry sector the company operates in | | participating_investors | String | List of other investors participating in the funding round | | press_release_url | String | URL to the press release about the funding | | evaluation | Number | The company's valuation | Structure Company Deep Research Base | Field Name | Data Type | Description | |------------|-----------|-------------| | website_url | String | URL of the company website | | company_name | String | Name of the company | | funding_round | String | The funding stage or round (e.g., Series A, Seed, etc.) | | funding_amount | Number | The amount of funding received | | currency | String | Currency of the funding amount | | announcement_date | String | Date when the funding was announced | | lead_investor | String | The primary investor leading the funding round | | participating_investors | String | List of other investors participating in the funding round | | industry | String | The industry sectors the company operates in | | company_description | String | Description of the company's business | | hq_location | String | Company headquarters location | | founding_year | Number | Year the company was founded | | founder_names | String | Names of the company founders | | ceo_name | String | Name of the company CEO | | employee_count | Number | Number of employees at the company | | total_funding | Number | Total funding amount received to date | | total_funding_currency | String | Currency of total funding | | funding_purpose | String | Purpose or use of the funding | | business_model | String | Company's business model | | valuation | Object | Company valuation information | | previous_rounds | Object | Information about previous funding rounds | | source_urls | String | Source URLs for the funding information | | original_report | String | Original report text about the funding | | market | String | The market the company operates in | | press_release_url | String | URL to the press release about the funding | | evaluation | Number | The company's valuation | Notes I found that by using perplexity via open router, we lose access to the sources, as they are not stored in the same location as the report itself so I opted to use perplexity API via HTTP node. For using perplexity and or jina you have to configure header auth as described in Header Auth - n8n Docs What you can learn How to scrape data using sitemaps How to extract strucutred data from unstructured text How to execute parts of the workflow as subworkflow How to use deep research in a practical scenario How to define more complex JSON schemas