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 Mychel Garzon
Stop compiling your weekly business report by hand. Let automation pull the numbers, and let Claude write the narrative. Every Monday morning, this workflow fetches last week's revenue from Stripe, pipeline data from Notion, and operational metrics from Google Sheets aggregates everything into a single structured dataset, hands it to Claude Sonnet 4 for executive analysis, and delivers a styled HTML report to your inbox before you've had your first coffee. How it works The workflow runs in five sequential stages: 1. Trigger & Date Setup Fires every Monday at 08:00. Computes last week's date window in your configured business timezone using Luxon, outputting ISO timestamps, Unix epochs, and milliseconds so every downstream node speaks the same time format without conversion. 2. Data Collection Fetches from three sources in sequence: Stripe:** Cursor-based pagination retrieves every charge in the window no 100 record cap, no missed revenue Notion:** Queries your Deals database with a date filter and a built-in 350ms rate-limit delay between pages to stay safely under the Notion API ceiling Google Sheets:** Reads the latest row from your ops metrics sheet for tickets closed, NPS score, and uptime percentage 3. Aggregation Normalises all three sources into a single structured item: gross and net revenue, refunds, transaction count, total and probability-weighted pipeline value, deal count by stage, and all operational KPIs. Every field has a safe fallback so missing data never crashes the report. 4. AI Executive Narrative Passes the aggregated metrics to Claude Sonnet 4 with a structured prompt requesting three paragraphs: revenue performance, pipeline health, and operational highlights with a forward-looking observation. Temperature is set to 0 for consistent, professional tone on every run. 5. Report Build & Delivery Assembles a styled HTML email with KPI cards, a pipeline stage breakdown table, and the AI narrative embedded inline. Sends via SendGrid, then fires a Slack message to your chosen channel with a one-line summary of net revenue and new deal count. Key benefits No record caps:** Stripe pagination loops until has_more is false, the report always reflects the full week, not just the first 100 charges Timezone-aware:** Set REPORT_TIMEZONE once and every date window, label, and timestamp respects your business timezone automatically Consistent narrative:** Claude runs at temperature 0, so the executive summary reads in the same structured, data-driven voice every week Safe fallbacks:** Every aggregation field defaults gracefully, a missing ops metric shows N/A rather than crashing the workflow Global error handling:** A dedicated Error Trigger catches any execution failure and sends an alert email with the execution ID and the name of the failed node Setup Credentials: Connect your Anthropic account to the Anthropic Chat Model node SendGrid: Connect your SendGrid credential to the Send via SendGrid and Send Error Email nodes Google Sheets: Connect a Google Sheets OAuth2 credential to the GSheets: Ops Metrics node Slack: Connect your Slack credential to the Slack: Report Sent node Stripe: Set STRIPE_SECRET_KEY environment variable Notion: Set NOTION_API_KEY and NOTION_DEALS_DB_ID environment variables Google Sheets: Set GSHEETS_SPREADSHEET_ID, GSHEETS_SHEET_NAME, and GSHEETS_LAST_ROW_RANGE environment variables Email: Set REPORT_EMAIL_FROM, REPORT_EMAIL_TO, and REPORT_ALERT_EMAIL environment variables Slack: Set SLACK_CHANNEL_ID environment variable Timezone: Set REPORT_TIMEZONE environment variable (e.g., Europe/Helsinki defaults to UTC if not set) Who this is for Founders and operators** who want a Monday morning briefing without opening five different dashboards Finance teams** tracking weekly revenue, refunds, and transaction volume without manual Stripe exports Sales managers** monitoring pipeline health and weighted deal value across Notion CRM stages Agencies and MSPs** delivering automated reporting as a managed service to their clients Required credentials Anthropic (Claude Sonnet 4) SendGrid Google Sheets OAuth2 Slack Stripe Secret Key (via env var) Notion API Key (via env var) How to customize it Add more data sources:** Extend the collection stage with nodes for HubSpot, Jira, Intercom, or any API, just reference them in Aggregate All Metrics Change the report schedule:** Modify the cron expression in the trigger node to run daily, bi-weekly, or on any schedule Adjust the AI prompt:** Edit the prompt in Claude: Write Executive Narrative to change the number of paragraphs, the tone, or the specific metrics Claude should prioritize Swap the email provider:** Replace SendGrid with Outlook, Gmail, or any SMTP node without touching any other part of the workflow Extend the HTML template:** Modify Build HTML Report to add your company logo, brand colors, or additional KPI sections
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.
by Cheng Siong Chin
How It Works This workflow automates procurement fraud detection and supplier compliance monitoring for organizations managing complex purchasing operations. Designed for procurement teams, audit departments, and compliance officers, it solves the challenge of identifying fraudulent transactions, contract violations, and supplier misconduct across thousands of purchase orders and vendor relationships. The system schedules continuous monitoring, generates sample transaction data, analyzes patterns through dual AI agents (Price Reasonableness validates pricing against market rates, Delivery Agent assesses fulfillment performance), orchestrates comprehensive risk evaluation through Orchestration Agent, routes findings by severity (critical/high/medium/low), and triggers multi-channel responses: critical issues activate immediate Slack/email alerts with detailed logging; high-priority cases receive escalation workflows; medium/low findings generate routine compliance reports. By combining AI-powered anomaly detection with intelligent routing and coordinated notifications, organizations prevent fraud losses by 75%, ensure vendor compliance, maintain audit trails, and enable procurement teams to focus on strategic sourcing rather than manual transaction reviews. Setup Steps Connect Schedule Trigger for monitoring frequency Configure procurement systems with API credentials Add AI model API keys to Price Reasonableness, Delivery, and Orchestration Agent nodes Define fraud indicators and compliance thresholds in agent prompts based on company policies Link Slack webhooks for critical and high-priority fraud alerts to procurement and audit teams Connect email credentials for stakeholder notifications and escalation workflows Prerequisites Procurement system API access, AI service accounts, market pricing databases for benchmarking Use Cases Invoice fraud detection, bid rigging identification, duplicate payment prevention Customization Modify agent prompts for industry-specific fraud patterns, adjust risk scoring algorithms Benefits Prevents fraud losses by 75%, automates compliance monitoring across unlimited transactions
by Salman Mehboob
This template automates the complete hiring pipeline for digital agencies managing applications across multiple job roles. When a candidate submits a Google Form with their CV, the system scores it with AI against a role-specific weighted job profile, lets HR decide in Google Sheets with a single typed decision, sends a personalized email automatically, and tracks the Calendly interview booking in real time — all without leaving the tools you already use. This template contains 3 linked workflows that must all be active for the full pipeline to run. How it works Workflow 1 — CV Screening Pipeline Triggers when a new row is added to the Google Form responses sheet Extracts the Google Drive file ID from the CV upload URL, handling all three Drive URL formats automatically Checks an n8n Data Table to block duplicate applications by email — stops processing if the candidate already exists Routes the candidate to the correct job profile based on their selected role using a Switch node Each job profile (Set node) defines: required skills, nice-to-have skills, minimum years of experience, seniority thresholds (Junior / Mid / Senior), and weighted scoring criteria (technical skills weight, experience weight, nice-to-have weight) All branches converge into a single Normalize Data node that cleans Google Form field names into standardized keys CV is downloaded from Google Drive and extracted from PDF to plain text AI evaluates the CV using a dynamically built prompt pulling all values from the job profile — no hardcoded role logic in the AI node Structured output parser returns: score (out of 10), seniority level, recommendation (Interview / Maybe / Reject), matched skills, missing skills, nice-to-have matched, experience comment, red flags, and a plain English summary All results are written back to the same Google Sheet row matched by the candidate's email address Workflow 2 — HR Decision Email Sender Watches the Google Sheet every minute for updates to the HR_Decision column An IF node confirms the decision is filled and Email_Status is not already "Sent" — preventing duplicate emails if the sheet is updated again HR types exactly "Send Invite" or "Send Rejection" in the HR_Decision column to trigger the correct path Interview invitation email includes a pre-filled Calendly booking link with the candidate's name and email already populated as URL parameters Rejection email delivers a warm, personalized message referencing the role applied for After sending, Email_Status is immediately updated to "Sent" in the sheet Workflow 3 — Calendly Interview Tracker Listens for Calendly webhook events in real time: invitee.created and invitee.canceled On booking: extracts the interview start time, formats it to your local timezone, and writes it to the Interview_Time column matched by email On cancellation: checks the rescheduled flag — if true, stops and lets the new invitee.created event handle the update; if false, writes "Meeting canceled" to the sheet How to use Connect Google Sheets Trigger credential (OAuth2) and point it to your Form Responses sheet Connect Google Drive credential (OAuth2) — needs read access to the folder where Google Forms stores CV uploads Connect OpenRouter credential — get a free API key at openrouter.ai. Default model is set to a free model for testing. Switch to a stronger model for production Connect Gmail credential (OAuth2) for sending invitation and rejection emails Connect Calendly credential (OAuth2) In the Invitation Message node, replace YOUR_CALENDLY_LINK with your actual Calendly event URL Add these columns manually to your Google Form responses sheet: score, seniority, recommendation, matched_skills, missing_skills, nice_to_have_matched, experience_comment, red_flags, summary, HR_Decision, Email_Status, Interview_Time Create an n8n Data Table named CV Screening with a single column: Email (string type) Customize each Job Profile Set node with your agency's actual role requirements, skill lists, and scoring weights Activate all three workflows Requirements Google Sheets** (OAuth2) — application tracking and HR decision sheet Google Drive** (OAuth2) — CV file storage and download Gmail** (OAuth2) — sending invitation and rejection emails OpenRouter** (API key) — AI model access for CV evaluation Calendly** (OAuth2) — interview booking and cancellation tracking n8n Data Table** — built-in n8n feature, no external service needed Notes & customization To add a new job role:** add the role to your Google Form dropdown, add a new condition to the Route by Job Role Switch node, and duplicate any existing Job Profile Set node with updated values Scoring weights:** tech_weight, experience_weight, and nice_to_have_weight in each Job Profile node must add up to 100 HR_Decision values are case-sensitive:** type Send Invite or Send Rejection exactly as written Calendly email matching:** the candidate must book using the same email they applied with — the invitation link pre-fills this automatically so this is handled in normal use Free model limits:** OpenRouter free models allow approximately 200 requests per day, which is sufficient for most agency hiring volumes 📬 Contact Information For Help and queries, contact LinkedIn:** Salman Mehboob Email:**salmanmehboob1947@gmail.com
by Paul Karrmann
This n8n template helps you turn inbound messages into a clean, deduped queue of actionable tickets. It includes Slack and Gmail as ready to use examples, but the key idea is the universal intake normalizer: you can plug in other sources later (forms, webhooks, chat tools, other inboxes) as long as you map them into the same normalized schema. Good to know This workflow sends message content to an LLM for classification. Keep sensitive data out of the prompt, and only process messages you are allowed to process. Costs depend on message volume and length, so truncation and tight filters matter. How it works Collect inbound items (Slack and Gmail are included as examples). Normalize each item into one shared JSON format so every source behaves the same. Deduplicate items using a data table so repeats are skipped. Use an AI agent with structured output to score urgency and importance, produce a summary, and draft a reply. Create a Notion ticket for tracking, and optionally notify Slack for high priority items. Setup steps Connect credentials for Slack, Gmail, Notion, and your LLM provider. Choose your Slack channel and set a Gmail filter that keeps volume manageable. Select your Notion database and ensure properties match the field mappings. Create or select a data table and map the unique ID column for deduplication. Adjust the notification threshold and schedule interval to match your workflow. Requirements Slack workspace access (optional if you swap the source) Gmail access (optional if you swap the source) Notion database for ticket creation LLM API credentials Customising this workflow Add new sources by mapping them into the normalizer schema. Truncate long messages before the AI step to reduce cost. Change categories, scoring, and thresholds to match your operating model.
by Oneclick AI Squad
This workflow ingests property document packages submitted via webhook or monitored cloud storage, extracts text from each file, runs Claude AI to verify legal compliance, detect missing or expired documents, flag invalid clauses, and produces a structured validation report with remediation guidance. How it works Trigger — Webhook submission or Google Drive folder watch Intake & Register — Logs submission, assigns case ID, normalises metadata Download Documents — Fetches each file from Drive / S3 / URL Extract Text — Reads PDF/DOCX content via parser node Classify Document Type — Identifies contract, title, disclosure, certificate, etc. AI Legal Compliance Check — Claude AI validates each document against jurisdiction rules Aggregate Validation Results — Merges per-document findings into a case report Check Required Doc Checklist — Detects missing mandatory documents Route by Compliance Status — Branches on PASS / FAIL / REQUIRES_REVIEW Notify Submitter — Email with full validation report and remediation steps Alert Legal Team on Slack — Flags FAIL or critical issues to legal channel Create Audit Record — Writes full report to Google Sheets compliance log Generate PDF Report — Stores formatted report back to Drive Return Validation Response — Sends structured JSON result to caller Setup Steps Import workflow into n8n Configure credentials: Anthropic API — Claude AI for legal document analysis Google Drive OAuth — Document intake and report storage Google Sheets OAuth — Compliance audit log Slack OAuth — Legal team alerts SendGrid / SMTP — Submitter notification emails Set your Google Drive folder IDs for intake and output Configure jurisdiction rules in the AI prompt node Set mandatory document checklist in the Checklist node Activate the workflow Sample Webhook Payload { "caseId": "CASE-2025-0871", "submitterEmail": "agent@realty.com", "propertyAddress": "42 Oak Street, Sydney NSW 2000", "transactionType": "sale", "jurisdiction": "NSW", "documents": [ { "name": "Contract of Sale", "type": "contract", "driveFileId": "1aBcDeFgHiJkL" }, { "name": "Title Search", "type": "title", "driveFileId": "2mNoPqRsTuVwX" } ] } Document Types Supported Contract of Sale / Purchase Agreement Certificate of Title / Title Search Vendor Disclosure Statement Section 32 / Vendor Statement Building & Pest Inspection Report Strata Report / Body Corporate Docs Zoning Certificate / Planning Certificate Land Tax Certificate Mortgage / Discharge of Mortgage Lease Agreement / Tenancy Documents Council Rates Notice Smoke Alarm / Safety Certificates Features Multi-document batch validation per submission Jurisdiction-aware compliance rules (AU/UK/US configurable) Missing document detection against mandatory checklist Expiry date validation for time-sensitive certificates Critical clause and red-flag detection Automated remediation guidance per issue Full audit trail in Google Sheets PDF validation report stored to Drive Explore More Automation: Contact us to design AI-powered lead nurturing, content engagement, and multi-platform reply workflows tailored to your growth strategy.
by Khairul Muhtadin
Streamline M&A due diligence with AI. This n8n workflow automatically parses financial documents using LlamaIndex, embeds data into Pinecone, and generates comprehensive, AI-driven reports with GPT-5-mini, saving hours of manual review and ensuring consistent, data-backed insights. Why Use This Workflow? Time Savings: Reduces manual document review and report generation from days to minutes. Cost Reduction: Minimizes reliance on expensive human analysts for initial data extraction and summary. Error Prevention: AI-driven analysis ensures consistent data extraction, reducing human error and oversight. Scalability: Effortlessly processes multiple documents and deals in parallel, scaling with your business needs. Ideal For Investment Analysts & Private Equity Firms:** Quickly evaluate target companies by automating the extraction of key financials, risks, and business models from deal documents. M&A Advisors:** Conduct preliminary due diligence efficiently, generating comprehensive overview reports for clients without extensive manual effort. Financial Professionals:** Accelerate research and analysis of company filings, investor presentations, and market reports for critical decision-making. How It Works Trigger: A webhook receives multiple due diligence documents (PDFs, DOCX, XLSX) along with associated metadata. Document Processing & Cache Check: Files are split individually. The workflow first checks Pinecone to see if the deal's documents have been processed before (cache hit). If so, it skips parsing and embedding. Data Extraction (LlamaIndex): For new deals, each document is sent to LlamaIndex for advanced parsing, extracting structured text content. Vectorization & Storage: The parsed text is then converted into numerical vector embeddings using OpenAI and stored in Pinecone, our vector database, with relevant metadata. AI-Powered Analysis (Langchain Agent): An n8n Langchain Agent, acting as a "Senior Investment Analyst," leverages GPT-5-mini to query Pinecone multiple times for specific information (e.g., company profile, financials, risks, business model). It synthesizes these findings into a structured JSON output. Report Generation: The structured AI output is transformed into an HTML report, then converted into a professional PDF document. Secure Storage & Delivery: The final PDF due diligence report is uploaded to an S3 bucket, and a public URL is returned via the initial webhook, providing instant access. Setup Guide Prerequisites | Requirement | Type | Purpose | | :---------- | :--- | :------ | | n8n instance | Essential | Workflow execution platform | | LlamaIndex API Key | Essential | For robust document parsing and text extraction | | OpenAI API Key | Essential | For creating text embeddings and powering the GPT-5-mini AI agent | | Pinecone API Key | Essential | For storing and retrieving vector embeddings | | AWS S3 Account | Essential | For secure storage of generated PDF reports | Installation Steps Import the JSON file to your n8n instance. Configure credentials: LlamaIndex: Create an "HTTP Header Auth" credential with x-api-key in the header and your LlamaIndex API key as the value. OpenAI: Create an "OpenAI API" credential with your OpenAI API key. Ensure the credential name is "Sumopod" or update the workflow nodes accordingly. Pinecone: Create a "Pinecone API" credential with your Pinecone API key and environment. Ensure the credential name is "w3khmuhtadin" or update the workflow nodes accordingly. AWS S3: Create an "AWS S3" credential with your Access Key ID and Secret Access Key. Update environment-specific values: In the "Upload to S3" node, ensure the bucketName is set to your desired S3 bucket. In the "Create Public URL" node, update the baseUrl variable to match your S3 bucket's public access URL or CDN if applicable (e.g., https://your-s3-bucket-name.s3.amazonaws.com). Customize settings: Review the prompt in the "Analyze" (Langchain Agent) node to adjust the AI's persona or required queries if needed. Test execution: Send sample documents (PDF, DOCX, XLSX) to the webhook URL (/webhook/dd-ai) to verify all connections and processing steps work as expected. Technical Details Core Nodes | Node | Purpose | Key Configuration | | :------------------------------ | :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | | Webhook | Initiates workflow with document uploads | Path: dd-ai, HTTP Method: POST | | Split Multi-File (Code) | Splits binary files, generates unique deal ID | Parses filenames from body or binary, creates dealId from sorted names. | | Parse Document via LlamaIndex | Extracts structured text from various document types | URL: https://api.cloud.llamaindex.ai/api/v1/parsing/upload, Authentication: HTTP Header Auth with x-api-key. | | Monitor Document Processing | Polls LlamaIndex for parsing status | URL: https://api.cloud.llamaindex.ai/api/v1/parsing/job/{{ $json.id }}, Authentication: HTTP Header Auth. | | Insert to Pinecone | Stores vector embeddings in Pinecone | Mode: insert, Pinecone Index: poc, Pinecone Namespace: dealId. | | Data Retrieval (Pinecone) | Enables AI agent to search due diligence documents | Mode: retrieve-as-tool, Pinecone Index: poc, Pinecone Namespace: {{ $json.dealId }}, topK: 100. | | Analyze (Langchain Agent) | Orchestrates AI analysis using specific queries | Prompt Type: define, detailed role and 6 mandatory Pinecone queries, Model: gpt-5-mini, Output Parser: Parser. | | Generate PDF (Puppeteer) | Converts HTML report to a professional PDF | Script Code: await $page.pdf(...) with A4 format, margins, and 60s timeout. | | Upload to S3 | Stores final PDF reports securely | Bucket Name: poc, File Name: {{ $json.fileName }}, Credentials: AWS S3. | | If (Check Namespace Exists) | Implements caching logic | Checks stats.namespaces[dealId].vectorCount > 0 to determine cache hit/miss. | Workflow Logic The workflow begins by accepting multiple files via a webhook. It intelligently checks if the specific "deal" (identified by a unique ID generated from filenames) has already had its documents processed and embedded in Pinecone. This cache mechanism prevents redundant processing, saving time and API costs. If a cache miss occurs, documents are parsed by LlamaIndex, their content vectorized by OpenAI, and stored in a Pinecone namespace unique to the deal. For analysis, a Langchain Agent, powered by GPT-5-mini, is instructed with a specific persona and a mandatory sequence of Pinecone queries (e.g., company overview, financials, risks). It uses the Data Retrieval tool to interact with Pinecone, synthesizing information from the stored embeddings. The AI's output is then structured by a dedicated parser, transformed into a human-readable HTML report, and converted into a PDF. Finally, this comprehensive report is uploaded to AWS S3, and a public access URL is provided as a response. Customization Options Basic Adjustments: AI Prompt Refinement:** Modify the Prompt field in the "Analyze" (Langchain Agent) node to adjust the AI's persona, introduce new mandatory queries, or change reporting style. Output Schema:** Update the JSON schema in the "Parser" (Langchain Output Parser Structured) node to include additional fields or change the structure of the AI's output. Advanced Enhancements: Integration with CRM/Dataroom:** Add nodes to automatically fetch documents from or update status in a CRM (e.g., Salesforce, HubSpot) or a virtual data room (e.g., CapLinked, Datasite). Conditional Analysis:** Implement logic to trigger different analysis paths or generate different report sections based on document content or deal parameters. Notification System:** Integrate with Slack, Microsoft Teams, or email to send notifications upon report generation or specific risk identification. Use Case Examples Scenario 1: Private Equity Firm Evaluating a Target Company Challenge: A private equity firm receives dozens of due diligence documents (financials, CIM, management presentations) for a potential acquisition, needing a rapid initial assessment. Solution: The workflow ingests all documents, automatically parses them, and an AI agent synthesizes key company information, financial summaries (revenue history, margins), and identified risks into a structured report within minutes. Result: The firm's analysts gain an immediate, comprehensive overview, enabling faster screening and more focused deep-dive questions, significantly accelerating the deal cycle. Scenario 2: M&A Advisor Conducting Preliminary Due Diligence Challenge: An M&A advisory firm needs to provide clients with a quick, consistent, and standardized preliminary due diligence report across multiple prospects. Solution: Advisors upload relevant prospect documents to the workflow. The AI-powered system automatically extracts core business model details, investment thesis highlights, and customer concentration analysis, along with key financials. Result: The firm can generate standardized, high-quality preliminary reports efficiently, ensuring consistency across all client engagements and freeing up senior staff for strategic analysis. Created by: Khmuhtadin Category: AI | Tags: Due Diligence, AI, Automation, M&A, LlamaIndex, Pinecone, GPT-5-mini, Document Processing Need custom workflows? Contact us Connect with the creator: Portfolio • Workflows • LinkedIn • Medium • Threads