Build a Simple Chatbot in Python using Errbot

Errbot is a powerful Python chatbot framework that allows you to create interactive chatbots for various platforms like Slack, Discord, and Telegram. It enables you to start scripts interactively from chatrooms and provides extensive customization through plugins.

Installation and Setup

First, create a virtual environment and install Errbot. Note that Errbot requires Python 3.6 or higher ?

pip install errbot

Creating Your Bot Directory

Create a dedicated directory for your chatbot project and initialize Errbot ?

mkdir chatbot
cd chatbot
errbot --init

The errbot --init command creates all necessary files including configuration files and a plugins directory.

Testing Your Bot

You can test your bot in text mode by running ?

errbot

This launches an interactive mode where you can chat with your bot. Try the !help command to see available commands.

Installing Platform-Specific Backends

For specific chat platforms, install the appropriate backend ?

pip install "errbot[slack]"
pip install "errbot[telegram]"
pip install "errbot[discord]"

Creating Custom Plugins

Plugins are stored in the plugins directory. Create a simple plugin file called hello.py ?

from errbot import BotPlugin, botcmd

class Hello(BotPlugin):
    
    @botcmd
    def hello(self, msg, args):
        """Simple hello command"""
        return "Hello, world!"
    
    @botcmd
    def greet(self, msg, args):
        """Personalized greeting"""
        username = msg.frm.person
        return f"Hello {username}, nice to meet you!"
    
    @botcmd
    def add(self, msg, args):
        """Add two numbers: !add 5 3"""
        try:
            numbers = args.split()
            if len(numbers) != 2:
                return "Please provide exactly two numbers"
            
            num1, num2 = int(numbers[0]), int(numbers[1])
            result = num1 + num2
            return f"{num1} + {num2} = {result}"
        except ValueError:
            return "Please provide valid numbers"

Using Your Plugin

After creating the plugin, restart your bot and use these commands ?

  • !hello - Returns "Hello, world!"
  • !greet - Returns personalized greeting
  • !add 5 3 - Returns "5 + 3 = 8"

Configuration

Modify config.py to configure your bot for different platforms. Here's a basic Slack configuration example ?

import logging

# Bot admins
BOT_ADMINS = ('@admin_username',)

# Backend configuration
BACKEND = 'Slack'
BOT_TOKEN = 'xoxb-your-slack-bot-token'

# Plugin directories
BOT_EXTRA_PLUGIN_DIR = './plugins'

# Logging
BOT_LOG_LEVEL = logging.INFO

Advanced Plugin Features

Errbot supports webhooks, scheduled tasks, and room-specific commands ?

from errbot import BotPlugin, botcmd, webhook
from datetime import datetime

class AdvancedBot(BotPlugin):
    
    @botcmd
    def time(self, msg, args):
        """Get current time"""
        return f"Current time: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
    
    @webhook('/status')
    def status_webhook(self, incoming_request):
        """Webhook endpoint for status updates"""
        return "Bot is running!"
    
    @botcmd(admin_only=True)
    def restart(self, msg, args):
        """Admin-only restart command"""
        return "Restarting bot..."

Key Features

Feature Description Use Case
Multi-platform Slack, Discord, Telegram support Cross-platform deployment
Plugin System Modular command structure Easy customization
Webhooks HTTP endpoints for external integration API integrations
Access Control Admin-only commands Security management

Conclusion

Errbot provides a robust framework for building chatbots with minimal setup. Its plugin system and multi-platform support make it ideal for creating interactive bots that can integrate with existing workflows and services.

Updated on: 2026-03-27T11:10:07+05:30

417 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements