by Intuz
This n8n template from Intuz provides a complete solution to automate your expense approval and accounting process. It seamlessly connects an Airtable base, where expenses are submitted, to your QuickBooks account, eliminating manual data entry and ensuring financial records are always up-to-date. Who's this workflow for? Accountants & Bookkeepers Small Business Owners Finance Teams Operations Managers How it works 1. Trigger on New Expense: The workflow starts automatically when a new expense record is added to your Airtable base. 2. Filter for Approval: It checks if the expense's Status field is marked as "Approved". Unapproved items are ignored. 3. Create Expense in QuickBooks: For every approved item, the workflow creates a new expense record in QuickBooks, mapping data like amount, date, vendor, and accounts directly from Airtable. 4. Download and Upload Receipt: It downloads the receipt from the URL provided in Airtable and uploads it as an attachment to the corresponding expense record in QuickBooks. 5. Update Airtable Status: Once the expense and receipt are successfully logged in QuickBooks, the workflow updates the record's Status in Airtable to "Done", closing the loop. Setup Instructions 1. Airtable Configuration: Create an Airtable base with a table for your expenses. Ensure your table includes the following columns: Status, Receipt URL, Amount, Date, Memo, QBO Vendor ID, QBO Expense Account ID, and QBO Payment Account ID. Connect your Airtable account to n8n. In the Airtable Trigger, Search records, and Update record nodes, select your credentials and specify your Base ID and Table ID. 2. QuickBooks Configuration: Connect your QuickBooks account to n8n using OAuth2 credentials. In the QBO-Create Expense and QBO-Upload File nodes, replace {YOUR_QUICKBOOKS_COMPANY_ID} in the URL with your actual QuickBooks Company ID. Ensure the Vendor ID and Account IDs in your Airtable records correspond to valid IDs in your QuickBooks account. 3. Activate Workflow: Save the workflow and toggle the "Active" switch to ON. Your expense management is now fully automated! 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
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. How It Works This workflow listens for new or updated customers and for checkout confirmations in Stripe and automatically creates or updates contacts in KlickTipp, enriching profiles for segmentation and automated messaging. Tags are applied dynamically: high-value orders (≥100) get a Premium Customer tag, and purchases with certain SKUs (e.g., clothing) receive product-based tags. The process keeps your database clean, accurate, and updated in real time for targeted campaigns. Perfect for digital product sellers, course creators, and service providers seeking an end-to-end automated sales confirmation process. Setup Instructions KlickTipp Preparation Prepare custom fields Products (Text) Total (Decimal Number) Payment ID (Text) Receipt URL (URL) Prepare tags: Premium customer Clothing buyer Credential Configuration Connect your Stripe account using an API key from the Stripe Dashboard. Authenticate your KlickTipp connection with username/password credentials (API access required). Customization Launch upsell or membership campaigns using tags. Use KlickTipp placeholders ([[Stripe | Products]], [[Stripe | Total]], etc.) for dynamic emails. Route buyers to portals (e.g., Memberspot, Mentortools). Trigger CRM, Slack notification, or invoice creation.
by Jaures NYA
This workflow automates the process of scraping local business listings from Google Maps and generating clean, AI-powered summaries for each one — using Apify (community node) and OpenAI’s GPT-4o. All results are then saved automatically into Google Sheets, ready for lead generation, enrichment, or outreach. What it does This workflow saves hours of manual research by automatically: Scraping structured business data from Google Maps (name, category, address, phone, website, etc.) Creating natural-language summaries for each business using GPT-4o Storing everything into Google Sheets — perfectly formatted for outreach or CRM import Who’s it for This automation is ideal for: Lead generators and sales teams building B2B lists from local businesses Freelancers and agencies prospecting new clients in specific cities or industries Recruiters or marketers looking to enrich business data for campaigns Automation enthusiasts who want to summarize and structure raw scraped data — without writing a single line of code How it works Trigger: The workflow starts manually via the Execute Workflow trigger (ideal for testing or batch runs). Scrape: It uses an Apify actor to scrape Google Maps search results and collect structured business info (name, category, address, phone, website, Google Maps URL...). Fetch Data: The dataset is retrieved from Apify using the actor's dataset ID, and each business is loaded for processing. Deduplicate: Removes duplicate business listings to keep your database clean. Loop Over: Iterates over each business to generate a clean summary, one at a time. Generate Summary: Sends the business data to OpenAI to generate a human-readable paragraph (including name, category, address, city, phone, and Google Maps link). Store: Appends the summarized info into a Google Sheet — your final lead database. Pause for rate limit: Adds a short delay (optional) to control flow or avoid rate limits. Customization Tips Change the Apify search query to target different cities, industries, or keywords. Adjust the OpenAI prompt to include tone, length, or focus areas (e.g., add business highlights). Add filters (e.g., add-on: reviews, add-on: images, etc.). Setup Guide Apify Setup Use a Google Maps scraping actor in Apify. Copy your Actor ID and Token — add them to your Apify node in n8n. Note your Dataset ID (where results are stored). OpenAI Setup Add your OpenAI API key to the Generate Summary node. The model gpt-4o is recommended for best quality/cost balance. Google Sheets Setup Connect your Google account. How to use Set up your Apify actor for Google Maps scraping (or use a prebuilt one). Connect your OpenAI API key to the Message node (company summary). Connect your Google Sheets account and select the target sheet. Run the workflow → it will: 1 Scrape business data 2 Clean and summarize each one 3 Save everything to your spreadsheet. Requirements ✅ A working Apify actor that scrapes Google Maps listings ✅ An OpenAI account (GPT-4) with API access ✅ A Google Sheet for storing the summarized results ❓ Need help Contact me for consulting and support: LinkedIn / YouTube / Skool
by Ossian Madisson
This n8n template allows you to, on a schedule, list all files that have been modified since the last execution in a Google Drive folder and in all its subfolders While Google Drive is accessible and easy to use, file listings via API are limited to either all files in the entire Drive or all files in a specific folder. This also means that the n8n triggers for Google Drive are limited to changes to a specific file or folder. This template is built to replace the built-in trigger nodes in the situations when you need to trigger on new or changed files in a folder or any of its subfolders. Use cases Trigger a RAG pipeline to update with new or updated documents Push newly uploaded or updated documents into CMS, project management tool or other external platform Log changes to build an audit trail Trigger a backup job or sync process only for files that have changed since the last run, saving bandwidth and processing time. Notify team or client about new documents Can also be run without the scheduling part to perform a one-time iteration of all files Good to know Works well if you attach a loop node to the "output node" to run additional actions on the files The workflow is designed to use a minimal amount of custom code, preferring built-in nodes in n8n Does not identify file removals How it works Recursively executes a subworkflow for each folder in the main folder Each subworkflow execution sends a list of all files in the folder to an "output node" that checks if the files was created or modified since the last execution When all subworkflows have been executed, the files in the main folder are sent to the "output node" A persistent variable (time of trigger node activation) is set for timestamp comparison on the next execution (this is only set on non-manually triggered active workflow executions) How to use Set schedule interval in the trigger node (default every 60min) Add Google Drive credentials to the four Google Drive nodes Define your main/root folder in the two nodes inside the red box Connect your workflow to process the files after the node in the yellow box, please note that there will be "one output" per folder
by Lorena
This workflow imports a JSON file from an email attachment and saves the content into a spreadsheet.
by Sk developer
📊 TikTok Account Monitoring Automation This n8n workflow automates the daily process of fetching TikTok account analytics using the TikTok API and logging the results to Google Sheets. It helps marketing teams, social media managers, and influencer agencies track video performance and audience growth across multiple TikTok usernames without manual effort. 🔁 Workflow Summary ⏰ Trigger via Schedule The workflow runs automatically every day (or any custom interval), ensuring data is consistently updated without manual input. 📥 Sheet 1 – Read TikTok Usernames A Google Sheet stores the list of TikTok usernames you want to monitor. ✅ Example Columns: username category priority notes 🔁 Loop Through Each Username Each username is processed individually in a loop to make separate API calls and avoid data conflicts. 📡 Fetch Analytics via RapidAPI The following TikTok API endpoint is used: POST https://tiktok-api42.p.rapidapi.com/videos_view_count.php You get per-user stats like: Number of videos Total views Recent video views This endpoint is highly stable and works without TikTok login or auth. 📤 Sheet 2 – Append Analytics Results Fetched data is logged in another Google Sheet for performance tracking. ✅ Example Columns: username total_videos total_views average_views fetch_date category 📦 Sheet 3 – Log API History or Errors A third sheet stores logs of API fetch status, failures, or skipped usernames for debugging. ✅ Example Columns: username status (e.g., success, failed, skipped) message timestamp 🔐 RapidAPI Notes You must have an API key from TikTok API All requests are made to https://tiktok-api42.p.rapidapi.com The main endpoint in use is: POST https://tiktok-api42.p.rapidapi.com/videos_view_count.php Each request uses POST with params like username, region, number The response is JSON and easy to parse in n8n workflows 📌 Optional Extensions (Same API, More Insights) This same TikTok API also supports other advanced endpoints that can be added to enrich your workflow: | Endpoint Name | Functionality | |---------------------------|------------------------------------------------------------------| | User Profile Data | Get bio, profile image, followers, likes, etc. | | User Account Stats | Extract detailed user metrics (likes, comments, shares) | | User Audience Stats | Know where their followers are from and gender split | | Historical Data | Track historical performance trends (useful for growth charts) | | HashTags Scraper | Find trending or related hashtags used by the user | | Related User Info | Suggest accounts similar to the one queried | | Videos Views Counts | Already used to get view stats for multiple videos | Each of these can be added using HTTP Request nodes in n8n and plugged into the same sheet or separate ones. ✅ Benefits 🔄 Fully Automated: No manual copy-paste or login required 📊 Centralized Analytics: Track all creators or clients in one dashboard 📈 Performance Insights: Daily growth visibility with historical tracking 📤 Data Export Ready: Stored in Google Sheets for easy share/report/export 🔧 Scalable & Flexible: Add hashtags, followers, or audience demographics 🧠 Use Cases Influencer Agencies** tracking clients' TikTok growth daily Brands running UGC Campaigns** who want to monitor video traction Analysts** building dashboards from Sheet-to-DataStudio/Looker Marketers** analyzing viral trends or creators across niches 📌 Final Note This workflow is extendable. You can: Merge multiple endpoints per user Schedule it weekly or monthly Send email summaries Push to Slack or Google Data Studio > API Used in this workflow: > TikTok API
by Harshil Agrawal
Get your contributors GitHub information with a slash command in your Slack Workspace.
by Harshil Agrawal
Store the data received from the CocktailDB API in JSON
by emmanuelchilaka779
Gather leads into Mailchimp, automate marketing, and sales process.
by Harshil Agrawal
This workflow allows you to receive messages from a queue via RabbitMQ and send an SMS.
by Automate With Marc
🚀 GPT-5 + Veo-3 Instagram Reel Auto-Creator & Auto-Poster Description: This n8n workflow is a fully automated short-form video content engine that takes your creative idea, turns it into a cinematic video using Google Veo-3 via Wavespeed API, writes an engaging Instagram caption with GPT-5, and instantly posts it to Instagram via Postiz—all without lifting a finger. It’s designed for content creators, social media managers, and brands who want to produce high-quality, on-brand reels at scale without manual editing or posting. Watch Step-by-step build: www.youtube.com/@automatewithmarc 💡 Key Features: 💬 Chat-Triggered Automation (You can replace this with On Schedule trigger for automated generation) – Start the workflow with a simple message describing your video idea. 🧠 GPT-5 Video Prompt Agent – Transforms your concept into a visually rich, cinematic prompt optimized for Veo-3. 🎥 Veo-3 AI Video Generation – Creates a polished short-form reel with cinematic motion, effects, and branding. ✍️ GPT-5 Caption Writer – Crafts an impactful, scroll-stopping caption tailored for Instagram engagement. 📤 Auto-Posting with Postiz – Uploads and schedules (or instantly posts) your reel to Instagram without manual steps. ⏳ Automated Progress Checking – Wait & retry logic ensures posting only happens when the video is fully generated. 🔧 Tech Stack: GPT-5 via OpenAI API – AI for prompt engineering & caption creation. Google Veo-3 (via Wavespeed API) – Next-gen text-to-video model for short-form content. Postiz API – Multi-platform social media posting automation. n8n – Orchestration & automation engine. 📌 Ideal Use Cases: Instagram Reels / TikTok Creators who want to post daily without editing. Fitness, Fashion, Travel & Lifestyle Brands looking for high-quality, thematic reels. Social Media Agencies producing client content at scale. Event Marketers creating same-day recap videos. 🛠 Setup Instructions: Add your API keys for OpenAI (GPT-5), Wavespeed (Veo-3), and Postiz. Connect Postiz to your Instagram account. Trigger the workflow with a chat message describing your desired video. Watch your idea transform into a reel—fully captioned and posted automatically. 🎯 Why This Workflow Stands Out: End-to-end automation from idea → video → caption → Instagram post. AI-driven creative consistency for brand identity. Scales your content production without hiring editors. SEO & engagement-ready captions crafted for social virality.
by phil
This workflow automates the update of Yoast SEO metadata for a specific post or product on a WordPress or WooCommerce site. It sends a POST request to a custom API endpoint exposed by the Yoast SEO API Manager plugin, allowing for programmatic changes to the SEO title and meta description. Bulk version available here. Prerequisites A WordPress site with administrator access. The Yoast SEO plugin installed and activated. The Yoast SEO API Manager companion plugin installed and activated to expose the required API endpoint. WordPress credentials configured within your n8n instance. Setup Steps Configure the Settings Node: In the Settings node, replace the value of the wordpress URL variable with the full URL of your WordPress site (e.g., https://your-domain.com/). Set Credentials: In the HTTP Request - Update Yoast Meta node, select your pre-configured WordPress credentials from the Credential for WordPress API dropdown menu. Define Target and Content: In the same HTTP Request node, navigate to the Body Parameters section and update the following values: post_id: The ID of the WordPress post or WooCommerce product you wish to update. yoast_title: The new SEO title. yoast_description: The new meta description. How It Works Manual Trigger: The workflow is initiated manually. This can be replaced by any trigger node for full automation. Settings Node: This node defines the base URL of the target WordPress instance. This centralizes the configuration, making it easier to manage. HTTP Request Node: This is the core component. It constructs and sends a POST request to the /wp-json/yoast-api/v1/update-meta endpoint. The request body contains the post_id and the new metadata, and it authenticates using the selected n8n WordPress credentials. Customization Guide Dynamic Inputs**: To update posts dynamically, replace the static values in the HTTP Request node with n8n expressions. For example, you can use data from a Google Sheets node by setting the post_id value to an expression like {{ $json.column_name }}. Update Additional Fields: The underlying API may support updating other Yoast fields. Consult the **Yoast SEO API Manager plugin's documentation to identify other available parameters (e.g., yoast_canonical_url) and add them to the Body Parameters section of the HTTP Request node. Change the Trigger**: Replace the When clicking ‘Test workflow’ node with any other trigger node to fit your use case, such as: Schedule: To run the update on a recurring basis. Webhook: To trigger the update from an external service. Google Sheets: To trigger the workflow whenever a row is added or updated in a specific sheet. Yoast SEO API Manager Plugin for WordPress // ATTENTION: Replace the line below with <?php - This is necessary due to display constraints in web interfaces. <?php /** Plugin Name: Yoast SEO API Manager v1.2 Description: Manages the update of Yoast metadata (SEO Title, Meta Description) via a dedicated REST API endpoint. Version: 1.2 Author: Phil - https://inforeole.fr (Adapted by Expert n8n) */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Yoast_API_Manager { public function __construct() { add_action('rest_api_init', [$this, 'register_api_routes']); } /** Registers the REST API route to update Yoast meta fields. */ public function register_api_routes() { register_rest_route( 'yoast-api/v1', '/update-meta', [ 'methods' => 'POST', 'callback' => [$this, 'update_yoast_meta'], 'permission_callback' => [$this, 'check_route_permission'], 'args' => [ 'post_id' => [ 'required' => true, 'validate_callback' => function( $param ) { $post = get_post( (int) $param ); if ( ! $post ) { return false; } $allowed_post_types = class_exists('WooCommerce') ? ['post', 'product'] : ['post']; return in_array($post->post_type, $allowed_post_types, true); }, 'sanitize_callback' => 'absint', ], 'yoast_title' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], 'yoast_description' => [ 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', ], ], ] ); } /** Updates the Yoast meta fields for a specific post. * @param WP_REST_Request $request The REST API request instance. @return WP_REST_Response|WP_Error Response object on success, or WP_Error on failure. */ public function update_yoast_meta( WP_REST_Request $request ) { $post_id = $request->get_param('post_id'); if ( ! current_user_can('edit_post', $post_id) ) { return new WP_Error( 'rest_forbidden', 'You do not have permission to edit this post.', ['status' => 403] ); } // Map API parameters to Yoast database meta keys $fields_map = [ 'yoast_title' => '_yoast_wpseo_title', 'yoast_description' => '_yoast_wpseo_metadesc', ]; $results = []; $updated = false; foreach ( $fields_map as $param_name => $meta_key ) { if ( $request->has_param( $param_name ) ) { $value = $request->get_param( $param_name ); update_post_meta( $post_id, $meta_key, $value ); $results[$param_name] = 'updated'; $updated = true; } } if ( ! $updated ) { return new WP_Error( 'no_fields_provided', 'No Yoast fields were provided for update.', ['status' => 400] ); } return new WP_REST_Response( $results, 200 ); } /** Checks if the current user has permission to access the REST API route. * @return bool */ public function check_route_permission() { return current_user_can( 'edit_posts' ); } } new Yoast_API_Manager(); Bulk version available here : this bulk version, provided with a dedicated WordPress plugin, allows you to generate and bulk-update meta titles and descriptions for multiple articles simultaneously using artificial intelligence. It automates the entire process, from article selection to the final update in Yoast, offering considerable time savings. . Phil | Inforeole