by Hunyao
Upload a PDF and instantly get a neatly formatted Google Doc with all the readable textβno manual copy-paste, no messy line breaks. What this workflow does Accepts PDF uploads via a public form Sends the file to Mistral Cloud for high-accuracy OCR Detects and merges page images with their extracted text Cleans headers, footers, broken lines, and noise Creates a new Google Doc in your chosen Drive folder Writes the polished markdown text into the document What you need Mistral Cloud API key with OCR access Google Docs & Drive credentials connected in n8n Drive folder ID for new documents A PDF file to process (up to 100 MB) Setup Import the workflow into n8n and activate credentials. In Trigger β’ Form Submission, copy the webhook URL and share it or embed it. In Create β’ Google Doc, replace the default folder ID with yours. Fill out Mistral API key under Mistral Cloud API credentials. Save and activate the workflow. Visit the form, upload a PDF, name your future doc, and submit. Open Drive to view your newly generated, clean Google Doc. Example use cases Convert annual reports into editable text for analysis. Extract readable content from scan-only invoices for bookkeeping. Turn magazine PDFs into draft blog posts. Digitize lecture handouts for quick search and annotation. Convert image-heavy landing pages / advertorials into editable text for AI to analyze structure and content.
by Rahul Joshi
Description Automatically convert structured Slack messages into Jira issues with parsed titles, descriptions, and priorities. This workflow also downloads file attachments from Slack (e.g., screenshots, logs, or documents) and uploads them directly into the created Jira issue. It then confirms success back to the Slack channel, ensuring transparency and seamless collaboration. ππ¬π What This Template Does Monitors a designated Slack channel for new issue reports. π Parses Slack message text with regex to extract title, description, priority, and type. π§ Creates a new Jira issue with the structured data. π« Detects and processes attachments, splitting multiple files into batches. π Downloads files from Slack using secure URLs and Slack bot authentication. π Uploads attachments directly into the created Jira issue. π Sends a Slack confirmation with Jira issue key, link, and summary details. β Key Benefits Eliminates manual Jira ticket creation from Slack messages. β±οΈ Preserves critical context by attaching screenshots, logs, and documentation. π Ensures structured, standardized issue reporting across teams. π Provides instant Slack confirmation with direct Jira links. π² Handles multiple attachments gracefully with batch processing. β‘ Features Slack Trigger β Monitors specific channels for new issue messages. π¬ Message Parsing Engine β Extracts title, description, priority, and type using regex + fallback logic. π Jira Integration β Creates structured Jira issues with proper fields (summary, description, priority, type). π« Attachment Handling β Splits, downloads, and uploads Slack files into Jira automatically. π Slack Confirmation β Sends formatted success messages with clickable Jira links. π Robust Data Handling β Supports rich text, multiple files, and smart mappings of Slack priorities to Jira. π§ Requirements n8n instance (cloud or self-hosted). Slack Bot API credentials with channels:history, files:read, and chat:write permissions. Jira Software Cloud API credentials with project and issue creation permissions. Pre-configured Slack channel for reporting issues. Jira project set up with supported issue types (bug, task, feature, etc.). Target Audience Software development teams managing issue intake from Slack. π©βπ» QA and testing teams reporting bugs directly from Slack. π§ͺ IT support teams needing structured Jira issues with attachments. π οΈ Agile teams looking for seamless Slack β Jira integration. π Remote teams requiring real-time visibility into Jira issue creation. π Step-by-Step Setup Instructions Connect Slack and Jira credentials in n8n. π Configure the Slack channel ID to listen for issue reports. π¬ Map Jira project and issue type IDs in the βCreate Jira Issueβ node. π« Customize parsing logic for message formats (default: Title: X, Description: Y, Priority: Z). π Ensure Slack files can be downloaded with your bot token (files:read scope). π Test with a sample message containing a title, description, and attachment. β Deploy and monitor Slack β Jira issue creation in real-time. β‘
by Kevin Yu
Quick overview This workflow receives inbound lead details via webhook, enriches the company using You.com search and website content extraction, generates a one-page profile and fit score with Groq, then routes hot leads to Slack, logs all leads to Notion, and returns the enriched result in the webhook response. How it works Receives a POST webhook request containing a company name and/or domain and normalizes the input into consistent fields. Rejects the request with a 400 response if neither a company name nor a domain is provided. Uses You.com Web Search to gather recent company signals (for example funding, news, and leadership changes) and resolves a best-guess company URL. Uses You.com Content Extraction to pull website content and combines the search signals and site content into a single enrichment context. Uses Groq (Llama 3.3 70B) to generate a concise one-page company profile and then scores the lead against the defined fit criteria with structured output. If the fit score meets or exceeds the hot-lead threshold, posts an alert message to a selected Slack channel with an @mention. Logs the lead, fit score, tier, and profile summary to a Notion database and returns the full enriched profile and score in the webhook response (or a clean 502 error if enrichment fails). Setup Use a self-hosted n8n instance and install the community node package @youdotcom-oss/n8n-nodes-youdotcom. Add credentials for You.com, Groq, Slack, and Notion. Configure the webhook URL in your lead source to send a POST payload containing a company/companyName and/or domain. Update the fit criteria, hot-score threshold, and Slack mention ID in the configuration step. Select your Slack channel and connect the Notion node to a database that includes properties for Fit Score (number), Tier (select), and Summary (rich text). Requirements Self-hosted n8n with the community node @youdotcom-oss/n8n-nodes-youdotcom A You.com API key (you.com/platform) A Groq API key (console.groq.com) A Notion integration and a target database with Fit Score (number), Tier (select), and Summary (rich text) A Slack app with chat:write scope Customization Edit the scoring prompt and fit criteria to match your ICP Raise or lower the hot-score threshold to control how many leads alert the team Route Warm and Cold tiers to different Slack channels, or skip the alert below a tier Extend the Notion mapping to capture key reasons and recommended action Swap the Groq model on the two model nodes without touching the rest of the flow Additional info Self-hosted n8n only, because the You.com integration is a community node. Every external call has an error branch that returns a clean 502 instead of crashing the run.
by Parth Pansuriya
Analyze Ingredient Photos using Telegram & Gemini AI Whoβs it for Skincare enthusiasts who want to know if a product is safe. Food or supplement buyers checking ingredient safety. Parents reviewing kidsβ products. Anyone wanting quick ingredient analysis before using/buying a product. How it works / What it does Telegram Input β User sends a photo of a product label or a text list of ingredients. Photo Handling β Workflow checks if the message contains a photo. If yes β retrieves the file, extracts ingredients using Google Gemini AI. If no β handles text/greetings/off-topic queries. Caption Branching With caption β Gives Use / Do Not Use recommendation + reason. Without caption β Gives Advantages, Disadvantages, Recommended For, Not Recommended For (3 points each). Response on Telegram β Sends a friendly, structured response back to the user. How to set up Import this workflow JSON into n8n. Create and connect a Telegram bot via BotFather β paste the API token in Telegram credentials. Add Google Gemini (PaLM) API credentials inside n8n. Activate the workflow and send your first product photo via Telegram! Requirements n8n instance (self-hosted or cloud). Telegram bot token. Google Gemini API credentials. How to customize the workflow Change AI Instructions** β Update system messages to tweak tone (more technical, casual, or medical). Adjust Output Format** β Edit Telegram response nodes for shorter/longer answers. Expand Analysis** β Add extra categories (e.g., allergens, environmental impact). Multi-language Support** β Modify prompts to output in the userβs preferred language. Add Database Logging** β Connect to MySQL, PostgreSQL to save conversations (user queries + AI responses).
by Yuvraj Singh
Purpose This solution enables you to manage all your Notion and Todoist tasks from different workspaces as well as your calendar events in a single place. This is 2 way sync with partial support for recurring How it works The realtime sync consists of two workflows, both triggered by a registered webhook from either Notion or Todoist. To avoid overwrites by lately arriving webhook calls, every time the current task is retrieved from both sides. Redis is used to prevent from endless loops, since an update in one system triggers another webhook call again. Using the ID of the task, the trigger is being locked down for 80 seconds. Depending on the detected changes, the other side is updated accordingly .Generally Notion is treaded as the main source. Using an "Obsolete" Status, it is guaranteed, that tasks never get deleted entirely by accident. The Todoist ID is stored in the Notion task, so they stay linked together An additional full sync workflow daily fixes inconsistencies, if any of them occurred, since webhooks cannot be trusted entirely. Since Todoist requires a more complex setup, a tiny workflow helps with activating the webhook. Another tiny workflow helps generating a global config, which is used by all workflows for mapping purposes. Mapping (Notion >> Todoist) Name: Task Name Priority: Priority (1: do first, 2: urgent, 3: important, 4: unset) Due: Date Status: Section (Done: completed, Obsolete: deleted) <page_link>: Description (read-only) Todoist ID: <task_id> Current limitations Changes on the same task cannot be made simultaneously in both systems within a 15-20 second time frame. Subtasks are not linked automatically to their parent yet. Tasks names do not support URLβs yet. Credentials Follow the video: Setup credentials for Notion (access token), Todoist (access token) and Redis. Todoist Follow this video to get Todoist to obtain API Token. Todoist Credentials.mp4 Notion Follow this video to get Notion Integration Secret. Redis Follow this video to get Redis Setup The setup involves quite a lot of steps, yet many of them can be automated for business internal purposes. Just follow the video or do the following steps: Setup credentials for Notion (access token), Todoist (access token) and Redis - you can also create empty credentials and populate these later during further setup Clone this workflow by clicking the "Use workflow" button and then choosing your n8n instance - otherwise you need to map the credentials of many nodes. Follow the instructions described within the bundle of sticky notes on the top left of the workflow How to use You can apply changes (create, update, delete) to tasks both in Notion and Todoist which then get synced over within a couple of seconds (this is handled by the differential realtime sync) The daily running full sync, resolves possible discrepancies in Todoist. This workflow incorporates ideas and techniques inspired by Mario (https://n8n.io/creators/octionic/) whose expertise with specific nodes helped shape parts of this automation. Significant enhancements and customizations have been made to deliver a unique and improved solution.
by Axiomlab.dev
Tasks Briefing This template posts a clean, Slack-ready morning summary of your Google Tasks due today. It fetches tasks, filters only those due βtodayβ in your timezone, asks a local LLM (via LangChain + Ollama) to produce a short summary (no steps, just a concise brief), strips any hidden <think> blocks, and delivers the message to your chosen Slack channel. How it works Trigger at Morning (Cron) β runs at 7:00 AM (you can change the hour) to kick things off daily. Get many tasks (Google Tasks node) β pulls tasks from your selected Google Tasklist. Code (Filter Due Today) β normalizes dates to your timezone, keeps only tasks due today, and emits a fallback flag if none exist. If β routes: True (has tasks) β continues to the LLM summary path. False (no tasks) β sends a βNo tasks due todayβ message to Slack. Code (Build LLM Prompt) β builds a compact, Markdown-only prompt for the model (no tool calls). Basic LLM Chain (LangChain) + Ollama Model β generates a short summary for Slack. Code (Cleanup) β removes any <think>β¦</think> content if the model includes it. Send a message (Slack) β posts the final brief to your Slack channel. Required credentials Google Tasks OAuth2 API** β to read tasks from your Google Tasklist. Slack API** β to post the summary into a channel. Ollama** β local model endpoint (e.g., qwen3:4b); used by the LangChain LLM nodes. Setup Instructions Google Tasks credential In Google Cloud Console: enable Google Tasks API, create an OAuth Client (Web), and set the redirect URI shown by n8n. In n8n Credentials, add Google Tasks OAuth2 API with scope: https://www.googleapis.com/auth/tasks (read/write) or https://www.googleapis.com/auth/tasks.readonly (read-only). In the Get many tasks node, select your credential and your Tasklist. Slack credential & channel In n8n Credentials, add Slack API (bot/user token with chat:write). In Send a message nodes, select your Slack credential and set the Channel (e.g., #new-leads). Ollama model (LangChain) Ensure Ollama is running on your host (default http://localhost:11434). Pull a model (e.g., ollama pull qwen3:4b) or use another supported model (llama3:8b, etc.). In Ollama Model node, select your Ollama credential and set the model name to match what you pulled. Timezone & schedule The Cron node is set to 7:00 AM. Adjust as needed. The Code (Filter Due Today) node is configured for Asia/Dhaka; change the TZ constant if you prefer a different timezone. (Optional) Cleanup safety The template includes a Code (Cleanup) node that strips <think>β¦</think> blocks from model output. Keep this connected before the Slack node. Test the flow Run the workflow once manually: If you have tasks due today, you should see a concise summary posted to your Slack channel. If none are due, youβll receive a friendly βNo tasks due todayβ message. Activate When everything looks good, toggle the workflow Active to receive the daily summary automatically.
by Mychel Garzon
Quick overview This global error-handling workflow classifies n8n execution failures with Anthropic Claude, deduplicates incidents in Jira using a hash label, and posts a detailed alert to Slack with links to the affected execution and Jira issue. How it works Triggers whenever any n8n workflow execution or trigger fails (when set as the instance Error Workflow). Normalizes the error event into a consistent payload that includes workflow details, error message, truncated stack trace, and an execution log URL. Sends the normalized payload to Anthropic Claude to return a structured JSON classification (category, severity, root cause, recommended action, and transient flag). Parses the classification, falls back to an UNKNOWN classification if the LLM response is invalid, and generates a deduplication hash used to group similar errors. Searches Jira for an open issue in the configured project that already has the matching deduplication label. If an open issue exists, appends a recurrence comment with the latest execution details; otherwise, creates a new Jira Bug with labels, priority, and a full incident description. Builds a Slack Block Kit message summarizing the incident and sends it to the configured Slack channel with buttons to the n8n execution log and the Jira ticket. Setup In n8n, set this workflow as the global Error Workflow (Settings β Error workflows) so it receives execution and trigger failures. Add an Anthropic credential for the Claude chat model used by the workflow. Add a Jira credential with permission to search issues, create bugs, and add issue comments in your target Jira project. Add a Slack Bot token credential with the chat:write scope. Set the environment variables N8N_BASE_URL, JIRA_PROJECT_KEY, JIRA_BASE_URL, and SLACK_CHANNEL_ID to match your instance and destinations. Requirements Anthropic API key (Claude Haiku) Jira Software Cloud account with API token Slack workspace with a bot token (chat:write scope) and an Incoming Webhook for the fallback URL Customization Swap Jira for Linear or GitHub Issues: replace the three Jira nodes with HTTP Request nodes pointing at the Linear or GitHub Issues API; keep the dedup hash logic in the Code node unchanged. Adjust error categories: edit the classification rules in the Claude prompt to add domain-specific categories (e.g. BUSINESS_RULE_VIOLATION for your own validation errors). Silence low-severity alerts: add an IF node after Parse Classification that filters severity = LOW to a no-op, preventing noise from dev/test workflows. Add PagerDuty escalation: insert an HTTP Request node after the Slack node that calls the PagerDuty Events API when severity = CRITICAL and is_transient = false.
by Surya Vardhan Yalavarthi
Requirements: GitHub API token (repo scope), Anthropic API key (Claude Sonnet 4.5), Slack Bot Token (optional) This workflow analyzes any public GitHub repository and generates an evidence-based architecture blueprint β with Mermaid.js diagrams, technical stack analysis, and risk assessment β then pushes it as README_ARCH.md directly to the repo. What makes it different: A strict anti-hallucination prompt ensures Claude only describes technologies that actually exist in the code. No Dockerfile? Docker is never mentioned. No .tf files? Terraform doesn't appear. Every claim traces back to real file evidence. How it works A GitHub URL is submitted via the web form or webhook API The workflow fetches repo metadata, the full file tree, and contents of key files (package.json, requirements.txt, Dockerfiles, entry points, etc.) Claude Sonnet 4.5 (temperature 0.1) analyzes only the evidence β strict rules prevent inventing technologies not found in the code A Markdown blueprint with architecture diagrams and risk analysis is assembled, auto-fixed, and pushed to the repo's default branch A Slack notification is sent and the form user receives a styled success page Example output The generated README_ARCH.md includes: Project Purpose** β What the project does, based on code evidence Technical Stack** β Languages, frameworks, and dependencies from actual dependency files Architecture Blueprint** β Mermaid.js flowchart with dark-theme styling, grouped by layer Request Flow** β Sequence diagram showing a typical path through the system Evidence-Based Risks** β Three risks traceable to specific files or patterns Use cases Open-source maintainers** β Auto-generate architecture docs for contributors Engineering teams** β Quick onboarding docs for new team members Code reviewers** β Understand unfamiliar repositories at a glance Technical due diligence** β Rapid architecture assessment of vendor codebases Portfolio projects** β Add professional documentation to showcase repos Setup See the Setup & Overview sticky note in the workflow for step-by-step credential configuration.
by Masaki Go
Automatically publish your Note.com articles to WordPress with intelligent category and tag assignment powered by OpenAI. Who is this for Content creators and bloggers who publish on Note.com and want to maintain a synced WordPress blog without manual copy-pasting. What this workflow does Monitors your Note.com RSS feed for new articles (hourly) Fetches full article content via Note.com's API Uses OpenAI to analyze content and assign the best category and tags Downloads all images (including the featured image) from Note.com Uploads images to your WordPress media library Replaces all image URLs in the article content Publishes the post with the correct featured image Setup Add your OpenAI API credentials Add your WordPress credentials (using Application Password) Update the RSS feed URL to your Note.com profile Customize the AI prompt with your WordPress category and tag IDs Requirements Note.com account with published articles Self-hosted WordPress site with REST API enabled OpenAI API key WordPress Application Password Customization Edit the system prompt in the AI node to match your WordPress taxonomy. You can also change the polling frequency and post status (draft/publish).
by Dahiana
YouTube Transcript Extractor This n8n template demonstrates how to extract transcripts from YouTube videos using two different approaches: automated Google Sheets monitoring and direct webhook API calls. Use cases: Content creation, research, accessibility, meeting notes, content repurposing, SEO analysis, or building transcript databases for analysis. How it works Google Sheets Integration:** Monitor a sheet for new YouTube URLs and automatically extract transcripts Direct API Access:** Send YouTube URLs via webhook and get instant transcript responses Smart Parsing:** Extracts video ID from various YouTube URL formats (youtube.com, youtu.be, embed) Rich Metadata:** Returns video title, channel, publish date, duration, and category alongside transcript Fallback Handling:** Gracefully handles videos without available transcripts Two Workflow Paths Automated Sheet Processing: Add URLs to Google Sheet β Auto-extract β Save results to sheet Webhook API: Send POST request with video URL β Get instant transcript response How to set up Replace "Dummy YouTube Transcript API" credentials with your YouTube Transcript API key Create your own Google Sheet with columns: "url" (input sheet) and "video title", "transcript" (results sheet) Update Google Sheets credentials to connect your sheets Test each workflow path separately Customize the webhook path and authentication as needed Requirements YouTube Transcript API access (youtube-transcript.io or similar) Google Sheets API credentials (for automated workflow) n8n instance (cloud or self-hosted) YouTube videos How to customize Modify transcript processing in the Code nodes Add additional metadata extraction Connect to other storage solutions (databases, CMS) Add text analysis or summarization steps Set up notifications for new transcripts
by Abdulrahman Alhalabi
Arabic OCR Telegram Bot How it Works Receive PDF Files - Users send PDF documents via Telegram to the bot OCR Processing - Mistral AI's OCR service extracts Arabic text from document pages Text Organization - Processes and formats extracted content with page numbers Create Google Doc - Generates a formatted document with all extracted text Deliver Results - Sends users a clickable link to their processed document Set up Steps Setup Time: ~20 minutes Create Telegram Bot - Get bot token from @BotFather on Telegram Configure APIs - Set up Mistral AI OCR and Google Docs API credentials Set Folder Permissions - Create Google Drive folder for storing results Test Bot - Send a sample Arabic PDF to verify OCR accuracy Deploy Webhook - Activate the Telegram webhook for real-time processing Detailed API configuration and Arabic text handling notes are included as sticky notes within the workflow. What You'll Need: Telegram Bot Token (free from @BotFather) Mistral AI API key (OCR service) Google Docs/Drive API credentials Google Drive folder for document storage Sample Arabic PDF files for testing Key Features: Real-time progress updates (5-step process notifications) Automatic page numbering in Arabic Direct Google Docs integration Error handling for non-PDF files
by Cheng Siong Chin
Introduction Exams create significant stress for students. This workflow automates syllabus analysis and predicts exam trends using AI, helping educators and students better prepare for GCE 'O' Level Mathematics in Singapore. How It Works Trigger β Fetch Syllabus β Extract & Prepare Data β Load History β AI Analyze β Parse β Format β Convert β Publish β Notify Workflow Template Manual Trigger β Fetch O-Level Math Syllabus β Extract Syllabus Text β Prepare Analysis Data β Load Historical Context β AI Analysis Agent β Parse AI Output β Format Report β Convert to HTML β Publish to WordPress β Send Slack Summary Data Collection & AI Processing HTTP retrieves O-Level Math syllabus from SEAB and extracts text. Loads 3-5 years exam history. OpenRouter compares syllabus vs trends, predicts topics with confidence scores. Report Generation & Publishing Formats AI insights to Markdown (topics, trends, recommendations), converts to HTML. Auto-publishes to WordPress and sends Slack summary with report link. Workflow Steps Fetch & extract syllabus from SEAB site Load historical exam content AI analyzes syllabus + trends via OpenRouter model Parse and format AI output to Markdown/HTML Auto-publish report to WordPress and Slack Setup Instructions Connect HTTP node to SEAB syllabus URL Configure OpenRouter AI model with API key Set WordPress and Slack credentials for publishing Prerequisites OpenRouter account, WordPress API access, Slack webhook, SEAB syllabus link. Use Cases Predict 2025 GCE Math topics, generate AI insights, publish summaries for educators. Customization Adapt for other subjects or boards by changing syllabus source and analysis prompt. Benefits Enables fast, data-driven exam forecasting and automated report publication.