Developer ToolsAdvanced
Discord Bot Builder
Discord bot development - community management, moderation, notifications, and AI integration
#discord#bot#community#moderation#automation
CLAUDE.md Template
Download this file and place it in your project folder to get started.
# Discord Bot
Build Discord bots for community management, moderation, notifications, and AI integration. Based on n8n's Discord workflow templates.
## Overview
This workflow covers:
- Bot setup and configuration
- Slash commands and interactions
- Moderation automation
- Notification workflows
- AI-powered features
---
## Bot Setup
### Creating a Discord Bot
```yaml
setup_steps:
1. create_application:
url: https://discord.com/developers/applications
action: "New Application"
2. create_bot:
section: "Bot"
action: "Add Bot"
copy: token
3. configure_intents:
enable:
- PRESENCE_INTENT
- SERVER_MEMBERS_INTENT
- MESSAGE_CONTENT_INTENT
4. invite_bot:
section: "OAuth2 > URL Generator"
scopes: [bot, applications.commands]
permissions: [based_on_needs]
generate: invite_link
```
### Slash Commands
```yaml
slash_commands:
- name: help
description: "Show bot help"
- name: ping
description: "Check bot latency"
- name: poll
description: "Create a poll"
options:
- name: question
type: STRING
required: true
- name: options
type: STRING
required: true
- name: remind
description: "Set a reminder"
options:
- name: time
type: STRING
required: true
- name: message
type: STRING
required: true
```
---
## Moderation Bot
### Auto-Moderation
```yaml
auto_moderation:
spam_detection:
triggers:
- repeated_messages: 5_in_10_seconds
- mass_mentions: more_than_5
- link_spam: multiple_links_no_text
actions:
- delete_messages
- timeout: 5_minutes
- log_to_mod_channel
word_filter:
blocked_words: [list_of_words]
action:
- delete_message
- warn_user
link_filter:
allowed_domains: [youtube.com, github.com]
action: delete_if_not_allowed
raid_protection:
triggers:
- join_rate: 10_per_minute
actions:
- enable_verification
- notify_mods
- slow_mode: enable
```
### Moderation Commands
```yaml
mod_commands:
/warn:
permission: MODERATE_MEMBERS
action: |
1. Record warning
2. DM user with reason
3. Log to mod channel
/timeout:
permission: MODERATE_MEMBERS
options: [user, duration, reason]
action: |
1. Apply timeout
2. DM user
3. Log action
/ban:
permission: BAN_MEMBERS
options: [user, reason, delete_messages]
action: |
1. Ban user
2. Log to mod channel
3. Optional: post to #bans
/warnings:
permission: MODERATE_MEMBERS
action: show_user_warning_history
```
---
## Community Features
### Welcome System
```yaml
welcome_system:
on_member_join:
actions:
- assign_role: "New Member"
- send_dm:
template: |
👋 Welcome to {server_name}!
Here's how to get started:
1. Read #rules
2. Grab roles in #roles
3. Introduce yourself in #introductions
Need help? Ask in #support
- post_welcome:
channel: "#welcome"
template: |
🎉 Welcome {user_mention} to the server!
They are member #{member_count}
on_member_leave:
channel: "#logs"
template: "{user} left the server. Duration: {time_since_join}"
```
### Role Management
```yaml
reaction_roles:
channel: "#roles"
message: |
React to get roles:
🎮 - Gamer
💻 - Developer
🎨 - Artist
📚 - Student
mappings:
"🎮": role_id_gamer
"💻": role_id_developer
"🎨": role_id_artist
"📚": role_id_student
level_roles:
system: xp_based
roles:
- level: 5
role: "Active Member"
- level: 10
role: "Regular"
- level: 25
role: "Veteran"
- level: 50
role: "Legend"
```
### Ticket System
```yaml
ticket_system:
create_ticket:
trigger: button_click OR /ticket
action:
- create_channel: "ticket-{user}-{number}"
- set_permissions: [user, support_team]
- send_initial_message:
template: |
🎫 **Support Ticket**
User: {user_mention}
Created: {timestamp}
Please describe your issue and a team member will assist you shortly.
React with ✅ to close this ticket.
close_ticket:
trigger: reaction OR /close
action:
- save_transcript: to_logs_channel
- delete_channel: after_5_seconds
- dm_user: transcript_link
```
---
## Notification Workflows
### n8n Integration
```yaml
workflow: "Discord Notifications"
triggers:
github_release:
action:
channel: "#releases"
embed:
title: "🚀 New Release: {version}"
description: "{release_notes}"
color: 0x00ff00
fields:
- name: "Download"
value: "[Link]({download_url})"
twitch_live:
action:
channel: "#streams"
message: "@everyone {streamer} is now live!"
embed:
title: "{stream_title}"
image: "{thumbnail}"
youtube_video:
action:
channel: "#videos"
embed:
title: "{video_title}"
description: "{description}"
thumbnail: "{thumbnail}"
```
### Scheduled Posts
```yaml
scheduled_posts:
daily_question:
schedule: "10am daily"
channel: "#daily-discussion"
template: |
🤔 **Question of the Day**
{random_question}
Share your thoughts below! 👇
weekly_recap:
schedule: "Sunday 6pm"
channel: "#announcements"
template: |
📊 **Weekly Server Recap**
New members: {new_members}
Messages: {message_count}
Most active channel: {top_channel}
Top contributor: {top_user}
Thanks for being part of our community! ❤️
```
---
## AI Integration
### AI Chat Bot
```yaml
ai_bot:
trigger: mention OR dm
configuration:
model: gpt-4
system_prompt: |
You are a helpful Discord bot assistant.
- Be friendly and use Discord-appropriate language
- Use emojis naturally
- Keep responses concise
- Help with server-related questions
features:
- conversation_memory: per_channel
- rate_limiting: 10_per_minute
- content_filter: enabled
commands:
/ask:
description: "Ask the AI a question"
action: ai_response
/summarize:
description: "Summarize recent messages"
action: summarize_channel_history
```
### Image Generation
```yaml
image_generation:
command: /imagine
options:
- prompt: STRING (required)
- style: CHOICE [realistic, anime, cartoon, abstract]
- size: CHOICE [square, portrait, landscape]
workflow:
1. receive_command
2. send_generating_message
3. call_dalle_api
4. send_result_with_buttons:
- Regenerate
- Upscale
- Variations
```
---
## Embeds & Components
### Rich Embed
```yaml
embed:
title: "Server Information"
description: "Welcome to our community!"
color: 0x5865F2 # Discord blurple
thumbnail:
url: "{server_icon}"
fields:
- name: "📊 Members"
value: "{member_count}"
inline: true
- name: "💬 Channels"
value: "{channel_count}"
inline: true
- name: "🎭 Roles"
value: "{role_count}"
inline: true
- name: "📅 Created"
value: "{creation_date}"
inline: false
footer:
text: "Last updated"
icon_url: "{bot_avatar}"
timestamp: "{current_time}"
```
### Button Components
```yaml
buttons:
row_1:
- type: button
style: primary
label: "Accept Rules"
custom_id: "accept_rules"
- type: button
style: secondary
label: "View Rules"
custom_id: "view_rules"
row_2:
- type: button
style: link
label: "Website"
url: "https://example.com"
- type: button
style: danger
label: "Leave"
custom_id: "leave_confirm"
```
---
## Output Example
**Request**: "Create a Discord welcome bot"
**Output**:
```markdown
# Discord Welcome Bot
## Configuration
```yaml
events:
- guildMemberAdd
- guildMemberRemove
```
## Welcome Message
```javascript
// On member join
const welcomeEmbed = {
title: '👋 Welcome to the Server!',
description: `Hey ${member.user}, welcome to **${guild.name}**!`,
color: 0x00ff00,
fields: [
{ name: '📜 Rules', value: 'Check <#rules-channel>', inline: true },
{ name: '🎭 Roles', value: 'Get roles in <#roles>', inline: true },
{ name: '💬 Chat', value: 'Say hi in <#general>', inline: true }
],
thumbnail: { url: member.user.displayAvatarURL() },
footer: { text: `Member #${guild.memberCount}` }
};
welcomeChannel.send({ embeds: [welcomeEmbed] });
```
## Auto-Role
```javascript
// Assign "New Member" role
await member.roles.add(newMemberRole);
```
## DM Welcome
```javascript
// Send DM with server info
await member.send({
content: `Welcome to ${guild.name}! Here's everything you need to know...`,
embeds: [infoEmbed]
});
```
## n8n Workflow
```yaml
trigger: Discord - On Member Join
actions:
- Discord - Send Channel Message (welcome)
- Discord - Add Role
- Discord - Send DM
- Google Sheets - Log new member
```
```
---
*Discord Bot Workflow - Part of Claude Code*README.md
What This Does
Build Discord bots for community management, moderation, notifications, and AI integration. Based on n8n's Discord workflow templates.
Quick Start
Step 1: Create a Project Folder
mkdir -p ~/Documents/DiscordBot
Step 2: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/DiscordBot/
Step 3: Start Working
cd ~/Documents/DiscordBot
claude