Code Workflows
1.006 Ergebnisse — ausschließlich quellenverknüpfte n8n-Referenzen
Draft bookkeeping entries from Trello cards with OpenRouter and Xero
Quick overview This workflow triggers from Trello card activity to draft bookkeeping entries by extracting transaction details with OpenRouter and enriching them with live Xero chart-of-accounts, tax rates, contacts, and bill context, then posts a review-ready summary and embedded JSON back to the Trello card. How it works Triggers from Trello when a card is moved to the Ready list or when the Retry AI label is added. Fetches the current Xero chart of accounts, bank accounts, and tax rates to use as live reference data. Loads the Trello card details, recent comments, and attachment metadata and stops with an error note if the text lacks enough detail for extraction. Sends the card title/description/comments to OpenRouter to extract a structured bookkeeping draft and normalizes key fields like dates, line items, and payment reference. Uses Xero Contacts (and, for bill payments, Xero Invoices) to resolve the vendor and refine PAY_BILL vs SPEND_MONEY before optionally asking OpenRouter to classify expense line items to Xero account codes. Validates and maps any suggested account codes against the live Xero chart of accounts, embeds Xero configuration needed for posting later, and reco
Test IVR call quality using CALL-E API from a phone task list
Quick overview This workflow manually triggers two sequential IVR quality-sample calls via the CALL-E API, validating transcripts and metadata post-call. Note: Default placeholders must be replaced with authorized E.164 test numbers before execution. How it works Runs when you start the workflow manually. Loads the CALL-E API configuration (base URL, polling interval, timeout) and stops with an error if the API key is missing. Creates a small list of IVR QA call tasks (phone, task instructions, locale/region, and metadata) to be processed. Processes the call list one item at a time, building the CALL-E /v1/calls request with a JSON result schema, metadata, and an idempotency key. Calls the CALL-E API to create the call and repeatedly polls the call status until it reaches a terminal state (completed/failed/canceled) or times out. Extracts the call outcome, structured result, transcript turns, and failure signals, then formats a demo-friendly per-call view and an overall execution summary. Setup Add your CALL-E API key by replacing replace_with_calle_api_key in the CALL-E configuration step. Replace the sample phone numbers with numbers you own or are authorized to call, and adjust
Qualify and route free signups with Twain, Claude, Slack, HubSpot and Gmail
Quick overview This workflow receives free-signup events via webhook, enriches the contact with Twain research (and optional Findymail LinkedIn lookup), uses Anthropic Claude to score ICP fit, then routes outcomes to Slack and, for high-fit leads, to HubSpot and Gmail. How it works Receives a POST webhook request for a new signup and authenticates it via a required header. Normalizes the signup fields (uid, email, name, LinkedIn URL) and deduplicates records across runs to avoid reprocessing the same user. If the signup has no LinkedIn URL but has an email, optionally calls Findymail reverse-email lookup to resolve a LinkedIn profile URL and merges it back into the contact. If the lead has neither a work email nor a LinkedIn URL, posts a “skipped” message to Slack and stops. Sends the contact to the Twain Generate/Research API to create research and add the contact to the specified Twain campaign, and posts a Slack alert if the research request fails. If Twain flags a hard disqualification (persona mismatch or incomplete profile), posts a disqualification message to Slack; otherwise, Anthropic Claude evaluates the research against the defined ICP tiers and returns a structured fit
Notify Slack about new marketplace templates with the n8n Templates API
Quick overview This workflow runs every two hours to check the n8n public Templates API for the latest workflows in a chosen category, tracks which template IDs have already been seen using workflow static data, and posts a Slack digest when new templates appear. How it works Runs on a schedule every 2 hours. Loads configuration values such as the template category slug, the Slack channel, how many templates to check, and whether to report when none are new. Calls the n8n Templates search API to fetch the most recent templates for the configured category. Extracts key metadata (ID, title, description snippet, creator, date, and URL) from the API response. Compares the fetched template IDs against previously seen IDs stored in workflow static data and updates the cache with the latest IDs. If new templates are found, formats a Slack digest and posts it to the configured Slack channel. If no new templates are found and reporting is enabled, posts a “no new templates” all-clear message to Slack. Setup Add Slack credentials in n8n with permission to post messages to your target channel. Update the Configuration values for categorySlug and slackChannel (and optionally templatesToCheck a
Screen and route candidate CVs with OpenRouter, Google Drive, Sheets, and Gmail
Quick overview This workflow receives candidate CVs via a webhook, extracts text from PDF, DOCX files, looks up the matching job description in Google Sheets, runs a three-agent evaluation using OpenRouter models, then uploads the CV to Google Drive, logs results to Google Sheets, and sends or drafts emails in Gmail. How it works Receives a CV submission via a POST webhook that includes candidate details, an applied job ID, and a CV file. Normalizes the intake data, timestamps the submission, and fetches the matching job description from Google Sheets using the applied job ID. Extracts CV text by either parsing the PDF directly or converting a DOCX/DOC to a Google Doc in Google Drive and exporting it as plain text. Detects whether the CV is Vietnamese or not and uses OpenRouter (Qwen for Vietnamese or Google Gemini for others) to parse the CV into a structured Candidate Profile JSON. Uses OpenRouter (Anthropic Claude Sonnet) to compare the Candidate Profile against the job description, then generates a hiring-manager style review and recommendation based on the ATS evaluation. Uploads the original CV to a recommendation-based Google Drive folder, logs the full screening record (inc
Extract purchase order line items from PDFs with easybits and Google Sheets
Quick overview This workflow collects purchase order PDFs through an n8n form, extracts header fields and line-item tables with easybits Extractor, appends one row per article to Google Sheets, and shows a completion summary highlighting any missing or incomplete extracted fields. How it works Receives a form submission with one or more uploaded purchase order PDF files. Splits the upload into one workflow item per PDF and processes the PDFs one at a time. Sends each PDF to easybits Extractor to extract purchase order header details and the articles table. Flattens the extracted articles into one row per line item, repeats the PO header fields on each row, and records per-document flags for missing header values or incomplete article fields. Appends the generated rows to a Google Sheets worksheet. After all PDFs are processed, builds a summary of any flagged documents and displays it on the n8n form completion screen. Setup Create an easybits Extractor account, generate an API key, add it as an easybits Extractor credential, and configure the extractor fields (mark_for, po_number, po_date, delivery_date, pr_number, reference_no, and an articles array with article/unit/quantity). Ad
Process prescription orders and refills with Telegram, Google Gemini and Sheets
Quick overview This workflow lets customers order and refill prescriptions via Telegram by extracting medicines from prescription images with Google Gemini, checking and updating inventory in Google Sheets, and sending order summaries and status updates, with delivery updates handled by a webhook and error alerts posted to Slack. How it works Triggers when a Telegram message is received, normalizes it, and routes it based on whether it contains a prescription image/document or the REFILL, STATUS, or CONFIRM command. For prescription images/documents, it downloads the file from Telegram and uses Google Gemini vision to extract medicines, dosages, and quantities from the prescription. It looks up each extracted medicine in a Google Sheets Inventory tab, deducts stock for items that are available, and aggregates the priced order lines. It creates a new pending order in a Google Sheets Orders tab and sends the customer a Telegram order summary with the total and a prompt to reply CONFIRM. For STATUS/REFILL/CONFIRM messages, it reads the relevant order from Google Sheets, sends the current status via Telegram, creates a new pending refill order, or updates the pending order status to co
Manage restaurant orders, upsells, and payments with Telegram, OpenAI, Razorpay, and Google Sheets
Quick overview This workflow runs a Telegram restaurant ordering flow that uses OpenAI to parse orders and suggest an upsell, sends a Razorpay payment link, confirms paid orders via a Razorpay webhook, logs orders and feedback in Google Sheets, notifies the kitchen, sends delivery updates, and posts error alerts to Slack. How it works Receives a customer’s order message in Telegram and sends it to OpenAI to extract items, quantities, subtotal, and a suggested upsell. Replies in Telegram with an order summary and upsell prompt, then waits for the customer to respond. When the customer replies, calculates the final total (including the upsell when accepted) and sends a Razorpay payment link in Telegram. Receives the Razorpay payment.captured webhook, extracts payment details, confirms payment to the customer in Telegram, and posts a kitchen ticket to a dedicated Telegram chat. Appends the paid order to an Orders tab in Google Sheets and calculates ingredient deductions to update the same sheet against the order. Waits through prep and delivery windows and then sends delivery tracking followed by a Telegram feedback request. Captures the customer’s rating in Telegram, calculates loyal
Send signed WooCommerce orders to KSeF via a self-hosted KSeF Gateway
Quick overview This workflow receives WooCommerce order webhooks, verifies the WooCommerce signature, converts eligible orders into a KSeF invoice payload, and submits them to a self-hosted KSeF Gateway API, skipping consumer orders that do not include a buyer NIP. How it works Receives a WooCommerce order webhook request and keeps the raw request body for signature validation. Verifies the X-WC-Webhook-Signature HMAC against your shared webhook secret and rejects invalid requests with a 401 response. Extracts the buyer NIP from WooCommerce order meta data and maps the order (seller, buyer, line items, VAT rates, and payment details) into a KSeF invoice payload. Skips processing and responds to WooCommerce with a success message when the order has no buyer NIP (consumer purchase). Sends the invoice payload to your self-hosted KSeF Gateway endpoint over HTTP with an X-Api-Key header. Responds to WooCommerce with the resulting KSeF number (when available) or an error from the gateway. Setup Deploy a KSeF Gateway instance and note its base URL. Update the workflow configuration values for the gateway URL and API key, seller NIP/name/address, and the WooCommerce webhook secret. In WooC
Create KSeF invoices from completed Sellf purchases via KSeF Gateway
Quick overview This workflow receives signed Sellf purchase webhooks, validates the HMAC signature, and when the buyer requests an invoice with a NIP it builds a KSeF-ready invoice and submits it to a self-hosted KSeF Gateway, capturing the returned KSeF number or an error. How it works Receives a POST webhook from Sellf with the raw request body and the X-Sellf-Signature header. Verifies the webhook signature using HMAC-SHA256 and rejects the request with a 401 response if the signature is invalid. Responds immediately with a JSON OK response and continues processing in the background. Filters the event to purchase.completed and extracts the customer, order, and invoice details from the webhook payload. Continues only if the customer requested an invoice and provided a non-empty NIP. Builds a KSeF invoice payload using your seller details and the purchase data, then posts it to your KSeF Gateway /ksef/invoice endpoint with an X-Api-Key header. Stores the KSeF submission result by extracting the ksefNumber and status on success, or capturing the returned error details on failure. Setup Set up Sellf webhooks to send purchase.completed events to this workflow’s production webhook URL
Poll and download received invoice PDFs with KSeF Gateway to disk storage
Quick overview This workflow runs every 20 minutes to poll a self-hosted KSeF Gateway for newly received KSeF invoices, maintains a cursor checkpoint in n8n static data, downloads each new invoice PDF via the gateway API, and saves the files to local disk. How it works Runs every 20 minutes on a schedule. Reads the last successful polling checkpoint from the workflow’s static data and calls the KSeF Gateway /ksef/invoices/received/new endpoint with the since cursor. If the gateway response is unsuccessful, records the error details for alerting and leaves the checkpoint unchanged so the next run retries the same window. If the response is successful, stores the returned nextSince value as the new checkpoint. If new invoices are returned, processes each invoice summary individually. Downloads each invoice PDF from the KSeF Gateway /ksef/invoice/{ksefNumber}/pdf endpoint and saves it to the configured local folder. Outputs invoice metadata (number, seller, amount, and saved file path) as a placeholder where you can plug in notifications (Slack, email, or Discord). Setup Deploy and configure a self-hosted KSeF Gateway (https://github.com/jurczykpawel/ksef-gateway) with a token or cert
Create daily ClickUp task reports with OpenRouter o3-mini
Quick overview This workflow runs each morning, pulls all tasks from a specified ClickUp list, merges their names and descriptions, and uses an OpenRouter-hosted OpenAI chat model to generate a daily report. It then creates a new ClickUp list for the current run and adds the report as a task. How it works Runs every morning at the configured hour using a schedule trigger. Fetches all tasks from the specified ClickUp list. Merges the retrieved tasks into a single formatted text block for summarization. Checks that task data exists and, if not, creates an error list in ClickUp and stops with an error. Creates a new ClickUp list named with the current date/time to store the report. Sends the merged task text to an AI Agent backed by an OpenRouter (OpenAI) chat model to generate the report content. Creates a ClickUp task named “Report” in the newly created list and stores the AI-generated summary in the task description. Setup Add ClickUp OAuth2 credentials in n8n and select the correct Team/Space/Folder/List details in the ClickUp nodes (including the source list to read from). Add an OpenRouter credential and choose the chat model in the AI Chat Model node. Set the schedule time (hou
Deploy Gainium DCA bot pairs with Telegram approval and Google Sheets logging
Quick overview This workflow runs daily, pulls top coins from the Gainium crypto screener, formats them into USDT trading pairs, and asks for Telegram approval before updating and starting a Gainium DCA bot, with optional deployment logging to Google Sheets and Telegram error alerts. How it works Runs every day at 08:00 on a schedule. Queries the Gainium screener for coins meeting the configured filters (market cap threshold, Binance listing, positive 24h change) and sorts them by 24h volume. Cleans the screener results and selects the top N unique SYMBOL_USDT pairs. Sends the proposed pairs to Telegram with Deploy/Skip buttons and pauses until you respond. If approved, replaces the Gainium DCA bot’s pairs, starts the bot, appends a deployment row to Google Sheets, and sends a Telegram confirmation. If skipped, leaves the bot unchanged and sends a Telegram message confirming the skip. Sends Telegram alerts if the Gainium screener call fails or if any other workflow node errors. Setup Install the community node n8n-nodes-gainium and add a Gainium API credential with permission to manage your bot. Create a Telegram bot, add a Telegram API credential in n8n, and set your telegram_chat
Generate SEO-friendly robots.txt with OpenAI and Google Drive
Quick overview This workflow runs manually to check a website’s existing robots.txt, detect the site’s CMS from the homepage HTML using OpenAI, and generate an optimized robots.txt (including the provided sitemap URL) that is saved as a file and uploaded to Google Drive. How it works Starts when you click “Execute workflow” and sets the target website URL and sitemap URL. Requests the site’s existing robots.txt via HTTP and checks whether the response returns status code 200. If robots.txt exists, the workflow stops without making changes. If robots.txt is missing, it fetches the website homepage HTML via HTTP. Sends the HTML to OpenAI to detect the CMS and parses the model output into structured JSON. Uses OpenAI again to generate a production-ready robots.txt tailored to the detected CMS and including the sitemap directive. Converts the generated text into a robots.txt file and uploads it to a chosen folder in Google Drive. Setup Add an OpenAI API credential and ensure the selected chat model is available for both CMS detection and robots.txt generation. Add a Google Drive OAuth2 credential and choose the target Drive and folder for the uploaded robots.txt file. Update the websit
Route patients to the best nearby hospital using Google Maps, GPT-4.1 and Twilio
Quick overview This workflow accepts emergency location requests (or runs on a 5-minute schedule), finds and ranks nearby hospitals/clinics using Google Places, capacity data, and Google Distance Matrix, generates a routing message with OpenAI, sends the recommendation via Twilio SMS, logs the event to Google Sheets, and returns a JSON response. How it works Receives an emergency request via a webhook POST (or runs every 5 minutes on a schedule) and normalizes latitude, longitude, severity, phone number, and a request ID. Validates the GPS coordinates, maps severity to a numeric score, and sets a search radius, returning an error response if the location is invalid. Queries the Google Places API for nearby hospitals and clinics, then merges and deduplicates the results into a single facility list. Looks up each facility’s ED capacity metrics from a capacity API and calculates real-time driving time to each facility with the Google Distance Matrix API. Scores and ranks facilities using a severity-adjusted composite score (travel time, available beds, wait time, and ED diversion penalties) and selects the best match plus two alternatives. Uses OpenAI to generate a calm routing messag
Validate startup ideas and generate business plans with Claude and SendGrid
Quick overview This workflow receives a startup idea via webhook, uses Anthropic Claude to expand it, run market research, competitor analysis, and demand validation, then generates a structured business plan, emails it through SendGrid, logs a summary row to Google Sheets, and returns a JSON response to the webhook caller. How it works Receives a startup idea via an HTTP POST webhook request. Normalizes the submission details (idea, founder, industry, budget) and uses Anthropic Claude to expand the idea into a structured concept with an initial score. Filters out ideas below the viability threshold (ideaScore < 4) to stop low-quality submissions early. Uses Anthropic Claude to produce market sizing and persona research, then parses the results into structured market data. Uses Anthropic Claude to analyze direct and indirect competitors and compute a competitive position score. Uses Anthropic Claude to validate demand signals, risks, and go-to-market recommendations, then calculates a composite score and PROCEED/VALIDATE_FURTHER/PIVOT_OR_ABANDON recommendation. Uses Anthropic Claude to generate a 10-section business plan, appends a tracking row to Google Sheets, emails the report v
Triage Typeform survey feedback with GPT-4o-mini, Slack, Gmail, and Sheets
Quick overview This workflow triggers on new Typeform survey responses, uses OpenAI GPT-4o-mini to classify sentiment and draft reply emails, routes negative feedback through a Slack human-approval loop with revisions, sends emails via Gmail, and logs outcomes to a Google Sheets CRM. How it works Triggers when a new Typeform survey response is submitted. Extracts the respondent’s name, email, rating, and free-text feedback and sends it to OpenAI GPT-4o-mini to classify the response as positive or negative. If the response is negative, OpenAI GPT-4o-mini drafts an empathetic follow-up email, posts a Slack alert to the team, and sends the draft to a Slack review channel that waits for a reply. If the reviewer replies with “approved”, the workflow sends the approved draft to the respondent via Gmail and appends a “Sent” record to Google Sheets. If the reviewer requests changes, OpenAI GPT-4o-mini revises the email based on the Slack feedback and the workflow loops back to Slack for another review. If the response is not negative, OpenAI GPT-4o-mini drafts a thank-you email, sends it automatically via Gmail, and logs the sent email to Google Sheets. Setup Connect credentials for Typefo
Draft personalized cold emails from Google Sheets with Apify and GPT-4o mini
Quick overview This workflow reads pending medical or dental practice leads from Google Sheets, scrapes each practice website with Apify, uses OpenAI (gpt-4o-mini) to identify conversion gaps, and drafts a short personalized cold email, then writes the analysis and draft back to the sheet. How it works Manually starts the workflow and reads leads from a Google Sheets worksheet. Filters the rows to only those with Status set to "pending" and processes them one at a time. Uses Apify Website Content Crawler to scrape up to a few pages of each lead’s WebsiteURL and compiles the extracted text into a trimmed site summary. If enough website text is available, sends it to OpenAI (gpt-4o-mini) to produce a strict-JSON analysis of 2–3 concrete booking/chatbot/after-hours/intake gaps and a best outreach angle. Alternates between “soft” and “direct” framing and asks OpenAI (gpt-4o-mini) to generate a short JSON email draft (subject and body) tailored to the selected gap. Updates the matching row in Google Sheets with ScrapedNotes, WeakPoints, DraftEmail, and sets Status to "drafted", then waits briefly before moving to the next lead. If the scrape returns insufficient content, updates the lea
Send AI market briefings to email and Discord with AlphaAI and GPT-4
Quick Overview This workflow runs every 15 minutes to fetch AlphaAI’s trending market news, filter for new high-relevance, ticker-linked stories, and post them to a Discord channel via webhook as rich embed cards with sentiment and impact details. How it works Runs every 15 minutes on a schedule trigger. Requests the current trending news feed from the AlphaAI API using Bearer authentication. Filters out already-posted articles, keeps only stories with relevance score ≥ 8 and at least one ticker, and formats up to 10 items into Discord embed cards with AlphaAI sentiment, confidence, actionability, and likely price impact. Posts a single Discord webhook message containing a header and the generated embeds, and stores the posted article IDs to prevent duplicates in future runs. Setup Create an AlphaAI API key and add it as an n8n HTTP Bearer Auth credential used by the AlphaAI request. Create a Discord channel webhook and paste its URL into the Discord webhook HTTP request node. Activate the workflow and keep it running on the same n8n instance so its stored posted-article IDs can be reused across executions.
Process signed DocuSign contracts with Supabase, Claude, Stripe, Outlook and Gmail
Quick overview This workflow listens for DocuSign Connect envelope-completed events, looks up the related assessment in Supabase, updates contract and client records, sends a welcome email (optionally drafted with Anthropic), creates an onboarding session and invite, and for non-pilot clients creates a Stripe Checkout payment link and emails it. How it works Receives a POST webhook from DocuSign Connect and continues only when the envelope status indicates the contract is completed. Queries Supabase for the assessment record matching the DocuSign envelope ID and normalizes the returned data to a single assessment object. Updates the assessment in Supabase to mark the contract as completed, upserts a client record in Supabase, and calls an internal webhook to fetch the signed contract. Sends either a pilot welcome email or a standard welcome email via Microsoft Outlook, with the standard email body drafted by Anthropic and optionally logged to a separate cost-tracking workflow. Generates a resume token, creates an onboarding session in Supabase, waits 24 hours, then sends the onboarding questionnaire invite via Microsoft Outlook and emails an internal notification via Gmail. For non
Send DocuSign envelopes with Supabase contract data
Quick overview This workflow is triggered by another n8n workflow, fetches an assessment record from Supabase, generates an HTML contract, and sends it as a DocuSign envelope using JWT authentication in either production or sandbox based on the recipient email, then writes the envelope ID and status back to Supabase. How it works Receives an execution request from another workflow with an assessment ID (and optional contract title). Retrieves the matching assessment record from the Supabase assessments table. Generates a styled contract HTML document from the assessment data and Base64-encodes it for DocuSign. Chooses the DocuSign sandbox or production path based on whether the contact email contains a specific marker string. Calls a Supabase Edge Function to create a DocuSign JWT assertion, exchanges it for a DocuSign access token, and creates a “sent” envelope with two signers and anchor-based signature tabs. Updates the Supabase assessment record with the DocuSign envelopeId and sets the contract status to envelope_sent. Setup Create and connect Supabase credentials in n8n, and update the Supabase project URL for the Edge Function endpoint (/functions/v1/docusign-sign-jwt). Conf
Research Reddit trends and publish LinkedIn posts with Gemini and PostPeer
Quick overview This workflow runs daily, scrapes a selected subreddit with Apify, researches sources via Brave Search and Jina Reader, and uses Eden AI (DeepSeek) plus Google Gemini to draft a LinkedIn post with an image. It logs state in Google Sheets/Drive, sends approval emails, and publishes via PostPeer. How it works Runs daily on a schedule, loads Global Constants, and picks an ACTIVE subreddit row from Google Sheets using a random ID. Scrapes recent posts from that subreddit using an Apify Reddit scraper, then normalizes, scores, and deduplicates candidates. Uses an Eden AI (DeepSeek) agent to vet the candidates and either selects one post idea or stops and records a NO_VIABLE_IDEA entry in Google Sheets and emails the rationale. For a selected idea, a second Eden AI (DeepSeek) agent generates a research brief and up to five Brave Search queries, then Brave Search and Jina Reader collect and extract a small set of non-social sources. A third Eden AI (DeepSeek) agent writes the LinkedIn draft and an accompanying image prompt, then Google Gemini generates the image. Uploads the image to Google Drive, writes the draft and metadata to a Google Sheets post log, and emails a two-s
Upload CSV test cases to Qase and send completion alerts to Slack
Quick overview This workflow upload test cases from a CSV file into Qase App and sends a confirmation message to your Slack channel. How it works Receives a form submission containing a public CSV URL and a selected Qase project option. Downloads the CSV file from the provided URL and extracts its rows into individual test-case items. Maps each row into the JSON payload Qase expects (including project code, fields like severity/priority/type, and optional parsed steps). Creates the test cases in Qase by sending a POST request per item to the Qase Cases API for the mapped project. Aggregates the upload responses into a single result. Sends a Slack incoming-webhook message confirming the test case upload is complete. Setup Create a Qase API token and add it to the Qase HTTP Header Auth credentials used for the Qase API request. Create a Slack Incoming Webhook, paste the webhook URL into the Slack notification HTTP request node, and customize the message text if needed. Ensure the uploaded CSV is publicly accessible via URL and uses the expected columns (for example: title, description, preconditions, postconditions, severity, priority, type, layer, behavior, automation, and optional
Triage and deduplicate GitHub issues with Claude Sonnet 4.5
Quick overview Detect and merge duplicate GitHub issues automatically using Claude AI. This n8n automation triggers on new GitHub issues, checks them against open issues for duplicates, merges duplicate reports into the original, and applies AI-generated labels or requests missing reproduction steps. How it works Triggers automatically when a new GitHub issue is opened, kicking off AI-powered issue triage. Fetches up to 30 currently open GitHub issues from the same repository as duplicate-detection candidates. Sends the new issue and the candidate list to Claude AI, which assigns labels, detects duplicate issues, and drafts a reproduction-request comment when needed. If Claude AI flags the issue as a duplicate, the automation labels the new issue, links it to the original GitHub issue, and comments with a reference back to it. For duplicate issues, the workflow also updates the original issue's body with a tracked "reported by N users" summary and posts a comment merging in the new report's details — keeping duplicate GitHub issues consolidated instead of scattered across separate threads. If the issue isn't a duplicate, Claude AI applies the right labels and, when reproduction ste