<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Chaitanya Sunkara</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://coderunship.netlify.app/</id>
  <link href="https://coderunship.netlify.app/" rel="alternate"/>
  <link href="https://coderunship.netlify.app/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Chaitanya Sunkara</rights>
  <subtitle>One complete build per episode.</subtitle>
  <title>CodeRunShip</title>
  <updated>2026-08-15T21:50:31.101Z</updated>
  <entry>
    <author>
      <name>Chaitanya Sunkara</name>
    </author>
    <category term="dev-log" scheme="https://coderunship.netlify.app/categories/dev-log/"/>
    <category term="ai" scheme="https://coderunship.netlify.app/tags/ai/"/>
    <category term="automation" scheme="https://coderunship.netlify.app/tags/automation/"/>
    <category term="google-workspace" scheme="https://coderunship.netlify.app/tags/google-workspace/"/>
    <category term="workflow" scheme="https://coderunship.netlify.app/tags/workflow/"/>
    <content>
      <![CDATA[<p>The enterprise conversation about AI has matured past the initial fascination with chatbots — the manual, high-friction loop of prompting a model and pasting the result somewhere useful. Real return doesn’t come from that friction. It comes from asynchronous, event-driven workflows that run behind the scenes, cutting the context-switching tax that defines most professional work.</p><span id="more"></span><p>Episode 1 builds one of those end to end: an <strong>AI Travel Assistant</strong> that turns Gmail confirmations into a structured Google Sheets itinerary, built natively in Google Workspace Studio. The video above is the full build; these are the notes to go with it.</p><p>The problem it solves is a familiar piece of technical debt: travel data is fragmented across a dozen confirmation emails. Turning that unstructured Gmail data into a structured itinerary moves you from manual retrieval to a centralised, machine-readable data layer. That shift — from conversation to action — is the whole point.</p><h2 id="chatbots-vs-task-automation">Chatbots vs. true task automation</h2><p>Building automation inside the Google ecosystem has a specific advantage over third-party platforms like Zapier or Make. Those tools are versatile, but every extra connector is another hop: more latency, more surface area, and data leaving your perimeter. Native flows keep IAM parity — the data stays inside the boundary you already govern, and the stack stays shorter.</p><div class="table-wrap"><table><thead><tr><th>Feature</th><th>Manual workflow</th><th>Third-party automation</th><th>Native AI automation</th></tr></thead><tbody><tr><td>Data entry</td><td>Manual copy-paste</td><td>Automated via API connectors</td><td>Native background process</td></tr><tr><td>Integration</td><td>None — high context-switching</td><td>External API dependencies</td><td>Direct (Gmail / Sheets / AI)</td></tr><tr><td>Intelligence</td><td>Human cognitive effort</td><td>Basic rules-based logic</td><td>AI-driven intent &amp; extraction</td></tr><tr><td>Security</td><td>High human error risk</td><td>Data egress to third party</td><td>Ecosystem native (IAM parity)</td></tr></tbody></table></div><p>The native advantage is that AI becomes the connective tissue between your communication channels and your data stores without exposing anything sensitive to external middleware.</p><h2 id="the-automation-blueprint">The automation blueprint</h2><p>A blueprint isn’t ceremony here — it’s how you get predictable outcomes and keep token costs sane. Before touching the builder, deconstruct the logic into four asynchronous stages:</p><ol><li><strong>The trigger.</strong> A new incoming Gmail message.</li><li><strong>The decision (gatekeeper).</strong> An AI classification step. Gmail has no native “travel” filter that catches every nuance, so an LLM evaluates the email body against specific categories — flight, hotel, car rental, train — and returns a boolean.</li><li><strong>JSON extraction.</strong> If the decision is true, a specialised agent converts natural language into machine-readable JSON.</li><li><strong>The action.</strong> Append the structured record to the target Google Sheet.</li></ol><p>The decide step is what makes this efficient. A lightweight logic gate filters out irrelevant mail before the heavier extraction model ever runs, which optimises both latency and cost.</p><h2 id="preparing-the-data-foundation">Phase 1: preparing the data foundation</h2><p>An automation is only as robust as its destination. Configure the structured destination <em>before</em> deploying any AI logic, so field mapping is a lookup rather than a guess.</p><p>Create a Google Sheet titled <strong>AI Travel Itinerary</strong> and define the schema explicitly:</p><ul><li>Date</li><li>Subject</li><li>Trip Type</li><li>Departure</li><li>Arrival</li><li>Price</li><li>Raw Snippet — used for audit logging</li></ul><p>Then source diverse test data: real confirmation emails, or AI-generated templates that mimic the awkward cases. With the foundation laid, the logic can be manifested inside Workspace Studio.</p><h2 id="building-the-workflow">Phase 2: building the workflow</h2><p>Google Workspace Studio positions Gemini as a co-developer, which meaningfully accelerates writing JSON schemas and logic frameworks.</p><ul><li><strong>Trigger configuration.</strong> Monitor the Gmail inbox for new messages.</li><li><strong>The decide step.</strong> Prompt the AI to determine whether the email is a travel confirmation. It must return a binary true&#x2F;false that governs the downstream branch.</li><li><strong>Extraction logic.</strong> Define the agent persona as a <em>Travel Itinerary Extraction Assistant</em>. Engineer the system prompt to force output into a specific JSON shape and strictly forbid conversational filler. Hallucinated prose is what breaks the Sheets integration, not bad data.</li><li><strong>Field mapping.</strong> Connect the JSON output keys to spreadsheet columns.</li></ul><div class="callout"><span class="kicker">On the 50% rule</span>AI handles the heavy lifting of extraction, but expect to refine field mapping by hand at first. Architecturally, that human-in-the-loop step is a bottleneck, not a feature. Treat HITL as a temporary validation bridge — the goal is to harden the prompt until the flow runs autonomously.</div><h2 id="validation-and-live-execution">Phase 3: validation and live execution</h2><p>Reliability comes from testing against edge cases, not happy paths. The Skyline Airways example in the video is a good one: a single email containing both onward and return legs. A robust workflow has to be tuned to decide whether that produces multiple rows or a nested JSON object.</p><ol><li><strong>Thread selection.</strong> Pick a complex multi-leg email.</li><li><strong>Status monitoring.</strong> Verify that the <em>Step 2: True</em> condition fires and extraction executes.</li><li><strong>Audit logging.</strong> The Raw Snippet column is your observability tool — it lets you reconcile the original email text against the AI’s structured output and catch drift or missed fields.</li></ol><p>Once accuracy is consistent, move the workflow from Test to Live.</p><h2 id="scalability">Applying the pattern elsewhere</h2><p>Trigger → extract → log is a modular template. It fits any operation that runs on unstructured communication:</p><ul><li><strong>Invoice trackers.</strong> Vendor, due date and amount pulled from receipts into a financial report.</li><li><strong>Meeting summary logs.</strong> Calendar notifications and follow-ups turned into structured action items.</li><li><strong>Hiring trackers.</strong> Candidate details extracted from CV-heavy email threads into a recruitment pipeline.</li></ul><h2 id="governance">Governance and optimisation</h2><p>Long-term automation needs governance and observability, not just a working first run:</p><ul><li><strong>Prompt consistency.</strong> Avoid vague instructions. Precise constraints stop the model reverting to conversational habits.</li><li><strong>Model drift.</strong> Both models and email formats evolve. Audit rows periodically to confirm the logic still matches current email structures.</li><li><strong>Data governance.</strong> In Google Workspace Studio, API-based calls typically don’t use customer data for model training — a meaningful reassurance for corporate privacy standards.</li></ul><h2 id="conclusion">Your first AI transformation</h2><p>Moving from manual copy-pasting to autonomous, event-driven systems is the practical marker of a modern engineering practice. This Travel Assistant framework is small, but it establishes the foundation: a trigger, a cheap gate, a hardened extractor, an auditable sink.</p><p>Pick one repetitive, email-based task today and apply the blueprint. The future of productivity isn’t in talking to AI — it’s in building AI that acts.</p><p>The blueprint — sheet schema, decide&#x2F;extract prompts and the JSON shape — is the free download for this episode in the <a href="/store/#travel-assistant-blueprint">store</a>. Subscribing on <a href="https://www.youtube.com/@CodeRunShip">YouTube</a> helps more of these get made.</p>]]>
    </content>
    <id>https://coderunship.netlify.app/blog/2026/08/15/beyond-the-chatbot-google-workspace-studio/</id>
    <link href="https://coderunship.netlify.app/blog/2026/08/15/beyond-the-chatbot-google-workspace-studio/"/>
    <published>2026-08-15T18:00:00.000Z</published>
    <summary>Build notes for episode 1 — an AI Travel Assistant built natively in Google Workspace Studio that turns Gmail confirmations into a structured Google Sheets itinerary, with no third-party middleware.</summary>
    <title>Beyond the chatbot: automating professional workflows with Google Workspace Studio</title>
    <updated>2026-08-15T21:50:31.101Z</updated>
  </entry>
  <entry>
    <author>
      <name>Chaitanya Sunkara</name>
    </author>
    <category term="dev-log" scheme="https://coderunship.netlify.app/categories/dev-log/"/>
    <category term="meta" scheme="https://coderunship.netlify.app/tags/meta/"/>
    <content>
      <![CDATA[<p>CodeRunShip is a build channel. Every episode takes one project from an empty repo to something shipped — deployed, documented, and handed over.</p><span id="more"></span><h2 id="What-ships-with-every-build"><a href="#What-ships-with-every-build" class="headerlink" title="What ships with every build"></a>What ships with every build</h2><ul><li><strong>The video</strong> — the full build, cuts only for compile time and coffee.</li><li><strong>The source</strong> — the exact template used, downloadable from the <a href="/store/">store</a>.</li><li><strong>The notes</strong> — a dev-log like this one: what worked, what broke, and the diff that fixed it.</li></ul><h2 id="Two-kinds-of-posts"><a href="#Two-kinds-of-posts" class="headerlink" title="Two kinds of posts"></a>Two kinds of posts</h2><p>Posts here are tagged one of two ways:</p><ul><li><code>DEV-LOG</code> — notes tied to a specific episode.</li><li><code>TUTORIAL</code> — standalone guides that don’t need the video.</li></ul><p>Filter between them on the <a href="/blog/">blog</a> page. Register once and you’ll get one email per build — nothing else.</p>]]>
    </content>
    <id>https://coderunship.netlify.app/blog/2026/08/15/hello-coderunship/</id>
    <link href="https://coderunship.netlify.app/blog/2026/08/15/hello-coderunship/"/>
    <published>2026-08-15T12:00:00.000Z</published>
    <summary>What this channel is, how each episode is structured, and what ships with every build.</summary>
    <title>Hello, CodeRunShip</title>
    <updated>2026-08-15T21:50:31.101Z</updated>
  </entry>
</feed>
