Skip to content
FlowHubFluxonLab

Code workflows

1,006 results — all source-linked n8n references

CW
free

Post approved Trello bookkeeping drafts to Xero with receipt attachments

Quick overview This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link back to Trello, uploads receipt images as Xero attachments, and moves the card to Done. How it works Triggers in Trello when a user adds the configured Approved label to a card on the target board. Fetches the card’s comments, extracts the ` payload, validates required fields, and skips processing if a ` sentinel comment already exists. For SPEND_MONEY and PAY_BILL entries, pulls active Xero bank accounts and resolves the bank account and payment reference from the draft and any reviewer comments, pausing to request confirmation on the Trello card if values are ambiguous. For PAY_BILL entries, fetches open supplier bills from Xero and either matches the payment to a single ACCPAY invoice or asks the reviewer to confirm the bill in a Trello comment. Builds and posts the appropriate Xero record (Bank Transaction, Bill, Payment, or Manual Journal) via the Xero API and generates a Xero deep link for the created entity. Immediately writes the `` deep link back to Trello, then

by Kristian
CW
free

Create real estate listing video ads with OpenAI and Videotok

Quick Overview This workflow takes a real estate listing, uses OpenAI to generate ad copy and a video generation prompt, then sends it to the Videotok API to create a 9:16 vertical listing video ad with a caption and compliance notes. How it works Starts manually to test the workflow with a sample property listing. Builds a listing record containing the address, listing details, and image URLs (replace this with your real listing source). Sends the listing data to OpenAI to generate structured JSON for a video ad, including a script, generation prompt, caption, and compliance notes. Parses the OpenAI output and maps it into a Videotok generation payload with brand kit, reference images, quality, duration, and an idempotency key. Calls the Videotok Generations API to create the vertical video ad using the generated prompt and listing images. Setup Add environment variables for OPENAI_API_KEY, VIDEOTOK_API_KEY, and VIDEOTOK_BRAND_KIT_ID. Replace the sample listing step with your own source (CRM, Airtable, Google Sheets, MLS export, or scraper) and ensure it outputs address, listing_details, and listing_image_urls. Confirm the Videotok template slug (viral-video-ads) and adjust the vi

by Borja Soler
airtableCWjirasoftware
free

Log Airtable worklogs to Tempo with Jira and Slack notifications

Quick overview This workflow runs nightly to pull time entries from Airtable, converts Jira issue keys to issue IDs, logs the time to Tempo via its REST API, archives the processed entries back to Airtable, and sends a confirmation message to a Slack user. How it works Runs on a schedule. Fetches all records from the Airtable “Daily Worklog” table. Looks up each entry’s Jira issue by Issue Key to retrieve the issue ID. Builds a Tempo worklog payload (authorAccountId, issueId, start date/time, description, and time spent calculated from start/end times). Sends each worklog to the Tempo to create the worklog entry. Archives each submitted entry into the Airtable “Worklog History” table and deletes the original record from “Daily Worklog”. Aggregates the processed records and sends a direct message in Slack confirming the upload. Setup Connect Airtable credentials and update the base ID and table IDs for “Daily Worklog” and “Worklog History” to match your Airtable setup. Connect Jira Software Cloud credentials with access to the projects/issues referenced by the Airtable Issue Key field. Connect an HTTP Bearer credential using your Tempo API token, and replace YOUR_TEMPO_AUTHOR_ID in

by Viktor Mikeska
CgmailsheetsW
free

Send railway queue predictions with OpenAI GPT-4o-mini, Gmail, and Google Sheets

Quick overview This workflow collects train trip details via an n8n Form, predicts station crowding and queue times with a rule-based algorithm, generates a short advisory with OpenAI, then emails a color-coded HTML alert via Gmail and logs each prediction to Google Sheets. How it works Receives a submission from an n8n Form containing the traveler’s train, station, date/time, class, e-ticket status, passenger count, and email. Calculates a crowd score, alert level, queue-time breakdown (platform, ticket counter, security, walking), and an optimal station arrival time using an in-workflow rules engine. Sends the prediction context to OpenAI Chat Completions (gpt-4o-mini) to generate a plain-text, under-120-word travel advisory. Combines the advisory with the prediction results and assigns alert colors and text based on the computed alert level. Builds a color-coded HTML email summarizing the recommended arrival time and queue breakdown. Appends the prediction details to a Google Sheets tab and sends the HTML alert email to the traveler via Gmail. Setup Add an OpenAI API credential for the HTTP request to https://api.openai.com/v1/chat/completions. Connect Google Sheets OAuth2 and r

