Back
AI for RestaurantMarch 3, 20262 min read

Building a Chat Bot for Staff Inventory Reports — Just Type to Log

A chat bot where staff just type 'received 5 bags sirloin 12.5 kg' and the system handles the rest — Bag IDs, database entry, and real-time stock updates, all automatically.

The Problem: Too Many Steps = Nobody Does It

Before the bot, logging inventory meant:

  1. Open Airtable → find the right table → fill the form
  2. Select ingredient type → enter weight → enter bag count
  3. Review → Submit

Sounds manageable. But in reality, staff receive deliveries at 6 AM surrounded by boxes of meat — nobody wants to fill out forms.

A Hard Truth

The best system is the one people actually use. If staff won't use it, it doesn't matter how good the system is.

The Solution: A Chat Bot That Understands Human Language

Instead of forms, I built a bot that accepts plain chat:

Staff: received sirloin 5 bags 12.5 kg

Bot: ✅ Logged
  📦 Sirloin — 5 bags, 12.5 kg
  🏷️ Bag ID: BEEF000758 - BEEF000762
  📊 Total stock: 23 bags (48.7 kg)

What the Bot Does Behind the Scenes

📝 Receives message from staff
  ↓
🧠 Parses: ingredient name + bag count + weight
  ↓
🔍 Validates against ingredient database (273 items)
  ↓
🏷️ Auto-generates Bag IDs (1 per bag)
  ↓
💾 Saves to database
  ↓
📊 Updates real-time stock levels
  ↓
✅ Sends confirmation with summary

From 5 Minutes → 10 Seconds

StepBefore (Form)After (Bot)
Open app15 sec3 sec (open chat)
Enter data2-3 min5 sec (type 1 line)
Review30 secBot validates
Submit15 secAutomatic
Total3-5 min10 seconds

Multiply by 40 entries per day = 2-3 hours saved daily

What Makes the Bot Actually Usable

1. Natural Language Understanding

No rigid format required. Staff can type multiple ways:

  • "received sirloin 5 bags 12.5 kg"
  • "sirloin 5 bags 12.5"
  • "sirloin 5/12.5"

2. Asks When Unsure

Staff: received beef 5 bags

Bot: 🤔 Which type of beef?
  1. Sirloin
  2. Tenderloin
  3. Flank steak

Staff: 1

Bot: ✅ What's the total weight?

3. Automatic Validation

  • Single bag over 5 kg → asks for confirmation
  • Ingredient not in system → alerts + offers to add
  • Weight doesn't make sense → asks again

Tech Stack

ComponentToolWhy
Chat InterfaceTelegram Bot APIStaff already use it
AI ProcessingClaude APIUnderstands Thai, accurate parsing
DatabaseAirtable + SQLite2-layer (frontend + backend)
HostingAgency serverNear-zero cost

Lessons Learned

UX Beats Features

The old system had every feature. Nobody used it. The bot has fewer features but is so easy there's no excuse not to use it.

Start with One Flow

Don't build a bot that does everything. Start with just "receiving" — once people are comfortable, add "withdrawals" and "transfers."

Bot Data > Form Data

Because staff log more frequently (every item vs. some items) → data is more complete → analysis is more accurate.

Results

Stock entries went from ~50/month to 757/month — not because we received more, but because staff actually logged every single item.

Can You Build This?

Yes, if you have:

  1. A Telegram account — create a bot via @BotFather
  2. An ingredient list — in Google Sheets or Airtable
  3. AI — Claude/ChatGPT to parse messages

Start with a simple prototype: bot receives message → sends to Google Sheet. Upgrade later.

chatbotautomationrestaurantinventorytelegram

Related Articles