by Mauricio Perera
📝 Description This workflow allows you to extract all links (URLs) contained in a PDF file by converting it to HTML via PDF.co and then extracting the URLs present in the resulting HTML. Unlike the traditional Read PDF node, which only returns visible link text, this flow provides the full active URLs, making further processing and analysis easier. 📌 Use Cases Extract all hyperlinks from PDF documents. Automate URL verification and monitoring within documents. Extract links from reports, contracts, catalogs, newsletters, or manuals. Prepare URLs for validation, classification, or storage. 🔗 Workflow Overview User uploads a PDF file via a web form. The PDF is uploaded to PDF.co. The PDF is converted to HTML (preserving links). The converted HTML is downloaded. URLs are extracted from the HTML using a custom code node. ⚙️ Node Breakdown 1. Load PDF (formTrigger) Uploads a .pdf file. Single file upload. 2. Upload (PDF.co API) Uploads the PDF file to PDF.co using binary data. 3. PDF to HTML (PDF.co API) Converts the uploaded PDF to HTML using its URL. 4. Get HTML (HTTP Request) Downloads the converted HTML from PDF.co. 5. Code1 (Function / Code) Parses the HTML content to extract all URLs (http, https, www). Uses a regex to identify URLs within the HTML text. Outputs an array of objects containing the extracted URLs. 📎 Requirements Active PDF.co account with API key. Set up PDF.co credentials in n8n (PDF.co account). Enable webhook to expose the upload form. 🛠️ Suggested Next Steps Add nodes to validate extracted URLs (e.g., HTTP requests to check status). Store URLs in a database, spreadsheet, or send via email. Extend the flow to filter URLs by domain, type, or pattern. 📤 Importing the Template Import this workflow into n8n via Import workflow and paste the provided JSON. If you want help adding extra steps or optimizing the URL extraction, just ask! If you want, I can also prepare this as a Canva visual template for you. Would you like that?
by Harshil Agrawal
Store the data received from the CocktailDB API in JSON
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
by Muhammad Abrar
This n8n template demonstrates how to automate the scraping of posts, comments, and sub-comments from a Facebook Group and store the data in a Supabase database. Use cases are many: Gather user engagement data for analysis, archive posts and comments for research, or monitor community sentiment by collecting feedback across discussions! Good to know At the time of writing, this workflow requires the apify api for scraping and Supabase credentials for database storage. How it works The Facebook Group posts are retrieved using an Apify scraper node. For each post, comments and sub-comments are collected recursively to capture all levels of engagement. The data is then structured and stored in Supabase, creating records for posts, comments, and sub-comments. This workflow includes the option to adjust how often it scrapes and which group to target, making it easy to automate collection on a schedule. How to use The workflow is triggered manually in the example, but you can replace this with other triggers like webhooks or scheduled workflows, depending on your needs. This workflow is capturing data points, such as user interactions or media attached to posts. Requirements Apify account API Supabase account for data storage Customizing this workflow This template is ideal for gathering and analyzing community feedback, tracking discussions over time, or archiving group content for future use.
by Jay Emp0
Prompt-to-Image Generator & WordPress Uploader (n8n Workflow) This workflow generates high-quality AI images from text prompts using Leonardo AI, then automatically uploads the result to your WordPress media library and returns the final image URL. It functions as a Modular Content Production (MCP) tool - ideal for AI agents or workflows that need to dynamically generate and store visual assets on-demand. ⚙️ Features 🧠 AI-Powered Generation Uses Leonardo AI to create 1472x832px images from any text prompt, with enhanced contrast and style UUID preset. ☁️ WordPress Media Upload Uploads the image as an attachment to your connected WordPress site via REST API. ☁️ Twitter Media Upload Uploads the image to twitter so that you can post the image later on to X.com using the media_id 🔗 Returns Final URL Outputs the publicly accessible image URL for immediate use in websites, blogs, or social media posts. 🔁 Workflow-Callable (MCP Compatible) Can be executed standalone or triggered by another workflow. Acts as an image-generation microservice for larger automation pipelines. 🧠 Use Cases For AI Agents (MCP) Plug this into multi-agent systems as the "image generation module" Generate blog thumbnails, product mockups, or illustrations Return a clean image_url for content embedding or post-publishing For Marketers / Bloggers Automate visual content creation for articles Scale image generation for SEO blogs or landing pages Supports media upload for twitter For Developers / Creators Integrate with other n8n workflows Pass prompt and slug as inputs from any external trigger (e.g., webhook, Discord, Airtable, etc.) 📥 Inputs | Field | Type | Description | |--------|--------|----------------------------------------| | prompt | string | Text prompt for image generation | | slug | string | Filename identifier (e.g. hero-image) | Example: { "prompt": "A futuristic city skyline at night", "slug": "futuristic-city" } 📤 Output { "public_image_url" : "https://your.wordpress.com/img-id", "wordpress":{...obj}, "twitter":{...obj} } 🔄 Workflow Summary Receive Prompt & Slug Via manual trigger or parent workflow execution Generate Image POST to Leonardo AI's API with the prompt and config Wait & Poll Delays 1 minute, then fetches final image metadata Download Image GET request to retrieve generated image Upload to WordPress Uses WordPress REST API with proper headers Upload to Twitter Uses Twitter Media Upload API to get the media id incase you want to post the image to twitter Return Result Outputs a clean public_image_url JSON object along with wordpress and twitter media objects 🔐 Requirements Leonardo AI account and API Key WordPress site with API credentials (media write permission) Twitter / x.com Oauth API (optional) n8n instance (self-hosted or cloud) This credential setup: httpHeaderAuth for Leonardo headers httpBearerAuth for Leonardo bearer token wordpressApi for upload 🧩 Node Stack Execute Workflow Trigger / Manual Trigger Code (Input Parser) HTTP Request → Leonardo image generation Wait → 1 min delay HTTP Request → Poll generation result HTTP Request → Download image HTTP Request → Upload to WordPress Code → Return final image URL 🖼 Example Prompt { "prompt": "Batman typing on a laptop", "slug": "batman-typing-on-a-laptop" } Will return: { "public_image_url": "https://articles.emp0.com/wp-content/uploads/2025/07/img-batman-typing-on-a-laptop.jpg" } 🧠 Integrate with AI Agents This workflow is MCP-compliant—plug it into: Research-to-post pipelines Blog generators Carousel builders Email visual asset creators Trigger it from any parent AI agent that needs to generate an image based on a given idea, post, or instruction.
by Grace Gbadamosi
How it works This workflow automatically monitors your Google Business Profile for new reviews and uses AI to generate personalized response suggestions. When a review is detected, the system formats the review data, generates an appropriate AI response based on the rating and content, sends differentiated Slack notifications (urgent alerts for negative reviews, celebration messages for positive ones), and logs everything to Google Sheets for tracking and analysis. Who is this for Local business owners, restaurant managers, retail store operators, service providers, and reputation management teams who want to stay on top of customer feedback and respond promptly with thoughtful, AI-generated responses. Perfect for businesses that receive regular reviews and want to maintain consistent, professional customer engagement without manually monitoring multiple platforms. Requirements Google Business Profile**: Active business profile with review monitoring enabled Google API Credentials**: Service account with access to Business Profile API and Sheets API Slack Webhook**: Incoming webhook URL for team notifications Google Sheets**: Spreadsheet with "Reviews" sheet for logging review data Environment Variables**: Setup for secure credential storage Basic n8n Knowledge**: Understanding of triggers, expressions, and credential management How to set up Configure Google Business Profile API - Create Google Cloud project, enable Business Profile API, set up service account credentials, and add your Business Account ID and Location ID to environment variables Prepare Google Sheets Integration - Create Google Sheet with "Reviews" sheet, add required headers, set GOOGLE_SHEET_ID environment variable, and ensure service account has edit access Setup Slack Notifications - Create Slack webhook in your workspace and set SLACK_WEBHOOK_URL environment variable Customize Business Settings - Update Business Configuration node with your business name and adjust AI response tone preferences How to customize the workflow Modify the Business Configuration node to change your business name, adjust the AI response tone (professional, friendly, casual), customize Slack notification messages in the HTTP Request nodes, or add additional review sources by duplicating the trigger structure.
by inderjeet Bhambra
This workflow automates AI-powered image and video generation using MagicHour.ai's API, enhanced by GPT-4.1 for intelligent prompt optimization. It processes webhook requests, refines prompts using AI, generates media content, and returns the final output. Who's it for Content creators, marketers, social media managers, and developers who need automated AI media generation at scale. Perfect for teams building applications that require on-demand image or video creation without manual intervention. How it works The workflow receives a webhook POST request containing generation parameters (type, orientation, style, duration). GPT-4.1 analyzes and optimizes the user's prompt based on the request type (image or video), then sends it to MagicHour.ai's API. The workflow monitors the generation status through polling loops, downloads the completed media, and returns it via webhook response. Error handling ensures failed requests are captured and reported. Requirements n8n instance** (self-hosted or cloud) MagicHour.ai account** with API access (Bearer token) OpenAI API account** for GPT-4.1 access Basic understanding of webhooks and JSON How to set up Configure credentials: Add MagicHour.ai Bearer token in HTTP Request nodes (ai-image-generator, text-to-video, Get Image Details, Get Video Details) Add OpenAI API credentials in both Generate Image Prompt and Generate video Prompt nodes Activate the workflow: Enable the workflow to activate the webhook endpoint Copy the webhook URL from the Webhook trigger node Test the workflow: Download the n8n-magichour HTML tester Click here to download For image generation, send a POST request with this structure: { "action": "generate", "type": "image", "parameters": { "name": "My Image", "image_count": 1, "orientation": "landscape", "style": { "prompt": "A serene mountain landscape at sunset", "tool": "realistic" } } } For video generation, use: { "action": "generate", "type": "video", "parameters": { "name": "My Video", "end_seconds": 5, "orientation": "landscape", "resolution": "1080p", "style": { "prompt": "A dog running through a field" } } } How to customize the workflow Adjust AI prompt optimization: Modify the system prompts in Generate Image Prompt or Generate video Prompt nodes to change how GPT-4.1 refines user inputs. Current prompts enforce strict character limits and avoid unauthorized content. Change polling intervals: Modify the Wait nodes to adjust how frequently the workflow checks generation status (useful for longer video renders). Modify response format: Update the Respond to Webhook node to customize the output structure sent back to the caller. Add multiple output formats: Extend Download Image/Video nodes to save files to cloud storage (Google Drive, S3) instead of just returning via webhook. Implement queue management: Add a database node before MagicHour.ai calls to queue requests and prevent API rate limiting.
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. Introduction This workflow automates the end-to-end integration between Zoom and KlickTipp. It listens to Zoom webinar events (specifically meeting.ended), validates incoming webhooks, retrieves participant data from Zoom, and applies segmentation in KlickTipp by subscribing and tagging participants based on their attendance duration. This enables precise, automated campaign targeting without manual effort. How It Works Zoom Webhook Listener Captures meeting.ended events from Zoom. Validates initial webhook registration via HMAC before processing. Webhook Response Handling Distinguishes between Zoom’s URL validation requests and actual event data. Sends appropriate responses (plainToken + encryptedToken for validation, or simple status: ok for regular events). Data Retrieval Waits briefly (1 second) to ensure meeting data is available. Pulls the participant list from Zoom’s past_meetings/{uuid}/participants endpoint. Participant Processing Splits the list into individual participant items. Filters out internal users (like the host). Routes participants based on the meeting topic (e.g., Anfänger vs. Experten webinar). Attendance Segmentation Subscribes each participant to KlickTipp with mapped fields (first name, last name, email). Uses conditions to check attendance thresholds: ≥ 90% of total meeting duration → Full attendance Otherwise → General attendance Applies corresponding KlickTipp tags per meeting type. Key Features ✅ Webhook Validation & Security with HMAC (SHA256). ✅ Automated Attendance Calculation using participant duration vs. meeting duration. ✅ Dynamic Routing by meeting topic for multiple webinars. ✅ KlickTipp Integration with: Subscriber creation or update. Tagging for full vs. general attendance. ✅ Scalable Structure for adding more webinars by extending the Switch and tagging branches. Setup Instructions Zoom Setup Enable Zoom API access and OAuth2 app credentials. Configure webhook event meeting.ended. Grant scopes: meeting:read:meeting meeting:read:list_past_participants KlickTipp Setup Prepare custom fields: Zoom | meeting selection (Text) Zoom | meeting start (Date & Time) Zoom | Join URL (URL) Zoom | Registration ID (Text) Zoom | Duration meeting (Text) Create tags for each meeting variation: attended, attended fully, not attended per meeting name. n8n Setup Add Zoom webhook node (Listen to ending Zoom meetings). Configure validation nodes (Crypto, Build Validation Body). Set up HTTP Request node with Zoom OAuth2 credentials. Connect KlickTipp nodes with your KlickTipp API credentials. Testing & Deployment End a test Zoom meeting connected to this workflow. Verify that: The webhook triggers correctly. Participant list is fetched. Internal users are excluded. Participants are subscribed and tagged in KlickTipp. Check contact records in KlickTipp for tag and field updates. 💡 Pro Tip: Use test emails and manipulate duration values to confirm segmentation logic. Customization Ideas Adjust attendance thresholds (e.g., 80% instead of 90%). Add additional meeting topics via the Switch node. Trigger email campaigns in KlickTipp based on attendance tags. Expand segmentation with more granular ranges (e.g., 0–30%, 30–60%, 60–90%). Add error handling for missing Zoom data or API failures. Resources: Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Convosoft
Generate Secure User Authentication with One Webhook Streamline user onboarding and security for your applications using this n8n workflow. This template handles signup, login, and password resets through a single endpoint, making it ideal for developers building MVPs or scaling apps without a full authentication backend. Who Is This For? This workflow is designed for: Developers, indie hackers, and teams building web, mobile, or API-driven applications. Those who need a quick and secure authentication layer. Anyone tired of writing custom auth code or managing third-party services like Auth0 for simple needs. This template integrates seamlessly into your n8n setup. What Problem Does This Workflow Solve? Building authentication from scratch is time-consuming and complex: User Management: Managing registration, credential verification, and password recovery can take weeks of development time. Security: Ensuring secure password hashing, case-insensitive email matching, and robust error handling adds significant complexity. Integration: Creating consistent APIs for apps (e.g., React Native, Next.js, Flutter) is challenging. This workflow provides a battle-tested, webhook-based authentication system that is: Database-agnostic (works with PostgreSQL/Supabase). Extensible—deploy once and integrate across all your apps. What This Workflow Does The workflow handles authentication tasks through a single webhook endpoint, offering the following functionality: Webhook Entry: Listens for POST requests at /webhook/auth. Processes a simple JSON payload, routing actions via a "path" parameter (signup, signin, forgot). Signup: Inserts new users into your database. Uses bcrypt-hashed passwords (via pgcrypto). Returns user details in the response. Login: Queries for case-insensitive email matches. Verifies passwords securely. Returns user information on successful login. Forgot Password: Generates a random 8-character password. Updates the password hash in the database. Returns the new password (suitable for email delivery). Routing & Validation: Uses n8n Switch and IF nodes to securely handle paths and credentials. Standardized Responses: Outputs clean JSON with status, message, and data for easy frontend parsing. Error Handling: Gracefully manages invalid inputs, duplicate entries, or database errors. No more boilerplate—get authentication up and running in minutes! Setup Instructions Follow these steps to set up the workflow: Connect Your Accounts: Use PostgreSQL or Supabase for user storage (free tiers are sufficient). Enable the following PostgreSQL extensions: uuid-ossp and pgcrypto. Create the Users Table: sqlCREATE TABLE users ( id uuid PRIMARY KEY DEFAULT uuid_generate_v4(), full_name text NOT NULL, email text UNIQUE NOT NULL, password_hash text NOT NULL, created_at timestamptz DEFAULT now() ); Configure Credentials : Add PostgreSQL credentials to the n8n nodes ("Signup", "Login", "Reset Password"). Import the JSON workflow into n8n. Activate the workflow. Test the Workflow: Use Postman or curl to send requests to the auto-generated webhook URL. How to Customize This Workflow Extend the workflow to fit your specific needs with these modifications: Add JWT Sessions: Insert a node after successful login to generate and sign JWT tokens (e.g., using the Crypto node). Email Integration: Add a SendGrid or Mailgun node to the "Forgot Password" flow to automatically send new credentials. Rate Limiting: Include an HTTP Request node to check usage quotas before processing requests. Multi-Database Support: Replace PostgreSQL with MySQL or MongoDB by updating the query nodes. Frontend Enhancements: Extend JSON responses to include user avatars or roles by joining additional tables in SQL queries. Triggers: Add a Schedule node for batch user imports. Include a webhook for external authentication calls.
by Oneclick AI Squad
Enhance event logistics with this automated n8n workflow. Triggered by seating requests, it fetches attendee data and venue templates from Google Sheets, calculates totals, and optimizes seating layouts. The workflow generates detailed recommendations, splits individual assignments, and sends alerts, ensuring efficient venue planning and real-time updates. 🎪📋 Key Features Optimizes seating arrangements based on attendee data and event type. Generates venue layouts with visual and statistical insights. Provides real-time alerts with comprehensive seating plans. Logs detailed assignments and layouts in Google Sheets. Workflow Process The Webhook Trigger node initiates the workflow upon receiving venue requirements and attendee data via webhook. Validate Request Data** ensures the incoming data is complete and accurate. Fetch Attendee Data** retrieves attendee information, including groups, accessibility needs, and VIP preferences from Google Sheets. Fetch Venue Templates** reads venue layout templates from Google Sheets. Calculate Totals** aggregates attendee data and venue constraints for optimal planning. Combine All Data** merges attendee and venue data for analysis. AI Optimization** uses algorithms to calculate optimal seating based on venue dimensions, attendee groups, accessibility needs, VIP placement, and aisle placement. Optimize Seating Layout** refines the seating plan for efficiency. Format Recommendations** structures the seating plan with visual layout map, seat assignments, statistics & metrics, and optimization tips. Split Seat Assignments** divides the plan into individual seat assignments. Send Response** returns the complete seating plan with visual layout map, seat assignment list, statistics & recommendations, and export-ready format. Send Alert** notifies organizers with the finalized plan details. Update Sheets** saves the master plan summary, individual seat assignments, and layout specifications to Google Sheets. Save Individual Assignments** appends or updates individual seat assignments to Google Sheets. Setup Instructions Import the workflow into n8n and configure Google Sheets OAuth2 for data access. Set up the Webhook Trigger with your event management system's API credentials. Configure the AI Optimization node with a suitable algorithm or model. Test the workflow by sending sample seating requests and verifying layouts. Adjust optimization parameters as needed for specific venue or event requirements. Prerequisites Google Sheets OAuth2 credentials Webhook integration with the event management system Structured attendee and venue data in a Google Sheet Google Sheet Structure: Attendee Data Sheet with columns: Name Group Accessibility Needs VIP Status Preferences Updated At Venue Templates Sheet with columns: Venue Name Capacity Dimensions Layout Template Updated At Modification Options Customize the Validate Request Data node to include additional validation rules. Adjust the AI Optimization node to prioritize specific criteria (e.g., proximity, accessibility). Modify the Format Recommendations node to include custom visual formats. Integrate with venue management tools for live layout updates. Set custom alert triggers in the Send Alert node. Discover more workflows – Get in touch with us
by David Olusola
🚀 Auto-Save Instagram Leads to Google Sheets This workflow automatically captures leads submitted through an Instagram Form and saves the data directly to a Google Sheet. It ensures that every new lead is instantly logged, creating a centralized database for your marketing and sales teams. ⚙️ How It Works Receive Lead Data The workflow starts with an Instagram Lead Webhook that listens for new lead submissions from your Instagram account's lead form. Normalize Data A Code node processes the raw data received from Instagram. This node normalizes the lead information, such as name, email, and phone number, into a consistent format. It also adds a "Source" field to identify the lead as coming from Instagram and timestamps the entry. Save to Google Sheets Finally, the Save to Google Sheets node takes the normalized data and appends it as a new row in your designated Google Sheet. It uses the email field to check for existing entries and can either append a new row or update an existing one, preventing duplicate data. 🛠️ Setup Steps 1. Create Google Sheet Create a new Google Sheet with the following headers in the first row (A1): 2. Get Sheet ID Find your Sheet ID in the URL of your Google Sheet. It's the long string of characters between /d/ and /edit. Example: Replace YOUR_GOOGLE_SHEET_ID in the Save to Google Sheets node with your actual ID. 3. Connect Instagram Form Copy the Webhook URL from the "Instagram Lead Webhook" node. In your Instagram lead form settings, paste this URL as the webhook destination. Ensure your form fields are mapped correctly (e.g., name, email, phone, message). ✅ Once configured, every Instagram lead will instantly appear in your Google Sheet — organized, timestamped, and ready for follow-up.
by WeblineIndia
Incident Reporting & Management Workflow (Form + Google Sheets + Email) This workflow automates incident reporting and management for operations teams by connecting a public reporting form with real-time logging in Google Sheets and instant alert emails to your support team. Whenever an incident is reported via the n8n form/webhook, all details are saved securely and immediately and the right people are notified the moment issues occur. It's a fast, scalable solution for reliable incident handling. Who’s It For Renewable energy operators (solar/wind/green energy). Facility and plant managers. Environmental, EHS and safety teams. Technical support and incident response crews. Maintenance & field operations teams. Anyone aiming for compliance-ready, audit-friendly digital issue reporting. How It Works Form Submission: An n8n-powered form (or webhook endpoint) receives incident reports, capturing all key details: reporter info, contact, location, date/time, type, severity, actions taken, photos and more. Log to Google Sheets: Each report is instantly appended as a new row in a secure Google Sheet, creating a searchable, timestamped audit trail. Email Alert (Gmail): An automatic email with incident summary and critical details lands in the support team’s inbox seconds after submission—ensuring your response is always prompt. Workflow Automation: These nodes are linked in n8n, enabling no-code/low-code back-end automation for complete visibility and control. How to Set Up Import Workflow: In n8n, use "Import from File" to upload the workflow JSON provided. Edit Configuration: Update form fields as needed (label, validations, options for severity/category). Enter your Google Sheet ID and sharing settings. Configure Gmail/SMTP credentials and recipient address (example: supportteam@mailinator.com or your own team). Deploy Webhook: Copy your n8n webhook URL and connect it to your reporting interface (form, app, device, etc.). Activate: Enable the workflow in n8n. Submissions are now handled in real time. Test: Submit a sample incident to make sure data logs in Google Sheets and the alert email arrives as expected. Requirements | Tool | Purpose | |-----------------|-----------------------------------| | n8n Instance | Orchestrates the workflow | | Google Account | To access/use Google Sheets | | Gmail/SMTP | For sending incident alerts | | Incident Source | n8n Form, webhook, app or device| How to Customize Form Fields**: Add/remove fields or validations in the n8n form for organization-specific needs (e.g., add photos, custom categories). Alert Routing**: Use IF nodes to send critical alerts via Slack, SMS or escalate to on-call teams based on severity/type. Backend**: Replace Google Sheets with Notion, Airtable, PostgreSQL or other databases. Reporting**: Add PDF nodes to auto-generate and send report summaries. Integrations**: Push incidents to ticketing, asset tracking or calendar scheduling workflows. Add‑Ons (Optional Extensions) | Feature | Description | |------------------|------------------------------------------------------| | Slack Alerts | Instantly notify Slack channels on critical issues | | Database Logging | Store reports in SQL/NoSQL systems | | PDF Generation | Email ready-to-use incident reports as PDFs | | Calendar Events | Schedule follow-ups or deadline reminders | | AI Categorization| Auto-classify incidents by severity/type | | Task Creation | Open tickets in Jira, Trello, ClickUp or Asana | Use Case Examples Field engineers report solar inverter faults with mobile forms. Security personnel log site intrusions, with photos and severity. IoT sensors auto-post equipment failures as incidents. Compliance or EHS teams capture safety observations in real time. Technicians submit maintenance or post-repair issues instantly. Common Troubleshooting | Issue | Possible Cause | Solution | |--------------------------|---------------------------------------|----------------------------------------------------------| | Form not triggering | Webhook URL incorrect | Double-check webhook endpoint and method (POST) | | Email not delivered | Wrong SMTP/Gmail credentials | Re-enter credentials or verify SMTP access | | Google Sheets not updated| Sheets ID wrong/missing permissions | Use correct ID, share sheet with service account or make accessible | | Missing report fields in log | Form field names or types mismatched| Align JSON/form data keys with workflow node mappings | | Attachments not saved | Field not set for file type | Review form field definitions and adjust as needed | Need Help? Want a tailored setup, advanced automations or powerful add-ons (AI, SLAs, PDF logs, ticketing integration)? Our n8n workflow experts at WeblineIndia are ready to help you engineer seamless incident management for any industry. 👉 Contact WeblineIndia — Your Automation partner for smart preventive maintenance and calendar-driven ops!