by isaWOW
ACgooglecalendarW
free

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

by Mariyan Nijan
CWsalesforce
free

Sync Salesforce MQL lead journey timelines with Factors.ai

Quick overview This workflow runs on a schedule to fetch new, unsynced Salesforce leads, pulls account journey activity from the Factors.ai API based on the lead’s email domain, and updates the lead in Salesforce with a formatted journey summary and sync/status fields. How it works Runs on a schedule and loads the last successful run timestamp (defaulting to the last 7 days on first run). Retrieves Salesforce leads created since the last run that match the defined criteria (Demo Request conversion type, not converted, and not yet Factors-synced). Processes leads in batches and checks whether each lead has an email address. For leads with an email, extracts the email domain, waits briefly, and calls the Factors.ai account journey endpoint for that domain. Normalizes the Factors.ai response, searches the returned data for a valid email, and proceeds only when a valid email is found. Updates the Salesforce lead with a formatted journey/activity summary and marks the lead as Factors-synced, or writes a status to Salesforce when the lead has no email or no matching email is found. After all items are processed, commits the current run timestamp as the new last run time to avoid missing

by Suraj Prakash Karale
BCgmailnotion
free

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

by kenta
ACftpW
free

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

by Adam
airtableC
free

Track Amazon best seller ranks in Airtable with ScraperAPI and Slack

Quick overview This workflow runs daily at 8am to read an ASIN watchlist from Airtable, fetch each Amazon product’s Best Sellers Rank via ScraperAPI, store rank history back in Airtable, and post a consolidated Slack alert when a product’s rank change exceeds a configured threshold. How it works Runs every morning at 8am on a schedule. Searches Airtable for active watchlist items and processes them one at a time. Fetches each product’s Amazon data from ScraperAPI using the ASIN. Parses the Best Sellers Rank text into a numeric rank, calculates the change versus the previous saved rank, and flags items that exceed the watchlist threshold. Creates a new rank-history record in Airtable and updates the watchlist item with the latest rank and check time. Searches Airtable for today’s flagged rank-history records, builds a single digest message, and posts it to a Slack channel if any alerts exist. Setup Add Airtable credentials and select the Base/Table for both the watchlist search, the rank-history create step, the watchlist update step, and the “today’s alerts” search. Ensure your Airtable schema includes a Watchlist table with fields like active, asin, label, rank_threshold, last_ran

by ScraperAPI
Csendemail
free

Generate branded invoice PDFs from webhook orders with PolyDoc and email

Quick overview This workflow receives an order via webhook, validates required fields, calculates invoice totals, renders a branded invoice PDF using a saved PolyDoc template, emails the PDF to the customer, and returns the same PDF in the webhook response. How it works Receives an order payload in a POST request via an n8n webhook. Validates that the order includes at least one line item and a customer email, and returns a 422 JSON error if the payload is incomplete. Calculates line totals, subtotal, tax amount, and grand total, and formats the invoice data (invoice number, dates, currency, and customer details). Uses PolyDoc to populate a saved template with the invoice data and render an A4 PDF. Sends the generated PDF to the customer by email as an attachment. Returns the generated PDF as the webhook response for immediate download. Setup Create a PolyDoc API credential in n8n and replace YOUR_TEMPLATE_ID with your saved invoice template ID from the PolyDoc dashboard. Configure an SMTP credential (or replace the email step with another provider) and set the sender address (for example, update [email protected]). Copy the webhook URL from the webhook trigger and configure your

by polydoc.tech
CgmailW
free

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

by Nocode Expert
ACcrypto
free

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

by Zain Khan
BCgroqchatmodelW
free

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

by Kevin Yu
BCDembeddingscohere
free

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

by Kevin Yu
Cgoogledrivesheets
free

File Google Drive inbox documents into dated folders with a Google Sheets audit log

Quick overview This workflow monitors a Google Drive inbox folder for new files, classifies them by filename regex rules, files them into a Year/Month/Type folder structure in Google Drive, and logs each success or failure to a Google Sheets audit log. How it works Triggers every minute when a new file is created in a selected Google Drive folder. Evaluates the filename against configurable regular-expression rules to assign a document type, derive the year/month from the file’s created time, and build a destination path. Uses the planned destination root to find or create the required year folder, then the month folder, then the type folder in Google Drive. Moves the file into the final type folder. Appends a “Filed” audit row to Google Sheets with timestamp, original filename, matched rule, destination path, and file ID. If any step errors, appends a “Failed” audit row to Google Sheets with error details so the run continues. Setup Add Google Drive OAuth2 credentials, select the inbox folder to watch, and ensure the archive root is a different Google Drive folder to avoid reprocessing filed files. In the rules script, paste your archive root folder ID and adjust the filename rege

