AI Customer Support Agent
A live demo of an embeddable AI chat agent for a fictional e-commerce store, NovaMart. Claude handles the conversation. n8n handles everything that needs to happen after.
Claude API
n8n Automation
Netlify Functions
Slack · Google Sheets · Gmail
How it works
Three layers — the chat widget, the AI brain, and the automation pipeline.
💬 Chat widget
→
🛡️ Netlify proxy
→
🧠 Claude API
→
⚡ n8n webhook
→
📨 Slack · Sheets · Gmail
Claude returns the reply plus a hidden JSON escalation signal. The Netlify function strips the signal from the customer-facing reply and uses it to decide whether to fire the n8n webhook. The 5 escalation reasons are REFUND_REQUEST, DAMAGED_ITEM, HUMAN_REQUEST, COMPLAINT, and MISSING_ORDER.
Try the demo
Open Nova in the bottom-right corner and try one of these to see the automation pipeline fire in real time.
1Standard query
"What's your return policy?" — Nova answers from the knowledge base. No automation fires.
2Trigger a refund
"I want a refund for my NovaPhone" — n8n logs to Sheets and emails confirmation. Watch the panel below.
3Ask for a human
"Can I speak to a human?" — n8n posts to Slack #support immediately.
Live automation panel
Each escalation is broadcast to this panel as a nova:escalation event. In production these rows correspond to a row in Google Sheets, a Slack message, and (where applicable) a Gmail confirmation.
Last Slack alert
No alerts yet — trigger an escalation in the chat.
Stack
- AIClaude (claude-sonnet-4-6)
- API proxyNetlify serverless function
- Automationn8n webhook + Switch routing
- AlertsSlack incoming webhook
- LoggingGoogle Sheets append
- EmailGmail OAuth send
- FrontendVanilla JS — embeddable widget
- HostingNetlify (auto-deploy on push)