Skip to content
Case StudyMarch 10, 2026· 10 min read

I Built a Google Chat Bot That Understands 14 Commands. Runs on Vercel for Pennies.

Google Chat webhook + OpenAI classification + GitHub Issues + Google Calendar/Tasks/Drive/Contacts. One bot replacing 5 apps.

I Built a Google Chat Bot That Understands 14 Commands. Runs on Vercel for Pennies.

Why Google Chat?

Because it's open all day. Email, Slack, Notion, Todoist — more apps to switch between. But Chat is just a tab in Gmail. It's always there.

So I thought: what if I had one bot I could write to in natural language and it just handles things? No switching between 5 apps.

How It Works

I write a message in Google Chat. The message hits a Vercel serverless function as a webhook. It sends it to OpenAI GPT-4.1-mini, which classifies the intent and extracts parameters. Then it executes.

14 intents the bot handles:
IntentWhat it doesExample
create_issueCreates GitHub issue"create task: fix login"
query_statusSearches issues"what are my open tasks?"
calendar_queryToday's calendar"what do I have today?"
calendar_createNew event"schedule meeting with Jake tomorrow at 10"
tasks_queryOpen tasks"show my tasks"
tasks_completeComplete task"done: grocery shopping"
contacts_searchSearch contacts"find contact Smith"
contacts_createNew contact"save contact: Peter, peter@company.com"
drive_searchSearch Drive"find the AI presentation"
braindumpCapture thought"braindump: idea for new product..."
url_dumpSave link"save URL: https://coolsite.com"
weekly_checkinWeekly reflection"weekly checkin: this week I..."
checklist_doneCheck off item"done: morning workout"
generalHelp"what can you do?"

AI Classification — How It Knows What I Want

The whole trick is one OpenAI call. The system prompt defines all 14 intents and GPT-4.1-mini returns structured JSON:

  • intent — which of the 14
  • title — task/event name
  • priority — p1/p2/p3
  • labels — relevant tags

GPT-4.1-mini is perfect for this — fast, cheap, and classification accuracy is over 95%. No fine-tuning needed, just a solid system prompt.

Stack

LayerTechnology
WebhookVercel serverless (TypeScript)
AI classificationOpenAI GPT-4.1-mini
TasksGitHub Issues API
CalendarGoogle Calendar API
TasksGoogle Tasks API
FilesGoogle Drive API
ContactsGoogle People API
Notificationsn8n webhooks

Everything runs on Vercel free/hobby tier. Google APIs use OAuth with refresh token. GitHub uses a personal access token.

What Surprised Me

1. Google Workspace Add-on format is weird. The response must be in DataActions format with an XML wrapper. Not JSON, not plain text. Spent half a day getting it to work. 2. Intent classification needs examples. Without few-shot examples in the system prompt, GPT confused "calendar_query" and "tasks_query". Adding 2-3 examples per intent fixed it. 3. Braindump is the killer feature. It was supposed to be a minor intent, but I use it the most. I type a thought into Chat, it saves as a GitHub Issue with "braindump" label. Once a week I sort through them.

What It Costs

ServiceMonthly cost
Vercel$0 (hobby tier)
OpenAI (classification)~$1-2
GitHub$0
Google APIs$0
Total~$1-2/month

For $2/month I have a personal assistant that's always online and never forgets.

If someone told me a year ago I'd build my own AI assistant for the price of a coffee, I wouldn't have believed them. But here we are.
#google-chat#openai#vercel#github#google-workspace#case-study

Interested in the article?

Let's discuss what this kind of automation can do in your company.

Free consultation