by moosa
This guide explains how to send form data from n8n to a JotForm form submission endpoint using the HTTP Request node. It avoids the need for API keys and works with standard multipart/form-data. 📌 Overview With this workflow, you can automatically submit data from any source (Google Sheets, databases, webhooks, etc.) directly into JotForm. ✅ Useful for: Pushing information into a form without manual entry. Avoiding API authentication. Syncing external data into JotForm. 🛠 Requirements A JotForm account. An existing JotForm form. Access to the form’s direct link. Basic understanding of JotForm’s field naming convention. ⚙️ Setup Instructions 1. Get the JotForm Submission URL Open your form in JotForm. Go to Publish → Quick Share → Copy Link. Example form URL: sample form Convert it into a submission endpoint by replacing form with submit: Example: submit url 2. Identify Field Names Each JotForm field has a unique identifier like q3_name[first] or q4_email. Steps to find them: Right-click a field in your published form → choose Inspect. Locate the name attribute in the <input> tag. Copy those values into the HTTP Request node in n8n. Example mappings: First Name → q3_name[first] Last Name → q3_name[last] Email → q4_email 3. Configure HTTP Request Node in n8n Method:** POST URL:** Your JotForm submission URL (from Step 1). Content Type:** multipart/form-data Body Parameters:** Add field names and values. Example Body Parameters: { "q3_name[first]": "John", "q3_name[last]": "Doe", "q4_email": "john.doe@example.com" } 4. Test the Workflow Trigger the workflow (manually or with a trigger node). Submit test data. Check JotForm → Submissions to confirm the entry appears. 🚀 Use Cases Automating lead capture from CRMs or websites into JotForm. Syncing data from Google Sheets, Airtable, or databases. Eliminating manual data entry when collecting responses. 🎛 Customization Tips Replace placeholder values (John, Doe, john.doe@example.com) with dynamic values. Add more fields by following the same naming convention. Use n8n expressions ({{$json.fieldName}}) to pass values dynamically.
by Viktor Klepikovskyi
Nested Loops with Sub-workflows Template Description This template provides a practical solution for a common n8n challenge: creating nested loops. While a powerful feature, n8n's standard Loop nodes don't work as expected in a nested structure. This template demonstrates the reliable workaround using a main workflow that calls a separate sub-workflow for each iteration. Purpose The template is designed to help you handle scenarios where you need to iterate through one list of data for every item in another list. This is a crucial pattern for combining or processing related data, ensuring your workflows are both clean and modular. Instructions for Setup This template contains both the main workflow and the sub-workflow on a single canvas. Copy the sub-workflow part of this template (starting with the Execute Sub-workflow Trigger node) and paste it into a new, empty canvas. In the Execute Sub-workflow node in the main workflow on this canvas, update the Sub-workflow field to link to the new workflow you just created. Run the main workflow to see the solution in action. For a detailed walkthrough of this solution, check out the full blog post
by Avkash Kakdiya
How it works This workflow automates FTP-to-Google Drive file transfers.It runs on a schedule, retrieves files in batches, downloads them from FTP, and uploads them to Google Drive while keeping original filenames.Batching ensures efficient, smooth processing without overloading the system. Step-by-step 1. Trigger and list files Schedule Trigger** – Starts the workflow at configured intervals. List Files from FTP** – Connects to the FTP server and retrieves a list of files from the target folder. 2. Batch processing setup Batch Files** – Splits files into small batches for sequential processing. 3. File handling Download File from FTP** – Downloads each file from FTP for further processing. 4. Cloud upload Upload to Google Drive** – Uploads the file to Google Drive, retaining its original name for consistency. Why use this? Eliminates manual FTP downloads and Google Drive uploads. Ensures smooth sequential processing with batch handling. Preserves original filenames for clarity and traceability. Runs automatically on a schedule, reducing human intervention. Scales easily to handle large volumes of files efficiently.
by Marco Cassar
Who it’s for? Anyone calling a Google Cloud Run service from n8n who wants a small, reusable auth layer instead of wiring tokens in every workflow. What it does / How it works This sub-workflow checks whether an incoming id_token exists and is still valid (with a 5-minute buffer). If it’s good, it reuses it. If not, it signs a short-lived JWT with your service account, exchanges it at Google’s token endpoint, and returns a fresh id_token. It also passes through service_url and an optional service_path so the caller can hit the endpoint right away. (Designed to be called via Execute Workflow from your main flow.) How to set up Add your JWT (PEM) credential using the service account private_key. In Vars, set client_email (from your key) and confirm token_uri is https://oauth2.googleapis.com/token. Call this sub-workflow with service_url (and optional service_path). Optionally include a prior id_token to enable reuse. Inputs / Outputs Inputs: id_token (optional), service_url, service_path Outputs: id_token, service_url, service_path Notes Built for loops: pair with a Merge/Split strategy to attach id_token to each item. Keep credentials in n8n Credentials (no keys in nodes). Full write-up and context: Build a Secure Google Cloud Run API, Then Call It from n8n (Free Tier) — by Marco Cassar
by Avkash Kakdiya
How it works This workflow automatically scrapes LinkedIn job postings for a list of target companies and organizes the results in Google Sheets. Every Monday morning, it checks your company list, runs a LinkedIn job scrape using Phantombuster, waits for the data to be ready, and then fetches the results. Finally, it formats the job postings into a clean structure and saves them into a results sheet for easy analysis. Step-by-step Start with Scheduled Trigger The workflow runs automatically at 9:00 AM every Monday. It reads your “Companies Sheet” in Google Sheets and filters only those marked with Status = Pending. Scrape LinkedIn Jobs The workflow launches your Phantombuster agent with the LinkedIn profile URLs from the sheet. It waits 3 minutes to let the scraper finish running. Then it fetches the output CSV link containing the job posting results. Format the Data The scraped data is cleaned and structured into fields like: Company Name Job Title Job Description Job Link Date Posted Location Employment Type Save Everything in Google Sheets The formatted job data is appended into your “Job Results” Google Sheet. Each entry includes a scrape date so you can track when the data was collected. Why use this? Automates job market research and competitive hiring analysis. Collects structured job posting data from multiple companies at scale. Saves time by running on a schedule with no manual effort. Keeps all results organized in Google Sheets for easy review and sharing. Helps HR and recruitment teams stay ahead of competitors’ hiring activity.
by Marco Cassar
Who it’s for? Anyone who wants a dead-simple, free-tier friendly way to run custom API logic on Google Cloud Run and call it securely from n8n—no public exposure, no local hosting. What it does Minimal flow: Set → JWT (sign) → HTTP (token exchange) → HTTP (call Cloud Run with Authorization: Bearer <id_token> ). No caching, no extras—just enough to authenticate and hit your endpoint. How to set up General instructions below—see my detailed guide for more info: Build a Secure Google Cloud Run API, Then Call It from n8n (Free Tier) Setup: Create a Cloud Run service and enable Require authentication (Cloud IAM). Create a Google Service Account with Cloud Run Invoker on that service. In n8n, set service_url, client_email, token_uri (https://oauth2.googleapis.com/token) in Set. Create a JWT (PEM) credential from your service account key (paste the full BEGIN/END block). Run the workflow; the second HTTP node calls your Cloud Run URL with the ID token. Requirements Cloud Run service URL (auth required) Google Service Account with Cloud Run Invoker Private key JSON fields downloaded from Service Account | needed to generate JWT credentials More details Full write-up (minimal + modular versions): Build a Secure Google Cloud Run API, Then Call It from n8n (Free Tier)
by System Admin
Tagged with: LangChain - Example
by System Admin
Tagged with: , , , ,
by Richard Uren
Create Products in Shopify from Airtable This workflow creates products in your Shopify store from Airtable. It also enables inventory tracking and sets the quantity of an inventory item at your store's default location. This is a great way to keep shopify in sync with Airtable if Airtable is your primary source of data, Only records with the 'sync' column set to true are sync'd. Setup Airtable Automations so that if any records are created or updated then this flag is set to true. Records are matched using the 'slug' column which Shopify calls a handle. Airtable Setup Notes The Airtable products table has the following columns title - free text description - free text company - free text type - free text status - ACTIVE, DRAFT or ARCHIVE slug - used in the product url, text with no spaces, can also use hyphen. price - sale price of the products compare_at_price - compare at price for products sku - unique code for each product stock_on_hand - quantity of this item available for purchase. sync - boolean, set to true to sync this record. Update GraphQL nodes with your Shopify store URL 1) Replace the URL in all GraphQL nodes with the URL for your Shopify store. 2) All GraphQL requests all use the Shopify 2025-04 GraphQL Admin API.
by System Admin
Tagged with: , , , ,
by System Admin
Tagged with: , , , ,
by Anirudh Aeran
This workflow is a powerful reputation management tool designed to proactively filter customer reviews. It helps you encourage positive reviews on Google while capturing negative feedback privately before it impacts your public rating. By using an incentive, it maximizes the number of customers who enter this review funnel, giving you control over your online reputation. Who’s it for? This template is essential for any business where Google Reviews are critical: restaurants, clinics, retail stores, local services, and more. If you want to improve your Google star rating by systematically encouraging happy customers to post public reviews and addressing unhappy customers privately, this is the perfect solution. How it works / What it does The main job of this workflow is to send customers to a special review landing page. On this page, only reviews of 4 stars or more are directed to your Google Review page, while lower-rated feedback is captured in a private form. Trigger: A customer scans a QR code (e.g., in your store) and sends a message to your Telegram bot. Incentivize: The bot checks if the user is new. If so, it sends them a small discount or offer as a thank-you for their business and to encourage them to provide feedback. Send to Filter Page: After a short delay, the workflow sends a message with a link to your review filtering webpage. Track & Follow Up: The workflow tracks whether the link has been clicked (updating the status in a Google Sheet). If a user doesn't click the link after 23 hours, an automated reminder is sent to maximize engagement. How to set up Crucial Prerequisite: This workflow sends users to a review-filtering webpage. You must have this webpage already built. The page should have logic to send 4+ star reviewers to Google and capture other feedback internally. code Create a Telegram Bot: Use the BotFather on Telegram to create a bot and get your API token. Google Sheet: Create a Google Sheet with columns like: ID, First Name, Status, Feedback Message, Timestamp. Credentials: Add your Google Sheets API and Telegram Bot API credentials to n8n. Configure Nodes: In all Google Sheets nodes, select your credential and paste your Sheet ID. In all Telegram nodes, select your Telegram credential. In the "Send Review Page Link" and "Send Review Link Reminder" nodes, update the URL to point to your review filtering page. Create a QR Code: Generate a QR code for your bot's link (e.g., https://t.me/YOUR_BOT_USERNAME) and display it for your customers. Activate Workflow: Save and activate the workflow. Requirements A pre-built review filtering webpage. code An active n8n instance. Google Sheets API credentials. A Telegram Bot and its API token.