You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an optional Gemini-powered summarization layer to gmail-to-drive-by-labels. When enabled in config.gs, each archived thread gets a 2–3 sentence Gemini summary inserted above the cleaned email body in the destination Doc, turning a passive archive into a scannable digest. Uses the built-in Apps Script Vertex AI Service so no extra API keys, libraries, or third-party SDKs are needed — the user's own GCP project pays for the calls.
Market Signal
AI summarization and triage are now table stakes in Gmail tooling. Lindy, Shortwave, Superhuman, and the n8n AI email triage workflow all lead with "summarize + classify" as their flagship value. Vellum's 2026 roundup explicitly names "summarization, triage, and classification" as the repeated last-mile tasks that justify low-code AI workflow tools. Meanwhile, Google made this trivial for Apps Script: the Vertex AI Service is now a first-class advanced service, exposing Gemini 2.5 Flash directly via VertexAI.Projects.Locations.Publishers.Models.generateContent.
User Signal
The PRD and the script's own README position the destination Doc as both an archive and a "source document for tools like NotebookLM" — that framing only pays off if the Doc is dense, structured, and skimmable. Today, a busy label (newsletters, vendor updates) produces dozens of long blocks the user has to skim by eye. There are no open issues against this script asking for the feature explicitly, but the project's own positioning treats AI-pipeline source-docs as an emerging audience worth serving.
Technical Opportunity
The script already uses the dual-layer pattern (code.gs thin wrapper, src/index.js testable logic with injected GAS services) — adding VertexAI as one more injected dependency fits the existing seam exactly. getCleanBody() in src/gas-utils.js already produces the normalized text that would be the prompt input. The summary can be inserted as a single insertParagraph call ahead of the existing thread block, preserving the documented oldest-first iteration order. A config.gs flag (summariesEnabled: false by default) keeps it opt-in and lets the script degrade gracefully when Vertex isn't enabled in the user's GCP project.
Assessment
Dimension
Score
Rationale
Feasibility
high
Vertex AI Service is built into Apps Script; the dual-layer pattern + injected services already supports adding one more service mock; existing tests show ~99% coverage so the test pattern is well established
Impact
high
Transforms the headline script from passive archive to actionable digest; reinforces the NotebookLM positioning the README already claims; differentiator vs every other open-source GAS sample
Urgency
high
AI-on-Gmail is the loudest 2026 trend in adjacent tooling and competitors are shipping monthly; first-mover advantage in the open-source GAS catalog niche is shrinking
Adversarial Review
Strongest objection: "Vertex AI requires the user to enable billing and link a GCP project — that breaks the 'zero-friction, any Google account' promise that's the whole point of the deploy page."
Rebuttal: The feature ships off by default. Users who never touch the flag get the exact script they have today — no behavior change, no Vertex calls, no failures. The Step 4 config UI surfaces summaries as an optional toggle with a one-line explanation ("Requires Vertex AI in your Google Cloud project") and a docs link. Users who do want AI summaries are exactly the audience that will tolerate the GCP setup — and the README already documents GCP setup for fork maintainers, so the precedent exists. The non-technical user who just wants their newsletter folder organized is unaffected.
Suggested Next Step
Create a product brief covering: (1) the summariesEnabled config schema addition, (2) the Vertex AI service mock pattern for test-utils/, (3) the prompt template and token-budget guardrails, and (4) the Step 4 toggle UX. Then spike the Vertex call against a single thread to confirm latency fits inside the existing trigger budget.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Add an optional Gemini-powered summarization layer to
gmail-to-drive-by-labels. When enabled inconfig.gs, each archived thread gets a 2–3 sentence Gemini summary inserted above the cleaned email body in the destination Doc, turning a passive archive into a scannable digest. Uses the built-in Apps Script Vertex AI Service so no extra API keys, libraries, or third-party SDKs are needed — the user's own GCP project pays for the calls.Market Signal
AI summarization and triage are now table stakes in Gmail tooling. Lindy, Shortwave, Superhuman, and the n8n AI email triage workflow all lead with "summarize + classify" as their flagship value. Vellum's 2026 roundup explicitly names "summarization, triage, and classification" as the repeated last-mile tasks that justify low-code AI workflow tools. Meanwhile, Google made this trivial for Apps Script: the Vertex AI Service is now a first-class advanced service, exposing Gemini 2.5 Flash directly via
VertexAI.Projects.Locations.Publishers.Models.generateContent.User Signal
The PRD and the script's own README position the destination Doc as both an archive and a "source document for tools like NotebookLM" — that framing only pays off if the Doc is dense, structured, and skimmable. Today, a busy label (newsletters, vendor updates) produces dozens of long blocks the user has to skim by eye. There are no open issues against this script asking for the feature explicitly, but the project's own positioning treats AI-pipeline source-docs as an emerging audience worth serving.
Technical Opportunity
The script already uses the dual-layer pattern (
code.gsthin wrapper,src/index.jstestable logic with injected GAS services) — addingVertexAIas one more injected dependency fits the existing seam exactly.getCleanBody()insrc/gas-utils.jsalready produces the normalized text that would be the prompt input. The summary can be inserted as a singleinsertParagraphcall ahead of the existing thread block, preserving the documented oldest-first iteration order. Aconfig.gsflag (summariesEnabled: falseby default) keeps it opt-in and lets the script degrade gracefully when Vertex isn't enabled in the user's GCP project.Assessment
Adversarial Review
Strongest objection: "Vertex AI requires the user to enable billing and link a GCP project — that breaks the 'zero-friction, any Google account' promise that's the whole point of the deploy page."
Rebuttal: The feature ships off by default. Users who never touch the flag get the exact script they have today — no behavior change, no Vertex calls, no failures. The Step 4 config UI surfaces summaries as an optional toggle with a one-line explanation ("Requires Vertex AI in your Google Cloud project") and a docs link. Users who do want AI summaries are exactly the audience that will tolerate the GCP setup — and the README already documents GCP setup for fork maintainers, so the precedent exists. The non-technical user who just wants their newsletter folder organized is unaffected.
Suggested Next Step
Create a product brief covering: (1) the
summariesEnabledconfig schema addition, (2) the Vertex AI service mock pattern fortest-utils/, (3) the prompt template and token-budget guardrails, and (4) the Step 4 toggle UX. Then spike the Vertex call against a single thread to confirm latency fits inside the existing trigger budget.Proposed by the BMAD Analyst (Mary) on 2026-04-07.
Workflow run
Beta Was this translation helpful? Give feedback.
All reactions