by Kevin Yu
Cgithubtelegram
free

Back up all workflows to GitHub with daily schedule and Telegram /backup

Quick overview This workflow backs up all workflows from your n8n instance to a GitHub repository every day at 03:00, and also supports an on-demand Telegram /backup command, then sends a Telegram message with the backup result and commit link. How it works Runs daily at 03:00 and also triggers when a Telegram message is received. Checks that the incoming Telegram message starts with /backup before proceeding with the manual run. Fetches all workflows from the n8n instance via the n8n API. Builds a JSON backup file containing the workflows and sets the GitHub file path as backups/YYYY-MM-DD/workflows.json. Checks in GitHub whether the backup file already exists and either updates it or creates it with a dated commit message. Sends a Telegram notification to the triggering chat (or a predefined admin chat for scheduled runs) including the workflow count and GitHub commit URL. Setup Create and select an n8n API credential that can read workflows from your n8n instance. Add a GitHub credential with access to the target repository and set the owner/repo values to your backup repo. Add a Telegram bot credential, enable the Telegram trigger webhook, and use the bot to send /backup from t

by Business Atlas
BCgoogledocs
free

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

by Hiroyuki Yamasaki
Cnotion
free

Roll overdue Notion tasks forward and flag stale ones on a schedule

Quick overview This workflow runs every morning, scans a Notion tasks database for overdue, unfinished items, rolls their due dates forward, increments a roll counter, and marks tasks as stale once they have been rolled too many times. How it works Runs every morning at 7:00 based on a schedule. Retrieves all pages from the selected Notion database. Filters for tasks with a due date before today and a status that is not in the configured “done” list. Sets each overdue task’s due date to today (or the next business day), increments its Rolled counter, and marks it Stale when the roll count exceeds the threshold. Updates the matching Notion pages with the new due date, Rolled number, and Stale checkbox values. Setup Add your Notion API credentials and share the target Notion database with the Notion integration. Select your tasks database in the Notion “Get Open Tasks” step. Ensure your database has matching properties (Due date, Status select/status, Rolled number, and Stale checkbox) and update the property names, DONE_VALUES, STALE_THRESHOLD, and ROLL_TO settings in the code to match your schema. Requirements A Notion internal integration credential, with the tasks database shared

by Kevin Yu
CWnotion
free

Deduplicate and archive Notion database rows daily with an audit log

Quick overview This workflow runs daily and deduplicates a Notion database by grouping pages on a chosen property, keeping one “best” page per group (newest by default) and archiving the rest, then appending an audit recap line to a Notion log page. How it works Runs every day at 2am on a schedule. Fetches all pages from the selected Notion database, including full property data. Groups pages by a configurable Notion property (for example, “Name”) and identifies groups with more than one page. Chooses one page to keep per duplicate group based on the configured rule (newest, oldest, or mostFilled) and prepares the other pages for archiving. Archives each duplicate page in Notion by updating the page to archived: true. Appends a one-line recap (scanned count, duplicates found, and how many were archived) to a specified Notion page as an audit log. Setup Add your Notion API credentials and share both the target database and the audit log page with the Notion integration. Select the Notion database to deduplicate in the database ID field of the database query step. Update MATCH_PROPERTY and KEEP_RULE in the code step to match your database and your preferred keeper strategy. Paste the

by Kevin Yu
Cnotion
free

Normalize and backfill Notion database properties with rules and logging

Quick overview This workflow runs daily to normalize and backfill properties in a Notion database, standardizing Status values, deriving a Key slug and Created week stamp, updating only changed pages, and appending a run recap to a Notion log page. How it works Runs every day at 3am on a schedule. Fetches all pages (rows) from a selected Notion database with full property data. Applies normalization rules to backfill missing Status values, canonicalize known Status variants, and optionally derive a Key slug from the title and a Created week value from the page creation time. Updates only the Notion pages where one or more of these derived values differs, and stamps a Last normalized date on each updated page. Appends a one-line recap of the run (scanned vs. updated counts and what changed) to a specified Notion page or block. Setup Add a Notion API credential and share both the target database and the log page with your Notion integration. Select the Notion database to process in the database ID field used to fetch all database pages. Update the rules in the code configuration (property names, DEFAULT_STATUS, and the CANONICAL_STATUS mapping) to match your database. Ensure the targ

by Kevin Yu
CsheetsW
free

Analyse tender PDFs with LlamaParse, Gemini, Supabase and WhatsApp chat

