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. Shopify Customer Append/Update to Airtable This n8n template shows how to take incoming Shopify customer webhooks (create or update), check if the customer exists in your Airtable "Customers" sheet, append new details or update existing records, and maintain a clean customer database. Good to Know Airtable API Rate Limits: Airtable limits to 5 requests per second. Use batch lookups or add delays for high throughput. Shopify Webhook Events: Configure both customers/create and customers/update webhooks in Shopify Admin. Unique Identifier: Ensure the "Customer ID" field in Airtable matches the Shopify customer.id for reliable updates. How It Works Webhook Trigger: Fires on Shopify customers/create or customers/update events. Extract Customer Data: A Function node normalizes name, email, phone, and address fields from the webhook payload. Fetch Existing Records: The Airtable node lists all records from the "Customers" table to find a matching Customer ID. Identify Match: A Function node compares the incoming customer.id to existing records and flags found vs. not found. Return Last Row: Ensures serial numbering continuity by grabbing the last record's serial in Airtable. Auto-Increment Serial: A Function node increments the serial number (S No) for new records. Upsert Record: Depending on match result, the Airtable node either updates the existing record or creates a new one with full details. How to Use Import the Workflow: Click "Use Template" in n8n. Set Credentials: Shopify: Add store domain and webhook secret. Airtable: Provide API key and select base/table. Ensure Field Alignment: The Airtable table must have fields: Customer ID, Name, Email, Phone, Address, and S No. Activate: Enable the workflow and test by creating or updating a customer in Shopify. Verify: Your Airtable sheet will show appended or updated customer records with correct serial numbering. Requirements n8n@latest Shopify Store with customers/create and customers/update webhooks Airtable Account with a "Customers" table Customizing This Workflow Extra Fields: Modify the Function nodes to include Shopify metafields or tags. Alternative Databases: Swap in Google Sheets, Supabase, or SQL nodes. Error Notification: Add a Slack or email node to alert on webhook or API errors. Batch Processing: Use the SplitInBatches node to handle large customer syncs.
by Meak
Download Instagram Reels & Videos with Telegram Bot Most users copy/paste links into third-party sites or apps to download videos, then manually re-upload them to Telegram. This workflow does it all automatically: listens for a link in Telegram, downloads the file via MediaDL API, and sends it back to the same chat — all hands-free. Benefits One-click video download directly inside Telegram Browser-like HTTP headers for higher success rate Wait nodes prevent race conditions or failed fetches Supports any link MediaDL can resolve (YouTube, Twitter, etc.) Instant reply with the actual .mp4 file in chat How It Works Telegram Trigger waits for a message with a video link Sends the URL to MediaDL /api/download to resolve media info Waits 3 seconds to allow backend processing Extracts medias[0].url from response Waits 3 more seconds for proxy to be ready Calls MediaDL /api/proxy-download?fileUrl=... to fetch the binary Sends the video back to the same chat with proper filename Who Is This For Channel owners reposting videos quickly Community managers curating user-shared content Power users who want a private Telegram media downloader Setup Connect Telegram bot to n8n (get Bot Token via BotFather) Add MediaDL API endpoint (/api/download + /api/proxy-download) Configure headers (User-Agent, Referer) to mimic a browser Adjust wait times for large files or slow hosts Test with a small video before scaling ROI & Monetization Save 5+ minutes per download/repost cycle Offer as a “content reposter bot” for Telegram communities Package as a paid convenience tool for private groups Strategy Insights In the full walkthrough, I show how to: Build reliable Telegram bots with n8n Handle delays, retries, and file size limits Extend workflow to auto-caption or archive media Turn this into a subscription or group-access SaaS bot Check Out My Channel For more advanced AI automation systems that generate real business results, check out my YouTube channel where I share the exact strategies I use to build automation agencies, sell high-value services, and scale to $20k+ monthly revenue.
by 1Shot API
Simple Range Trading w/ Uniswap V3 This workflow will monitor the price of a token trading pair (default is ETH - USDC) and automatically buy into ETH or sell into USDC based on a price window configured by the user. Additionally, the workflow will notify the user on Telegram before a trade is executed, giving the user 1 minute to cancel the trade before the workflow proceeds. Transaction are executed via MetaMask's Delegation Framework, so trades are fully non-custodial, you retain full control of your assets at all times. Check out the YouTube tutorial for a full walkthrough. Maintain Complete Trading Control with MetaMask Delegations With the MetaMask Delegation Framework, you never relinquish control of your funds to any 3rd party, not even 1Shot API. Furthermore, with this workflow, you have full control of your trading parameters and the assets you trade against. Lastly, by running your own trading setup, you can bypass fees incurred through centralized exchanges or hosted frontends that reduce your profitability. Human-in-the-Loop with Telegram Notifiactions This workflow uses Telegram to send you real-time updates on whats happening with your trades. Specifically, the Telegram human-in-the-loop node is used to give you a change to cancel trades before they happen or immediately approve them. Setup Create a free 1Shot API account, and create an API key. Import the workflow into your n8n portal. Create a credential for the 1Shot API nodes to communicate with your 1Shot API account. Trigger the sub-workflow to generate an Arbitrum server wallet and import all required smart contract methods. Point the 1Shot API nodes at the appropriate smart contract methods in you 1Shot API account. Create a Telegram credential for notifications & input the chatID of your Telegram bot. Set your desired trading price range in the Swap Configs node. Start your trading workflow.
by 1Shot API
Automated Savings with 1Shot API and Aave Protocol With the increasing popularity of stablecoins like USDC, its becoming easier to pay for everyday items with crypto thanks to debit cards from issuers like MetaMask. These solutions work by processing payments on traditional payment rails then pulling the stablecoin out of your onchain account to cover the cost of the purchase. One downside is that if a stablecoin like USDC is simply sitting in your onchain account, you are missing out on competitive savings rates offered by decentralized protocols like Aave. Often the APY offered by these onchain lending protocols is much higher than those offered by traditional banks while maintaining a low-risk profile for high-quality assets like USDC or mUSD. Ideally your balance would automatically stay in something like Aave when you don't need it and automatically refill your onchain account used for payments when it gets low. This workflow, powered by 1Shot API, does just that. It also sends you real time Telegram notifications about your account balance and savings every time your account rebalances. Aave Protocol This workflow integrates the Aave lending protocol to generate savings APY on your excess USDC funds on the Base network. When your holdings in your primary Metamask smart account exceed a threshold you set, it will deposit them into the Aave Lending Pool. This results in your account receiving aBasUSDC, a deposit receipt token used to withdraw your savings at a later time. When your account drops below a refill-threshold you set, it will exchange the aBasUSDC back to USDC and put in back into your primary account so that you can spend it. Setup Instructions This workflow will automatically balance your USDC funds on Base network so that you keep funds you aren't using in Aave to earn interest and automatically move funds out of savings back into your wallet when funds get low. Create a free 1Shot API account. Generate an API key & secret and use these to create a credential for the 1Shot API node's. Click the trigger on the subworkflow to automatically import the required smart contract functions and provision a 1Shot API server wallet on Base that will relay your transactions when you are not online. Input the contract method IDs from 1Shot API into the "Savings Config" node. Set your saving thresholds in the "Savings Config" node. Create a Telegram bot and use the bot's API key to generate a credential for the Telegram nodes. Get your chat id with the bot and input it into the "Savings Config" node. Configure your desired schedule in the "Schedule" trigger node (like every 24 hours) Activate the workflow.
by DevCode Journey
Telegram AI Chatbot with Google & Gemini Integration Simple overview This workflow connects a Telegram bot to Google Gemini (PaLM API) so the bot can reply to users with AI-generated answers. Useful for FAQs, assistants, classroom helpers, or bots that fetch document content to answer questions. Who is this for Educators, creators, developers, and support teams who want a low-code Telegram chatbot powered by Gemini. What it does (quick) Listens for messages sent to your Telegram bot. Sends incoming text to Google Gemini and receives a generated reply. Optionally fetches content from Google Docs or an external API to enrich replies. Sends the reply back to the original Telegram user. Processes messages in batches and adds short delays to avoid spamming. Quick setup (5 steps) Create a Telegram bot with @BotFather and copy the bot token. Add Telegram credentials to n8n (Telegram node). Get a Google Gemini (PaLM) API key and add it to n8n. (Optional) Connect Google Docs OAuth2 if you want the bot to read documents. Activate the workflow and test by messaging the bot. Required items Telegram bot token Google Gemini (PaLM) API key n8n instance with Telegram and HTTP nodes enabled (Optional) Google Docs OAuth2 credential How it works (step-by-step) Telegram message arrives → Trigger node. Workflow extracts message and user info. (Optional) Pull supporting content from Google Docs or an API. Send prompt + context to Gemini → receive reply. Send reply back to the Telegram user. Add small delays and batch processing to handle volume safely. How to customize Edit the Gemini prompt to change response style and behavior. Switch Gemini model (Flash vs Pro) for speed vs. quality. Add conditions (If / Switch) to route different inputs to different behaviors. Append more data sources (Sheets, external APIs) to enrich replies. Add error handling to retry or log failed requests. Testing checklist Send a test message to the bot and confirm a reply. If using Google Docs, confirm the bot can read the target document. Check logs and node outputs in n8n for any errors. Tips and best practices Keep prompts concise and include only needed context to reduce costs. Use rate limiting (Wait node) and batching to avoid API throttling. Store API keys securely in n8n credentials. Start with small tests before enabling automated production runs. For Help Our Website: devcodejourney.com LinkedIn: LinkedIn WhatsApp Channel: Chat Now WhatsApp: Chat Now
by Jonathan
This workflow uses a WooCommerce trigger that will run when a new product has been added, It will then post it to Slack so your team is always kept up to date with new products. To use this workflow you will need to set the credentials to use for the WooCommerce and Slack nodes, You will also need to pick a channel to post the message to.
by Tom
This workflow sends out email notifications when a new file has been uploaded to Google Drive. The workflow uses two nodes: Google Drive Trigger**: This node will trigger the workflow whenever a new file has been uploaded to a given folder Send Email**: This node sends out the email using data from the previous Google Drive Trigger node.
by Harshil Agrawal
This workflow sends a message on Slack when site deployment fails. Netlify Trigger node: This node triggers the workflow when the site deployment fails. Slack node: This node sends a message on Slack alerting the team about the failed deployment. If you want to send a message to a different platform, replace the Slack node with the node of the respective platform.
by Harshil Agrawal
This workflow allows you to receive a message on Mattermost when your n8n instance starts. n8n Trigger node: The n8n Trigger node will trigger the workflow whenever the instance starts. Mattermost node: This node will send a message on Mattermost, notifying you when n8n starts.
by Rapiwa
Who Is This For? This n8n workflow listens for order cancellations in Shopify, extracts relevant customer and order data, checks if the customer’s phone number is registered on WhatsApp via the Rapiwa API, and sends a personalised apology message with a re-order link. It also logs successful and unsuccessful attempts in Google Sheets for tracking. What This Workflow Does Listens for cancelled orders in your Shopify store Extracts customer details and order information Generates a personalised apology message including a reorder link Sends the message to customers via WhatsApp using a messaging API (e.g., Twilio or Rapiwa) Logs the communication results for tracking purposes Key Features Real-Time Cancellation Detection:** Automatically triggers when an order is cancelled Personalised Messaging:** Includes customer name, order details, and a direct reorder link WhatsApp Integration:** Sends messages via WhatsApp for higher engagement Error Handling:** Logs successful and failed message deliveries Reorder Link:** Provides a convenient link for customers to reorder with one click Requirements n8n instance with nodes: Shopify Trigger, HTTP Request (for WhatsApp API), Code, Google Sheets (optional) Shopify store with API access WhatsApp messaging provider account with API access Valid customer phone numbers stored in Shopify orders How to Use — Step-by-Step Setup Credentials Setup Shopify API: Configure Shopify API credentials in n8n to listen for order cancellations WhatsApp API: Set up WhatsApp messaging credentials (e.g., Twilio, Rapiwa, or any supported provider) Google Sheets (Optional): Configure Google Sheets OAuth2 if you want to log communications Configure Trigger Set the workflow to trigger on Shopify order cancellation events Customize Message Content Modify the apology message template to include your store branding and tone Ensure the reorder link dynamically includes the customer's cancelled order info Set Up WhatsApp Node Connect your WhatsApp API credentials Ensure the phone numbers are formatted correctly for WhatsApp delivery Google Sheet Required Columns You’ll need two Google Sheets (or two tabs in one spreadsheet): A Google Sheet formatted like this ➤ sample The workflow uses a Google Sheet with the following columns to track coupon distribution: | Name | Number | Email | Address | Price | Title | Re-order Link | Validity | Status | | -------------- | ------------- | --------------------------------------------------- | ----------------- | ----------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | ---------- | | Abdul Mannan | 8801322827799 | contact@spagreen.net | Dhaka, Bangladesh | BDT 1955.00 | Pakistani Lawn | Link 🔗 | unverified | not sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | Dhaka, Bangladesh | BDT 1955.00 | Pakistani Lawn | Link 🔗 | verified | sent | Important Notes Phone Number Validation:** Ensure customer phone numbers are WhatsApp-enabled and formatted properly API Rate Limits:** Respect your WhatsApp provider’s API limits to avoid throttling Data Privacy:** Always comply with privacy laws when messaging customers Error Handling:** Monitor logs regularly to handle failed message deliveries Testing:** Test thoroughly with dummy data before activating the workflow live 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 n8nwizard
📋 Overview This n8n workflow automatically converts your Google Calendar events for the current day into Trello cards every morning at 8 AM. It fetches all calendar events for the day, filters out routine events (like Lunch or Check email), and creates neatly formatted Trello cards with a predefined meeting notes template. Perfect for professionals who want to keep their daily meetings and tasks synced with their Trello board. ⚙️ Key Features 🕗 Runs daily at 8 AM (configurable via Cron node) 📅 Fetches all Google Calendar events for the current day 🚫 Skips routine/repetitive events (Lunch, Check email, etc.) 🧩 Creates Trello cards with structured meeting notes 🔗 Includes event URL and due date in Trello card 🧠 Customizable filters and templates for full control 🧱 Workflow Steps 1. Run Daily at 8 AM (Cron Node) Automatically triggers the workflow every morning at 8:00 AM. You can adjust the time as needed. 2. Calculate Today's Date Range (Function Node) Generates the ISO-formatted start and end times for the current day (00:00–23:59). These values are passed to the Google Calendar node for querying events. 3. Fetch All Today's Calendar Events (Google Calendar Node) Fetches all events scheduled for today using your Google account. The calendar email (your-email@example.com) should be replaced with your actual email. 4. Process Events One by One (SplitInBatches Node) Splits the list of events into single items for individual processing. 5. Extract Event Details for Trello (Set Node) Maps each event’s details (summary, description, start time, and URL) into structured fields ready for Trello card creation. 6. Filter Out Routine Events (If Node) Skips over common recurring events (like “Check email,” “Lunch,” “Wrap Up & Clear Desk,” or “Beers and Griping”). You can customize this list as needed. 7. Create New Trello Card with Template (Trello Node) For non-filtered events, creates a new Trello card using a predefined meeting notes template. Includes: Title: Event summary Due date: Event start time Description: Preformatted meeting notes layout Source URL: Event link from Google Calendar 8. Skip Filtered Event (NoOp Node) Handles skipped events gracefully without performing any action. 🧰 Setup Instructions 1. Add Credentials Add Google Calendar OAuth2 credentials in n8n. Add Trello API credentials in n8n. 2. Replace Placeholder Values Update the calendar email in the Google Calendar node. Add your Trello board and list IDs in the Trello node. 3. Optional Customizations Modify the Cron node to change trigger time. Edit the Trello card template to match your meeting format. Add labels using idLabels in the Trello node. Adjust the filter conditions for different recurring tasks. 🧠 Example Use Case Imagine you have daily meetings in your Google Calendar. Each morning, this workflow: Collects all your events for the day. Skips unimportant ones (like lunch breaks). Automatically adds Trello cards for real meetings, each with a structured template for you to take notes and assign next steps. 🧾 Example Trello Card Template Title: Meeting with Client A Due Date: 2025-11-11T10:00:00Z Description: Meeting purpose (*Integrations, Playbooks, UI Issues, Project*): Task Next Steps (*Task, Assigned to, Checkpoint Date*): Task Decisions Made (*What, Why, Impacts*): Task Discussion (*Items/Knowledge Shared*): Task ✅ Requirements Google Calendar OAuth2 credentials Trello API credentials Active Google Calendar with events A Trello board/list to create cards in 📌 Notes You can adjust the workflow to run multiple times a day if needed. You can integrate Slack or email notifications for newly created cards. The workflow is lightweight and suitable for daily automation tasks. ✨ Tip: Combine this with n8n’s Slack or Notion integrations to get a full daily planning system that syncs your meetings, notes, and tasks automatically!
by Robert Breen
This workflow automatically pulls invoice rows from Google Sheets and generates a PDF invoice using a PDF.co template. Perfect for small businesses that manage invoices in Sheets but need professional, ready-to-send PDFs. ⚙️ Setup Instructions 1️⃣ Connect Google Sheets Copy this Invoice Template Sheet into your own Drive In n8n → Credentials → New → Google Sheets (OAuth2) Log in with your Google account and save In the workflow, select your Spreadsheet ID and Worksheet (Sheet1) in the Google Sheets node 2️⃣ Connect PDF.co Create a free account at PDF.co Copy your API Key from the dashboard In n8n → Credentials → New → PDF.co API Paste your API Key → Save In the PDF.co node, select your credential and choose the HTML Template to PDF operation 3️⃣ Create Your PDF.co HTML Template In your PDF.co dashboard, go to Templates → New Template Paste in the HTML from the template section below Save the template and copy its Template ID Replace the templateId in the workflow with your new ID 🧠 How It Works Get Invoice Rows** → Reads your Google Sheet rows (customer, line items, totals) Convert to HTML Import (Code node)** → Formats rows into structured data for the invoice template Create PDF (PDF.co)** → Sends the data into PDF.co and generates a professional PDF invoice 📬 Contact Need help customizing this (e.g., add taxes, change invoice styling, or auto-email invoices)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com 📄 Full HTML Template for PDF.co Use this HTML when creating your PDF.co template: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Invoice {{invoiceNumber}}</title> <style> body { font-family: Arial, Helvetica, sans-serif; margin: 36px; color: #222; } .header { display: flex; justify-content: space-between; align-items: center; } .brand { max-height: 56px; } h1 { margin: 12px 0 4px; font-size: 22px; } .meta { font-size: 12px; color: #555; } .two-col { display: flex; gap: 24px; margin-top: 16px; } .box { flex: 1; border: 1px solid #ddd; padding: 12px; border-radius: 6px; } .label { font-size: 11px; color: #666; text-transform: uppercase; letter-spacing: .02em; } table { width: 100%; border-collapse: collapse; margin-top: 16px; } th, td { border-bottom: 1px solid #eee; padding: 10px 8px; font-size: 13px; } th { background: #fafafa; text-align: left; } tfoot td { border-top: 2px solid #ddd; font-size: 13px; } .right { text-align: right; } .totals td { padding: 6px 8px; } .grand { font-weight: 700; font-size: 14px; } .notes { margin-top: 18px; font-size: 12px; color: #444; } </style> </head> <body> Invoice {{invoiceNumber}} Date: {{invoiceDate}} | Due: {{dueDate}} {{#company.logoUrl}} {{/company.logoUrl}} From {{company.name}} {{company.address}} {{company.phone}} {{company.email}} Bill To {{billTo.name}} {{billTo.address}} {{billTo.email}} Description Qty Unit Price Line Total {{#items}} {{line}} {{description}} {{qty}} {{unitPriceFmt}} {{lineTotalFmt}} {{/items}} Subtotal {{subTotalFmt}} Tax ({{taxRatePct}}) {{taxAmountFmt}} Discount -{{discountFmt}} Total {{totalFmt}} Notes: {{notes}} Terms: {{terms}} </body> </html>