by 小林幸一
Generate personalized sales emails from Google Maps results to Google Sheets This workflow automates the entire process of lead generation and personalized outreach drafting for local businesses. It utilizes Apify to scrape business data from Google Maps based on your search criteria (e.g., "Cafes in Shibuya"), visits each business's website to extract content, and uses OpenAI to generate a highly personalized sales email that connects the business's unique characteristics with your service's value proposition. Finally, it saves the business details, scraped data, and the generated email draft into Google Sheets. This template is perfect for reducing the manual effort required to research leads and write initial cold outreach emails. Who is this for Sales Representatives** looking to automate lead sourcing and initial drafting. Marketing Agencies** doing outreach for local businesses. Freelancers** offering web design, SEO, or reservation system services to brick-and-mortar stores. What it does Configuration: You define your search query (e.g., "Gyms in London"), the number of leads to fetch, and details about the service you are selling. Lead Scraping: The workflow triggers an Apify actor (Google Maps Scraper) to find businesses matching your criteria. Website Analysis: It checks if the business has a website, fetches the HTML, and extracts relevant text to understand the business's vibe and offerings. AI Email Generation: OpenAI analyzes the scraped website text and generates a specific, personalized email subject and body promoting your service. Data Storage: All data (Business Name, Phone, Address, Website, Scraped Info, and Email Draft) is appended to a Google Sheet. Requirements n8n** (v1.0 or later) Apify Account**: You need an Apify account and the compass/google-maps-scraper actor. OpenAI Account**: An API key for generating the email content. Google Cloud Platform**: A project with the Google Sheets API enabled. How to set up Credentials: Set up your credentials for Apify, OpenAI, and Google Sheets in n8n. Google Sheet: Create a new Google Sheet and add the following headers in the first row: 店舗名 (Store Name) 住所 (Address) Webサイト (Website) 電話番号 (Phone Number) サイトから取得した情報 (Info from Website) 生成されたメール件名 (Generated Subject) 生成されたメール本文 (Generated Body) Workflow Configuration Node: Open the first "Workflow Configuration" node and update the following values: searchQuery: The location and keyword you want to target. serviceName: The name of the product you are selling. serviceStrength: The USP (Unique Selling Proposition) of your product. Google Sheets Node: Open the "Save to Google Sheets" node and select the file you created in step 2. How to customize Change the Prompt**: Open the "Generate Personalized Email" (OpenAI) node to modify the system prompt. You can change the tone, language (currently set to Japanese context in your example), or structure of the sales email. Filter Results**: You can add logic to the "Check Website URL Exists" node to filter out specific types of businesses or domains. Limit Scraping**: Adjust the maxPlaces value in the Configuration node to control how many leads you process per run to save on API credits.
by Yoshino Haruki
Who’s it for This template is ideal for busy professionals, students, or anyone with a dynamic schedule who wants to optimize their brief periods of free time. If you frequently find yourself with unexpected gaps between meetings and wish for intelligent, personalized suggestions on where to grab a coffee or get some work done, this workflow is for you. How it works / What it does The workflow begins by checking your Google Calendar for your next event at a scheduled time. It then calculates the travel time from your current location to your next event's venue using Google Maps. This allows it to determine your actual "gap time" – the usable free time before you need to start moving. If you have a sufficient gap (e.g., 30 minutes or more), the workflow fetches your preferred cafe criteria from a Google Sheet and searches for nearby cafes using Google Places. An AI agent then processes this information, along with your available gap time, to recommend the best cafe suited to your needs. This recommendation, complete with ratings and a Google Maps link, is sent directly to your Slack channel. Conversely, if the gap time is too short to comfortably visit a cafe, the workflow sends an urgent Slack alert, reminding you to prepare for your next appointment and providing essential details. How to set up Import the Workflow: Import this workflow into your n8n instance. Configure API Keys: In the "Workflow Configuration" node, replace the placeholders for googleMapsApiKey and googlePlacesApiKey with your actual API keys. Ensure these keys have access to the Google Maps Distance Matrix API and Google Places API (Nearby Search). Also, update currentLocation with your default or most frequent starting location (latitude/longitude or address). Google Calendar Credentials: Authenticate the "Get Next Calendar Event" node with your Google Calendar account. Select the calendar you wish to monitor. Google Sheets Credentials: Authenticate the "Get User Preferences" node with your Google Sheets account. Create a Google Sheet to store your cafe preferences (e.g., "Likes quiet places", "Prefers espresso", "Needs Wi-Fi"). Update the "Document ID" and "Sheet Name" in this node to point to your preference sheet. OpenRouter Credentials: Authenticate the "OpenRouter Chat Model" with your OpenRouter API key. Slack Credentials: Authenticate both "Send Slack Notification" and "Send Urgent Move Alert (Slack)" nodes with your Slack account. In both Slack nodes, update the channelId to your desired Slack channel where you want to receive notifications (e.g., #general, or a specific DM channel). Activate the Workflow: Once all configurations are complete, activate the workflow. Requirements An n8n instance (self-hosted or cloud). Google Account with Google Calendar and Google Sheets. Google Cloud Project with activated Google Maps Platform APIs (Distance Matrix API, Places API) and corresponding API Keys. An OpenRouter API Key. A Slack Workspace and API Token (or Webhook URL). How to customize the workflow Scheduling: Adjust the "Schedule Trigger" node to run at different intervals or specific times that best suit your daily routine. Minimum Gap Time: Modify the minimumGapMinutes variable in the "Workflow Configuration" node to set a different threshold for cafe recommendations. Cafe Search Radius: In the "Search Nearby Cafes (Google Places API)" node, you can change the radius parameter to search for cafes within a larger or smaller area. User Preferences: Expand your Google Sheet with more detailed preferences to give the AI agent better context for recommendations (e.g., "vegan options," "good for meetings," "strong coffee"). AI Prompt: Refine the prompt in the "AI Agent" node to guide the AI towards specific types of recommendations or output formats. Slack Message Customization: Edit the text fields in the Slack nodes to personalize the notification messages.
by Sk developer
This workflow fetches free Udemy courses hourly via the Udemy Coupons and Courses API on RapidAPI, filters them, and updates a Google Sheet. It sends alerts on errors for smooth monitoring. Node-by-Node Explanation Schedule Trigger: Runs the workflow every hour automatically. Fetch Udemy Coupons: Sends POST request to the Udemy Coupons and Courses API on RapidAPI to get featured courses. Check API Success: Verifies if the API response is successful; routes accordingly. Filter Free Courses: Selects only courses with sale_price of zero (free courses). Send Error Notification: Emails admin if API fetch fails for quick action. Sync Courses to Google Sheet: Appends or updates the filtered free courses into Google Sheets. Google Sheets Columns id name price sale_price image lectures views rating language category subcategory slug store sale_start Google Sheets Setup & Configuration Steps Create Google Sheet: Create or open a Google Sheet where you want to sync courses. Set Headers: Add columns headers matching the fields synced (id, name, price, etc.). Enable Google Sheets API: Go to Google Cloud Console, enable Google Sheets API for your project. Create Service Account: In Google Cloud Console, create a Service Account with editor access. Download Credentials: Download the JSON credentials file from the service account. Share Sheet: Share your Google Sheet with the Service Account email (found in JSON file). Configure n8n Google Sheets Node: Use the service account credentials, set operation to “Append or Update”, provide Sheet URL and sheet name or gid. Match Columns: Map the course fields to your sheet columns and set id as the unique key for updates. How to Obtain RapidAPI Key & Setup API Request Sign up/Login: Visit RapidAPI Udemy Coupons and Courses API and create an account or log in. Subscribe to API: Subscribe to the Udemy Coupons and Courses API plan (free or paid). Get API Key: Navigate to your dashboard and copy your x-rapidapi-key. Configure HTTP Request: In your workflow’s HTTP Request node: Set method to POST. URL: https://udemy-coupons-and-courses.p.rapidapi.com/featured.php Add headers: x-rapidapi-host: udemy-coupons-and-courses.p.rapidapi.com x-rapidapi-key: your copied API key Set content type to multipart/form-data. Add body parameter: page=1 (or as needed). Test API: Run the node to ensure the API responds with data successfully before continuing workflow setup. Use Cases & Benefits Automates daily updates of free Udemy courses in your sheet using the Udemy Coupons and Courses API on RapidAPI. Saves manual effort in tracking coupons and deals. Enables quick error alerts to maintain data accuracy. Ideal for course aggregators, affiliate marketers, or learning platforms needing fresh course data. Who This Workflow Is For Content curators and edtech platforms tracking free courses. Affiliate marketers promoting Udemy deals. Anyone needing real-time access to updated free Udemy coupons.
by Grace Gbadamosi
How it works This workflow automatically monitors multiple websites using AI-powered analysis and MCP (Model Context Protocol) tools. The system runs scheduled checks, analyzes website performance and security using browser-tools-mcp and mcp-recon servers, categorizes issues by severity (critical, warning, info), sends appropriate alerts through Slack and email, and logs all findings to Google Sheets for historical tracking and trend analysis. Who is this for DevOps engineers, website administrators, system monitors, digital agencies, and technical teams responsible for maintaining multiple websites. Perfect for organizations that need automated website health monitoring with intelligent analysis, comprehensive security checks, and immediate alerting for critical issues. Requirements MCP Servers**: Browser-tools-mcp and mcp-recon servers running locally or remotely OpenAI API**: API key for AI-powered website analysis Google Sheets**: Spreadsheet with "Websites" and "Monitoring Log" sheets Slack Integration**: Slack workspace with webhook or bot token for alerts Email Configuration**: SMTP settings for critical email notifications Environment Variables**: Secure storage for all credentials and endpoints How to set up Install and Configure MCP Servers - Set up browser-tools-mcp and mcp-recon servers, configure endpoints in environment variables (MCP_BROWSER_TOOLS_URL, MCP_RECON_URL) Prepare Google Sheets Integration - Create spreadsheet with "Websites" sheet (URL column) and "Monitoring Log" sheet, set GOOGLE_SHEET_ID environment variable Configure Notification Systems - Set up Slack webhook/bot and email SMTP settings, configure SLACK_CHANNEL, ALERT_EMAIL, FROM_EMAIL variables Customize Monitoring Parameters - Update Configuration Variables node with your monitoring thresholds, batch sizes, and website lists How to customize the workflow Modify the Configuration Variables node to adjust monitoring thresholds (response times, performance scores), change batch processing sizes, update notification preferences, or add additional websites to monitor. Customize alert severity rules in the Alert Severity Router and modify notification templates in the Slack and Email nodes.
by Patrick Siewert
🛡️ Evaluate Guardrails Node Accuracy with Automated Test Suite This workflow benchmarks the n8n Guardrails node across multiple safety categories -including PII, NSFW, jailbreak attempts, secret keys, and unsafe URLs. It runs 36 structured test cases, classifies each as PASS or VIOLATION, calculates accuracy metrics, and emails a detailed HTML report. 🔄 How it works The workflow loops through 36 predefined test prompts. Each prompt is checked by the Guardrails node for violations. Results are recorded as PASS or VIOLATION. The system calculates metrics (accuracy, precision, recall, F1). A formatted Markdown → HTML report is generated and sent via Gmail. ⚙️ Set up steps Add your OpenAI and Gmail credentials in n8n. Replace YOUR_MAIL_HERE in the Gmail node with your own address. (Optional) Change the model in the OpenAI Chat Model node. Default: gpt-4o-mini You can switch to gpt-5 or another available model if needed. Click Execute Workflow: test cases will run automatically. Check your inbox for the results. 🧠 Who it’s for AI safety testers and workflow developers n8n users experimenting with the Guardrails node Teams validating LLM moderation, filtering, or compliance setups 🧩 Requirements n8n v1.119+ Guardrails node enabled OpenAI credentials (optional but recommended) Email integration (Gmail or SendGrid) 💡 Why it’s useful Use this test suite to understand how accurately the Guardrails node identifies unsafe content across different categories. The generated metrics help you fine-tune thresholds, compare models, and strengthen AI moderation workflows. Example result
by WeblineIndia
Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existing records in Google Sheets. If a candidate's email is already found in the sheet, it sends an alert to Slack; otherwise, it adds the candidate to the sheet. Who’s it for HR and recruitment teams processing candidate emails manually Startups or SMEs handling job applications via Gmail Anyone who wants to automate resume collection and deduplication Teams using Slack and Google Workspace How it works Triggers every few minutes via the Schedule Trigger node Fetches recent emails labeled "applicant" from Gmail Extracts candidate details from the email body using regex Reads all existing rows from the Google Sheet Compares the candidate’s email with existing entries If duplicate → Sends a Slack alert If new → Appends to the Google Sheet How to set up Label candidate emails in Gmail with a label like applicant Connect Gmail, Google Sheets, and Slack credentials in n8n Create a Google Sheet with these columns: candidate_name, candidate_email, candidate_phone, role_applied, years_of_experience, recruiter, resume_url, source_email Import the workflow JSON Update: Gmail label ID Google Sheet ID Slack channel or user Activate the workflow Requirements n8n (self-hosted or cloud) Gmail account with access to labeled application emails Google Sheet to store candidates Slack account with chat:write scope Basic regex familiarity (optional) How to customize Change comparison logic to include phone numbers. Add fallback logic to check for similar names. Add filters for roles, experience levels. Forward resumes to Drive or Notion. Trigger an approval flow for screened candidates. Add‑ons Google Drive: Upload parsed resumes. Notion / Airtable: Store structured candidate records. Webhooks: Forward to ATS or CRM. PDF parsers: Extract data from attachments. Use Case Examples | Use Case | Description | | ------------------- | ----------------------------------------------------- | | Resume deduplication | Avoid processing the same applicant twice | | Auto Slack alert | Instantly notify recruiter of repeat candidates | | Centralized tracking | Keep candidate records in Sheets for filtering/export | | Passive sourcing | Run hourly checks on labeled Gmail inboxes | Common troubleshooting | Issue | Possible Cause | Solution | | ------------------------ | ------------------------------------------ | -------------------------------------------------------------- | | Slack message not sent | Invalid Slack token / channel not selected | Reauthorize Slack connection and select correct user/channel | | Google Sheet not updated | Sheet ID or tab name is incorrect | Double-check the Sheet URL and worksheet tab | | Email data not extracted | Email body format doesn’t match regex | Adjust regex in the "Code" node | | Nothing happens | Gmail label or date filter is too strict | Ensure emails exist with the right label in the last X minutes | Need Help? Need help setting it up or tweaking regex for your custom email format? We’re happy to help — just ask! Want to add phone number duplication checks or auto-resume upload to Google Drive? Our Automation team at WeblineIndia can guide you step-by-step.
by Intuz
This n8n template from Intuz provides a complete and automated solution for instant team-wide financial visibility. It actively monitors QuickBooks and, upon detecting a new invoice, immediately sends a detailed alert to your chosen Slack channel. For customized reporting, the workflow can pull specific keywords or data like the customer name, invoice amount, and due date directly into the Slack message, creating a complete, real-time feed of your company's sales activity. Use Cases Sales Team Visibility:** Instantly notify the sales channel when an invoice is generated for a deal they closed. Finance & Ops Sync:** Keep the finance team aware of all billing activities as they happen in a dedicated channel. Account Management:** Alert account managers when invoices are sent to their clients, allowing for proactive follow-up. Executive Dashboard:** Create a high-level #billing-feed channel for leadership to monitor revenue-generating activities in real time. How it Works 1. Instant Webhook Trigger: The workflow begins when an invoice is created or updated in QuickBooks. A configured webhook in your Intuit Developer Portal sends a real-time notification to n8n, instantly activating the flow. 2. Fetch Full Invoice Details: The initial webhook payload only contains a basic event notification. This node uses the invoice ID from that payload to query the QuickBooks API and retrieve the full invoice details, such as the customer's name, due date, and domain. 3. Format Key Data: A simple but essential Code node takes the raw data from QuickBooks and cleans it up. It extracts only the most important fields (ID, Domain, Customer Name, Due Date) and organizes them for the next step. 4. Send Slack Notification: The final node crafts a human-readable message and posts it to your chosen Slack channel. The message is dynamically populated with the invoice data, providing a clear and concise update for the whole team. For example: Invoice having ID: 160 having the Domain: QBO for the customer Rondonuwu Fruit and Vegi which is due on 2025-09-07 has been generated successfully. Setup Instructions To get this workflow running, follow these configuration steps: 1. Credentials: QuickBooks: Connect your QuickBooks account credentials to n8n. Slack: Connect your Slack account using OAuth2 credentials. 2. QuickBooks Webhook Configuration: First, activate this n8n workflow. This will make the webhook URL live. Copy the Production URL from the QuickBooks Webhook node. Log in to your Intuit Developer Portal, navigate to the webhooks section for your application, and paste the URL. Ensure you subscribe to Invoice events (e.g., Create, Update, etc.). 3. Node Configuration: Get an invoice: No configuration needed; it will automatically use your QuickBooks credentials. Send a message (Slack): In the parameters, select the Slack Channel where you want the notifications to be posted. Support If you need help setting up this workflow or require a custom version tailored to your specific use case, please feel free to reach out to the template author: Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Worflow Automation Click here- Get Started
by Oneclick AI Squad
This workflow automatically tracks shipments across multiple courier services, updates Google Sheets, and notifies customers via WhatsApp/Email when status changes. Good to know Runs daily at 9 AM and only sends notifications when shipment status actually changes API costs may apply for courier tracking (Delhivery, DHL) and WhatsApp notifications Requires Google Sheet with proper column structure and valid API credentials Currently supports Delhivery and DHL APIs but easily expandable How it works Daily Trigger**: Cron node runs workflow every day at 9 AM Get Shipments List**: Fetches all shipment data from Google Sheet Filter Active Shipments**: Excludes delivered orders and empty tracking numbers Route by Courier**: Directs shipments to appropriate API (Delhivery or DHL) Track via APIs**: Makes real-time tracking calls to courier services Parse Tracking Data**: Normalizes different API responses and detects status changes Check Status Change**: Only processes shipments with actual status updates Update & Notify**: Simultaneously updates Google Sheet, sends WhatsApp message, and email notification Execution Summary**: Logs workflow performance metrics How to use Import the JSON workflow into n8n Create Google Sheet with columns: tracking_number, order_id, customer_email, customer_phone, courier, status, location, last_updated, estimated_delivery Configure credentials: Google Sheets OAuth2, Delhivery API, DHL API, WhatsApp API, SMTP Replace YOUR_GOOGLE_SHEET_ID with actual sheet ID Test workflow manually before enabling daily schedule Requirements Google Sheets API access Courier API keys (Delhivery, DHL) WhatsApp Business API credentials SMTP email service n8n instance (self-hosted or cloud) Customizing this workflow Add courier services**: Create new HTTP Request node and update routing logic Change frequency**: Modify cron expression (hourly: 0 * * * *, twice daily: 0 9,17 * * *) Customize notifications**: Edit WhatsApp/Email templates in respective nodes Add CRM integration**: Insert CRM update node after status change detection
by Rapiwa
Who is this for? This workflow is for online store owners, support teams, and marketing staff who want to automatically verify WhatsApp numbers and send order invoice links or personalized order updates to customers. It’s built against WooCommerce order webhooks but can be adapted to Shopify or other e-commerce platforms that provide billing and line_items. What this Workflow Does Receives order events (Webhook / WooCommerce order.updated). Normalizes the payload into a compact object: { data: { customer, products, invoice_link } } via a Code node. Iterates items in batches (SplitInBatches) to control throughput. Cleans phone numbers (removes non-digits) and verifies WhatsApp registration using Rapiwa (/api/verify-whatsapp). Sends templated WhatsApp messages through Rapiwa (/api/send-message) for verified numbers. Logs every attempt into Google Sheets: one sheet for verified & sent rows, another for unverified & not sent rows. Uses a Wait node to throttle and loop back into the batch processor. Key Features Trigger-based automation (Webhook or WooCommerce trigger). Payload normalization and mapping via JavaScript Code nodes. Controlled batching (SplitInBatches) to avoid rate limits. Pre-send verification of WhatsApp numbers using Rapiwa. Conditional branching with the IF node to separate verified vs unverified flows. Personalized message templates that pull customer and product fields from the mapped data. Logging and audit trail stored in Google Sheets (two separate append flows). How to Use — Step-by-step Setup Add credentials in n8n Rapiwa: Create an HTTP Bearer credential and paste your Bearer token (example name used in the flow: Rapiwa Bearer Auth). Google Sheets: Create an OAuth2 credential (example: Google Sheets). WooCommerce: Add WooCommerce API credentials for the trigger (or configure Shopify credentials if adapting). Import / configure nodes in n8n Webhook (or WooCommerce Trigger): receive order payloads. Example Webhook path is present in the exported flow. Code node Format Webhook Response Data: map body.billing, body.line_items, body.payment_url into { data: { customer, products, invoice_link } }. Code node Clean WhatsApp Number: ensure the phone number is a string and strip non-digits: String(rawNumber).replace(/\D/g, ""). HTTP Request Check valid whatsapp number Using Rapiwa: POST to https://app.rapiwa.com/api/verify-whatsapp with { number }. Use the Rapiwa Bearer credential. IF If: check verification result. The flow compares {{$json.data.exists}} to "true" in the exported flow; normalize types if your API returns booleans. HTTP Request Rapiwa Sender: POST to https://app.rapiwa.com/api/send-message with number, message_type: 'text', and a templated message (see message template in the flow). Google Sheets Store State of Rows in Verified & Sent and Store State of Rows in Unverified & Not Sent Google Sheet Column Structure Create these columns exactly (the Google Sheets nodes in the flow expect these names): A Google Sheet formatted like this ➤ sample | Name | Number | Email | Address | Product Title | Product ID | Size | Quantity | Total Price | Product Image | Invoice Link | Product Status | Validity | Status | |-----------------|---------------|-------------------|--------------|------------------------------------------------|------------|------|----------|----------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|----------------|------------|----------| | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | unverified | not sent | Customization Ideas Adapt the Code mapping node for Shopify payloads or other marketplaces. Iterate and include multiple products in the message instead of using products[0]. Add filters in the Code node (e.g., only process orders with total > 5000). Add fallback channels (SMS or email) for unverified numbers. Persist logs into a database for analytics and retention beyond Google Sheets. Add admin notifications (Slack, email) at the end of each run. Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Daniel Shashko
How it Works This workflow automatically monitors your Google Ads campaigns every day, analyzing performance with AI-powered scoring to identify scaling opportunities and catch issues before they drain your budget. Each morning at 9 AM, it fetches all active campaign data including clicks, impressions, conversions, costs, and conversion rates from your Google Ads account. The AI analysis engine evaluates four critical dimensions: CTR (click-through rate) to measure ad relevance, conversion rate to assess landing page effectiveness, cost per conversion to evaluate profitability, and traffic volume to identify scale-readiness. Each campaign receives a performance score (0-100 points) and is automatically categorized as Excellent (75+), Good (55-74), Fair (35-54), or Underperforming (0-34). High-performing campaigns trigger instant Slack alerts to your PPC team with detailed scaling recommendations and projected ROI improvements, while underperforming campaigns generate urgent alerts with specific optimization actions. Every campaign is logged to your Google Sheets dashboard with daily metrics, and the system generates personalized email reports—action-oriented scaling plans for top performers and troubleshooting guides for campaigns needing attention. The entire analysis takes minutes, providing your team with daily intelligence reports that would otherwise require hours of manual spreadsheet work and data analysis. Who is this for? PPC managers and paid media specialists drowning in campaign data and manual reporting Marketing agencies managing multiple client accounts needing automated performance monitoring E-commerce brands running high-spend campaigns who can't afford budget waste Growth teams looking to scale winners faster and pause losers immediately Anyone spending $5K+ monthly on Google Ads who needs data-driven optimization decisions Setup Steps Setup time:** Approx. 15-25 minutes (credential configuration, dashboard setup, alert customization) Requirements:** Google Ads account with active campaigns Google account with a tracking spreadsheet Slack workspace SMTP email provider (Gmail, SendGrid, etc.) Create a Google Sheets dashboard with two tabs: "Daily Performance" and "Campaign Log" with appropriate column headers. Set up these nodes: Schedule Daily Check: Pre-configured to run at 9 AM daily (adjust timing if needed). Fetch Google Ads Data: Connect your Google Ads account and authorize API access. AI Performance Analysis: Review scoring thresholds (CTR, conversion rate, cost benchmarks). Route by Performance: Automatically splits campaigns into high-performers vs. issues. Update Campaign Dashboard: Connect Google Sheets and select your "Daily Performance" tab. Log All Campaigns: Select your "Campaign Log" tab for historical tracking. Slack Alerts: Connect workspace and configure separate channels for scaling opportunities and performance issues. Generate Action Plan: Customize email templates with your brand voice and action items. Email Performance Report: Configure SMTP and set recipient email addresses. Credentials must be entered into their respective nodes for successful execution. Customization Guidance Scoring Weights:** Adjust point values for CTR (30), conversion rate (35), cost efficiency (25), and volume (10) in the AI Performance Analysis node based on your business priorities. Performance Thresholds:** Modify the 75-point Excellent threshold and 55-point Good threshold to match your campaign quality distribution and industry benchmarks. Benchmark Values:** Update CTR benchmarks (5% excellent, 3% good, 1.5% average) and conversion rate targets (10%, 5%, 2%) for your industry. Alert Channels:** Create separate Slack channels for different alert types or route critical alerts to Microsoft Teams, Discord, or SMS via Twilio. Email Recipients:** Configure different recipient lists for scaling alerts (executives, growth team) vs. optimization alerts (campaign managers). Schedule Frequency:** Change from daily to hourly monitoring for high-spend campaigns, or weekly for smaller accounts. Additional Platforms:** Duplicate the workflow structure for Facebook Ads, Microsoft Ads, or LinkedIn Ads with platform-specific nodes. Budget Controls:** Add nodes to automatically pause campaigns exceeding cost thresholds or adjust bids based on performance scores. Once configured, this workflow will continuously monitor your ad spend, identify opportunities worth thousands in additional revenue, and alert you to issues before they waste your budget—transforming manual reporting into automated intelligence. Built by Daniel Shashko Connect on LinkedIn
by vinci-king-01
How it works This workflow automatically processes bank statements from various formats and extracts structured transaction data with intelligent categorization using AI. Key Steps File Upload - Accepts bank statements via webhook upload (PDF, Excel, CSV formats). Smart Format Detection - Automatically routes files to appropriate processors (PDF text extraction or spreadsheet parsing). AI-Powered Extraction - Uses GPT-4 to extract account details, transactions, and balances from statement data. Data Processing & Categorization - Cleans, validates, and automatically categorizes transactions into expense categories. Database Storage - Saves processed data to PostgreSQL database for analysis and reporting. API Response - Returns structured summary with transaction counts, expense totals, and category breakdowns. Set up steps Setup time: 8-12 minutes Configure OpenAI credentials - Add your OpenAI API key for AI-powered data extraction. Set up PostgreSQL database - Connect your PostgreSQL database and create the required table structure. Configure webhook endpoint - The workflow provides a /upload-statement endpoint for file uploads. Customize transaction categories - Modify the AI prompt to include your preferred expense categories. Test the workflow - Upload a sample bank statement to verify the extraction and categorization process. Set up database table - Ensure your PostgreSQL database has a bank_statements table with appropriate columns. Features Multi-format support**: PDF, Excel, CSV bank statements AI-powered extraction**: GPT-4 extracts account details and transactions Automatic categorization**: Expenses categorized as groceries, dining, gas, shopping, utilities, healthcare, entertainment, income, fees, or other Data validation**: Cleans and validates transaction data with error handling Database storage**: PostgreSQL integration for data persistence API responses**: Clean JSON responses with transaction summaries and category breakdowns Smart routing**: Automatic format detection and appropriate processing paths
by Intuz
This n8n template from Intuz delivers a complete and automated solution to streamline your development workflow for a single repository. By embedding specific keywords and a JIRA issue ID within your git commit commands, this workflow automatically creates a Pull Request in GitHub and simultaneously updates the corresponding JIRA ticket. This provides a complete, seamless integration that eliminates manual steps and keeps your project management perfectly in sync with your codebase. How it works This workflow acts as a powerful bridge between your Git repository and your project management tools, driven entirely by the structure of your commit messages. GitHub Webhook Trigger: The workflow starts when a developer pushes a new commit to a specified repository in GitHub. Parse Commit Message: A Code node extracts key information from the commit message: The JIRA Issue Key (e.g., FF-1196). The base branch for the PR (e.g., development). Action commands like [auto-pr] and [taskcompleted]. Conditional PR Creation: An IF node checks if the [auto-pr] command is present. If yes, it uses the GitHub node to automatically create a pull request from the developer's branch to the specified base branch. If no, this step is skipped, allowing for multiple commits before a PR is made. Conditional JIRA Update: Another IF node checks for the [taskcompleted] command. If yes, it uses the JIRA node to transition the corresponding issue to your "Done" status (e.g., "Task Completed" or "In Review"). If no, the JIRA issue remains in its current state, perfect for work-in-progress commits. How to Use: Quick Start Guide Click the "Use Template" button to import this workflow into your n8n instance. Configure the GitHub Trigger: Open the "GitHub Push Trigger" node. It will display a unique Webhook URL. Copy this URL. In your GitHub repository, go to Settings > Webhooks > Add webhook. Paste the URL into the Payload URL field. Set the Content type to application/json. Under "Which events would you like to trigger this webhook?", select Just the push event. Click Add webhook. Connect Your Accounts: GitHub: Select your GitHub API credential in the "Create Pull Request" node. JIRA : Select your JIRA API credential in the "Update JIRA Issue Status" node. Customize the JIRA Transition (Important): Open the "Update JIRA Issue Status" node. In the Transition parameter, you need to set the specific status you want to move the issue to (e.g., 'Done', 'Completed', 'In Review'). You can use the ID or the exact name of the transition from your JIRA project's workflow. Activate the Workflow: Save your changes and activate the workflow. You're ready to automate! Example Commit Message: git commit -m "FF-1196 Implement OAuth login [auto-pr,development,taskcompleted]" Key Requirements to Use Template An active n8n instance. A GitHub account with repository admin permissions to create webhooks. A JIRA Cloud account with permissions to update issues. Developers who can follow the specified git commit message format. Connect with us Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Worflow Automation Click here- Get Started