Quick overview This workflow lets you upload a tender/RFT PDF via an n8n form, extracts key fields into Google Sheets using LlamaParse, and makes the document chat-searchable by embedding section chunks with Google Gemini and storing them in Supabase for WhatsApp-based Q&A with Anthropic/DeepSeek. How it works Receives a tender PDF when a user submits the n8n form. Generates a normalized document ID from the uploaded filename and sends the PDF to LlamaParse to parse the full text, split it into predefined tender sections, and extract structured tender metadata. Normalizes the extracted fields, calculates days-until-deadline and a bid score/recommendation, and appends or updates a row in a Google Sheets tender tracker. Combines the parsed full text with the section/page mapping, then carves each section into paragraph-aligned text chunks with page references. Creates an embedding for each chunk using the Google Gemini Embeddings API and inserts the chunk text and vectors into a Supabase table for retrieval. Triggers on an incoming WhatsApp message, embeds the user’s question with Google Gemini, runs a Supabase RPC vector search scoped to a single doc_id, and builds a context payload

by Divyanshu Gupta
Chubspothunter
free

Generate Google Maps leads with Apify, Hunter, and HubSpot CRM

Quick overview This workflow collects a location, search term, and industry from an n8n form, scrapes matching businesses from Google Maps via Apify, deduplicates and upserts companies into HubSpot, then uses Hunter to find contact emails for each domain and upserts the contacts into HubSpot. How it works Starts when a user submits the n8n form with a location, what to scrape, item limit, and a HubSpot industry selection. Maps the chosen industry label to the exact industry code HubSpot expects and runs the Apify Google Maps Scraper actor with the form inputs. Checks the Apify run status and, if successful, loads the actor’s dataset items. Extracts the key business fields (name, category, rating, address, phone, website/domain, and industry) and removes duplicate companies using a domain-based key. Searches HubSpot for an existing company by domain and updates it if found or creates a new company if not. For companies with a domain, uses Hunter Domain Search to find personal email contacts, deduplicates them by email, and upserts the contacts into HubSpot associated with the company. Setup Add an Apify API token and ensure you have access to the Apify actor “Google Maps Scraper (co

by JD Solanki
airtableCW
free

Log multi-platform ad spend from Meta, Google, TikTok, and Taboola to Airtable

Quick overview This workflow runs hourly to collect campaign spend, clicks, and impressions from Meta (Facebook), Google Ads, TikTok Ads, and Taboola, then upserts the metrics into Airtable and creates a time-stamped snapshot record for Meta campaigns. Get Implementation help via https://nocode.expert How it works Runs every 60 minutes on a schedule. Builds today’s date values (including a sheet-friendly format and PST-adjusted dates) for use in API queries and Airtable filters. Pulls ACTIVE and PAUSED campaign lists from up to four Meta ad accounts and searches Airtable for existing rows matching today’s date. Matches Meta campaigns to Airtable records by Campaign ID, fetches Meta Insights for each campaign for today, and keeps only campaigns with non-zero spend. Upserts the Meta campaign metrics into the Airtable “Daily Ad Spend” table and creates a separate time-slot snapshot row in a second Airtable table. Retrieves today’s performance data from Taboola (via OAuth token), Google Ads (GAQL query), and TikTok Ads (integrated report), then normalizes the results into a single campaign list. Filters out non-spending campaigns and upserts the remaining Google, Taboola, and TikTok ca

by Nocode Expert
CgmailsheetsW
free

Send AI study reports and spaced-repetition reminders via OpenAI, Sheets and Gmail

Quick overview This dual-trigger workflow logs daily study sessions from an n8n Form, analyzes them with OpenAI, stores results in Google Sheets, and emails a full coaching report via Gmail; it also runs daily at 7 AM to email each student revision reminders based on spaced-repetition dates. How it works Receives a study-session submission through an n8n Form. Validates the submitted fields and calculates spaced-repetition revision dates (Day+1, +3, +7, +14). Sends the session details to OpenAI Chat Completions and parses the returned JSON coaching analysis (score, feedback, plan, and quiz). Reads the existing Google Sheets Daily Log to find any prior sessions for the same student that are due for revision on the submitted date. Builds an HTML email combining the AI report, today’s revision-due items, and the new revision schedule, then appends the new session to Google Sheets. Sends the full daily study report to the student via Gmail. Runs every day at 7 AM, reads all Google Sheets logs, finds revision items due today per student, and emails each student a morning revision reminder via Gmail. Setup Add an OpenAI API credential and ensure the Chat Completions request is authorized

by Incrementors