by DIGITAL BIZ TECH
AI-Powered Timesheet → Invoice Automation (Gmail + OCR + AI + Google Sheets + QuickBooks) > Note: This workflow uses sticky notes extensively to document each logical section of the automation. Sticky notes are mandatory and already included to explain OCR, AI parsing, folder logic, duplicate handling, and QuickBooks steps. This workflow automates the full lifecycle of timesheet-based invoicing — from emailed timesheets to structured Google Sheets records and finalized invoices in QuickBooks Online. It is designed for real-world billing scenarios, including split weeks across months, zero-hour months, duplicate prevention, and first-week-of-year edge cases. What This Workflow Does Listens to Gmail for timesheet emails with attachments Splits and processes each attachment independently Extracts text using OCR (no hardcoded API keys) Uses AI to parse month-wise billable hours Correctly splits weeks spanning multiple months Looks up Customer and PO details from Google Sheets Organizes files in Client → Employee → Year folders in Google Drive Reuses existing invoice sheets or creates new ones Prevents duplicate invoice rows Automatically finds or creates customers in QuickBooks Creates invoices in QuickBooks using validated data High-Level Workflow Stages Gmail Intake and Attachment Loop OCR Text Extraction AI-Based Timesheet Parsing Month Normalization and Validation Customer & PO Lookup Drive Folder Discovery and Creation Invoice Sheet Reuse or Creation Duplicate and Edge-Case Handling Append Invoice Rows to Google Sheets Create / Update Customers in QuickBooks Create Invoices in QuickBooks Each of these stages is clearly documented with sticky notes inside the workflow canvas. Quick Setup Instructions Import the workflow JSON into your n8n instance Configure credentials for: Gmail Google Drive Google Sheets OpenAI or Google Gemini QuickBooks Online Verify the OCR HTTP node: Default URL: https://universal-file-to-text-extractor.vercel.app/extract No hardcoded API keys are used Configure Get Customer Info From PO Sheet: Spreadsheet ID Sheet name and column mappings Ensure the Client Invoices root folder exists in Google Drive Send a test timesheet email Execute the workflow once manually Activate the workflow Who This Workflow Is For Agencies and consultancies billing from emailed timesheets Finance and operations teams using Google Workspace + QuickBooks Staffing firms with monthly or bi-weekly contractor billing Teams that want a fully auditable, zero-manual invoice process Requirements n8n instance Gmail account receiving timesheet emails Google Drive and Google Sheets OpenAI or Google Gemini API OCR API endpoint (configurable) QuickBooks Online account Customer PO Google Sheet containing: Email Customer Name Company Name Customer Account Number PO Number Item Folder Name Invoice range Due Date Calculation How It Works (Detailed) 1. Email Intake and Attachment Loop Gmail Trigger polls for timesheet emails Attachments are split so each file is processed independently Sticky notes explain the intake and loop logic 2. OCR Extraction Each attachment is sent to the OCR API PDFs and images are converted to plain text OCR logic is documented via sticky notes 3. AI Timesheet Parsing (Month-Wise) AI extracts data only from BILLABLE HOURS sections Outputs strict JSON: Employee Name Client Name Month Year Week Start Date Week End Date Total Billable Hours Special handling included: Split weeks across months Zero-hour months still included No guessed or inferred dates 4. Month Normalization and Validation AI output is normalized into a month array Each month is processed independently Invalid or zero-hour entries are skipped 5. Customer and PO Lookup Sender email is matched in the PO sheet Retrieved values drive: Folder structure Invoice logic Due date calculation 6. Google Drive Folder Structure The workflow enforces a strict hierarchy: Client Invoices └── Client └── Employee └── Year Missing folders are created automatically. 7. Invoice Sheet Naming and Search Sheet names are generated using: Employee Name Month Year Existing sheets are reused when found Supports monthly and 15-day billing cycles 8. Duplicate Prevention and Edge Cases Duplicate invoice rows are detected and skipped January first-week edge case is handled explicitly Safe re-runs are supported 9. Google Sheets Invoice Rows Each appended row includes: Customer Account Number Invoice Date Due Date PO Number Item Name Quantity (Total Hours) Period description 10. QuickBooks Integration Searches for existing customers in QuickBooks Creates customers automatically if missing Creates invoices using: Customer reference Item Quantity Invoice date Due date All QuickBooks logic is documented with sticky notes. How To Customize Swap AI model (OpenAI ↔ Gemini) Extend prompts to extract: Project Cost center Approval status Add tax codes, currency, or unit pricing Modify folder naming rules Insert approval steps before invoice creation Common Use Cases Monthly contractor invoicing Agency billing across multiple clients Finance automation with audit-ready records Eliminating manual timesheet-to-invoice work Troubleshooting | Issue | Likely Cause | |------|-------------| | No invoices created | Gmail filter mismatch or email already read | | OCR output empty | Unsupported file or OCR endpoint issue | | Wrong month split | Review AI prompt and month logic | | Duplicate rows | Duplicate detection conditions | | Invoice missing in QuickBooks | Customer or item configuration issue | Notes on Community Guidelines Sticky notes are used throughout the workflow No hardcoded API keys are present Markdown is used (no HTML tags) This workflow is original and not copied Need Help or Customization? Digital Biz Tech can help tailor this workflow to your business. We offer free setup support, including credential configuration and deployment. Contact: rajeet.nair@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help. You can also DM us on LinkedIn.
by Milo Bravo
Event Registration + Auto-Enrichment Intelligence Who is this for? Event organizers, conference planners, and marketing teams fighting registration drop-off who want 4-field forms with LinkedIn-level attendee intelligence. What problem is this workflow solving? Multi-page forms kill conversions: 80-90% drop-off on page 2 No attendee insights post-reg Manual enrichment wastes hours Abandoned carts = lost revenue This captures 4 fields but enriches 15+ data points automatically. What this workflow does 3 Webhook Intelligence Suite: POST /event-registration**: 4-field form → enrichment → HubSpot POST /reg-beacon**: Abandoned cart tracking pixel POST /validate-promo**: AJAX promo code validation Requires 2 sub-workflows: 1) Abandoned Cart Recovery 2) Participant Re-engager Enrichment Waterfall: Clearbit → LinkedIn (Proxycurl) → Google+AI → Full profile Outputs: HubSpot contacts with company/role/title Data Tables: enriched_profiles / reg_analytics Slack alerts + email confirmations Setup (12 minutes) Data Tables**: enriched_profiles, reg_analytics, promo_codes HubSpot**: API key + custom properties APIs**: Clearbit, Proxycurl, SerpAPI, Gemini Host**: reg-page/index.html (update webhook URLs) SMTP/Slack**: Notifications Fully configurable, no code changes needed. How to customize to your needs Forms**: Swap HTML for Typeform/Webflow Enrichment**: Add Apollo/Hunter for emails CRM**: HubSpot → Salesforce → Airtable Promos**: Tiered discounts / early-bird Companion**: Abandoned Cart + Re-engager templates ROI: 3x registration completion** (4 fields vs 12+) 65% enriched profiles** (company/role/title) 20% revenue recovery** (abandoned carts) Need help customizing?: Contact me for consulting and support: LinkedIn / Message Keywords: event registration, attendee enrichment, abandoned cart recovery, conference automation, HubSpot
by Incrementors
Description Submit your video topic, target audience, video length, and tone of voice using a simple form and two sequential AI agents do the rest. The first writes a complete structured video script with hook, three content sections, conclusion, and call to action. The second generates the full SEO metadata package: an optimized title, three alternative titles, a full YouTube description with hashtags, 15 tags, and timestamped chapters. Everything arrives in one clean Gmail email ready to record and upload. Built for YouTube creators, video marketers, and SEO agencies who want a complete production-ready video package in minutes instead of hours. What This Workflow Does Writes a full structured video script** — GPT-4o-mini produces a complete spoken script with hook, introduction, three named content sections with examples and tips, conclusion, and call to action Generates an optimized YouTube title** — Produces a main title under 60 characters with the primary keyword, plus three alternative titles at curiosity, number, and question angles Creates a full YouTube description** — Writes a description under 250 words with a keyword-rich hook, learning points, call to action, and relevant hashtags Produces 15 mixed tags** — Generates a balanced mix of short and long keywords all relevant to the topic and channel niche Builds timestamped chapters** — Creates chapters spaced evenly across your video length starting at 0:00, ready to paste directly into YouTube Delivers everything in one Gmail** — Script, title options, tags, chapters, and description all arrive in a single clearly sectioned plain-text email Setup Requirements Tools Needed n8n instance (self-hosted or cloud) OpenAI account with GPT-4o-mini API access Gmail account (the account you want to receive the content package) Credentials Required OpenAI API key (used in 4. OpenAI — Script Model GPT-4o-mini and 7. OpenAI — SEO Model GPT-4o-mini) Gmail OAuth2 > ⚠️ OpenAI API key appears in 2 steps — connect it in both 4. OpenAI — Script Model GPT-4o-mini and 7. OpenAI — SEO Model GPT-4o-mini Estimated Setup Time: 10–15 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Fill in Config Values — Open node 2. Set — Config Values → replace all three placeholders: | Field | What to enter | |---|---| | PASTE_YOUR_EMAIL_HERE | The email address where the content package should be sent | | PASTE_YOUR_NAME_HERE | Your name for the email greeting and sign-off | | PASTE_YOUR_CHANNEL_NICHE_HERE | Your channel's topic area (e.g. personal injury law, SaaS marketing, medical aesthetics) — GPT uses this to personalize both the script and metadata | Connect OpenAI for the script step — Open node 4. OpenAI — Script Model GPT-4o-mini → click the credential dropdown → add your OpenAI API key → test the connection Connect OpenAI for the SEO step — Open node 7. OpenAI — SEO Model GPT-4o-mini → click the credential dropdown → select the same OpenAI API credential → confirm it is connected Connect Gmail — Open node 10. Gmail — Send Content Package → click the credential dropdown → add Gmail OAuth2 → sign in with the Gmail account where you want to receive packages → authorize access Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — YouTube Content Request → open it in a browser to submit your first video How It Works (Step by Step) Step 1 — Form: YouTube Content Request You open the form URL in a browser and fill in five fields: the video topic, target audience, video length (e.g. "8 minutes"), tone of voice (optional, defaults to "educational and engaging"), and your name. Submitting the form starts the workflow immediately. Step 2 — Set: Config Values Your email, sender name, channel niche, and all five form inputs are stored here. Today's date is auto-generated for the email subject. Tone of voice defaults to "educational and engaging" if left blank on the form. Step 3 — AI Agent: Write Video Script GPT-4o-mini receives the video topic, target audience, video length, tone of voice, and channel niche. It writes a complete spoken video script in plain English with no bullet points or markdown. The structure is fixed: a 30-second hook with 3–4 punchy sentences, a short introduction paragraph, three named content sections each with 2–3 paragraphs, a conclusion summarizing the three key takeaways, and a 2-sentence call to action asking viewers to like, subscribe, and comment. Step 4 — OpenAI: Script Model GPT-4o-mini This is the language model powering the script writing step. It runs at temperature 0.7 for creative, natural-sounding spoken language and is capped at 2,000 tokens to accommodate a full-length video script. Step 5 — Set: Save Script and Config The completed script is saved from the previous step's output. All nine config values — email, name, niche, topic, audience, length, and today's date — are explicitly re-carried forward here so the SEO agent has full context. This bridge step is necessary because n8n agents pass their output to the next step, not the full context from earlier in the workflow. Step 6 — AI Agent: Generate SEO Package GPT-4o-mini receives the video topic, target audience, channel niche, and video length. It returns five structured fields: a main YouTube title under 60 characters, an array of three alternative titles (one curiosity angle, one number angle, one question angle each under 60 characters), a full description under 250 words with keyword hook, learning points, call to action, and hashtags, an array of 15 keyword tags mixing short and long tail terms, and an array of timestamped chapter objects spaced evenly across the video length starting at 0:00. Step 7 — OpenAI: SEO Model GPT-4o-mini This is the language model powering the SEO metadata step. It runs at temperature 0.3 for precise, consistent output — lower than the script step because metadata needs to be accurate and structured, not creative. Step 8 — Parser: Structured SEO Output This step enforces the exact five-field schema GPT-4o-mini must return for the SEO package. It validates that title, alternativeTitles, description, tags, and chapters are all present and correctly typed before the email is assembled. Step 9 — Code: Build Email The SEO output and the saved script are combined into one complete plain-text email. The email is organized into clearly labeled sections: topic summary header, main title and three alternative titles, all 15 tags as a comma-separated list, chapters as timestamp-title pairs, the full description, and the complete video script. The email subject is automatically set to "YouTube Content Package — [main title] — [today's date]". Step 10 — Gmail: Send Content Package The complete email is sent to your configured email address with no attribution footer. One email contains everything needed to record, upload, and optimize the video. Key Features ✅ Two specialized AI agents in sequence — Script writing and SEO metadata are handled by separate GPT instances with different temperatures so each task is optimized independently ✅ Script temperature tuned for creativity — The script agent runs at 0.7 so the language sounds natural and spoken, not robotic or like a list ✅ SEO metadata temperature tuned for precision — The metadata agent runs at 0.3 so titles stay under 60 characters, chapters start at 0:00, and tag arrays are clean ✅ Channel niche personalizes both outputs — Your niche is passed to both agents so the script examples and the SEO keywords stay relevant to your actual audience ✅ Structured output enforced for metadata — A schema parser validates all five SEO fields before the email is built — no broken or incomplete packages ✅ Chapters spaced to your video length — The chapters step reads your submitted video length and distributes timestamps evenly so chapters actually match the content structure ✅ Single email with every deliverable — Script, titles, tags, chapters, and description all arrive in one email with clear section headers — ready to copy-paste into your recording notes and YouTube upload form ✅ Tone defaults to educational if blank — Leaving the Tone of Voice field empty on the form triggers a sensible default instead of failing the workflow Customisation Options Change the script structure — In node 3. AI Agent — Write Video Script, edit the structure instructions to add or remove sections — for example replace "Section 3 — common mistake" with "Section 3 — case study example" to change the content format for your channel style. Add a Google Docs save alongside the Gmail — After node 9. Code — Build Email, add a Google Docs step that creates a new document with the email body — giving you a permanent editable copy in Drive alongside the email delivery. Generate a shorter script for YouTube Shorts — Add a second form field option for "Short format (under 60 seconds)" and branch after step 2 — if the video length is under 60 seconds, route to a shorter prompt in the AI Agent that writes just a hook and one main point. Send the package to a Slack channel — After node 10. Gmail — Send Content Package, add a Slack step that posts the main title, first alternative title, and today's date to a #youtube-content channel so your team sees new packages without checking email. Increase script length for longer videos — In node 4. OpenAI — Script Model GPT-4o-mini, raise maxTokens from 2000 to 3000 to allow GPT to write a more detailed script for 15–20 minute videos — useful for in-depth tutorial formats. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active — inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form — YouTube Content Request after activating — URLs copied before activation will not work Make sure Video Topic, Target Audience, and Video Length are all filled in — these three fields are required Script agent not generating content: Confirm the OpenAI API key is connected in node 4. OpenAI — Script Model GPT-4o-mini and your account has available credits Check the execution log of node 3. AI Agent — Write Video Script for the raw GPT response If maxTokens is too low for your video length, the script may be cut off — increase from 2000 to 2500 in node 4 SEO package missing fields or failing schema validation: Confirm the OpenAI API key is connected in node 7. OpenAI — SEO Model GPT-4o-mini — this is a separate credential connection from node 4 Check the execution log of node 6. AI Agent — Generate SEO Package for the raw GPT response — the schema parser in node 8. Parser — Structured SEO Output will flag which fields are missing or wrong format If chapters are empty, the video length you submitted may be ambiguous — use a clear format like "8 minutes" or "10 minutes" Gmail not sending the package: Confirm the Gmail OAuth2 credential in node 10. Gmail — Send Content Package is connected and authorized Check that PASTE_YOUR_EMAIL_HERE in node 2. Set — Config Values is replaced with your actual email address Check your spam or promotions folder on the first send — automated Gmail OAuth2 emails sometimes land there Email arriving with missing sections or garbled content: Check the execution log of node 9. Code — Build Email — if seoOutput is null the step throws an error Confirm node 5. Set — Save Script and Config successfully carried the videoScript field forward — check its output in the execution log to confirm the script text is present before the SEO agent runs Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://www.incrementors.com/
by Cheng Siong Chin
How It Works This workflow automates enterprise ticket management by combining AI-powered classification with knowledge base retrieval. It receives support tickets via webhook, routes them through multiple AI models (OpenAI ChatGPT, NVIDIA's text classification APIs, and embeddings-based search) to determine optimal resolution strategies. The system generates contextual diagnostic logs, formats responses, updates ticket systems, notifies engineers when escalation is needed, and seamlessly integrates with knowledge bases for continuous learning. It solves the critical problem of manual ticket sorting and delayed responses by automating intelligent triage, reducing resolution time, and ensuring consistent quality across support operations. Target audience includes support operations teams, technical support managers, and enterprises managing high-volume ticket queues seeking to improve efficiency and SLA compliance. Setup Steps Configure the OpenAI API key in credentials. Add NVIDIA API credentials for embedding and classification models. Set up Google Sheets for knowledge base storage and retrieval. Connect your ticketing system (Jira, Zendesk, or webhook) for incoming tickets. Link a notification service (Gmail or Slack) for engineer alerts. Map custom fields to your ticket system schema. Prerequisites OpenAI API account with GPT access. NVIDIA API credentials (Embeddings & Classification). Google Sheets for KB management. Ticketing system with webhook capability. Use Cases SaaS support teams triaging 100+ daily tickets, reducing manual sorting by 80%. Technical support escalating complex issues intelligently while documenting solutions. Customization Swap OpenAI models for Claude or Anthropic APIs. Replace Google Sheets with database systems (PostgreSQL, Airtable). Benefits Reduces manual ticket sorting by 70-80%, freeing support staff for complex issues. Decreases average resolution time through intelligent routing.
by Abdullah
Daily Cyber News Digest to Telegram Workflow Created By: Abdullah Dilshad 📧 iamabdullahdishad@gmail.com Stay informed with automated daily summaries. This workflow aggregates cyber news from multiple trusted sources, uses AI to intelligently select and summarize the top 5 most relevant articles, and delivers a clean, concise digest directly to your Telegram chat every morning at 10:00 AM. What This Workflow Does Collects Data: Fetches cybersecurity news from multiple global APIs. Filters Noise: Uses AI to discard irrelevant updates. Summarizes: Generates short, professional summaries (1–2 sentences). Delivers: Automatically sends a formatted digest to Telegram within message length limits. How It Works Schedule Trigger Runs automatically every day at 10:00 AM (customizable). News Collection Fetches articles using the keyword "cyber" from: GNews NewsAPI Data Processing Merges articles from both sources into a single, unified dataset. AI-Powered Selection OpenAI analyzes all fetched articles. Intelligently selects the Top 5 most relevant cybersecurity stories. Smart Summarization Each article is condensed into 1–2 clear sentences. Includes: Publication date, Source name, and Article link. Telegram Delivery Sends a clean, formatted digest to your specified Telegram chat. Ensures the total message length stays under Telegram’s 4096-character limit. Setup Instructions Get API Keys Sign up for free API keys from GNews.io and NewsAPI.org. Connect Accounts Add your Telegram and OpenAI credentials in n8n. Configure Telegram Enter your Telegram Chat ID in the "Send a Text Message" node. Customize the Schedule Change the trigger time if you prefer delivery at a different hour. Customization & Use Cases This workflow is fully reusable and scalable. You can replace the keyword "cyber" to track any topic relevant to your needs. Example Topics: 🤖 Artificial Intelligence (AI) 💰 Cryptocurrency & Blockchain 🚀 Startups & Venture Capital 📱 Consumer Technology 🏭 Industry-specific updates Note: This workflow is designed to be adapted for individual tracking, team updates, or competitor analysis.
by Le Nguyen
How it works Runs every morning at 8:00 using the Schedule Trigger. Sets a stale_days value and queries Salesforce for Opportunities where Stage_Unchanged_Days__c equals that value and the stage is not Closed Won / Closed Lost. For each “stale” Opportunity, loads full deal details and sends them to an OpenAI model. The model uses the query_soql tool to pull recent Notes, the primary Contact, and the Opportunity Owner, then returns a single JSON object with: a personalized follow-up email for the client, a short SMS template, a concise Slack summary for the sales team, and a ready-to-use Task payload for Salesforce. n8n parses that JSON, sends the email via SMTP, posts the Slack message to your chosen channel, and creates a Salesforce Task assigned to the Opportunity Owner so every stalled deal has a clear next step. Setup steps Estimated setup time: ~30–45 minutes if your Salesforce, OpenAI, SMTP and Slack credentials are ready. Create Stage_Unchanged_Days__c on Opportunity (Salesforce) Field Type: Formula (Number, 0 decimal places) Formula: IF( ISBLANK(LastStageChangeDate), TODAY() - DATEVALUE(CreatedDate), TODAY() - DATEVALUE(LastStageChangeDate) ) This field tracks how many days the Opportunity has been in the current stage. Connect credentials in n8n Salesforce OAuth2 for the Salesforce nodes and the query_soql HTTP Tool. OpenAI (or compatible) credential for the “Message a model” node. SMTP credential for the customer email node. Slack credential for the internal notification node. Configure your follow-up rules In Edit Fields (Set), set stale_days to the threshold that defines a stalled deal (e.g. 7, 14, 30). In Perform a query, optionally refine the SOQL (record types, owners, minimum amount, etc.) to match your pipeline. Update the Send Email SMTP Customer node with your real “from” address and tweak the wording if needed. Point Send Message To Internal Team (Slack) to the right channel or user. Test safely Turn off the Schedule Trigger and run the workflow manually with a few test Opportunities. Inspect the AI output in Message a model and Parse JSON to confirm the structure (email, sms, slack, task.api_body). Check that the email and Slack messages look good and that Salesforce Tasks are created, assigned to the right Owner, and linked to the correct Opportunity. Go live Re-enable the Schedule Trigger. Monitor the first few days to confirm that follow-ups, Slack alerts, and Tasks all behave as expected, then let the automation quietly keep your pipeline clean and moving.
by isaWOW
Automatically publish blog content to WordPress with AI-generated branded images, internal linking, and client reporting using Google Sheets, OpenAI, and Gemini What this workflow does This workflow receives written blog content from your content creation automation and handles the complete WordPress publishing process. It adds internal links to your content based on target keywords, generates 3 AI-powered branded images (thumbnail + 2 content images), uploads them to WordPress, inserts them into your article, publishes the complete blog with proper categories, updates tracking sheets, and notifies clients automatically. Perfect for agencies managing multiple client blogs who want to eliminate manual publishing tasks while maintaining brand consistency and SEO optimization. Key features Intelligent internal linking: Automatically analyzes your target keywords and adds up to 3 natural anchor links within the content to improve site SEO and user navigation AI image generation: Creates 3 professional branded images using DALL-E based on your blog topic and brand colors - one thumbnail with overlay text and two supporting content images Automated WordPress publishing: Publishes blogs with proper categories, sets featured images, and handles all WordPress REST API interactions without manual intervention Multi-client management: Processes different projects based on individual client settings including image preferences, brand colors, and reporting requirements Tracking and reporting: Updates Google Sheets with live URLs and publish dates, sends Discord notifications to project managers, and triggers client reporting workflows How it works Receives content from writing automation: Triggered by your blog content creation workflow with title, body content, focus keyword, and client details Fetches project configuration: Loads client-specific settings from Google Sheets including website URL, WordPress API credentials, image creation preferences, and brand guidelines Adds internal links: Retrieves target keywords and URLs from project sheets, filters valid links, and uses Gemini AI to intelligently insert 3 contextual anchor links Generates branded images (if enabled): Uses OpenAI GPT to create detailed image prompts based on blog topic and brand colors, then generates 3 images with DALL-E (thumbnail with text overlay + 2 content images) Uploads to WordPress media library: Processes each image through a loop, uploads to WordPress, stores metadata including URLs and alt text Inserts images into content: Uses Gemini AI to intelligently place images at strategic positions within the article while preserving existing HTML structure and anchor links Publishes to WordPress: Creates the blog post with proper title, content, categories, and sets the thumbnail as featured image via REST API Updates tracking sheets: Records the live blog URL and publish date in Google Sheets for project management Sends notifications: Triggers Discord alerts for project managers and executes the Reporting Manager workflow for client communication via email, Slack, or WhatsApp Setup requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) Google Sheets with OAuth access for project management WordPress site with REST API enabled and proper authentication OpenAI API key (for DALL-E image generation) Google Gemini API key (for content processing) Discord bot (optional, for team notifications) Blog Content Creation workflow (Part 1 - sold separately or built independently) Estimated setup time: 30-40 minutes Configuration steps Add credentials in n8n: Google Sheets OAuth API OpenAI API (for DALL-E image generation) Google Gemini API (for AI content processing) Discord Bot API (for notifications) WordPress credentials (API tokens) Set up Project Central Sheet: Create a master Google Sheet with these columns: Client ID Website URL Blog API (WordPress auth token) GMB Name (business name) Image Creation (Yes/No) Image Instructions (specific image guidelines) Color and Font (brand colors in hex format) Discord Channel ID Project Manager Discord ID On Page Sheet (URL to client's tracking sheet) Project Information Sheet (URL to internal linking keywords sheet) Categories (WordPress category IDs) Update the sheet URL in the "Fetch Project Configuration" node Create client-specific sheets: For each client, maintain two sheets: Sheet 1: TGT Keywords (for internal linking) Keywords column: Target keywords to link Target Pages column: Full URLs to link to Sheet 2: Content Requirement & Posting (for tracking) row_number: Unique identifier Focus Keyword: Target SEO keyword Content Topic: Blog title Publish URLs: Live blog URL (auto-filled) Published Date: Publish date (auto-filled) Configure WordPress authentication: Enable REST API on your WordPress site Generate API authentication tokens Update authorization values in these nodes: "Upload to WordPress Media" "Publish Blog with Featured Image" "Set Thumbnail as Featured Image" "Publish Blog without Images" Connect to Blog Creation workflow: Ensure your Blog Content Creation workflow (Part 1) triggers this workflow The trigger should pass these workflow inputs: Client ID Blog S.NO. (row number) Blog Title Content (HTML formatted) OnPage SEO (tracking sheet URL) Focus Keyword Set up Reporting Manager (optional): Create or connect your client reporting workflow Update the workflow ID in "Trigger Client Reporting Workflow" node This sends automated reports to clients via email, Slack, or WhatsApp Test the workflow: Run your Blog Creation workflow manually with test data Verify images generate correctly with brand colors Check WordPress post publishes with featured image Confirm tracking sheet updates Test Discord notification delivery Use cases Marketing agencies: Manage blog publishing for 10+ clients with different brand guidelines and WordPress sites from a single automation Content teams: Eliminate 2-3 hours of manual work per blog by automating image creation, internal linking, and WordPress publishing SEO specialists: Ensure consistent internal linking and proper category assignment across all published content Freelance writers: Offer end-to-end blog services including branded image creation and WordPress publishing without manual intervention SaaS companies: Maintain consistent blog publishing schedule across multiple product blogs with automated tracking and reporting Customization options Modify image generation: Edit the "Generate Image Prompts with AI" node to change image style, dimensions, or prompt instructions Change DALL-E model or image size in "Generate Image with DALL-E" node Adjust internal linking: Modify the "Add Internal Links to Content" agent prompt to change linking strategy (more/fewer links, different placement rules) Change notification channels: Replace Discord with Slack, email, or webhook notifications Add multiple notification channels in parallel WordPress customization: Add custom fields, tags, or metadata to published posts Integrate with WordPress plugins via REST API extensions Troubleshooting Images not generating: Check OpenAI API key validity and account credits. Verify image prompt node receives content properly. WordPress publish fails: Confirm REST API is enabled, authentication tokens are correct, and site URL is properly formatted with trailing slash. Internal links not appearing: Ensure "TGT Keywords" sheet has valid URLs starting with "http" and filter node is working correctly. Tracking sheet not updating: Verify Google Sheets OAuth connection and that row_number matches between sheets. Discord notification fails: Check Discord bot permissions and channel ID accuracy. Resources n8n documentation WordPress REST API guide OpenAI DALL-E API Google Gemini API Google Sheets API Important notes This workflow is specifically for blog publishing. To use it correctly, you must first have a Blog Content Creation workflow that generates the blog title, content, and required metadata. I have already shared a Blog Writing Automation workflow, which you can use directly for content creation before running this publishing workflow. Make sure the content creation workflow runs before this publishing workflow, as this setup depends on the generated output. Support Need help or custom development? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
by Cj Elijah Garay
Discord AI Content Moderator with Learning System This n8n template demonstrates how to automatically moderate Discord messages using AI-powered content analysis that learns from your community standards. It continuously monitors your server, intelligently flags problematic content while allowing context-appropriate language, and provides a complete audit trail for all moderation actions. Use cases are many: Try moderating a forex trading community where enthusiasm runs high, protecting a gaming server from toxic behavior while keeping banter alive, or maintaining professional standards in a business Discord without being overly strict! Good to know This workflow uses OpenAI's GPT-5 Mini model which incurs API costs per message analyzed (approximately $0.001-0.003 per moderation check depending on message volume) The workflow runs every minute by default - adjust the Schedule Trigger interval based on your server activity and budget Discord API rate limits apply - the batch processor includes 1.5-second delays between deletions to prevent rate limiting You'll need a Google Sheet to store training examples - a template link is provided in the workflow notes The AI analyzes context and intent, not just keywords - "I *cking love this community" won't be deleted, but "you guys are sht" will be Deleted messages cannot be recovered from Discord - the admin notification channel preserves the content for review How it works The Schedule Trigger activates every minute to check for new messages requiring moderation We'll fetch training data from Google Sheets containing labeled examples of messages to delete (with reasons) and messages to keep The workflow retrieves the last 10 messages from your specified Discord channel using the Discord API A preparation node formats both the training examples and recent messages into a structured prompt with unique indices for each message The AI Agent (powered by GPT-5 Mini) analyzes each message against your community standards, considering intent and context rather than just keywords The AI returns a JSON array of message indices that violate guidelines (e.g., [0, 2, 5]) A parsing node extracts these indices, validates them, removes duplicates, and maps them to actual Discord message objects The batch processor loops through each flagged message one at a time to prevent API rate limiting and ensure proper error handling Each message is deleted from Discord using the exact message ID A 1.5-second wait prevents hitting Discord's rate limits between operations Finally, an admin notification is posted to your designated admin channel with the deleted message's author, ID, and original content for audit purposes How to use Replace the Discord Server ID, Moderated Channel ID, and Admin Channel ID in the "Edit Fields" node with your server's specific IDs Create a copy of the provided Google Sheets template with columns: message_content, should_delete (YES/NO), and reason Connect your Discord OAuth2 credentials (requires bot permissions for reading messages, deleting messages, and posting to channels) Add your OpenAI API key to access GPT-5 Mini Customize the AI Agent's system message to reflect your specific community standards and tone Adjust the message fetch limit (default: 10) based on your server activity - higher limits cost more per run but catch more violations Consider changing the Schedule Trigger from every minute to every 3-5 minutes if you have a smaller community Requirements Discord OAuth2 credentials for bot authentication with message read, delete, and send permissions Google Sheets API connection for accessing the training data knowledge base OpenAI API key for GPT-5 Mini model access A Google Sheet formatted with message examples, deletion labels, and reasoning Discord Server ID, Channel IDs (moderated + admin) which you can get by enabling Developer Mode in Discord Customising this workflow Try building an emoji-based feedback system where admins can react to notifications with ✅ (correct deletion) or ❌ (wrong deletion) to automatically update your training data Add a severity scoring system that issues warnings for minor violations before deleting messages Implement a user strike system that tracks repeat offenders and automatically applies temporary mutes or bans Expand the AI prompt to categorize violations (spam, harassment, profanity, etc.) and route different types to different admin channels Create a weekly digest that summarizes moderation statistics and trending violation types Add support for monitoring multiple channels by duplicating the Discord message fetch nodes with different channel IDs Integrate with a database instead of Google Sheets for faster lookups and more sophisticated training data management If you have questions Feel free to contact me here: elijahmamuri@gmail.com elijahfxtrading@gmail.com
by Cheng Siong Chin
How It Works MQTT ingests real-time sensor data from connected devices. The workflow normalizes the values and trains or retrains machine learning models on a defined schedule. An AI agent detects anomalies, validates the results for accuracy, and ensures reliable alerts. Detected issues are then routed to dashboards for visualization and sent via email notifications to relevant stakeholders, enabling timely monitoring and response. Setup Steps MQTT: Configure broker connection, set topic subscriptions, and verify data flow. ML Model: Define retraining schedule and specify historical data sources for model updates. AI Agent: Connect Claude or OpenAI APIs and configure anomaly validation prompts. Alerts: Set dashboard URL and email recipients to receive real-time notifications. Prerequisites MQTT broker credentials; historical training data; OpenAI/Claude API key; dashboard access; email service Use Cases IoT sensor monitoring; server performance tracking; network traffic anomalies; application log analysis; predictive maintenance alerts Customization Adjust sensitivity thresholds; swap ML models; modify notification channels; add Slack/Teams integration; customize validation rules Benefits Reduces detection latency 95%; eliminates manual monitoring; prevents false alerts; enables rapid incident response; improves system reliability
by Feras Dabour
Social Media Foto Creation Bot with Approval Loop Create & Share AI Photos with Telegram, Gemini & Post to Facebook, Instagram & X Description This n8n workflow turns your Telegram messenger into a complete AI Photo Content Pipeline. You send your photo idea as a text or voice message to a Telegram bot, collaborate with an AI to refine the prompt and social media caption, let Gemini generate the image, and then automatically publish it after your approval to Facebook, Instagram, and X (Twitter) – including status tracking and Telegram confirmations. What You Need to Get Started This workflow connects several external services. You will need the following credentials: Telegram Bot API Key** Create a bot via BotFather and copy the bot token. This is used by the Listen for incoming events and other Telegram nodes. OpenAI API Key** Required for Speech to Text (OpenAI Whisper) to transcribe voice notes. Used by the AI Agent model (OpenAI Chat Model) for prompt creation. Google Gemini API Key** Used by the Generate an image node (model: models/gemini-2.5-flash-image) to create the AI image. Google Drive & Sheets Access** The generated image is temporarily stored in a Google Drive folder (Upload image1) and later retrieved by Blotato. Prompts and post texts are logged to Google Sheets (Save Prompt & Post-Text) for tracking. Blotato API Key** The layer for social media publishing. Uploads the image as a media asset (Upload media1) and creates posts for Facebook, Instagram, and X. How the Workflow Operates – Step by Step 1. Input & Initial Processing (Telegram + Voice Handling) This phase receives your messages and prepares the input for the AI. | Node Name | Role in Workflow | | :--- | :--- | | Listen for incoming events | Telegram Trigger node that starts the workflow on any incoming message. | | Voice or Text | Set node that structures the incoming message into a unified text field. | | A Voice? | IF node that checks if the message is a voice note. | | Get Voice File | If voice is detected, this downloads the audio file from Telegram. | | Speech to Text | Uses OpenAI Whisper to convert the voice note into a text transcript. | The output of this stage is always a clean text string containing your image idea. 2. AI Core & Refinement Loop (Prompt + Caption via AI) Here, the AI drafts the image prompt (for Gemini) and the social media caption (for all platforms) and enters an approval loop with you. | Node Name | Role in Workflow | | :--- | :--- | | AI Agent | Central logic agent. Creates a videoPrompt (used for image generation) and socialMediaText based on your idea, and asks for feedback. | | OpenAI Chat Model | The LLM backing the agent (e.g., GPT-4.1-mini). | | Window Buffer Memory | Stores recent turns, allowing the agent to maintain context during revisions. | | Send questions or proposal to user | Sends the AI's suggestion for review back to you. | | Approved from user? | IF node that checks if the output is the approved JSON (meaning you replied with "ok" or "approved"). | | Parse AI Output | Code node that extracts the videoPrompt and socialMediaText fields from the agent’s final JSON output. | 3. Content Generation & Final Approval Once the prompt and caption are set, the image is created and sent to you for final approval before publishing. | Node Name | Role in Workflow | | :--- | :--- | | Inform user about processing | Telegram node to confirm: "Okay. Your image is being prepared now..." | | Save Prompt & Post-Text | Google Sheets node that logs the videoPrompt and socialMediaText. | | Generate an image | Gemini node that creates the image based on the videoPrompt. | | Send a photo message | Sends the generated image to Telegram for review. | | Send message and wait for response | Telegram node that waits for your response to the image (e.g., "Good?" / "Approve"). | | Upload image1 | Temporarily saves the generated image to Google Drive. | | Download image from Drive | Downloads the image back from Drive. | | If1 | IF node that checks if the image was approved in the previous step (approved == true). | 4. Upload & Publishing (Blotato) After final approval, the image is uploaded to Blotato, and post submissions for the social media platforms are created. | Node Name | Role in Workflow | | :--- | :--- | | Upload media1 | Blotato Media node. Uploads the approved image as a media asset and returns a public url. | | Create instagram Post | Creates an Instagram post using the media URL and socialMediaText. | | Create x post | Creates an X (Twitter) post using the media URL and socialMediaText. | | Create FB post | Creates a Facebook post using the media URL and socialMediaText. | 5. Status Monitoring & Retry Loops (X, Facebook, Instagram) An independent loop runs for each platform, polling Blotato until the post is either published or failed. | Node Name | Role in Workflow | | :--- | :--- | | Wait, Wait1, Wait2 | Initial pauses after post creation. | | Check Post Status, Get post1, Check Post Status1 | Blotato Get operations to fetch the current status of the post. | | Published to X?, Published to Facebook?, Published to Instagram? | IF nodes checking for the "published" status. | | Confirm publishing to X, Confirm publishing to Facebook, Confirm publishing to Instagram | Telegram nodes that notify you of successful publication (often including the post link). | | In Progress?, In Progress?1, In Progress?2 | IF nodes that check for "in-progress" status and loop back to the Wait nodes (Give Blotat other 5s). | | Send X Error Message, Send Facebook Error Message, Send Instagram Error Message | Telegram nodes that notify you if a failure occurs. | 🛠️ Personalizing Your Content Bot The workflow is highly adaptable to your personal brand and platform preferences: Tweak the AI Prompt & Behavior: Where: In the AI Agent node, within the System Message. Options: Change the tone (casual, professional, humorous) and the level of detail required for the prompt generation or the social media captions. Change Gemini Model or Image Options: Where: In the Generate an image node. Options: Swap the model or adjust image options like Aspect Ratio or Style based on Gemini's API capabilities. Modify Which Platforms You Post To: Where: In the Blotato nodes: Create instagram Post, Create x post, Create FB post. Options: Disable or delete branches for unused platforms, or add new platforms supported by Blotato.
by Tamas Demeter
This n8n template shows you how to turn outbound sales into a fully automated machine: scrape verified leads, research them with AI, and fire off personalized cold emails while you sleep. Use cases are simple: scale B2B lead gen without hiring more SDRs, run targeted outreach campaigns that don’t feel generic, and give founders or agencies a repeatable system that books more calls with less effort. Good to know At time of writing, each AI call may incur costs depending on your OpenAI plan. This workflow uses Apollo/Apify for lead scraping, which requires an active token. Telegram approval flow is optional but recommended for quality control. How it works Define your ICP (role, location, industry) in the workflow. Generate Apollo search URLs and scrape verified contacts. AI enriches leads with personal + company research. Hormozi-style cold emails are generated and queued for approval. Approve drafts in Telegram, then Gmail automatically sends them out. How to use Start with the included Schedule Trigger or replace with a Webhook/Form trigger. Adjust ICP settings in the Set node to fit your target audience. Test with a small batch of leads before scaling to larger runs. Requirements Google Sheets, Docs, Drive, and Gmail connected to n8n Apollo/Apify account and token OpenAI API key Telegram bot for approvals Customising this workflow Swap Apollo scraping with another data source if needed. Adapt the AI prompt for a different email tone (formal, friendly, etc.). Extend with a CRM integration to sync approved leads and outreach results.
by DIGITAL BIZ TECH
Weekly Timesheet Report + Pending Submissions Workflow Overview This workflow automates the entire weekly timesheet reporting cycle by integrating Salesforce, OpenAI, Gmail, and n8n. It retrieves employee timesheets for the previous week, identifies which were submitted or not, summarizes all line-item activities using OpenAI, and delivers a consolidated, manager-ready summary that mirrors the final email output. The workflow eliminates manual checking, reduces repeated follow-ups, and ensures leadership receives an accurate, structured, and consistent weekly report. Workflow Structure Data Source: Salesforce DBT Timesheet App This workflow requires the Digital Biz Tech – Simple Timesheet managed package to be installed in Salesforce. Install the Timesheet App: https://appexchange.salesforce.com/appxListingDetail?listingId=a077704c-2e99-4653-8bde-d32e1fafd8c6 The workflow retrieves: dbt__Timesheet__c — weekly timesheet records dbt__Timesheet_Line_Item__c — project and activity entries dbt__Employee__c — employee reference and metadata Billable, non-billable, and absence hour details Attendance information These combined objects form the complete dataset used for both submitted and pending sections. Trigger Weekly n8n Schedule Trigger — runs once every week. Submitted Path Retrieve submitted timesheets → Fetch line items → Convert to HTML → OpenAI summary → Merge with employee details. Pending Path Identify “New” timesheets → Fetch employee details → Generate pending submission list. Final Output Merge both paths → Build formatted report → Gmail sends weekly email to managers. Detailed Node-by-Node Explanation 1. Schedule Trigger Runs weekly without manual intervention and targets the previous full week. 2. Timesheet – Salesforce GetAll Fetches all dbt__Timesheet__c records matching: Timesheet for <week-start> to <week-end> Extracted fields include: Employee reference Status Billable, non-billable, absence hours Total hours Reporting period Feeds both processing paths. Processing Path A — Submitted Timesheets 3. Filter Submitted Filters timesheets where dbt__Status__c == "Submitted". 4. Loop Through Each Submitted Record Each employee’s timesheet is processed individually. 5. Retrieve Line Items Fetches all dbt__Timesheet_Line_Item__c entries: Project / Client Activity Duration Work description Billable category 6. Convert Line Items to HTML (Code Node) Transforms line items into well-structured HTML tables for clean LLM input. 7. OpenAI — Weekly Activity Summary OpenAI receives the HTML + Employee ID and returns a 4-point activity summary avoiding: Hours Dates Repeated or irrelevant metadata 8. Fetch Employee Details Retrieves employee name, email, and additional fields if needed. 9. Merge Employee + Summary Combines: Timesheet data Employee details OpenAI summary Creates a unified object. 10. Prepare Submitted Section (Code Node) Produces the formatted block used in the final email: Employee: Name Period: Start → End Status: Submitted Total Hours: ... Timesheet Line Items Breakdown: summary point summary point summary point summary point Processing Path B — Not Submitted Timesheets 11. Identify Not Submitted Timesheets still in dbt__Status__c == "New" are flagged. 12. Retrieve Employee Information Fetches employee name and email. 13. Merge Pending Information Maps each missing submission with its reporting period. 14. Prepare Pending Reporting Block Creates formatted pending entries: TIMESHEET NOT SUBMITTED Employee Name Email: user@example.com Final Assembly & Report Delivery 15. Merge Submitted + Pending Sections Combines all processed data. 16. Create Final Email (Code Node) Builds: Subject HTML body Section headers Manager recipient group Matches the final email layout. 17. Send Email via Gmail Automatically delivers the weekly summary to managers via Gmail OAuth. No manual involvement required. What Managers Receive Each Week 👤 Employee: Name 📅 Period: Start Date → End Date 📌 Status: Submitted 🕒 Total Hours: XX hrs Billable: XX hrs Non-Billable: XX hrs Absence: XX hrs Weekly Requirement Met: ✔️ / ❌ 📂 Timesheet Line Items Breakdown: • Summary point 1 • Summary point 2 • Summary point 3 • Summary point 4 🟥 TIMESHEET NOT SUBMITTED 🟥 Employee Name 📧 Email: user@example.com Data Flow Summary Salesforce → Filter Submitted / Not Submitted ↳ Submitted → Line Items → HTML → OpenAI Summary → Merge ↳ Not Submitted → Employee Lookup → Merge → Code Node formats unified report → Gmail sends professional weekly summary Technologies & Integrations | System | Purpose | Authentication | |------------|----------------------------------|----------------| | Salesforce | Timesheets, Employees, Timesheet Line Items | Salesforce OAuth | | OpenAI | Weekly activity summarization | API Key | | Gmail | Automated email delivery | Gmail OAuth | | n8n | Workflow automation & scheduling | Native | Agent System Prompt Summary > You are an AI assistant that extracts and summarizes weekly timesheet line items. Produce a clean, structured summary of work done for each employee. Focus only on project activities, tasks, accomplishments, and notable positives or negatives. Follow a strict JSON-only output format with four short points and no extra text or symbols. Key Features AI-driven extraction: Converts raw line items into clean weekly summaries. Strict formatting: Always returns controlled 4-point JSON summaries. Error-tolerant: Works even when timesheet entries are incomplete or messy. Seamless integration: Works smoothly with Salesforce, n8n, Gmail, or OpenAI. Setup Checklist Install DBT Timesheet App from Salesforce AppExchange Configure Salesforce OAuth Configure Gmail OAuth Set OpenAI model for summarization Update manager recipient list Activate the weekly schedule Summary This unified workflow delivers a complete, automated weekly reporting system that: Eliminates manual timesheet checking Identifies missing submissions instantly Generates high-quality AI summaries Improves visibility into employee productivity Ensures accurate billable/non-billable tracking Automates end-to-end weekly reporting Need Help or More Workflows? We can integrate this into your environment, tune the agent prompt, or extend it for more automation. We can also help you set it up for free — from connecting credentials to deployment. Contact: anushapriya.subaskar@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help.