A modern chatbot interface designed for testing AI agent webhooks with an authentic messaging experience.
- Modern Purple Theme - Distinctive and professional color scheme
- Messenger-style Layout - Right-aligned user messages, left-aligned bot responses
- Dark/Light Mode Toggle - Seamless theme switching with persistent preferences
- Real-time Typing Indicators - Fancy animated dots for authentic chat feel
- Fully Responsive - Works perfectly on desktop, tablet, and mobile
- Markdown Support - Rich text formatting for bot responses
- Smooth Animations - Polished user experience with micro-interactions
I created this webhook chatbot interface to solve a common problem in AI agent development - testing without the hassle of building a frontend every time.
When developing AI agents and webhooks, I found myself constantly needing a way to test the conversational flow. Building a new chat interface for each project was time-consuming and took focus away from the actual AI logic.
This interface provides:
- Quick Testing Environment - Just point it to your webhook and start chatting
- Authentic Chat Experience - Mimics real messaging apps with proper alignment and timing
- Realistic User Interaction - The typing indicators and smooth animations make it feel like you're chatting with a real person, not just hitting an API endpoint
- Focus on What Matters - Spend time perfecting your AI agents, not building chat UIs
The interface is designed to feel authentic and human-like, complete with typing indicators that make interactions feel natural. This helps you test not just the functionality of your AI agents, but also the conversational flow and user experience.
- A web browser (Chrome, Firefox, Safari, Edge)
- An AI agent or webhook endpoint that accepts POST requests
-
Download the files
git clone <repository-url> cd webhook-chatbot-interface
-
Open the interface
- Simply open
chat.htmlin your web browser - Or serve it using a local server (recommended for development)
- Simply open
-
Configure your webhook
- Open
chat.htmlin a text editor - Find line ~894 with the fetch URL:
const response = await fetch('http://localhost:5678/webhook/chat', {
- Replace
http://localhost:5678/webhook/chatwith your webhook URL
- Open
// For local testing (default)
const response = await fetch('http://localhost:5678/webhook/chat', {// Replace with your actual webhook URL
const response = await fetch('https://your-domain.com/api/webhook/chat', {Your webhook should:
- Accept
POSTrequests - Expect JSON payload:
{ "text": "user message" } - Return JSON response:
{ "reply": "bot response" }
Example webhook response:
{
"reply": "Hello! I'm your AI assistant. How can I help you today?"
}The interface uses CSS custom properties for easy theming. Modify the :root section in the <style> tag:
:root {
--accent: #8b5cf6; /* Primary purple */
--accent-hover: #7c3aed; /* Darker purple */
--user-bubble: #8b5cf6; /* User message color */
/* ... other variables */
}Update the initialization script at the bottom of the file:
setTimeout(() => {
addMessage("Your custom welcome message here!", 'bot');
}, 500);The interface expects your webhook to:
- Accept POST requests with
Content-Type: application/json - Receive:
{ "text": "user input" } - Respond:
{ "reply": "bot response" }
Contributions are welcome! Here's how you can help improve this project:
- Bug Reports - Found a bug? Open an issue with detailed steps to reproduce
- Feature Requests - Have an idea for improvement? Share it in the issues
- Code Contributions - Fork the repository, make your changes, and submit a pull request
- Documentation - Improve README or add code comments
This project is open source and available under the MIT License.