Back to Catalog

Templates by Toshiya Minami

Automatic Gmail invoice PDF upload to Google Drive with spreadsheet logging

Sort invoice PDFs from Gmail to Google Drive and Google Sheets Who’s it for Freelancers, finance teams, and small businesses that receive invoice PDFs by email and want them automatically saved to Google Drive and logged in Google Sheets—without manual downloading or copy-pasting. How it works / What it does This workflow watches your Gmail inbox for unread messages that match an invoice pattern (e.g., subject:invoice filename:pdf). For each email, it checks for attachments, uploads each PDF to a chosen Google Drive folder, and appends a new row to a Google Sheet with useful metadata: received time, sender, subject, filename, Drive link, and IDs. Finally, it marks the original email as read to avoid duplicates. How to set up Open the Config (Set) node and fill in: drivefolderid (or leave blank for root) spreadsheet_id (from the Sheet URL) sheet_name (e.g., Invoices) Connect credentials for Gmail, Google Drive, and Google Sheets in each node. Adjust the Gmail search query if needed (language/vendor terms). Run once manually to verify data mapping, then activate. Requirements n8n with valid credentials for Gmail, Google Drive, and Google Sheets. A Google Sheet with appropriate headers (or let the workflow write new columns). How to customize the workflow Replace Gmail with IMAP or Microsoft Outlook if you don’t use Gmail; remove the “mark as read” step accordingly. Add parsing (e.g., extract invoice totals or vendor names via PDF/AI nodes) before the Sheets step. Route based on vendor: create subfolders dynamically in Drive and write to different tabs. Notify your team by adding Slack/Email nodes after logging to Sheets.

Toshiya MinamiBy Toshiya Minami
591

Food image analysis for calorie estimation with Vision AI and Telegram

Who’s it for Teams building health/fitness apps, coaches running check-ins in chat, and anyone who needs quick, structured nutrition insights from food photos—without manual logging. What it does / How it works This workflow accepts a food image (URL or Base64), uses a vision-capable LLM to infer likely ingredients and rough gram amounts, estimates per-ingredient calories, and returns a strict JSON summary with total calories and a short nutrition note. It normalizes different payloads (e.g., Telegram/LINE/Webhook) into a common format, handles transient errors with retries, and avoids hardcoded secrets by using credentials/env vars. Requirements Vision-capable LLM credentials (e.g., gpt-4o or equivalent) One input channel (Webhook, Telegram, or LINE) Environment variables for model name/temperature and optional request validation How to set up Connect your input channel and enable the Webhook (copy the test URL). Add LLM credentials and set LLMMODEL and LLMTEMPERATURE (e.g., 0.3). Turn on the workflow, send a sample payload with imageUrl, and confirm the strict JSON output. (Optional) Configure a reply node (Telegram/Slack or HTTP Response) and a logger (Google Sheets/Notion). How to customize the workflow Outputs: Add macros (protein/fat/carb) or micronutrient fields. Units: Convert portion descriptions (piece/slice) to grams with your own mapping. Languages: Toggle multilingual output (ja/en). Policies: Tighten validation (reject low-confidence parses) or add manual review steps. Security: Use signed/temporary URLs for private images; mask PII in logs. Data model (strict JSON) json { "dishName": "string", "ingredients": [{ "name": "string", "amount": 0, "calories": 0 }], "totalCalories": 0, "nutritionEvaluation": "string" } Notes Rename all nodes clearly, include sticky notes explaining the setup, and never commit real IDs, tokens, or API keys.

Toshiya MinamiBy Toshiya Minami
502

Prioritize Todoist tasks with OpenRouter AI and send daily summaries to Slack

