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 Kirill Khatkevich
This workflow is a production-ready Meta Ads Webhook dispatcher for the Ad Account object. It receives webhook deliveries from Meta, returns the required acknowledgement, routes events by field, logs them to Google Sheets (separate tabs per event type), and sends a compact Slack notification with counts. Use Case Meta webhooks are powerful, but the “last mile” is usually missing: storing raw events, making them readable, and triggering the next automation reliably. This workflow is ideal if you want to: Centralize all Meta Ads webhook events** in one place (one endpoint, one workflow). Log every event** for auditing and analysis (Google Sheets). Get lightweight alerts** in Slack (count-based, not spammy). Trigger downstream workflows** depending on the webhook type (e.g., Creative Fatigue → replace creatives in the affected ad set). How it Works The workflow is organized into clear blocks: 1. Webhook endpoint + verification A Webhook trigger receives requests from Meta. The workflow detects verification requests (hub.mode=subscribe) and validates the Verify Token. It responds with the hub.challenge value so you can successfully subscribe your webhook in Facebook Developers. 2. Route by event field For real webhook deliveries (object=ad_account), the workflow routes execution by: creative_fatigue ad_recommendations ads_async_creation_request in_process_ad_objects product_set_issue with_issues_ad_objects 3. Acknowledge every webhook delivery For each branch, the workflow immediately returns a JSON acknowledgement (e.g., { "status": "received", "field": "...", "webhook_type": "..." }), so Meta considers the delivery successful. 4. Normalize + log to Google Sheets The workflow splits array payloads (Meta can send multiple entry items and multiple changes). Each event type is appended to its own Google Sheets tab (one spreadsheet, multiple sheets), with the raw webhook body also saved for future debugging. 5. Summarize + notify All event logs are merged and summarized to compute a compact count per field. A Slack node sends a short message like “New Meta Webhook / Type / Count” with a link to the spreadsheet. Setup Instructions 1. Create and configure a Meta app Create an app in Facebook Developers. Add the Webhooks product. Subscribe to the Ad Account object. Configure: Callback URL (your n8n webhook URL) Verify Token (must match the value in the workflow) 2. Configure the Webhook node Set the webhook path. Use the Production URL when you go live. 3. Connect credentials Connect Google Sheets OAuth credentials in all Google Sheets nodes. Connect Slack credentials and choose your target channel. 4. Update Google Sheets destinations Set your Spreadsheet ID and ensure the expected sheet tabs exist (one per supported webhook field). 5. Activate Save and activate the workflow. Trigger a verification request from Facebook Developers to confirm everything is wired correctly. Testing To test the dispatcher before going live, use the open-source tool: meta-ads-webhook-tester. Further Ideas & Customization Add Telegram**: duplicate the Slack notification step and send the same summary message to Telegram. Trigger automations**: after routing by field, execute another workflow (e.g., Creative Fatigue → fetch affected ad set → rotate creatives). Hardening**: add de-duplication (event IDs), retries, and a dead-letter/error sheet tab for failed log writes.
by Yasser Sami
AI SEO Content Strategy: Competitor Topical Map Generator Crush your competition's SEO strategy by visualizing their entire content architecture in seconds. The AI SEO Content Strategy: Competitor Topical Map Generator workflow automates the "topical mapping" process—a task that usually takes SEO specialists hours of manual scraping and categorization. By analyzing a competitor's blog URL, it uses Gemini 2.5 Flash and Olostep to reverse-engineer their content hubs, identify weak points in their coverage, and provide you with a ready-to-execute "spoke-and-hub" content plan to overtake them in search rankings. Who’s it for? SEO Specialists:** Perform deep competitive analysis without manual spreadsheet work. Content Strategists:** Identify "Content Gaps" where competitors are under-investing. Niche Site Owners:** Build topical authority quickly by mapping out the most successful hubs in your industry. Digital Agencies:** Provide instant, high-value content audits for prospective clients. How it works / What it does Trigger: Provide a competitor's blog URL through an n8n Form. Scrape: The Olostep node extracts all published article titles from the site. Pillar Analysis: Gemini analyzes the raw titles and clusters them into 8-12 high-level "Pillar Topics" (content hubs). Strategic Gap Discovery: A specialized "Strategy Director" node identifies the two thinnest content clusters that are critical for enterprise growth. Execution Plan: For each identified gap, the AI suggests a definitive pillar guide title and multiple "spoke" article ideas to fill the void. Data Logging: The entire map—including pillars, competitor article counts, and your new suggested content plan—is saved to a Google Sheet for easy tracking. How to set up Credentials: Connect your Google Gemini (PaLM), Olostep, and Google Sheets credentials. Google Sheet Setup: Prepare a spreadsheet with headers for pillars, articleTitles, lowest Article Count Piller, count, gap_summary, pillar_article_suggestion, and spoke_articles_suggested. Form Trigger: Activate the workflow to get your public submission link. Requirements Google Gemini API:** For advanced semantic clustering and strategic content ideation. Olostep API:** To handle high-volume scraping of blog indices and article lists. Google Sheets (OAuth2):** To store the final topical map and strategy report. How to customize the workflow Scale the Analysis:* Modify the *Strategy Director** prompt to identify more than two gaps if you are planning a long-term content roadmap. Target Different Sites:* While optimized for blogs, you can adjust the *Olostep** task to scrape product categories or documentation hubs. Project Management Integration:* Replace the Google Sheets node with *ClickUp, **Notion, or Trello to automatically turn the AI's content suggestions into actionable tasks for your writing team.
by Marth
How It Works: The 5-Node Monitoring Flow This concise workflow efficiently captures, filters, and delivers crucial cybersecurity-related mentions. 1. Monitor: Cybersecurity Keywords (X/Twitter Trigger) This is the entry point of your workflow. It actively searches X (formerly Twitter) for tweets containing the specific keywords you define. Function:** Continuously polls X for tweets that match your specified queries (e.g., your company name, "Log4j," "CVE-2024-XXXX," "ransomware"). Process:** As soon as a matching tweet is found, it triggers the workflow to begin processing that information. 2. Format Notification (Code Node) This node prepares the raw tweet data, transforming it into a clean, actionable message for your alerts. Function:** Extracts key details from the raw tweet and structures them into a clear, concise message. Process:** It pulls out the tweet's text, the user's handle (@screen_name), and the direct URL to the tweet. These pieces are then combined into a user-friendly notificationMessage. You can also include basic filtering logic here if needed. 3. Valid Mention? (If Node) This node acts as a quick filter to help reduce noise and prevent irrelevant alerts from reaching your team. Function:** Serves as a simple conditional check to validate the mention's relevance. Process:** It evaluates the notificationMessage against specific criteria (e.g., ensuring it doesn't contain common spam words like "bot"). If the mention passes this basic validation, the workflow continues. Otherwise, it quietly ends for that particular tweet. 4. Send Notification (Slack Node) This is the delivery mechanism for your alerts, ensuring your team receives instant, visible notifications. Function:** Delivers the formatted alert message directly to your designated communication channel. Process:* The notificationMessage is sent straight to your specified *Slack channel** (e.g., #cyber-alerts or #security-ops). 5. End Workflow (No-Op Node) This node simply marks the successful completion of the workflow's execution path. Function:** Indicates the end of the workflow's process for a given trigger. How to Set Up Implementing this simple cybersecurity monitor in your n8n instance is quick and straightforward. 1. Prepare Your Credentials Before building the workflow, ensure all necessary accounts are set up and their respective credentials are ready for n8n. X (Twitter) API:* You'll need an X (Twitter) developer account to create an application and obtain your Consumer Key/Secret and Access Token/Secret. Use these to set up your *Twitter credential** in n8n. Slack API:* Set up your *Slack credential* in n8n. You'll also need the *Channel ID** of the Slack channel where you want your security alerts to be posted (e.g., #security-alerts or #it-ops). 2. Import the Workflow JSON Get the workflow structure into your n8n instance. Import:** In your n8n instance, go to the "Workflows" section. Click the "New" or "+" icon, then select "Import from JSON." Paste the provided JSON code (from the previous response) into the import dialog and import the workflow. 3. Configure the Nodes Customize the imported workflow to fit your specific monitoring needs. Monitor: Cybersecurity Keywords (X/Twitter):** Click on this node. Select your newly created Twitter Credential. CRITICAL: Modify the "Query" parameter to include your specific brand names, relevant CVEs, or general cybersecurity terms. For example: "YourCompany" OR "CVE-2024-1234" OR "phishing alert". Use OR to combine multiple terms. Send Notification (Slack):** Click on this node. Select your Slack Credential. Replace "YOUR_SLACK_CHANNEL_ID" with the actual Channel ID you noted earlier for your security alerts. (Optional: You can adjust the "Valid Mention?" node's condition if you find specific patterns of false positives in your search results that you want to filter out.) 4. Test and Activate Verify that your workflow is working correctly before setting it live. Manual Test:** Click the "Test Workflow" button (usually in the top right corner of the n8n editor). This will execute the workflow once. Verify Output:** Check your specified Slack channel to confirm that any detected mentions are sent as notifications in the correct format. If no matching tweets are found, you won't see a notification, which is expected. Activate:** Once you're satisfied with the test results, toggle the "Active" switch (usually in the top right corner of the n8n editor) to ON. Your workflow will then automatically monitor X (Twitter) at the specified polling interval.
by Nima Salimi
🧠 Automated SEO Keyword and SERP Analysis with DataForSEO for High-Converting Content | n8n workflow template Overview 🌐 This is a complete SEO automation workflow built for professionals who want to manage all their DataForSEO operations inside n8n — no coding required ⚙️ You can easily choose your operator (action), such as: 🔍 SERP Analysis – Get ranking data for specific keywords 📈 Keyword Data – Retrieve search volume, CPC, and trends 🧠 Competitor Research – Analyze which domains dominate target queries Once the workflow runs, it automatically creates a new Google Sheet 📊 (if it doesn’t exist) and appends the results — including metrics like keyword, rank, domain, and date — to keep a growing historical record of your SEO data 📅 💡 Ideal for SEO specialists, agencies, and growth teams who want a single automation to handle all keyword and ranking data pipelines using DataForSEO + Google Sheets + n8n. Examples related keyword sheet Each operator (SERP, Keywords Data, Competitors) automatically creates a separate Google Sheet 📊 👤 Who’s it for? 🧩 SEO Specialists who need accurate keyword & SERP insights daily ✍️ Content Marketers planning new blog posts or landing pages 📊 Digital Marketing Teams tracking top-performing keywords and competitors 💼 Agencies managing multiple websites or niches with automated reports 🧠 AI-Driven SEOs building GPT-powered content strategies using live ranking data ⚙️ How It Works Trigger & Input Setup Start the workflow manually or schedule it to run daily / weekly 🕒 Import a keyword list from Google Sheets 📄, NocoDB, or an internal database Keyword Data Retrieval (DataForSEO Keyword API) Sends requests to the keywords_data endpoint of DataForSEO Gathers search volume, CPC, competition level, and trend data Identifies the most promising keywords for conversion-focused content SERP Analysis (DataForSEO SERP API) Fetches the top organic results for each keyword Extracts domains, titles, snippets, and ranking positions Highlights which competitors dominate the search landscape Data Enrichment & Filtering Uses Code nodes to clean and normalize the DataForSEO JSON output Filters out low-intent or irrelevant keywords automatically Optionally integrates OpenAI or GPT nodes for insight generation ✨ Store & Visualize Saves results into Google Sheets, Airtable, or NocoDB for tracking Each run adds fresh data, building a performance history over time 📈 Optional AI Layer (Advanced) Use OpenAI Chat Model to summarize SERP insights: > “Top 3 competitors for cloud storage pricing focus on cost transparency — recommend including pricing tables.” Automatically generate content briefs or keyword clusters 🧩 Workflow Highlights ⚡ Multiple DataForSEO Endpoints Supported (keywords_data, serp, competitors) 🔁 Automated Scheduling for daily / weekly updates 🧠 Data Normalization for clean, structured SEO metrics 📊 Easy Export to Google Sheets or NocoDB 🧩 Expandable Design — integrate GPT, Google Search Console, or Analytics 🌎 Multi-Language & Multi-Location Support via language_code and location_code 📊 Example Output (Google Sheets) | keyword | rank | domain | volume | cpc | competition | date | |----------|------|----------------|---------|---------|---------------|------------| | cloud hosting | 1 | cloud.google.com | 18,100 | $2.40 | 0.62 | 2025-10-25 | | cloud server | 3 | aws.amazon.com | 12,900 | $3.10 | 0.75 | 2025-10-25 | | hybrid cloud | 5 | vmware.com | 9,800 | $2.90 | 0.58 | 2025-10-25 | Each run appends new keyword metrics for trend and performance tracking. 💡 Pro Tips 🔍 Combine this workflow with Google Search Console for even richer insights ⚙️ Adjust the location_code and language_code for local SEO targeting 💬 Add a Slack or Gmail alert to receive weekly keyword opportunity reports 🤖 Extend with OpenAI to automatically create content briefs or topic clusters 📚 Integrations Used 🧭 DataForSEO API – Keyword & SERP data source 📄 Google Sheets / Airtable / NocoDB – Storage and visualization 🤖 OpenAI Chat Model (optional) – Insight generation and summarization ⚙️ Code Nodes – JSON parsing and custom data processing ✅ Features 🌎 Choose from 100+ Locations Select your target country, region, or city using the location_code parameter. Perfect for local SEO tracking or multi-market analysis. 🗣️ Choose from 50+ Languages Define the language_code to get accurate, language-specific keyword and SERP data. Supports English (en), Spanish (es), French (fr), German (de), and more. 📊 Auto-Creates Google Sheets for You No need to manually set up a spreadsheet — the workflow automatically creates a new Google Sheet (if it doesn’t exist) and structures it with the right columns (query, rank, domain, date, etc.). 🔁 Append New Data Automatically Every run adds fresh SEO metrics to your sheet, building a continuous daily or weekly ranking history. ⚙️ Flexible Operator Selection Choose which DataForSEO operator (action) you want to run: keywords_data, serp, or competitors. Each operator retrieves a different type of SEO insight. 🧠 Fully Expandable Add Slack alerts, Airtable sync, or AI summaries using OpenAI — all within the same workflow. ⚙️ How to Set Up 🔑 Add DataForSEO Credentials Get your API login from dataforseo.com Add it under HTTP Request → Basic Auth in n8n 📄 Connect Google Sheets Authorize your Google account The workflow will auto-create the sheet if it doesn’t exist 🎛 Choose Operator (Action) Pick one: serp, keywords_data, or competitors Each operator runs a different SEO analysis 🌍 Set Location & Language Example: location_code: 2840 (US), language_code: en 🕒 Run or Schedule Trigger manually or set a daily schedule New results will append to your Google Sheet automatically 📺 Check Out My Channel 💬 Learn more about SEO Automation, n8n, and AI-powered content workflows 👉 Connect with me on LinkedIn: Nima Salimi Follow for more templates, AI workflows, and SEO automation tutorials 💥
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? 📞 Book a Call | 💬 DM me on Linkedin Overview This workflow automatically exports customer balance data from QuickBooks to Google Sheets on a monthly basis. It eliminates manual data entry and creates a historical record of customer balances that updates automatically, making it easy to track payment trends, identify outstanding balances, and monitor customer financial health over time. Key Features Automated Monthly Reporting**: Runs on the first day of each month to capture a snapshot of all customer balances Clean Data Structure**: Extracts only the essential fields (Customer ID, Balance, Email, and Period) for easy analysis Historical Tracking**: Each monthly run appends new data to your Google Sheet, building a timeline of customer balances No Manual Work**: Once configured, the workflow runs completely hands-free Common Use Cases Track customer payment patterns and identify accounts with growing balances Create monthly reports for management or finance teams Build dashboards and visualizations from historical QuickBooks data Monitor customer account health without logging into QuickBooks Setup Requirements QuickBooks Developer Account: Register at developer.intuit.com and create a new app in the App Dashboard. Select the 'Accounting' scope for permissions. You'll receive a Client ID and Client Secret to configure your n8n credentials. Credentials: Set up QuickBooks OAuth2 credentials in n8n using your app's Client ID and Client Secret. Use 'Sandbox' environment for testing or 'Production' for live data (requires Intuit app approval). Also connect your Google Sheets account. Google Sheet: Create a spreadsheet with column headers matching the workflow output: Period, Id, Balance, and Email. Configuration Schedule**: The workflow runs monthly on the first day at 8 AM. Modify the Schedule Trigger to change timing or frequency Spreadsheet URL**: Update the 'Export to Google Sheets' node with your destination spreadsheet URL Data Fields**: Customize the 'Prepare Customer Data' node to extract different customer fields if needed
by WeblineIndia
Facebook Event RSVP Webhook → Airtable Attendee Tracking → Slack Capacity Alerts This workflow automatically tracks Facebook Event RSVPs, stores attendee data in Airtable, checks event capacity and notifies your team on Slack when the event becomes full. It eliminates manual RSVP tracking and prevents overbooking. Quick Start: Get Up and Running Fast Create a custom Facebook webhook endpoint in n8n. Connect Airtable and select your preferred table. Ensure required fields exist in the Airtable table. Set the event capacity value. Connect Slack and choose the notification channel. Activate the workflow. What It Does This workflow begins when a new RSVP is received from a Facebook Event through a custom webhook endpoint. The incoming data is cleaned and standardized to extract only the required RSVP details, ensuring consistent processing. Each RSVP is then stored in Airtable using an upsert operation. This ensures attendee records are created or updated correctly while preventing duplicate entries if Facebook sends the same RSVP more than once. After storing the data, the workflow checks how many people are marked as attending for the event. If the total reaches or exceeds the defined capacity, a Slack notification is sent to the team. The workflow also records that the alert has been sent to avoid duplicate notifications. Who’s It For Event organizers and coordinators Marketing and operations teams Community and meetup managers Businesses running limited-capacity events Teams using Airtable to manage event data Requirements to Use This Workflow A running n8n instance Facebook Developer access to configure a custom webhook An Airtable base with any table name of your choice The Airtable table must contain the required fields (see below) A Slack workspace with permission to send messages How It Works & How To Set Up 1. Webhook Configuration Create a custom webhook endpoint in n8n and configure Facebook to send Event RSVP data to this endpoint. 2. Data Normalization A Set node extracts and formats key RSVP fields such as event ID, user ID, RSVP status and timestamp. 3. Airtable Storage You can select any Airtable table. The workflow requires the following fields to exist in that table: event_Id (Text) user_Id (Text) rsvpStatus (Single select or Text) receivedAt (Date) capacity_alert_sent (Checkbox) The upsert operation ensures records are updated without duplication. 4. Capacity Evaluation The workflow searches the selected Airtable table for all attendees marked as “attending” for the same event and counts them. 5. Slack Notification If the count reaches or exceeds the configured capacity value, a Slack alert is sent. The workflow then updates Airtable to mark that the alert has already been sent. How To Customize Nodes Airtable Table**: Select any table as long as required fields exist. Capacity Limit**: Modify the static value in the IF node. Slack Channel**: Change the destination channel or user. Webhook Endpoint**: Rename the webhook path for different environments. RSVP Status Logic**: Adjust filters to include or exclude statuses. Add-ons Early warning alerts (e.g., 80% or 90% capacity) Waitlist automation after capacity is reached Email or Telegram notifications instead of Slack Dynamic event capacity from Airtable Error handling and retry logic for API limits Use Case Examples Managing workshop and training registrations Tracking attendance for community meetups Preventing overbooking for conferences or seminars Alerting staff when venue limits are reached Automating RSVP monitoring for internal company events This workflow can support many more event-based automation scenarios. Troubleshooting Guide | Issue | Possible Cause | Solution | | ---------------------- | -------------------------------- | --------------------------------------------- | | No RSVPs received | Webhook not configured correctly | Verify Facebook webhook URL and subscription | | Duplicate Slack alerts | Alert flag not checked | Ensure capacity_alert_sent logic is enabled | | Wrong attendee count | Field name mismatch | Confirm Airtable field names match exactly | | Slack message not sent | Invalid Slack credentials | Reconnect Slack account in n8n | | Airtable errors | API rate limit | Add retry logic or reduce execution frequency | Need Help? If you need help setting up this workflow, customizing add-ons or building similar automation, our n8n workflow developers at WeblineIndia can help. Our team specializes in creating scalable business automation using n8n and modern cloud tools. Contact WeblineIndia to get expert assistance or to build tailored workflows for your business needs.
by Mohammed Abid
Shopify Order Data to Airtable This n8n template demonstrates how to capture incoming Shopify order webhooks, transform the data into a structured format, and insert each product line item as a separate record in an Airtable sheet. It provides both high-level order information and detailed product-level metrics, making it ideal for analytics, reporting, inventory management, and customer insights. Good to Know Airtable API Rate Limits: By default, Airtable allows 5 requests per second per base. Consider batching or adding delays if you process high volumes of orders. Shopify Webhook Configuration: Ensure you have configured the orders/create webhook in your Shopify Admin to point to the n8n webhook node. Field Mapping: The template maps standard Shopify fields; if your store uses custom order or line item properties, update the Function nodes accordingly. How It Works Webhook Trigger: A Shopify orders/create webhook fires when a new order is placed. Normalize Order Data: The Function node extracts core order, customer, shipping, and billing details and computes financial totals (subtotal, tax, shipping, discounts). Line Item Breakdown: A second Function node builds an array of objects—one per line item—calculating per-item totals, tax/shipping allocation, and product attributes (color, size, material). Check Customer Record: Optionally check against an Airtable "Customers" sheet to flag new vs existing customers. Auto-Increment Record ID: A Function node generates a running serial number for each Airtable record. Insert Records: The Airtable node writes each line item object into the target base and table, creating rich records with both order-level and product-level details. How to Use Clone the Template: Click "Use Template" in your n8n instance to import this workflow. Configure Credentials: Shopify Trigger: Add your Shopify store domain and webhook secret. Airtable Node: Set up your Airtable API key and select the base and table. Review Field Names: Match the field names in the Function nodes to the columns in your Airtable table. Activate Workflow: Turn on the workflow and place a test order in your Shopify store. Verify Records: Check your Airtable sheet to see the new order and its line items. Requirements n8n@latest Shopify Store with orders/create webhook configured Airtable Account with a base and table ready to receive records Customizing This Workflow Add Custom Fields: Extend the Functions to include additional Shopify metafields, discounts, or customer tags. Alternative Destinations: Replace the Airtable node with Google Sheets, Supabase, or another database by swapping in the corresponding node. Error Handling: Insert If/Wait nodes to retry on API failures or send notifications on errors. Multi-Currency Support: Adapt the currency logic to convert totals based on dynamic exchange rates.
by Kanishka Shrivastava
Quick overview This workflow runs every 15 minutes to find unprocessed clinic appointments in Supabase that are more than 30 minutes past their scheduled time and sends a WhatsApp Business template message to the patient to prompt rebooking, then flags the appointment so it is not messaged again. How it works Runs every 15 minutes on a schedule. Reads appointments from Supabase where the patient is not checked in and the no-show reminder has not been processed. Filters the results to appointments that are at least 30 minutes past the scheduled appointment time. Loops through each qualifying appointment and sends a pre-approved WhatsApp Business template to the patient’s phone number. Updates the appointment record in Supabase to mark it as processed so it is not nudged again. Setup Create a Supabase project with an appointments table (including appointment_time, patient_phone, checked_in, and no_show_processed) and ensure your booking system writes appointments into it. Add a Supabase credential in n8n with access to the project and table used by the workflow. Set up Meta WhatsApp Business Cloud API access in n8n (token/connection), then enter your WhatsApp phone number ID and an approved template name in the WhatsApp send step. Confirm patient phone numbers in Supabase are stored in a WhatsApp-reachable format (for example, E.164) and adjust the schedule interval or grace-period logic if needed.
by Snapshot Site
Quick overview This workflow runs daily and uses Snapshot Site to compare a stored baseline screenshot against a live competitor pricing page, then posts change alerts or failure notifications to Slack. How it works Runs every day at 7:00 AM (UTC) on a scheduled trigger. Calls Snapshot Site to capture the live pricing page and compare it against a baseline screenshot using a mismatch threshold. Checks whether the Snapshot Site response indicates an API-level error (for example, a malformed URL returned as {error: true}). Sends an alert to a Slack channel if the compare call fails or returns an error message. If the compare succeeds, evaluates the mismatch percentage to determine whether the pricing page changed. Posts a Slack message with mismatch stats and links to the diff, baseline, and live capture when a change is detected, otherwise it ends without action. Setup Add a Snapshot Site credential and set the baseline (beforeUrl/beforeOptions) and live target (afterUrl/afterOptions) URLs to the competitor pricing page images/URL. Add a Slack credential and set the target channels for change notifications (for example, #competitor-watch) and failure alerts (for example, #competitor-watch-alerts). Adjust the mismatch threshold, schedule time, and Slack message text to match your sensitivity and reporting needs.
by Khairul Muhtadin
Automate your SEO competitive analysis with this daily SERP tracker. This workflow uses Decodo to scrape Google Search results for specific keywords and logs rankings directly into Google Sheets, saving SEO teams hours of manual reporting. Why Use This Workflow? Time Savings: Reduces manual rank checking from 60 minutes daily to 0 minutes through full automation. Cost Reduction: Eliminates the need for expensive "per-keyword" SEO tracking software for basic monitoring needs. Error Prevention: Captures 100% of search data accurately, including meta descriptions and URLs, without human copy-paste errors. Scalability: Easily monitor dozens of keywords across different countries and devices by adjusting a single configuration node. Ideal For SEO Specialists:** Track keyword movements and SERP feature changes for clients or internal projects daily. Content Marketers:** Monitor how new content pieces are ranking against competitors for target high-intent keywords. Digital Agencies:** Provide automated, transparent ranking reports to clients without manual data entry. How It Works Trigger: The workflow starts every morning at 9:00 AM via the Schedule Trigger. Data Collection: Parameters like keyword, country (e.g., "id"), language ("en"), and device type are defined. Processing: The Decodo node executes a live Google search based on your specific localized parameters. Intelligence Layer: The workflow filters the raw JSON response to extract organic results only and validates that each result has a valid URL. Output & Delivery: Top-ranked results (e.g., Top 5) are appended to a "SERP_Results" Google Sheet. Storage & Logging: Any errors (API timeouts or empty results) are automatically logged to a separate "SERP_Errors" sheet for troubleshooting. Setup Guide Prerequisites | Requirement | Type | Purpose | |-------------|------|---------| | n8n instance | Essential | Workflow execution platform | | Decodo API | Essential | Scrapes live Google Search results | | Google Sheets | Essential | Destination for ranking data and error logs | Installation Steps Import the JSON file to your n8n instance Configure credentials: Decodo API: Create an account at Decodo and paste your API key into the Decodo Search node. Google Sheets: Connect your Google account via OAuth2 and ensure you have a spreadsheet ready with two tabs: SERP_Results and SERP_Errors. Update environment-specific values: In the Write SERP Results and Write SERP Errors nodes, select your specific Spreadsheet from the dropdown. Customize settings: Open the Set Search Input node to change the keyword, country code, and the "top_n" (number of ranks to track). Test execution: Click "Test Workflow" to verify data appears in your Google Sheet. Technical Details Core Nodes | Node | Purpose | Key Configuration | |------|---------|-------------------| | Set Search Input | Configuration | Defines keyword, geo-location, and rank limit | | Decodo Search | Data Acquisition | Performs localized Google Search via API | | Split Out | Data Structuring | Converts the API array into individual rows for processing | | IF Nodes | Validation | Filters for top-N ranks and ensures data integrity | | Google Sheets | Storage | Appends successful data or logs failures | Workflow Logic The workflow uses a Split Out and Extract Organic strategy. This ensures that even if Google returns various SERP features (ads, maps, snippets), the workflow specifically targets the organic blue links. The "Valid Row" logic ensures your spreadsheet stays clean by only recording results that meet your "Top N" criteria (e.g., only store the top 5 results). Customization Options Basic Adjustments: Search Frequency:** Change the Schedule Trigger to run weekly or hourly depending on your needs. Rank Depth:** Change the top_n value in the input node to track the Top 10, 20, or 50 results. Advanced Enhancements: Slack Notifications:** Add a Slack node to alert your team if a specific keyword drops out of the Top 3. Multi-Keyword Support:** Replace the "Set" node with a Google Sheet "Read" node to loop through a list of hundreds of keywords. Troubleshooting Common Issues: | Problem | Cause | Solution | |---------|-------|----------| | Empty Google Sheet | No results found for keyword | Check the SERP_Errors sheet for the raw API response. | | Permission Error | Google Sheets node not authorized | Re-connect your Google Sheets OAuth2 credentials. | | Decodo 401 Error | Invalid API Key | Verify your Decodo API key is active and has remaining credits. | Use Case Examples Scenario 1: E-commerce Competitor Tracking Challenge: A retail brand needs to know who is winning the "best running shoes" keyword daily. Solution: This workflow tracks the Top 5 results every morning, allowing the brand to see when a competitor's blog post overtakes their product page. Result: The marketing team identifies a ranking drop within 24 hours and updates their content immediately. Scenario 2: Local SEO Monitoring Challenge: A service business wants to monitor rankings specifically in Indonesia ("id") using English ("en") search settings. Solution: By configuring the country and language parameters in the Set node, the workflow captures localized SERP data accurately. Result: The business gets an accurate picture of their local visibility without using a VPN. Created by: Khairul Muhtadin Category: Marketing | Tags: SEO, SERP, Google Sheets, Decodo Need custom workflows? Contact us Connect with the creator: Portfolio • Store • LinkedIn • Medium • Threads
by Growth AI
Who it's for This workflow is for sales teams, growth hackers, and outreach specialists who manage prospect lists in Airtable and want to automate LinkedIn connection requests at scale without manual effort. How it works A schedule trigger fires every Monday at 10am and fetches all Airtable contact records where the "Invitation sent" field is empty. The batch is capped at 100 records using a Limit node to stay within safe outreach volumes. A loop iterates over each contact one at a time. For each contact, the Unipile API resolves the LinkedIn user session using the profile URL extracted from the record. A POST request is then sent to Unipile to fire a LinkedIn connection invitation on behalf of the configured account. On success, the Airtable record is updated with the invitation timestamp and a status of "Available". On error, the record is marked as "Not available" and the loop continues. How to set up [ ] Connect your Airtable credentials and set the correct base and table in all three Airtable nodes [ ] Replace YourUnipileDNS in the two HTTP Request nodes with your actual Unipile API domain [ ] Add your Unipile API key to the HTTP Header Auth credential used in both HTTP nodes [ ] Set the correct account_id in the HTTP Request nodes to match your Unipile LinkedIn account [ ] Adjust the Schedule Trigger frequency to match your outreach cadence [ ] Verify that your Airtable table includes the Linkedin, Invitation sent, and Linkedin available fields Requirements Airtable account with a prospect table Unipile account with a connected LinkedIn session n8n instance (self-hosted or cloud) How to customize Adjust the Limit node to send fewer or more invitations per run depending on your LinkedIn account's safety limits. Add a personalized message body to the invitation request if Unipile supports it for your plan. Extend the workflow with a follow-up step (e.g., send a Slack alert or log errors to a Google Sheet) when the error branch is triggered.