AI Automation
923 Ergebnisse — ausschließlich quellenverknüpfte n8n-Referenzen
Assist hospital doctors via Telegram with OpenAI, Google Sheets, Gmail and Slack
Quick overview This workflow combines a Telegram doctor bot, OpenAI, Google Sheets, Gmail, Slack, and a webhook to summarize PDF reports, generate and email discharge summaries, analyze lab values, report bed availability, send daily patient follow-ups, and post error alerts. How it works Runs every day at 9:00 AM to read patient records from Google Sheets, filter those due for follow-up today with a Pending status, send each patient a Telegram check-in, and mark the follow-up as Sent. Triggers when a doctor sends a Telegram message and routes it based on whether it includes a document or a supported command. If a PDF is attached, downloads it from Telegram, extracts the text, uses OpenAI (gpt-4o-mini) to create a short clinical summary, logs the result to a Google Sheets Reports tab, and replies to the doctor on Telegram. If the message starts with "/discharge PATIENTID", extracts the patient ID, looks up the patient in the Google Sheets Patients tab, uses OpenAI (gpt-4o-mini) to generate a discharge summary, saves it back to Google Sheets, emails it to the patient via Gmail, and confirms completion on Telegram. If the message starts with "/labs", sends the provided lab values to
Verify customs shipping documents with GPT-4o-mini, Gmail and Slack
Quick overview This workflow receives shipment document text via a webhook, uses OpenAI (GPT-4o-mini) to extract key fields from the Bill of Lading, cross-checks the extracted data against Invoice and Packing List fields, then emails a compliance verdict via Gmail and sends failure alerts to Slack. How it works Receives a POST request via webhook containing submitterEmail, shipmentRef, and the plain-text Commercial Invoice, Packing List, and Bill of Lading. Uses OpenAI (GPT-4o-mini) to extract structured Bill of Lading fields into JSON, and posts a Slack alert if the extraction fails. Compares key fields across the Invoice, Packing List, and Bill of Lading (for example consignee/shipper names, ports, package counts, gross weight, HS codes, quantities, and shipping marks) and calculates a verdict and discrepancy list. Emails a “READY_TO_FILE” report via Gmail when all checks pass. Emails a “NEEDS_CORRECTION” report via Gmail with detailed mismatch explanations and check IDs when discrepancies are found. Sends a Slack message when any workflow-level error occurs so issues are visible even if the run fails early. Setup Add an OpenAI credential and ensure the OpenAI node is configured
Send ranked freight quote PDFs with GPT-4o, Google Sheets, Gmail and PDFShift
Quick overview This workflow receives shipment requests via webhook, pulls carrier rate data from Google Sheets, uses OpenAI GPT-4o to generate a ranked HTML freight quote, converts it to a PDF with PDFShift, and emails the PDF to the customer via Gmail, with Slack alerts on workflow errors. How it works Receives a POST webhook request containing shipment details like origin, destination, weight, mode, and customer contact information. Reads rate information in parallel from three carrier tabs in a Google Sheets spreadsheet (BlueDart, DTDC, and Delhivery). Combines the carrier results and calculates per-carrier total cost based on the shipment weight. Sends the shipment and carrier data to OpenAI GPT-4o to generate a complete HTML quote page with a ranked comparison table. Converts the generated HTML into an A4 PDF file using the PDFShift API. Emails the PDF quote to the customer using Gmail with a prefilled subject and message. If the workflow fails, posts an error alert message to a Slack channel. Setup Configure the webhook path in n8n and copy the production webhook URL into the system that submits shipment requests. Add Google Sheets OAuth2 credentials and ensure the reference
Send daily short-form video ideas to Discord from Google News RSS with Claude
Quick overview This workflow runs daily, pulls the latest Google News RSS items for a keyword, uses Anthropic Claude to generate five short-form video hooks and scripts, then formats and posts the ideas to a Discord channel via a webhook. How it works Runs once per day on a schedule (default 7:00 AM). Fetches recent articles from a Google News RSS search feed. Deduplicates items, filters to stories published in the last 24 hours, and keeps the 15 newest with title, link, and summary. Sends the curated news list to Anthropic Claude to select five stories and generate a hook, angle, and 30–45 second script for each as strict JSON. Parses the JSON response and formats one or more Discord-ready messages, splitting to stay under Discord’s character limit. Posts the formatted content ideas to Discord using an incoming webhook. Setup Add an Anthropic API credential and select a model your account supports (the template uses claude-sonnet-4-6). Create a Discord incoming webhook for your target channel and replace the webhookUri value with your webhook URL. Update the Google News RSS URL query (q= parameter) to match your niche/keywords. Adjust the schedule time in the Schedule Trigger node
Validate invoice tax compliance from Gmail using Groq, Notion, and Google Sheets
Quick overview This workflow monitors a Gmail inbox for PDF invoices, uses Groq (Llama 3.3) to extract structured invoice fields, validates the invoice against Purchase Orders in Google Sheets and tax rules in Notion, logs an audit entry to Notion, and notifies Slack and the supplier based on pass/fail. How it works Triggers every minute when a new email arrives in Gmail and downloads the attached PDF invoice. Extracts text from the PDF and sends it to Groq (Llama 3.3) to parse invoice fields into a structured JSON schema, including SEZ/LUT detection. Looks up the referenced PO number in Google Sheets and fetches applicable tax rules from a Notion database. Validates the invoice against the PO (existence, approval status, currency, and total amount) and against Notion tax rules (SEZ/import/domestic matching and GST expectations). Writes the compliance result, matched rule, and any violations to a Notion “Compliance Audit Log” database. If the invoice passes, posts an approval message to Slack and archives the PDF to a Google Drive folder. If the invoice fails, posts a blocking alert to Slack and emails the supplier a rejection notice listing the violations. Setup Connect your Gmail
Predict supplier churn and generate retention plans with Notion, Slack, and Groq
Quick overview This workflow runs weekly to pull supplier activity from Notion, engineer churn-risk features, and use Groq-hosted LLM prompts to classify supplier churn risk and generate retention plans. It updates each supplier record in Notion and posts a Slack alert only when a supplier is rated High risk. How it works Runs every week on a schedule. Retrieves all supplier records from a Notion database. Calculates behavioral risk features such as PO trend, engagement score, and delivery/financial/contract-risk flags from the Notion fields. Processes suppliers one at a time and sends the features to a Groq LLM to return structured JSON with churn risk level, risk score, confidence, and key drivers. Sends the churn assessment to a second Groq LLM prompt to generate a structured retention plan with priority, recommended actions, suggested owner, and summary. If the supplier’s churn risk is High, posts a formatted alert with drivers and recommended actions to a Slack channel. Updates the supplier’s Notion page with the churn risk, risk score, key drivers, retention plan, and a “Last Evaluated” timestamp, then continues to the next supplier. Setup Connect your Notion credentials and
Review contract risk and rewrite clauses with Groq, Google Drive, Notion, and Slack
Quick overview This workflow watches a Google Drive folder for newly uploaded contract PDFs, extracts key clauses with Groq-hosted LLMs, compares them to standard clauses stored in Notion, generates a structured risk report and clause rewrites, sends a Slack alert for high-risk contracts, and saves the review to Notion. How it works Triggers when a new file is created in a specific Google Drive folder. Downloads the file and extracts text from it (using PDF text extraction when the uploaded file is a PDF). Uses a Groq-hosted LLM to extract key contract clauses (payment terms, penalties, SLA, termination, renewal, liability, and data protection) into structured JSON. Pulls the company’s standard clause library from Notion and compares each extracted vendor clause to the corresponding standard text. Uses a Groq-hosted LLM to generate a structured legal risk report with an overall risk level, executive summary, clause-by-clause risk review, missing protections, and negotiation recommendations. Rewrites medium- and high-risk clauses with a Groq-hosted LLM to produce negotiation-ready alternative wording aligned to the Notion standards. If the overall risk level is High, posts a formatt
Send weekly Salesforce sales behavior coaching reports with Groq and Gmail
Quick overview This scheduled workflow pulls last week’s Salesforce opportunities, tasks, and events for a specific rep, computes activity and pipeline health metrics, uses Groq (LLM) to generate coaching insights, creates a QuickChart performance chart URL, and emails a weekly behavioral report via Gmail. How it works Runs weekly on a schedule. Retrieves a target Salesforce user and queries that user’s opportunities with activity in the last week. Builds an Opportunity ID list, then pulls related Salesforce Tasks and Events and merges them into a single activity stream alongside the opportunities. Calculates per-opportunity engagement metrics (touches, calls, emails, follow-ups, meetings) and the days since last activity based on activity subjects and dates. Aggregates the opportunity metrics into per-rep totals including revenue, won/lost deals, and a stale-deal count based on activity gaps. Generates a QuickChart URL visualizing weekly activity versus outcomes and sends the rep metrics to Groq to produce structured coaching insights. Combines the chart and AI insights and sends an HTML weekly coaching email through Gmail. Setup Connect Salesforce OAuth2 credentials and set the S
Track meal nutrition from photos with LINE, Google Gemini and Google Sheets
Quick Overview This workflow receives meal photos via LINE, uses Google Gemini to estimate nutrition facts and generate advice, stores the photo in Google Drive, logs the results to Google Sheets, and replies to the user in LINE with a formatted analysis. How it works Receives a POST webhook event from LINE when a user sends a message. Checks whether the incoming LINE message contains an image and stops processing if it does not. Downloads the image content from the LINE Messaging API and sends it to Google Gemini to identify foods, estimate nutrition values, and generate health guidance. If the AI response indicates the image is not food, sends a LINE push message asking the user to submit a clearer meal photo. If the AI response is valid, parses the returned text into structured fields (food items, macros, calories, score, and advice) and calculates remaining calories based on a daily goal. Uploads the meal photo to Google Drive, appends the nutrition log (including the Drive image URL) to Google Sheets, and sends the formatted nutrition summary back to the user via LINE. Setup Create a LINE Messaging API channel, enable the webhook, and add the workflow’s webhook URL (the /MealT
Mask PII in hosted chat with OpenAI, Claude, and Saklam Bridge
Quick overview This workflow provides a public hosted chat that routes messages through the Saklam Bridge to mask PII on-premises before calling models like Claude, GPT, or Mistral, then restores the original values in the response. How it works Exposes a public hosted chat interface and receives each user message. Sends the message to an AI agent that uses an OpenAI-compatible chat model endpoint. Routes the model request through the self-hosted Saklam Bridge, which masks PII locally before forwarding the prompt to your chosen LLM provider. Receives the provider’s response back through Saklam Bridge, which unmasks the placeholders to restore the original PII. Returns the final unmasked answer to the hosted chat user. Setup Deploy the Saklam Bridge container in the same network as n8n and configure it with your Saklam license and your LLM provider API key. Create an OpenAI API credential in n8n that points its Base URL to your Saklam Bridge endpoint (for example, http://saklam-bridge:4000/v1) and uses the Bridge master key as the API key. Select that OpenAI credential in the chat model node and set the model name to the provider model you want to use (for example, claude-haiku-4-5,
Send daily brand mention digests to Slack with ScraperAPI and OpenAI
Quick Overview This workflow runs every morning at 8am, searches Google News for configured brand terms using ScraperAPI, stores previously seen article URLs in an n8n Data Table, summarizes the new coverage with OpenAI, and posts a daily brand-mention digest to a Slack channel. How it works Runs every day at 8am on a schedule. Sets the search terms, Google News country and time-period filters, and the target Slack channel. Creates (if needed) and reads an n8n Data Table of previously seen article URLs. Queries Google News via ScraperAPI for each search term and extracts article details from the responses. Deduplicates results against the seen-articles table and the current run, then stores new article URLs back into the Data Table. Groups new articles by brand, asks OpenAI to write a per-brand Slack-formatted summary, and posts the final digest message to Slack. Setup Add ScraperAPI credentials and ensure your ScraperAPI plan supports the Google News SDE endpoint used by the workflow. Add an OpenAI credential that can access the configured chat model (gpt-5-mini) or change the model selection to one available in your account. Add a Slack credential with permission to post messages
Re-engage dormant real estate leads with Google Sheets, Gemini and Gmail
Quick Overview This workflow runs daily to find dormant real estate leads in Google Sheets, uses Google Gemini to draft personalized winback emails, sends them via Gmail, updates the lead records, and then posts a run summary digest to Gmail and optionally to Slack. How it works Runs every day at 8am on a schedule. Pulls all lead records from a Google Sheets spreadsheet. Filters to leads that have an email address, are not marked “Do Not Contact,” and have not been contacted in at least 30 days. Processes each dormant lead in turn by prompting Google Gemini to generate a short re-engagement email subject and body based on the lead’s name, property interest, and days since last contact. Sends the generated message to the lead via Gmail and updates the corresponding row in Google Sheets (for example, tracking status and re-engagement attempt count). Aggregates the run results and sends a summary digest to a specified Gmail address and to a Slack channel. Setup Connect credentials for Google Sheets, Gmail, and Google Gemini (PaLM) API. Select the Google Sheets document and sheet name for both the lead fetch and lead update steps, and ensure your sheet includes fields like Email, Statu
Schedule weekly social media posts with OpenAI and PostFast
Quick overview This workflow runs every Monday to generate a week of social media posts with OpenAI, then schedules them at preselected high-reach time slots through PostFast for the social accounts you choose. How it works Runs every Monday morning on a schedule trigger. Loads your brand name, voice, topics, number of posts, and a platform filter for which networks to target. Fetches all connected social accounts from PostFast and keeps only accounts that are connected and match the chosen platforms. Uses OpenAI to write the requested number of posts in the defined brand voice and returns them as structured JSON. Assigns each post to the next available “best time” slot (UTC) and expands the plan so each post is scheduled for each selected PostFast account. Creates scheduled posts in PostFast with APPROVED status so they publish automatically at the assigned times. Setup Install and enable the PostFast community node (n8n-nodes-postfast) if your n8n instance does not already allow verified community nodes. Add a PostFast API key credential and connect the social accounts you want to schedule to in your PostFast dashboard. Add an OpenAI credential for the OpenAI node. Update the con
Analyze LinkedIn profiles and posts with Apify and OpenAI GPT-4
Quick overview This workflow collects a LinkedIn profile URL via an n8n form, scrapes the profile’s recent posts with Apify, analyzes the profile and each post using OpenAI models, and stores the resulting profile summary and per-post insights in n8n Data Tables. How it works Receives a LinkedIn profile URL when a user submits the built-in n8n form. Extracts the LinkedIn username from the URL and runs an Apify actor to scrape the profile’s posts into a dataset. Generates an overall competitive-intelligence style profile analysis from the scraped posts using an OpenAI chat model and parses the result into structured JSON. Saves the structured profile summary, themes, messaging patterns, and content ideas to an n8n Data Table. Loops through each scraped post, stores the raw post text and engagement metrics in an n8n Data Table, and marks it as unprocessed. Analyzes each post with an OpenAI chat model to extract structured insights (topic, takeaway, engagement insight, and suggested use) and updates the corresponding Data Table row as processed. Setup Configure the n8n Form Trigger and share the form URL with users who will submit LinkedIn profile links. Add an Apify API token in n8n
Run a Telegram productivity assistant with OpenRouter, Google Calendar, and Todoist
Quick overview This workflow turns Telegram into a personal assistant that manages your Google Calendar and Todoist, sends daily briefings, and alerts you when meetings are booked or things break. How it works Morning briefing - Every day at a set time, the workflow checks your Google Calendar for today's events and your Todoist for open tasks, then sends you two Telegram messages: a calendar rundown and a task summary grouped by project with priority flags. Cal.com booking alerts - When someone books, reschedules, or cancels a call on Cal.com, or a meeting ends, the workflow catches the webhook and sends you a Telegram notification with the attendee's name, email, meeting title, and time. Talk to your assistant on Telegram - Message the bot with text or a voice note. Voice notes get transcribed automatically. Your message goes to an AI agent that can read, create, update, or delete calendar events, and create, find, update, complete, or delete Todoist tasks, all through natural conversation. The agent replies back in the same chat. Error alerts - If any part of the workflow fails, you get a Telegram message with the failed node, the error, and a link to the execution, so you catch
Screen candidate CVs with Google Gemini, Google Sheets, and Gmail
Quick overview This workflow collects candidate applications via an n8n form, extracts text from uploaded PDF CVs, compares each CV to a job description stored in Google Sheets using Google Gemini (via OpenRouter), logs screening results back to Google Sheets, and creates a Gmail draft email for HR review. How it works Candidate submits the n8n-hosted form with their details and a PDF CV. Two operations run in parallel: CV text is extracted from the uploaded PDF, and the matching Job Description is fetched from Google Sheets using the role the candidate entered. Gemini Flash evaluates the CV against the JD and returns a structured recommendation: Strong Interview, Interview, Borderline, or Do Not Proceed, along with a score, matched skills, gaps, and a plain-text summary. The full screening record is logged to a Screening Results tab in Google Sheets. A Gmail draft is created for HR to review and send: a shortlist notification for Interview and above, a rejection for Borderline and below. Setup Open the Config node and fill in spreadsheet_id, jd_sheet_gid, results_sheet_gid, and company_name. Create two tabs in your Google Sheet: Job Description (columns: job_id, title, department,
Review stale Notion docs with Gmail alerts, Slack reports, and OpenAI
Quick overview This workflow runs every Friday to scan a Notion documentation database for pages not edited in 90+ days, marks them as “Needs review,” emails owners of critical stale docs via Gmail, and uses OpenAI to generate a prioritized weekly review plan that it posts to a Slack channel. How it works Runs every Friday at 10:00 on a schedule. Retrieves all pages from a selected Notion database and calculates how many days it has been since each page was last edited, along with its title, URL, owner email, and importance. Filters the list to only documentation pages that have been untouched for 90 days or more. Updates each stale page in Notion by setting its Status to “Needs review.” Sends a Gmail email to the page owner when the stale document is marked as Critical and an owner email is present. Aggregates all stale documents and sends them to OpenAI to draft a short, risk-ranked weekly docs review plan. Posts the generated review plan to a specified Slack channel. Setup Connect credentials for Notion, Gmail, OpenAI (Chat Model), and Slack. Select your target Notion database in the Notion “getAll” step and ensure it contains properties for Owner Email, Importance (Critical/Nor
Match packing list PDFs to purchase orders with docling-serve and Ollama
Quick overview This workflow checks an SFTP “pending” folder for packing list PDFs, converts them to OCR text with docling-serve, and uses Ollama (Gemma) to extract structured line items and match them to a purchase order, logging results and moving files to completed or error folders. How it works Runs every hour and lists files in the SFTP pending folder. Filters for PDFs, downloads each file from SFTP, and logs a PENDING status to an n8n Data Table. Uploads the PDF to docling-serve for OCR conversion (RapidOCR, English) and stops with an error status if conversion fails. Sends the converted Markdown text to an Ollama Gemma chat model to extract a normalized packing-list JSON (PO number, parties, and line items). Loads the matching purchase order data and cross-references PO vs packing-list SKUs and quantities to determine whether the document matches. If SKU count matches but SKU text differs, uses an Ollama-based healing step to detect likely OCR-misread SKUs, applies the corrections, and re-runs the cross-reference. Writes the final status (COMPLETED or ERROR) to the n8n Data Table and moves the PDF in SFTP into a folder named after the status (for example, completed/ or error
Triage and reply to email threads with GPT-5.2, IMAP, Gmail, and ESP suppression
Quick overview Automatically read inbound email replies, use AI to detect intent and sentiment, and send natural in-thread responses. Opt-out requests are confirmed, pushed to your ESP suppression list, and logged. A hands-off reply layer that keeps your sender reputation clean while every conversation gets fast, human-sounding answer. How it works An IMAP trigger watches your inbox and picks up new reply emails as they arrive. A filter keeps only genuine replies, and a code node strips quoted history and signatures, then parses the sender name, email, and threading headers. A code node builds a strict AI prompt with the cleaned message and your trigger-word hints. The OpenAI node classifies intent and sentiment and drafts a reply, returning strict JSON. A code node normalizes the response, enforces a clean email structure, and adds your CTA once. A switch routes on the unsubscribe flag: normal replies go back in-thread through Gmail, opt-outs get a neutral confirmation. Opt-outs are posted to your ESP suppression list, every action is logged to a data table, and Gmail labels are updated to mark the thread handled. Setup (5 steps): Add your IMAP credentials to the email trigger and
Summarize Zoom meeting recordings in Notion with Smallest.ai and Gemini
Quick Overview This workflow receives Zoom recording webhooks, downloads the meeting recording, transcribes it with Smallest.ai, summarizes it with a Google Gemini-powered AI Agent, and saves the summary and action items as a new page in a Notion database. How it works Receives a POST webhook from Zoom and checks whether the event is Zoom’s endpoint URL validation challenge. For URL validation events, computes the Zoom CRC HMAC SHA-256 token and responds with the plain and encrypted tokens to verify the endpoint. For recording events, immediately acknowledges Zoom with a 200 OK response, then extracts the meeting topic, metadata, and an audio recording download URL from the webhook payload. Downloads the recording file from Zoom using the provided download token for authorization. Sends the downloaded audio to Smallest.ai to generate a full transcription. Uses a LangChain AI Agent with Google Gemini to produce a short meeting summary and a list of action items from the transcript. Creates a new page in a Notion database using the meeting topic as the title and the generated summary as the page content. Setup Create and configure a Zoom Event Notifications webhook (for a recording-c
Reply to Telegram voice messages with Smallest.ai and Google Gemini
Quick Overview This workflow listens for Telegram bot messages, detects voice audio, downloads the audio file, transcribes it with Smallest.ai, and uses a Google Gemini–powered AI agent to draft a helpful reply that is sent back to the same Telegram chat. How it works Triggers when a new message is received by your Telegram bot. Checks whether the incoming message contains a voice/audio attachment. Downloads the audio file from Telegram using the message’s file ID. Sends the audio to Smallest.ai Speech-to-Text to generate a transcription. Passes the transcription and chat ID to a LangChain AI agent backed by Google Gemini to generate a suggested reply. Sends the formatted response back to the originating Telegram chat. Setup Create a Telegram bot with BotFather, then add your Telegram credentials/token to the Telegram Trigger, file download, and Telegram reply tool nodes. Add your Smallest.ai API credentials to the transcription step. Add your Google Gemini (Google AI) credentials to the chat model used by the AI agent. Start the workflow and message your Telegram bot with a voice note to test the end-to-end transcription and reply.
Answer legal questions with Groq using CanLII and CourtListener
Quick overview This workflow collects a legal question via an n8n form, retrieves supporting authorities from CourtListener or CanLII, and uses a Groq-hosted Llama model to produce an answer grounded only in the retrieved text with verified, non-hallucinated citations. How it works Receives a legal question through an n8n form and captures the selected source database (CourtListener or CanLII) plus optional CanLII database and case IDs. Routes the request to CourtListener full-text search or to CanLII case metadata and citator endpoints based on the selected database. For CourtListener, pulls the top search results and fetches the full text of the top-ranked opinion; for CanLII, loads the selected case and a list of related cases from the CanLII citator. Normalizes the retrieved items into a single numbered “sources” block with excerpts that the model can cite. Sends the question and sources to a Groq Chat Model (Llama 3.3 70B) and parses the response into a structured format containing an answer, a supported flag, and a list of citations. Verifies every cited source index against the retrieved sources, drops any mismatches, and renders an HTML result page showing the answer, verif
Draft grounded Gmail support replies from a Notion KB with Groq and Cohere
Quick Overview This workflow ingests published Notion knowledge base articles into an in-memory vector store using Cohere embeddings, then monitors a support Gmail inbox and uses Groq to draft grounded reply emails based only on retrieved KB sources, saving the result as a Gmail draft for review. How it works Manually runs an ingestion flow that pulls all pages from a Notion database and keeps only articles marked as Published. Fetches each article’s Notion page blocks, assembles them into a single document, splits the text into chunks, and embeds the chunks with Cohere. Clears and loads the resulting embeddings and metadata into an in-memory vector store for retrieval. Triggers when an unread Gmail message arrives matching the support inbox query and normalizes the subject, body, sender, and thread details. Uses Groq to classify the email as a support question, noise, or already resolved, and continues only for real support questions. Embeds the question with Cohere, retrieves and reranks the most relevant KB chunks, and stops if the best match does not meet the configured relevance threshold. Uses Groq to draft a reply using only the retrieved sources and, if an answer is produce
Triage PubMed clinical literature with Gemini and Google Sheets and Docs
Quick overview Automatically retrieve recent PubMed articles, identify the three papers most worth reading first using AI, and generate structured clinical literature triage reports in Google Sheets and Google Docs. How it works Reads the first pending literature request from the Google Sheets "Search Requests" tab. Marks the request as “processing” in Google Sheets and builds the PubMed query parameters (keyword, max results, specialty, clinical question, and output language). Searches PubMed via the NCBI E-utilities API (esearch) and fetches the corresponding article abstracts and metadata as XML (efetch). Parses and normalizes the XML into a structured list of candidate articles including title, abstract, journal, publication year, DOI, and PubMed URL. Sends the aggregated candidate articles to Google Gemini to select and rank the best three papers and generate a structured clinical evaluation for each. Appends the three ranked papers with summaries and triage fields to a Google Sheets “Triage Results” tab. Generates a formatted triage report in Google Docs and updates the original request status to “completed” in Google Sheets. Setup Create a Google Sheets OAuth connection and