Title Prioritize Todoist tasks and send a daily summary to Slack Who’s it for Busy professionals, team leads, and freelancers who want a plug-and-play, AI-assisted morning briefing that turns messy task lists into a clear, actionable plan. What it does / How it works At 08:00 every morning, the workflow pulls open tasks from Todoist. An AI agent scores and ranks them by urgency, importance, dependencies, and effort, then produces a concise plan. You receive the summary in Slack (Markdown). Overdue or critical items are highlighted with warnings. How to set up Connect OAuth for Todoist and Slack. Select your posting channel in Send to Slack. Adjust the time in Morning Schedule Trigger (default 08:00). Run once to verify the parser output and Slack preview, then set the workflow Active. Requirements n8n (cloud or self-hosted) Todoist account / Slack workspace LLM provider connected in the AI node (do not hardcode keys in HTTP nodes) How to customize the workflow Edit the prompt in AI Task Analyzer to tweak prioritization rules. Adjust Format AI Summary to match your tone and structure. Add filters in the Todoist node (e.g., due today). (Optional) Log results to Google Sheets or a database for analytics. Disclaimer (community node) This template uses a community LangChain node for AI features and is intended for self-hosted n8n. Add a workflow image at the top of your submission page for a clearer preview.

Toshiya MinamiBy Toshiya Minami
122

Analyze customer survey feedback with AI, Google Sheets & Slack reports

Here’s a clean, English-only template description you can paste into the n8n “Description” field. --- Overview This workflow analyzes customer survey responses, groups them by sentiment (positive / neutral / negative), generates themes and insights with an AI agent, and delivers a consolidated report to your destinations (Google Sheets, Slack). It runs on a daily schedule and uses batch-based AI analysis for accuracy. Flow: Schedule → Fetch from Sheets → Group & batch (Code) → AI analysis → Aggregate → Save/Notify (Sheets, Slack) What You’ll Need A survey data source (Google Sheets recommended) AI model credentials (e.g., OpenAI or OpenRouter) Optional destinations: Google Sheets (summary sheet), Slack channel Setup Data source (Google Sheets) In Get Survey Responses, replace YOURSHEETID and YOURSHEETNAME with your sheet details. Ensure the sheet includes columns like: 満足度 (Rating), 自由記述コメント (Comment), 回答日時 (Timestamp). AI model Add credentials to your preferred LLM node (OpenAI/OpenRouter). Keep the prompt’s JSON-only requirement so the structured parser can consume it reliably. Destinations Save to Sheet: set your output documentId / sheetName. Slack: set the target channelId on the Slack node. How It Works Daily Schedule Trigger — starts the workflow at your chosen time. Get Survey Responses (Sheets) — reads survey data. Group & Prepare Data (Code) — classifies by rating (>=4: positive, =3: neutral, <3: negative) and creates batches (max 50 per batch). Loop Over Batches — feeds each sentiment batch to the AI separately for cleaner signals. Analyze Survey Batch (AI Agent) — returns structured JSON: themes, insights, recommendations. Add Metadata (Code) — attaches original sentiment and item counts to each AI result. Aggregate Results (Code) — merges all batches; outputs Top Themes, Key Insights, Priority Recommendations, and an Executive Summary. Save to Sheet / Slack — appends the summary to a sheet and posts highlights to Slack. Data Assumptions (Columns) Your source should include at least: 満足度 (Rating) — integer 1–5 自由記述コメント (Comment) — string 回答日時 (Timestamp) — ISO string or date Outputs Consolidated summary containing: Top themes (with example quotes) Key insights Priority recommendations Executive summary Destinations: Google Sheets (one row per run) and Slack (high-level highlights) Customize Adjust sentiment thresholds (e.g., require >=5 for positive) or batch size (default 50) in the Code node. Tailor the AI prompt or the output JSON schema to your domain. Add more outputs (CSV export, database insert, additional channels) in parallel after the Aggregate step. Before You Run (Checklist) [ ] Add credentials for Sheets / AI / Slack in Credentials [ ] Update documentId, sheetName, and Slack channelId [ ] Confirm your column names match the Code node references [ ] Verify schedule time and timezone (e.g., Asia/Tokyo) Troubleshooting Parser errors on AI output: ensure the model response is JSON-only; reduce temperature or simplify schema if needed. Only some batches run: check batch size in Loop and ensure each sentiment bucket actually contains responses. No output to Sheets/Slack: verify credentials, IDs, and required fields; confirm permissions. Security & Template Notes Do not include credentials in the template file. Users add their own after import. Use Sticky Notes to document Overview, Setup, Processing Logic, and Output choices. This template already includes guideline-friendly notes.

Toshiya MinamiBy Toshiya Minami
114
All templates loaded