Remember that cliffhanger from the last email? The one where I confessed I might scrap my perfectly functional n8n workflow because I got bored during a 5-hour flight delay?

Well, here is the reveal…

🧪 Experiment Log: The Airport Build

Screenshot of one part of the build

While sitting at the gate, staring at the different subscriptions I was paying for—one tool for automation, another for AI, a third for data handling—I had a realization. I was spending money to build bridges between islands, when I could just move to the mainland.

I decided to upgrade my Google Workspace subscription instead. No, this is not an ad ($unfortunately$).

Why? Because I wanted to work within an ecosystem where the connections already exist. In Google’s world, Drive, Docs, Gmail, and Gemini are already roommates. They talk to each other natively. By upgrading, I unlocked a powerful environment that simplified my workflow and, crucially, allowed me to consolidate my spending. Instead of renting five different AI and automation tools, I could just leverage the one platform I was already using for email.

But there was one catch: to make them talk efficiently, I needed to use Google Apps Script.

Now, I am not a coder. But I didn't need to be. I built this entire system using Gemini to "vibe code."

If you aren't familiar with the term, "vibe coding" is basically programming with natural language. I didn't write complex JavaScript functions; I simply told Gemini what I wanted the "vibe" of the outcome to be (e.g., "Take the stories from these RSS feeds and put them in this Google Doc"), pasted the errors back when it got confused, and iterated until it worked.

Here is the "Airport Agent" workflow that Gemini and I built to replace my n8n setup.

🧠 The Architecture: Two Days, Two Jobs

Unlike the n8n workflow, which was a linear train of events, this script acts more like a scheduled employee with two specific shifts.

Graphic generated by NanoBanana Pro!

Shift 1: The Tuesday "Prep Cook"

Every Tuesday at 9:00 AM, the script wakes up to do the administrative work so I don't have to.

  1. Housekeeping: It scans my folder, finds last week's draft, and moves it to an "Archive" folder.

  2. The Set-Up: It grabs my Master Template and creates a fresh copy named “Newsletter Draft - [Current Date]”.

  3. The Target: Inside that template is a secret weapon—a placeholder tag that looks like this: {{NEWS_GOES_HERE}}. The script leaves the file open and waiting.

Shift 2: The Sunday "Ghostwriter"

This is where the heavy lifting happens. On Sunday morning, the script runs the fillNewsletter function:

1. The "Self-Healing" Connection

This was the trickiest part of the build. Google’s AI models change names frequently (e.g., from gemini-pro to gemini-1.5-flash). I kept hitting "404 Not Found" errors.

  • The Fix: I asked Gemini to write a "Self-Healing" function. Before asking for the news, the script now asks Google: "Which AI models are available to me right now?" It automatically selects the best, fastest model available, ensuring the automation never breaks due to an update.

2. The 14-Day Filter

The script hits my 8 curated RSS feeds. But instead of taking everything, it checks the metadata. If a story is older than 14 days? Deleted. This ensures I’m not analyzing old news.

3. Smart Deduplication (The "Vibe Check")

In my n8n workflow, I used a simple keyword filter. Here, I got sophisticated. The script compares the text of every incoming story.

  • If Story A and Story B share more than 50% of the same words (like a wire story reported by two different outlets), the script identifies them as duplicates and keeps only one.

4. The "Scoop" & The Swap

Finally, the survivors are sent to Gemini with a strict prompt: "Pick the top 5 stories and write them up with a Headline, Link, Scoop, and Takeaway."

The script takes that AI-generated text, finds the Tuesday draft, hunts down the {{NEWS_GOES_HERE}} tag, and—poof—swaps it out for the actual newsletter content. Final output shown below.

The final output

📊 The Verdict: n8n vs. Apps Script

The n8n Agent:

  • Pros: Visual, easy to understand at a glance, great for connecting different apps (e.g., Slack to Airtable).

  • Cons: Requires maintaining a separate service/server, slightly more complex to pass data between nodes.

The "Airport" Apps Script Agent:

  • Pros: Lives entirely inside Google (no external login), consolidates cost into one subscription, and modifies the document directly (saving me a copy-paste step).

  • Cons: It’s code-heavy (but Gemini writes the code for you).

The Winner?

For this specific use case, Apps Script wins. By creating the document and writing directly into it, it saves me the final mile of manual work. I open my laptop on Sunday, and the draft is just... there.

🔮 The Next Frontier: Google Workspace Studio

I am not done optimizing yet. While this "Airport Agent" is powerful, it still relies on one external crutch: a paid subscription to an RSS feed provider to clean up the news sources.

My goal is to reach "Zero Subscription" status (outside of Workspace itself), for this specific build.

I am currently waiting for access to Google Workspace Studio (specifically the advanced AI Agent builder tools). Access is currently limited because, well, everyone wants to build agents right now, and the waitlist is long due to obscene interest.

Once I get off that waitlist, I plan to build Agent v3.

The goal for this next version is to cut the RSS cord entirely. Instead of feeding the robot a structured list of links, I will build an agent that uses Gemini to actively search the open internet. By using a "fine-tuned" prompt—basically teaching the AI exactly what my "taste" in news looks like—I can have it scour the web for the latest updates in real-time, completely free of charge.

No RSS feeds. No middleman. Just pure, AI-driven discovery.

📅 Programming Note: See You in February

Speaking of big projects, I have one more update.

Building these agents has been an incredible journey, but I have a personal project kicking off this month that demands 100% of my focus.

I will be hitting the pause button on this newsletter for the rest of January.

I’m taking this time to go heads-down on my new project (and hopefully get off that Google Workspace Studio waitlist). I will be back in your inbox in February. Thanks for sticking around!

Best,
Skyler Neal