by Yaron Been
Telegram AI Assistant: Summarize Links & Generate Images On Demand This workflow turns any Telegram chat into a smart assistant. By typing simple commands like /summary or /img, users can trigger powerful AI actions—directly from Telegram. ✨ What It Does This automation listens for specific commands in Telegram messages: /help: Sends a help menu explaining available commands. /summary <link>: Fetches a webpage, extracts its content, and summarizes it using OpenAI into 10–12 bullet points. /img <prompt>: Sends the image prompt to OpenAI and replies that the request has been received (designed for future integration with image APIs). 📦 Features ✅ Works instantly in Telegram 🧠 Uses OpenAI for text summarization and image prompt processing 🌐 Scrapes and cleans raw article text before summarizing 📤 Replies directly to the same Telegram thread 🔧 Easily expandable to support more commands 🔧 Use Cases Research Summaries**: Quickly condense articles or reports shared in chat. Content Review**: Get team-friendly TL;DRs of long blog posts or product pages. Creative Brainstorming**: Share visual ideas via /img and get quick prompts logged. Customer Support**: Offer instant answers in group chats (with further extension). Daily Digest Bot**: Connect to news feeds and auto-summarize updates. 🚀 Getting Started Clone this workflow and connect your Telegram Bot. Insert your OpenAI credentials. Deploy and test by messaging /summary https://example.com in your Telegram group or DM. Expand with new commands or connect Stability.ai or other services for real image generation. 🔗 Author & Resources Built by Yaron Been Follow more automations at nofluff.online
by Sirhexalot
This n8n workflow allows you to reset all user roles in Zammad to specified default roles. It ensures consistency in role management across your Zammad instance. Features Retrieve all active users from Zammad. Update each user's roles to predefined default role IDs. Exclude specific users by their IDs from the update process. Simple configuration for default roles and excluded users. Usage Import the Workflow: Upload the provided .json file into your n8n instance. Configure Variables: zammad_base_url: Your Zammad instance URL. zammad_api_key: Your Zammad API key. default_roles: List of default role IDs to apply to all users. exclude_zammad_users_by_id: List of user IDs to exclude from the update. Run the Workflow: Execute the workflow to update roles automatically. Issues and Suggestions For issues or suggestions, visit the GitHub Repository.
by Dataki
This workflow demonstrates how to enrich data from a list of companies in a spreadsheet. While this workflow is production-ready if all steps are followed, adding error handling would enhance its robustness. Important notes Check legal regulations**: This workflow involves scraping, so make sure to check the legal regulations around scraping in your country before getting started. Better safe than sorry! Mind those tokens**: OpenAI tokens can add up fast, so keep an eye on usage unless you want a surprising bill that could knock your socks off! 💸 Main Workflow Node 1 - Webhook This node triggers the workflow via a webhook call. You can replace it with any other trigger of your choice, such as form submission, a new row added in Google Sheets, or a manual trigger. Node 2 - Get Rows from Google Sheet This node retrieves the list of companies from your spreadsheet. here is the Google Sheet Template you can use. The columns in this Google Sheet are: Company**: The name of the company Website**: The website URL of the company These two fields are required at this step. Business Area**: The business area deduced by OpenAI from the scraped data Offer**: The offer deduced by OpenAI from the scraped data Value Proposition**: The value proposition deduced by OpenAI from the scraped data Business Model**: The business model deduced by OpenAI from the scraped data ICP**: The Ideal Customer Profile deduced by OpenAI from the scraped data Additional Information**: Information related to the scraped data, including: Information Sufficiency: Description: Indicates if the information was sufficient to provide a full analysis. Options: "Sufficient" or "Insufficient" Insufficient Details: Description: If labeled "Insufficient," specifies what information was missing or needed to complete the analysis. Mismatched Content: Description: Indicates whether the page content aligns with that of a typical company page. Suggested Actions: Description: Provides recommendations if the page content is insufficient or mismatched, such as verifying the URL or searching for alternative sources. Node 3 - Loop Over Items This node ensures that, in subsequent steps, the website in "extra workflow input" corresponds to the row being processed. You can delete this node, but you'll need to ensure that the "query" sent to the scraping workflow corresponds to the website of the specific company being scraped (rather than just the first row). Node 4 - AI Agent This AI agent is configured with a prompt to extract data from the content it receives. The node has three sub-nodes: OpenAI Chat Model: The model used is currently gpt4-o-mini. Call n8n Workflow: This sub-node calls the workflow to use ScrapingBee and retrieves the scraped data. Structured Output Parser: This parser structures the output for clarity and ease of use, and then adds rows to the Google Sheet. Node 5 - Update Company Row in Google Sheet This node updates the specific company's row in Google Sheets with the enriched data. Scraper Agent Workflow Node 1 - Tool Called from Agent This is the trigger for when the AI Agent calls the Scraper. A query is sent with: Company name Website (the URL of the website) Node 2 - Set Company URL This node renames a field, which may seem trivial but is useful for performing transformations on data received from the AI Agent. Node 3 - ScrapingBee: Scrape Company's Website This node scrapes data from the URL provided using ScrapingBee. You can use any scraper of your choice, but ScrapingBee is recommended, as it allows you to configure scraper behavior directly. Once configured, copy the provided "curl" command and import it into n8n. Node 4 - HTML to Markdown This node converts the scraped HTML data to Markdown, which is then sent to OpenAI. The Markdown format generally uses fewer tokens than HTML. Improving the Workflow It's always a pleasure to share workflows, but creators sometimes want to keep some magic to themselves ✨. Here are some ways you can enhance this workflow: Handle potential errors Configure the scraper tool to scrape other pages on the website. Although this will cost more tokens, it can be useful (e.g., scraping "Pricing" or "About Us" pages in addition to the homepage). Instead of Google Sheets, connect directly to your CRM to enrich company data. Trigger the workflow from form submissions on your website and send the scraped data about the lead to a Slack or Teams channel.
by Marcel Claus-Ahrens
This workflow downloads all files from a specific folder in a S3 Bucket and compresses them so you can download it via n8n or do further processings. Fill in your Credentials and Settings in the Nodes marked with "*". Might serve well as Blueprint or as manual Download for S3 Folders. Since I found it rather tricky to compress all binary files into one zip file I figured might it be an interesting Template. Hint: This is the expression to get every binary key to compress them dynamically. (used in the "Compress"-Node) Enjoy the Workflow! ❤️ https://let-the-work-flow.com Workflow Automation & Development
by Anthony
This workflow allows you to recognize a folder with receipts or invoices (make sure your files are in .pdf, .png, or .jpg format). The workflow can be triggered via the "Test workflow" button, and it also monitors the folder for new files, automatically recognizing them. Video Demo https://youtu.be/mGPt7fqGQD8 1. n8n import glitch After import, the trigger node "When clicking 'Test workflow'" might be disconnected. You need to connect it via 2 arrows to "Google Sheets1" and "Google Drive" nodes. So, the workflow has 2 triggers - via button, and via Google Sheets "new file" event - both of these triggers should be connected to 2 nodes. Here is how it should look like: https://ocr.oakpdf.com/n8n_fix.png 2. Set up RapidAPI HTTP auth key Create new "HTTP header" n8n credential and paste your RapidAPI key from https://rapidapi.com/restyler/api/receipt-and-invoice-ocr-api into it. https://ocr.oakpdf.com/n8n_api_key.png Make sure "HTTP Request" node uses this credential. 3. Set up your Google Auth You need a Google connection to work with your Google Sheets and Google Drive accounts: https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#finish-your-n8n-credential 4. Set up Google Sheets Copy this Google Sheets document: https://docs.google.com/spreadsheets/d/1G0w-OMdFRrtvzOLPpfFJpsBVNqJ9cfRLMKCVWfrTQBg/edit?usp=sharing Custom document formats and advanced usage Email: contact@scrapeninja.net Linkedin: https://www.linkedin.com/in/anthony-sidashin/
by ConvertAPI
Who is this for? For developers and organizations that need to convert HTML files to PDF. What problem is this workflow solving? The file format conversion problem. What this workflow does Converts HTML to file. Converts the HTML file to PDF. Stores the PDF file in the local file system. How to customize this workflow to your needs Open the HTTP Request node. Adjust the URL parameter (all endpoints can be found here). Add your secret to the Query Auth account parameter. Please create a ConvertAPI account to get an authentication secret. Optionally, additional Body Parameters can be added for the converter.
by Ger Longstacks
contract input: length of the strings and number of copies output: random strings as specified. randomness determined by Crypto node (generate/base64) How to run the workflow Import the workflow into your n8n project Click the Form Trigger to specify the length of the strings and how many copies to generate The workflow runs then displays the generated random strings How to set up No additional set up is necessary to execute the workflow manually. integration Patterns of interests formTrigger node to submit a form, then use form (end) node to display results at the end of the triggered workflow. set(dup)-summarize(concatenate) to run a part of the workflow multiple times then merge the results to one piece of data
by n8n Team
This workflow demonstrates two ways of exporting data from SQL to XML. First, several random records are received from the MySQL database. Then, in the upper part of the workflow, the structure of an XML is defined in the Set node. After that, the ItemLists node combines all items into an array. This allows an XML node to create a simple XML file. The lower part of the workflow shows how to create an XML with attributes. It is almost identical except that a $ (dollar sign) JSON key is used to define XML attributes. Finally, both files are saved locally.
by Omer Fayyaz
An intelligent AI-powered agent that automatically browses publication websites, analyzes page content with natural language understanding, and identifies the latest downloadable reports, research papers, and data files across multiple sources using advanced structured output parsing. What Makes This Different: AI-Powered Content Analysis** - Uses advanced language models (GPT-4/GPT-5.1) to understand page context and identify downloadable reports, even when links aren't explicitly labeled, handling complex page layouts and dynamic content Structured Output Parsing** - Enforces JSON schema validation ensuring consistent data extraction with required fields (title, link, file_type, description), eliminating parsing errors and data inconsistencies HTML to Markdown Conversion** - Converts raw HTML to clean Markdown before AI processing, removing noise and improving AI comprehension of page structure and content hierarchy Intelligent Link Detection** - AI agent identifies direct download URLs, converts relative links to absolute URLs, and prioritizes the most recent reports based on publication dates and page positioning Comprehensive Validation** - Multi-layer validation checks link format, file type detection, and report relevance before saving, ensuring only valid, downloadable reports enter your library Flexible Source Management** - Reads publication sources from Google Sheets, enabling easy addition/removal of sources without workflow modification, with support for categories and custom metadata Key Benefits of AI-Powered Report Discovery: Automated Discovery** - Eliminates manual browsing and searching across multiple publication sites, saving hours of research time while ensuring you never miss new reports Context-Aware Extraction** - AI understands page context, distinguishing between actual reports and navigation links, category pages, or promotional content Prioritized Results** - Automatically selects the most recent and relevant report from each source, focusing on quality over quantity Structured Data Output** - All discovered reports are saved with consistent metadata (title, link, file type, description, source), making them easy to search, filter, and integrate with other systems Error Resilience** - Handles missing reports gracefully, logging when no reports are found without failing the entire workflow, ensuring continuous operation Integration Ready** - Can be called by other workflows (e.g., PDF downloader), enabling end-to-end automation from discovery to storage Who's it for This template is designed for researchers, market analysts, competitive intelligence teams, academic institutions, industry monitoring services, and anyone who needs to systematically discover and track downloadable reports from multiple publication sources. It's perfect for organizations that need to monitor industry publications, track competitor research, discover new market reports, build research libraries, or stay updated on latest publications without manually visiting dozens of websites daily. How it works / What it does This workflow creates an AI-powered report discovery system that reads publication source URLs from Google Sheets, fetches their pages, uses AI to analyze content, and extracts information about downloadable reports. The system: Reads Active Sources - Fetches publication URLs and metadata from Google Sheets "Report Sources" sheet, processing each source in sequence Loops Through Sources - Processes sources one at a time using Split in Batches, ensuring proper error isolation and preventing batch failures Fetches Publication Pages - Downloads HTML content from each source URL with proper browser headers (User-Agent, Accept, Accept-Language) to avoid blocking Converts HTML to Markdown - Transforms raw HTML into clean Markdown format, removing styling, scripts, and navigation elements to improve AI comprehension AI Analysis - LangChain agent analyzes the Markdown content using GPT-4/GPT-5.1, identifying downloadable reports based on context, link patterns, and content structure Structured Output Parsing - Enforces JSON schema validation, ensuring the AI returns data in the exact format: source, title, link, file_type, description Validates & Normalizes Output - Validates extracted links are absolute URLs, checks file type indicators, determines report validity, and normalizes all fields Routes by Validity - IF node routes valid reports to save operation, invalid/missing reports to logging Saves Discovered Reports - Appends valid reports to Google Sheets "Discovered Reports" sheet with metadata, source URL, category, and discovery timestamp Logs No Report Found - Records sources where no valid reports were found in "Discovery Log" sheet for monitoring and troubleshooting Tracks Completion - Generates completion summary with number of sources checked and processing timestamp Key Innovation: AI-Powered Context Understanding - Unlike traditional web scrapers that rely on fixed CSS selectors or regex patterns, this workflow uses AI to understand page context and semantics. The AI can identify reports even when they're embedded in complex layouts, use non-standard naming, or require understanding of surrounding text to determine relevance. This makes it adaptable to any website structure without manual configuration. How to set up 1. Prepare Google Sheets Create a Google Sheet with three tabs: "Report Sources", "Discovered Reports", and "Discovery Log" In "Report Sources" sheet, create columns: Source_Name, Source_URL, Category (optional) Add publication URLs in the Source_URL column (e.g., "https://example.com/research" or "https://publisher.com/reports") Add descriptive names in Source_Name column for easy identification Optionally add Category values (e.g., "Market Research", "Industry Reports", "Academic Papers") The "Discovered Reports" sheet will be automatically populated with columns: source, title, link, fileType, description, sourceUrl, category, discoveredAt, status, isValid The "Discovery Log" sheet will record sources where no reports were found Verify your Google Sheets credentials are set up in n8n (OAuth2 recommended) 2. Configure Google Sheets Nodes Open the "Read Active Sources" node and select your spreadsheet from the document dropdown Set sheet name to "Report Sources" Configure the "Save Discovered Report" node: select same spreadsheet, set sheet name to "Discovered Reports", operation should be "Append or Update" Configure the "Log No Report Found" node: same spreadsheet, "Discovery Log" sheet, operation "Append or Update" Test connection by running the "Read Active Sources" node manually to verify it can access your sheet 3. Set Up OpenAI Credentials Open the "OpenAI GPT-5.1" node (or configure the model you want to use) Connect your OpenAI API credentials (API key required) The workflow uses GPT-5.1 by default, but you can change to GPT-4, GPT-4 Turbo, or other models Temperature is set to 0.1 for consistent, deterministic output Verify API key has sufficient credits and access to the selected model For cost optimization, GPT-4 Turbo is recommended for similar results at lower cost 4. Configure AI Agent & Output Parser The "AI Report Discovery Agent" node contains a detailed system prompt that instructs the AI on what to look for The prompt is pre-configured but can be customized for your specific needs (e.g., prioritize certain file types, look for specific keywords) The "Structured Output Parser" enforces the JSON schema - verify the schema matches your needs: { "source": "Publisher Name", "title": "Report Title", "link": "https://example.com/report.pdf", "file_type": "pdf", "description": "Brief description" } The parser ensures the AI always returns valid JSON with all required fields Test the AI agent by manually running with a sample source URL to verify it correctly identifies reports 5. Customize Discovery Rules (Optional) The AI agent's system prompt can be modified in the "AI Report Discovery Agent" node Current rules prioritize: downloadable files (PDF, Excel, Word, PowerPoint), most recent publications, direct download URLs To customize: Edit the system message to add specific keywords, file types, or discovery patterns Example customization: Add industry-specific terms or prioritize reports with certain keywords in titles The validation code in "Validate & Normalize Output" can be adjusted to change what's considered "valid" Test with your specific sources to ensure discovery rules work as expected 6. Set Up Scheduling & Test The workflow includes Manual Trigger (for testing), Schedule Trigger (runs daily), and Execute Workflow Trigger (for calling from other workflows) To customize schedule: Open "Schedule (Daily)" node and adjust interval (e.g., twice daily, weekly) For initial testing: Use Manual Trigger, add 2-3 test publication URLs to your "Report Sources" sheet Verify execution: Check that pages are fetched, AI analysis completes, and reports are saved to "Discovered Reports" Monitor execution logs: Check for API errors, timeout issues, or parsing failures Review Discovery Log: Verify sources with no reports are properly logged Common issues: OpenAI API rate limits (add delays if processing many sources), invalid URLs (check source URLs), timeout errors (increase timeout for slow-loading pages), AI not finding reports (may need to adjust system prompt for specific site structures) Requirements OpenAI API Key** - Active OpenAI account with API access and sufficient credits for GPT-4/GPT-5.1 model usage (API key configured in n8n credentials) Google Sheets Account** - Active Google account with OAuth2 credentials configured in n8n for reading and writing spreadsheet data Source Spreadsheet** - Google Sheet with "Report Sources", "Discovered Reports", and "Discovery Log" tabs, properly formatted with required columns Valid Publication URLs** - Direct links to publication pages that contain downloadable reports (not direct PDF links - the workflow discovers those) n8n Instance** - Self-hosted or cloud n8n instance with access to external websites (HTTP Request node needs internet connectivity) and LangChain nodes enabled
by Lorena
This workflow collects images from web search results on a specific query, analyzes the image for labels, formats the text, and adds the information in Google Sheets. HTTP Request node** gets images from the web. AWS Rekognition node** analyzes the images (in this case, it detects text in an image). Set node** sets the values necessary for the data set. Function node** transforms the text detected in the image to lower case. Google Sheets node** adds the image information to a sheet that serves as data set.
by Lucas Perret
This workflow will allow you to enrich in real-time a form submission from Webflow using Datagma. Based on the result of this workflow, a specific Calendly link will be shown on the website. If the process outcome is '1', a link for a one-on-one demo will be provided. If the process outcome is '2', a link for a group demo will be shown. Full guide here: Real-time Lead Routing
by Yaron Been
Luma Photon Flash Image Generator Description Accelerated variant of Photon prioritizing speed while maintaining quality Overview This n8n workflow integrates with the Replicate API to use the luma/photon-flash model. This powerful AI model can generate high-quality image content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for image generation Optional Parameters seed** (integer, default: None): Random seed. Set for reproducible generation aspect_ratio** (string, default: 16:9): Aspect ratio of the generated image image_reference** (string, default: None): Reference image to guide generation style_reference** (string, default: None): Style reference image to guide generation character_reference** (string, default: None): Character reference image to guide generation image_reference_url** (string, default: None): Deprecated: Use image_reference instead style_reference_url** (string, default: None): Deprecated: Use style_reference instead image_reference_weight** (number, default: 0.85): Weight of the reference image. Larger values will make the reference image have a stronger influence on the generated image. style_reference_weight** (number, default: 0.85): Weight of the style reference image character_reference_url** (string, default: None): Deprecated: Use character_reference instead How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate image content Access the generated output from the final node API Reference Model: luma/photon-flash API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of image generation parameters