I Built Swiggy Wrapped

The end of 2025 saw more “Wrapped” releases than ever before. 

Spotify told us we listened to too much sad indie pop, Duolingo shamed us for missing lessons, and ChatGPT told us we’re smart & cool for the 1000th time. 

But as someone whose 5th consecutive New Year’s resolution was to get fitter, I wanted to analyze my grocery and food orders. 

It is not in Swiggy’s interests to build a Wrapped, so I built my own.

The Architecture

The plan was straightforward. I couldn’t scrape the Swiggy app, they don’t have a public API. Instead, I realized the data was already sitting in my inbox. Every single order confirmation is a structured receipt waiting to be parsed.

The earliest version of the app was a n8n workflow I built for myself, but I wanted to put it in the hands of the general public. I can’t expect everyone to familiarize themselves with n8n, so I couldn’t just share a json file. 

So I needed to handle OAuth properly - let users connect their Gmail through my app, and my workflow would use their access token to read their emails.

The final flow I envisioned was:

  1. User lands on a website

  2. Clicks "Connect with Gmail"

  3. I read their Swiggy delivery emails

  4. Generate a beautiful wrapped presentation

  5. Email them the results

The Frontend was by far the easiest part. I wanted that Spotify Wrapped aesthetic: bold typography, clean design, Swiggy's orange brand color.

I told Claude exactly what I wanted: "Use the Swiggy orange (#fc8019) on white background, inspired by Spotify Wrapped's typography."

This one prompt gave me the final HTML file. The design was minimal:

  • Giant hero text with Swiggy orange accent

  • One CTA button: "Connect with Gmail"

  • Three feature cards below: "📊 Complete spending breakdown", "🍔 Your top food obsessions", "🛒 Grocery shopping insights"

  • Circular Std font (Spotify's typeface) for that authentic wrapped feel

No navbar. No footer links. No bullshit. Just the value prop and one button.

I deployed it to Netlify by literally dragging the file onto their website. Five minutes from "I need a landing page" to "it's live at swiggywrapped.netlify.app"

The Backend is an n8n automation workflow triggered by a webhook request sent from the website. A bit elaborate, but the workflow logic is quite simple. 

  1. Fetch: The workflow uses the user's access token to search Gmail for from:[email protected].

  2. Extract: Instead of writing complex Regex to parse the messy HTML emails, I fed the raw email body into Claude Sonnet. I just told it: 'Extract the items, prices, and restaurant names into JSON.'

  3. Roast: I passed that data to another AI agent with a 'Gen-Z Roast' persona to write the captions (e.g., 'You spent ₹12k on desserts? Who hurt you?')."

Then, I hit the Google Wall.

Google takes email privacy very seriously. You can't just ask for permission to read someone's emails anymore.

To scan for "Swiggy" receipts, I needed the gmail.readonly scope. This is a restricted scope. 

Making the platform public requires a paid CASA security audit by a third-party lab every single year, which can cost at least a few hundred dollars.

The "Hacky" Solution: I couldn't verify the app, so I kept it in "Testing Mode." This meant I had to manually whitelist every single person who wanted to use it.

  • I added their emails to the "Test Users" list in Google Cloud.

  • I told them to click "Advanced > Go to Swiggy Wrapped (unsafe)" when the warning screen appeared.

Definitely not scalable.

The "Wrapped" (Gamma)

I didn't want to just send a boring text email. I wanted a slide deck. 

The good folks at Gamma AI are past clients, so I was familiar with the output I could expect.

So I connected the ‘roast’ Sonnet writes to Gamma. It’s quite simple:

  • n8n sends the "Roast" text and stats to Gamma.

  • Gamma auto-generates a polished, colorful PDF recap with charts and images.

  • n8n emails that PDF back to the user.

There was one major catch: Latency. Gamma takes about two minutes to render the final presentation. In an era of instant gratification, asking a user to stare at a loading screen for two minutes is a dealbreaker. I couldn't show the Wrapped 'live' on the site; I had to email it instead. It was also a budget-killer—burning through 40–60 API credits per user meant I literally couldn't afford for this to go viral.

Between the Gamma API costs and the requirement of manually whitelisting every friend who wants to use it, it’s definitely not a scalable project. But it works and I learnt a lot in the process of making it. 

I build fun projects like this to test the limits of what's possible, but my real focus is high-impact business automation. If you’re looking to outsource your operations to someone who treats automation as a craft, I’m currently accepting new clients. Let's connect and see how a Fractional Automation Expert can streamline your business.

Reply

or to participate.