The Form Started Thinking on Its Own
Last Monday, Google Form order responses started coming in mixed with Korean, Chinese, and English. Until that day, we manually read and organized them one by one, but that day had 67 submissions.
「Can our bot read this?」
That small experiment built a complete automation flow in just 3 days.
Analyzing Form Responses with Claude Code
The first step was straightforward. Export Google Form responses to Google Sheets, then hand the interpretation to Claude Code.
Google Form Responses (Google Sheets)
↓
Run Claude Code
↓
Item Recognition + Language Classification
↓
Classified Data
Step 1: Download Data from Google Sheets
• Open the "Responses" tab in Google Form settings
• Click "Create new spreadsheet"
• In the auto-generated spreadsheet, click "File" → "Download" → "Export as CSV"
Step 2: Write Your Claude Code Script
In a text editor on your Windows device, structure it like this:
import csv
import json
from anthropic import Anthropic
# Read CSV
with open('form_responses.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
rows = list(reader)
# Analyze each row with Claude Code
client = Anthropic()
for idx, row in enumerate(rows):
form_text = str(row)
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=300,
messages=[
{
"role": "user",
"content": f"""Analyze this order form response:
{form_text}
Respond with:
1. Language (ko/zh/en)
2. Category (new/existing/unclassified)
3. Priority (high/medium/low)
Answer in JSON format."""
}
]
)
parsed = json.loads(response.content[0].text)
rows[idx]['language'] = parsed['language']
rows[idx]['category'] = parsed['category']
rows[idx]['priority'] = parsed['priority']
# Save classified CSV
with open('sorted_responses.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=rows[0].keys())
writer.writeheader()
writer.writerows(rows)
print(f"✓ Analyzed {len(rows)} rows")
Step 3: Auto-Import to Windows Excel
The classified CSV can be opened directly in Excel, but for full automation:
• Set the Python script in Windows Task Scheduler to run at 8 AM daily
• Save the generated CSV to a designated folder
• Connect in Excel file via "Data" → "From Text/CSV"
Unexpected Findings
1. The Form Learned Its Own Mistakes
At first, "language classification" wasn't perfect. Mixed Korean-Chinese responses were often confused. But after running 50+ times in 3 days, Claude Code started remembering response patterns. Now there's almost no error on repeat formats.
2. Categories Differ by Language
Analysis showed Korean responses were mostly "existing customers," while Chinese was mainly "new inquiries." This revealed that form design is interpreted differently across languages.
3. Manual Review Dropped to 5 Minutes
Previously, organizing 67 submissions took 45 minutes. Now a quick scan of automated results takes 5 minutes.
Failure and Recovery
The first run hit an encoding error. Responses with emojis or special characters broke during CSV conversion. The fix was simple:
# Before
with open('form_responses.csv', 'r') as f:
# After
with open('form_responses.csv', 'r', encoding='utf-8') as f:
One line addition made all characters read correctly.
Next Steps
We're currently processing only Google Sheets responses, but plan to expand to orders arriving via email. Connecting Outlook automation with Claude Code should let us auto-classify orders from both forms and emails.
The form keeps getting smarter. By next week, it might read orders faster than anyone on the team.