by RedOne
This workflow is designed for e-commerce store owners, operations managers, and developers who use Shopify as their e-commerce platform and want an automated way to track and analyze their order data. It is particularly useful for businesses that: Need a centralized view of all Shopify orders Want to analyze order trends without logging into Shopify Need to share order data with team members who don't have Shopify access Want to build custom reports based on order information What Problem Is This Workflow Solving? While Shopify provides excellent order management within its platform, many businesses need their order data available in other systems for various purposes: Data accessibility**: Not everyone in your organization may have access to Shopify's admin interface Custom reporting**: Google Sheets allows for flexible analysis and report creation Data integration**: Having orders in Google Sheets makes it easier to combine with other business data Backup**: Creates an additional backup of your critical order information What This Workflow Does This n8n workflow creates an automated bridge between your Shopify store and Google Sheets: Listens for new order notifications from your Shopify store via webhooks Processes the incoming order data and transforms it into a structured format Stores each new order in a dedicated Google Sheets spreadsheet Sends real-time notifications to Telegram when new orders are received or errors occur Setup Create a Google Sheet Create a new Google Sheet to store your orders Add a sheet named "orders" with the following columns: orderId orderNumber created_at processed processed_at json customer shippingAddress lineItems totalPrice currency Set Up Telegram Bot Create a Telegram bot using BotFather (send /newbot to @BotFather) Save your bot token for use in n8n credentials Start a chat with your bot and get your chat ID (you can use @userinfobot) Configure the Workflow Set your Google Sheet ID in the "Edit Variables" node Enter your Telegram chat ID in the "Edit Variables" node Set up your Telegram API credentials in n8n Configure Shopify Webhook In your Shopify admin, go to: Settings > Notifications > Webhooks Create a new webhook for "Order creation" Set the URL to your n8n webhook URL (from the "Receive New Shopify Order" node) Set the format to JSON How to Customize This Workflow to Your Needs Additional data**: Modify the "Transform Order Data to Standard Format" function to extract more Shopify data Multiple sheets**: Duplicate the Google Sheets node to store different aspects of orders in separate sheets Telegram messages**: Customize the text in Telegram nodes to include more details or rich formatting Data processing**: Add nodes to perform calculations or transformations on order data Additional notifications**: Add more channels like Slack, Discord, or SMS Integrations**: Extend the workflow to send order data to other systems like CRMs, ERPs, or accounting software Final Notes This workflow serves as a foundation that you can build upon to create a comprehensive order management system tailored to your specific business needs.
by Oneclick AI Squad
📚 Automated School Fee Reminder Workflow with Payment Link Automatically sends fee reminders (via email and WhatsApp) to parents with secure payment links, 3 days before the due date. 🔧 Main Components Daily Fee Check – 8 AM** Scheduled trigger that starts the workflow daily at 8 AM. Read Pending Fees** Fetches student fee records from an Excel sheet (using getAll method). Process Fee Reminders** Filters records to find pending fees due within the next 3 days. Prepare Email Reminder** Generates personalized email messages with payment links. Wait for Email Preparation** Adds delay/wait condition for email logic readiness. Send Email Reminder** Sends the fee reminder email with a secure payment link to the parent. Prepare WhatsApp Reminder** Generates WhatsApp-friendly messages with fee and payment details. Wait for WhatsApp Preparation** Waits for WhatsApp message logic to complete. Send WhatsApp Message** Sends the message to the parent’s WhatsApp number using a message API. Update Reminder Status** Updates the Excel file to mark reminders as sent to avoid duplicates. 🧩 Channels Used 📧 Email – with personalized payment link 💬 WhatsApp – formatted reminder message 🔐 Payment Integration Secure payment links are auto-generated per student to enable direct and safe online fee payments. ✅ Essential Prerequisites Excel sheet with fee records (student_fee_data.xlsx) SMTP credentials for sending email WhatsApp API or provider integration (like Twilio or Gupshup) Access to a payment gateway or service for link generation File storage access to update reminder status in Excel 📁 Required Excel File Structure (student_fee_data.xlsx) | Student ID | Name | Email | Phone | Fee Due Date | Amount | Reminder Sent | | ---------- | ---- | ----- | ----- | ------------ | ------ | ------------- | 🧾 Expected Input Format Example { "studentId": "ST123", "name": "Ria Mehta", "email": "ria.mehta@example.com", "phone": "+919123456789", "dueDate": "2025-08-10", "amount": "₹5000", "reminderSent": "No" } 🚀 Key Features ⏰ Scheduled Daily Execution – Fully automated at 8 AM 🧮 Due-Date Filtering – Only targets fees due in the next 3 days 💬 Multi-Channel Notifications – Sends reminders via both Email and WhatsApp 🔗 Secure Payment Links – Auto-generated for each student 🔄 Reminder Tracking – Prevents duplicate reminders by updating status ⚙️ Quick Setup Guide Import Workflow JSON into your n8n instance. Configure schedule in the “Daily Fee Check” node (default: 8 AM). Set Excel file path in the “Read Pending Fees” node. Update your fee processing logic in the “Process Fee Reminders” node. Add email credentials in the “Send Email Reminder” node. Integrate WhatsApp provider API in the “Send message” node. Define how you generate secure payment links. Test with sample data and activate workflow. 🛠️ Parameters to Configure | Parameter | Description | | ------------------ | ------------------------------------------ | | excel_file_path | Path to the fee tracking Excel file | | smtp_host | SMTP server for sending email reminders | | smtp_user | Email username | | smtp_password | Email password | | whatsapp_api_key | WhatsApp API key for sending messages | | payment_api_url | URL for generating payment links | | admin_email | (Optional) Admin email for error reporting |
by Intuz
This n8n template from Intuz provides a complete and automated solution for hyper-personalized email outreach. It powerfully combines AI with Gmail and Google Sheets, using specific keywords and prospect data to automatically craft unique, compelling email content that boosts engagement and secures more replies. Instead of manually replying to every lead or inquiry, this template does the heavy lifting for you, ensuring every response is relevant, thoughtful, and timely. It reads each person's unique inquiry, uses OpenAI to craft a perfectly tailored and human-like response, and sends it directly from your Gmail account. Ideal for sales, marketing, and customer support teams looking to boost engagement and save hours of manual work. Use Cases: Sales Teams: Instantly follow up with new leads from your website's contact form with a personalized touch. Customer Support: Provide initial, intelligent responses to support tickets, answering common questions or acknowledging receipt of a complex issue. Marketing Automation: Nurture leads by responding to content downloads or webinar sign-ups with relevant, non-generic information. Founders & Solopreneurs: Manage all incoming business inquiries (partnerships, media, etc.) efficiently without sacrificing quality. How It Works: Trigger the Flow (Manual): Start the automation whenever you're ready to process a new batch of inquiries from your sheet. Fetch Inquiries from Google Sheets: The workflow connects to your specified Google Sheet and reads each row. It pulls the contact's First Name, Email ID, the Inquiry Intent (e.g., "Demo Request," "Pricing Inquiry"), and the full text of their Original Inquiry. Sync Your Signature: Before writing the email, an HTTP Request node dynamically fetches your display name from your Gmail account settings. This ensures the signature in the generated email (Thanks, {{Your Name}}) is always accurate. Craft a Hyper-Personalized Reply with AI: It uses this context to generate a high-quality, professional, and friendly email reply in HTML format. For example: If the intent is "Technical Support," the AI will generate a helpful, empathetic response addressing the technical issue. If the intent is "Partnership Proposal," it will draft a professional reply acknowledging the proposal and outlining the next steps. Send via Gmail: The final node takes the AI-generated message, adds a relevant subject line (e.g., "Re: Your Demo Request"), and sends it directly to the contact's email address from your connected Gmail account. This process loops for every single row in your Google Sheet, turning a list of names into a series of meaningful conversations. Setup Instructions: To get this workflow running, you'll need to configure a few things: Credentials: Google: Connect your Google account via OAuth2 and ensure you have enabled access for Google Sheets, Google Drive, and Gmail. OpenAI: Add your OpenAI API key as a credential. Google Sheet Setup: Create a Google Sheet with the following exact column headers: -First Name -Email ID -Inquiry Intent (A short category like "Demo Request", "Billing Issue", etc.) -Original Inquiry (The full text of the email or message you received). Node Configuration: Get row(s) in sheet: Select your Google Sheet document and the specific sheet name. Message a model (OpenAI): Choose your preferred OpenAI model (e.g., gpt-4-turbo, gpt-3.5-turbo). HTTP Request & Send Personalized emails: These nodes should automatically use your configured Gmail credentials. No changes are typically needed. Connect with us Website: https://www.intuz.com/cloud/stack/n8n Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz
by Robert Breen
n8n Workflow: OpenAI DALL·E 2 Image Generation & Google Drive Upload Description This n8n workflow automates the process of generating multiple AI-created images from a single prompt using OpenAI's DALL·E 2, then uploads the results directly to a Google Drive folder. It includes a loop to produce several image variations for the same prompt, making it ideal for creative projects, marketing materials, or content experimentation. Step-by-Step Setup Instructions 1. Prepare Your API Keys OpenAI API Key** Sign up or log in at https://platform.openai.com/ Go to API Keys and create a new one. Copy and store this securely — you'll need it in n8n. Google Drive API** Go to https://console.cloud.google.com/ Create a project and enable Google Drive API. Create OAuth 2.0 credentials and set the redirect URI to your n8n OAuth redirect (found in your n8n Google Drive node setup). Connect your Google account when adding credentials in n8n. 2. Workflow Nodes Overview Manual Trigger – Starts the workflow manually. Set Image Prompt – Stores the prompt text and base file name (e.g., “Make an image of an attractive woman standing in New York City”). Duplicate Rows (Code Node) – Creates multiple "runs" of the same prompt for variation. Loop Over Items – Processes each variation one at a time. Generate an image (OpenAI DALL·E 2) – Sends the prompt to OpenAI and retrieves an image. Upload to Google Drive – Saves each generated image to your chosen Google Drive folder. 3. Building the Workflow in n8n Step 1 — Manual Trigger Add a Manual Trigger node to start the workflow manually when testing. Step 2 — Set Image Prompt Add a Set node with two fields: Prompt → The image description text. Name → The base name for the saved file. Example: | Name | Value | |--------|---------------------------------------------------------------| | Prompt | Make an image of an attractive woman standing in New York City | | Name | woman-nyc | Step 3 — Duplicate Rows (Code Node) Use this JavaScript to create three copies of the prompt (run 1, run 2, run 3): const original = items[0].json; return [ { json: { ...original, run: 1 } }, { json: { ...original, run: 2 } }, { json: { ...original, run: 3 } }, ]; Step 4 — Loop Over Items Insert a Split in Batches node and set the batch size to 1. This ensures each prompt variation runs through the image generation process individually. Connect this node so it runs after the Duplicate Rows node. Step 5 — Generate Image Add the OpenAI Image Generation node and configure it as follows: Model**: dall-e-2 Prompt**: ={{ $json.Prompt }} Leave other options at their defaults unless you want to specify image size or style. Connect your OpenAI API credentials created in Step 1. This node will send the current prompt in the batch to OpenAI's DALL·E 2 model and return an AI-generated image. Step 6 — Upload to Google Drive Add a Google Drive node and configure it to store the generated image: File Name**: ={{ $('Set Image Prompt').item.json.Name }} - {{ $('Duplicate Rows').item.json.run }} Folder ID**: Select the target Google Drive folder where images should be saved. Connect your Google Drive OAuth2 API credentials. The node will upload each generated image to your chosen Google Drive location, with a unique filename for each variation. Running the Workflow Execute the workflow manually. The process will: Loop through each prompt variation. Generate an image using OpenAI DALL·E 2. Upload the image to Google Drive with a unique name. You will find all generated images in the selected Google Drive folder. Customization Tips Change the number of variations by editing the Duplicate Rows code. Adjust the prompt dynamically from other data sources like Google Sheets, webhooks, or forms. Schedule the workflow to run at specific times or trigger it via an API call. Created by Robert A. – Ynteractive Website: https://ynteractive.com Email: robert@ynteractive.com
by Robert Breen
This n8n training workflow demonstrates how to connect a sub-workflow as a tool to an AI Agent. In this example, the main workflow is a Website Chatbot that engages visitors, collects contact information, and sends that data to a CRM process. The CRM process itself is a separate sub-workflow, connected to the agent as a tool via the Tool Workflow node. Step-by-Step Setup Instructions 1. Create the Sub-Workflow (CRM Tool) This sub-workflow will be triggered by the AI agent to process collected information. It will: Receive inputs (email, description) from the main chatbot workflow. Format the data into a structured JSON format. Append the data to a Google Sheet (acting as the CRM database). Send a confirmation message back to the main workflow. Steps inside the sub-workflow: When Executed by Another Workflow** – Triggered by the main workflow’s tool node. Convert Conversation (Agent)** – Uses OpenAI to extract and format the input into a JSON structure: { "email": "jane.doe@example.com", "description": "Wants help automating lead intake and sending Slack notifications." } Structured Output Parser – Ensures the extracted data matches the expected JSON schema. Append row in sheet (Google Sheets) – Adds the new lead data to your CRM sheet. Code Node – Returns a simple text confirmation like "Thanks for the info, we will be in touch soon". Required setup for Google Sheets: Enable the Google Sheets API and connect your Google account in n8n. Create a sheet with at least the columns email and description. Use the sheet's Document ID and tab name in the Google Sheets node. 2. Create the Main Workflow (Website Chatbot) This workflow acts as the main AI Agent handling incoming chat messages. Steps in the main workflow: When chat message received – Starts the workflow whenever a visitor sends a message via your chatbot integration. Website Chatbot (Agent Node) – Configured with a System Message that: Briefly explains your services. Asks the visitor what processes they want to automate. Requests their name and email. Sends collected data to the CRM tool once email and description are available. OpenAI Chat Model – Connects to the AI agent as its language model. Simple Memory – Stores short-term context for the ongoing chat. CRM Tool (Tool Workflow Node) – Points to the sub-workflow created in Step 1, allowing the chatbot to trigger it directly. 3. Connecting the Sub-Workflow to the AI Agent Add a Tool Workflow node to the main workflow. Select "Parameter" as the source. Paste in your sub-workflow JSON or select it from your n8n workflows. Connect the Tool Workflow node to your AI Agent using the ai_tool connection. Give the tool a clear description (e.g., crm tool to store lead information) so the agent knows when to use it. 4. How It Works in Action A visitor sends a message through the chatbot. The AI Agent engages, asks questions, and collects their name, email, and request. Once collected, the agent triggers the CRM Tool. The sub-workflow formats the data, stores it in Google Sheets, and sends a confirmation. The chatbot confirms with the visitor that their request was received. 5. Customization Ideas Replace Google Sheets with your actual CRM API. Add validation to ensure the email format is correct before saving. Expand the CRM tool to send a Slack or email notification after storing the lead. Created by Robert A. – Ynteractive Website: https://ynteractive.com Email: robert@ynteractive.com
by Artur
Overview This automated workflow fetches Upwork job postings using Apify, removes duplicate job listings via Airtable, and sends new job opportunities to Slack. Key Features: Automated job retrieval** from Upwork via Apify API Duplicate filtering** using Airtable to store only unique jobs Slack notifications** for new job postings Runs every 30 minutes** during working hours (9 AM - 5 PM) This workflow requires an active Apify subscription to function, as it uses the Apify Upwork API to fetch job listings. Who is This For? This workflow is ideal for: Freelancers looking to track Upwork jobs in real time Recruiters automating job collection for analytics Developers who want to integrate Upwork job data into their applications What Problem Does This Solve? Manually checking Upwork for jobs is time-consuming and inefficient. This workflow: Automates job discovery based on your keywords Filters out duplicate listings, ensuring only new jobs are stored Notifies you on Slack when new jobs appear How the Workflow Works 1. Schedule Trigger (Every 20 Minutes) Triggers the workflow at 20-minute intervals Ensures job searches are only executed during working hours (9 AM - 5 PM) 2. Query Upwork for Jobs Uses Apify API to scrape Upwork job posts for specific keywords (e.g., "n8n", "Python") 3. Find Existing Jobs in Airtable Searches Airtable to check if a job (based on title and link) already exists 4. Filter Out Duplicate Jobs The Merge Node compares Upwork jobs with Airtable data The IF Node filters out jobs that are already stored in the database 5. Save Only New Jobs in Airtable The Insert Node adds only new job listings to the Airtable collection 6. Send a Slack Notification If a new job is found, a Slack message is sent with job details Setup Guide Required API Keys Upwork Scraper (Apify Token) – Get your token from Apify Airtable Credentials Slack API Token – Connect Slack to n8n and set the channel ID (default: #general) Configuration Steps Modify search keywords in the 'Assign Parameters' node (startUrls) Adjust the Working Hours in the 'If Working Hours' node Set your Slack channel in the Slack node Ensure Airtable is connected properly - you'll need to create a table with 'title' and 'link' columns. Adjust the 'If Working Hours' node to match your timezone and hours, or remove it altogether to receive notifications and updates constantly. How to Customize the Workflow Change keywords: update the startUrls in the 'Assign Parameters' node to track different job categories Change 'If Working Hours': Modify conditions in the IF Node to filter times based on your needs Modify Slack Notifications: Adjust the Slack message format to include additional job details Why Use This Workflow? Automated job tracking without manual searches Prevents duplicate entries in Airtable Instant Slack notifications for new job opportunities Customizable – adapt the workflow to different job categories Next Steps Run the workflow and test with a small set of keywords Expand job categories for better coverage Enhance notifications by integrating Telegram, Email, or a dashboard This workflow ensures real-time job tracking, prevents duplicates, and keeps you updated effortlessly.
by Intuz
This n8n template from Intuz provides a complete and automated solution for real-time financial reporting. It instantly syncs new QuickBooks invoices to Google Sheets, using specific invoice data or keywords as triggers to ensure your financial records are always accurate and up-to-date. It uses a webhook to capture every new or updated invoice and logs the essential details into a designated Google Sheet. Perfect for creating custom reports, data backups, or a real-time dashboard of your accounts receivable. Use Cases Financial Reporting:** Create a simple, shareable Google Sheet for team members who don't have QuickBooks access. Data Backup:** Maintain a secure, independent log of all your invoices outside of the QuickBooks ecosystem. Custom Dashboards:** Use the Google Sheet as a data source for tools like Google Data Studio or Grafana to build custom financial dashboards. Auditing:** Easily track the history and status of all invoices in a simple, searchable spreadsheet format. How it Works 1. Instant Webhook Trigger: The workflow activates the moment an invoice is created or updated in QuickBooks. The QuickBooks webhook sends a notification to n8n, kicking off the process in real time. 2. Fetch Full Invoice Details: The initial webhook notification only contains the invoice ID. This node uses that ID to make a call back to the QuickBooks API and retrieve the complete invoice data, including customer name, due date, and more. 3. Format Key Data: A simple Code node cleans up the data fetched from QuickBooks. It extracts only the fields you need—ID, Domain, Customer Name, and Due Date—and structures them perfectly for the next step. 4. Append or Update in Google Sheets: The final node connects to your Google Sheet and uses the powerful "Append or Update" operation. If the ID of the invoice doesn't exist in the sheet, it adds a new row. If the ID already exists, it updates the existing row with the latest information. This ensures your Google Sheet is always a perfect mirror of your QuickBooks invoice data, preventing duplicates and keeping everything current. Setup Instructions For this workflow to run successfully, follow these setup steps: 1. Credentials: QuickBooks: Connect your QuickBooks account credentials to n8n. Google: Connect your Google account using OAuth2 credentials. Ensure the Google Sheets and Google Drive APIs are enabled. 2. QuickBooks Webhook Configuration: Activate the workflow. Copy the Production URL from the Webhook node. In your Intuit Developer Portal, go to the webhooks section for your app. Paste the URL and subscribe to Invoice events (e.g., Create, Update). 3. Google Sheet Setup: Create a Google Sheet for your invoice data. Crucially, create the following headers in the first row of your sheet: -ID -Domain -Customer Name -Due Date 4. Node Configuration: In the Append or update row in sheet node, select your Google Sheet document and the specific sheet name from the dropdown lists. The columns should map automatically if you've set up the headers correctly. Connect with us Website: https://www.intuz.com/cloud/stack/n8n Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz
by Abrar Sami
Auto-generate & post content using AI This workflow helps you create daily content using just a topic prompt. It writes a tweet, generates an image, and publishes across Twitter, Facebook, and LinkedIn — all on autopilot. How it works Triggers daily at 10 PM to start the flow Uses OpenAI to generate a niche topic title Writes a short-form post (tweet style) with hashtags Generates a Japanese anime-style image for visual context Saves everything in Google Sheets Publishes automatically on Twitter, LinkedIn, and Facebook Set up steps You’ll need OpenAI, Google Sheets, and social media credentials (Twitter, Facebook, LinkedIn) Takes about 10–15 minutes to configure if you already have the credentials ready Make sure your Sheet and API keys are properly linked before activating 📝 Keep detailed notes inside the workflow with sticky notes for easier handoff or collaboration.
by Airtop
Automating LinkedIn Profile Discovery with Verification Use Case Accurately identifying and verifying a person’s LinkedIn profile is essential for prospecting, recruiting, or contact enrichment. This automation ensures high accuracy by combining search logic with optional profile validation. What This Automation Does This automation locates and verifies a LinkedIn profile using the following inputs: Person_info**: Any identifying information about the person (e.g., name, company, email). Airtop_profile**: Your Airtop Profile authenticated on LinkedIn, used for verifying the profile. How It Works Extracts a likely LinkedIn URL by performing a Google search using the provided person info. Validates the result (if Airtop Profile is provided): Visits the LinkedIn profile. Verifies match by checking the content (e.g., experience, role) against the person info. Returns a verified LinkedIn profile URL or "NA" if not found or not valid. Setup Requirements Airtop API Key Optional but recommended: an Airtop Profile authenticated on LinkedIn. Next Steps Combine with Email Lookup**: Use email-to-profile tools upstream to gather inputs. CRM Integration**: Automatically append LinkedIn profiles to contact records. Automate Outreach**: Use the verified URLs for personalized LinkedIn engagement workflows. Read more about how find and verify Linkedin profiles
by ist00dent
This n8n template enables you to instantly generate high-quality screenshots of any specified public URL by simply sending a webhook request. It’s an indispensable tool for developers, content creators, marketers, or anyone needing on-demand visual captures of web pages without manual intervention, all while including crucial security measures. 🔧 How it works Receive URL Webhook: This node acts as the entry point for the workflow. It listens for incoming POST requests and expects a JSON body containing a url property with the website you want to screenshot. You can trigger it from any application or service capable of sending an HTTP POST request. Validate URL for SSRF: This is a crucial security step. This Function node validates the incoming url to prevent Server-Side Request Forgery (SSRF) vulnerabilities. It checks for valid http:// or https:// protocols and, more importantly, ensures the URL does not attempt to access internal/private IP addresses or localhost. If the URL is deemed unsafe or invalid, it flags it for an error response. IF URL Valid: This IF node checks the isValidUrl flag set by the previous validation step. If the URL is valid (true), the workflow proceeds to take the screenshot. If the URL is invalid or flagged for security (false), the workflow branches to Respond with Validation Error. Take Screenshot: This node sends an HTTP GET request to the ScreenshotMachine API to capture an image of the validated URL. Remember to replace YOUR_API_KEY in the URL field of this node with your actual API key from ScreenshotMachine. Respond with Screenshot Data: This node sends the data received directly from the Take Screenshot node back to the original caller of the webhook. This response typically includes information about the generated screenshot, such as the URL to the image file, success status, and other metadata from the ScreenshotMachine API. Respond with Validation Error: If the IF URL Valid node determines the URL is unsafe or invalid, this node sends a descriptive error message back to the webhook caller, explaining why the request was denied due to security concerns or an invalid format. 🔒 Security Considerations This template includes a dedicated Validate URL for SSRF node to mitigate Server-Side Request Forgery (SSRF) vulnerabilities. SSRF attacks occur when an attacker can trick a server-side application into making requests to an unintended location. Without validation, an attacker could potentially use your n8n workflow to scan internal networks, access sensitive internal resources, or attack other services from your n8n server. The validation checks for: Only http:// or https:// protocols. Prevention of localhost or common private IP ranges (e.g., 10.x.x.x, 172.16.x.x - 172.31.x.x, 192.168.x.x). While this validation adds a significant layer of security, always ensure your n8n instance is properly secured and updated. 👤 Who is it for? This workflow is ideal for: Developers: Automate screenshot generation for testing, monitoring, or integrating visual content into applications. Content Creators: Quickly grab visuals for articles, presentations, or social media posts. Marketing Teams: Create dynamic visual assets for campaigns, ads, or competitive analysis. Automation Enthusiasts: Integrate powerful screenshot capabilities into existing automated workflows. Website Owners: Monitor how your website appears across different tools or over time. 📑 Prerequisites To use this template, you will need: An n8n instance (cloud or self-hosted). An API Key from ScreenshotMachine. You can obtain one by signing up on their website: https://www.screenshotmachine.com/ 📑 Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "url": "https://www.example.com" } If the URL is valid, the workflow will return the JSON response directly from the ScreenshotMachine API. This response typically includes information about the generated screenshot, such as the URL to the image file, success status, and other metadata: { "status": "success", "hash": "...", "url": "https://www.screenshotmachine.com/...", "size": 12345, "mimetype": "image/jpeg" } If the URL is invalid or blocked by the security validation, the workflow will return an error response similar to this: { "status": "error", "message": "Access to private IP addresses is not allowed for security reasons." } ⚙️ Setup Instructions Import Workflow: In your n8n editor, click "File" > "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Receive URL Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /website-screenshot). Add ScreenshotMachine API Key: Double-click the Take Screenshot node. In the 'URL' parameter, locate YOUR_API_KEY and replace it with your actual API key obtained from ScreenshotMachine. Example URL structure: http://api.screenshotmachine.com/?key=YOUR_API_KEY&url={{ $json.validatedUrl }} Activate Workflow: Save and activate the workflow. 📝 Tips Processing Screenshots: You're not limited to just responding with the screenshot data! You can insert additional nodes after the Take Screenshot node (and before the Respond with Screenshot Data node) to further process or utilize the generated image. Common extensions include: Saving to Cloud Storage: Use nodes for Amazon S3, Google Drive, or Dropbox to store the screenshots automatically, creating an archive. Sending via Email: Attach the screenshot to an email notification using an Email or Gmail node for automated alerts or reports. Posting to Chat Platforms: Share the screenshot directly in a Slack, Discord, or Microsoft Teams channel for team collaboration or visual notifications. Image Optimization: Use an image processing node (if available via an API or a custom function) to resize, crop, or compress the screenshot before saving or sending. Custom Screenshot Parameters: The ScreenshotMachine API supports various optional parameters (e.g., width, height, quality, delay, fullpage). Upgrade: Extend the Receive URL Webhook to accept these parameters in the incoming JSON body (e.g., {"url": "...", "width": 1024, "fullpage": true}). Leverage: Dynamically pass these parameters to the Take Screenshot HTTP Request node's URL to customize your screenshots for different use cases. Scheduled Monitoring: Upgrade: Combine this workflow with a Cron or Schedule node. Set it to run periodically (e.g., daily, hourly). Leverage: Automatically monitor your website or competitors' sites for visual changes. You could then save screenshots to cloud storage and even trigger a comparison tool if a change is detected. Automated Visual Regression Testing: Upgrade: After taking a screenshot, store it with a unique identifier. In subsequent runs, take a new screenshot, then use an external image comparison API or a custom function to compare the new screenshot with a baseline. Leverage: Get automated alerts if visual elements on your website change unexpectedly, which is critical for quality assurance. Dynamic Image Generation for Social Media/Marketing: Upgrade: Feed URLs (e.g., for new blog posts, product pages) into this workflow. After generating the screenshot, use it to create dynamic social media images or marketing assets. Leverage: Streamline the creation of engaging visual content, saving design time.
by Keith Rumjahn
Who is this template for? Anyone who is drowning in emails Busy parents who has alot of school emails Busy executives with too many emails Case Study I get too many emails from my kid's school about soccer practice, lunch orders and parent events. I use this workflow to read all the emails and tell me what is important and what requires actioning. Read more -> How I used A.I. to read all my emails What this workflow does It uses IMAP to read the emails from your email account (i.e. Gmail). It then passes the email to Openrouter.ai and uses a free A.I. model to read and summarize the email. It then sends the summary as a message to your messenger (i.e. Line). Setup You need to find your email server IMAP credentials. Input your openrouter.ai API credentials or replace the HTTP request node with an A.I. node such as OpenAI. Input your messenger credentials. I use Line but you can change the node to another messenger line Telegram. You need to change the message ID to your ID inside the http request. You can find your user ID inside the https://developers.line.biz/console/. Change the "to": {insert your user ID}. How to adjust it to your needs You can change the A.I. prompt to fit your needs by telling it to mark emails from a certain address as important. You can change the A.I. model from the current meta-llama/llama-3.1-70b-instruct:free to a paid model or other free models. You can change the messenger node to telegram or any other messenger app you like.
by ist00dent
This n8n template allows you to instantly fetch a random dog image from the Dog CEO API by simply sending a webhook request. It's a fun and simple way to integrate random dog photos into your projects, whether for websites, applications, or playful automations. 🔧 How it works Trigger Webhook: This node acts as the entry point for the workflow. It listens for any incoming POST request. No specific data is required in the webhook body, as the workflow fetches a random image. Fetch Random Dog Image: This node makes an HTTP GET request to https://dog.ceo/api/breeds/image/random. The API responds with a JSON object containing the URL of a random dog image. Respond with Image URL: This node sends the URL of the random dog image back to the service that initiated the webhook. 👤 Who is it for? This workflow is ideal for: Developers: Quickly integrate random dog images into web applications, bots, or prototypes. Content Creators: Get fresh, random dog photos for social media, blogs, or presentations. Learning n8n: A straightforward example of using a webhook to trigger an API call and return data. Anyone who loves dogs! 📑 Data Structure When you trigger the webhook, you can send an empty POST request body. The workflow will return a JSON response similar to this (the message URL will vary): { "message": "https://images.dog.ceo/breeds/hound-walker/n02089867_2626.jpg", "status": "success" } ⚙️ Setup Instructions Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Trigger Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /get-dog-image). Activate Workflow: Save and activate the workflow. 📝 Tips Download the Image: Instead of just returning the URL, you can download the image and then process it. Insert another HTTP Request node after Fetch Random Dog Image to download the image binary. Set the HTTP Request node's 'Response Format' to 'Binary'. Use the expression ={{ $json.message }} for the URL. Save to Cloud Storage: After downloading the image (as described above), you can save it to various cloud storage services: Google Drive: Add a Google Drive node. Connect it to the output of the image download node. Configure it to upload the binary data to a specific folder. Amazon S3: Add an AWS S3 node. Configure it to upload the binary data, specifying your bucket and desired filename. Dropbox: Use the Dropbox node to upload the image file. Send as a Message: Share the dog image directly in a chat or email: Slack/Discord/Telegram: Use the respective integration node to send the image URL or the downloaded image as an attachment. Email: Attach the downloaded image to an email using an Email or Gmail node. Display on a Web Page: If you're embedding this into a web application, you can simply use the returned URL in an tag to display the image. Error Handling: You can add an Error Trigger node to catch any issues during the image fetching process (e.g., if the Dog CEO API is down) and send notifications.