discord-bot
SKILL.md
Discord Bot
Build Discord bots for community management, moderation, notifications, and AI integration. Based on n8n's Discord workflow templates.
Overview
This skill covers:
- Bot setup and configuration
- Slash commands and interactions
- Moderation automation
- Notification workflows
- AI-powered features
Bot Setup
Creating a Discord Bot
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
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
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
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
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
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
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
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
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
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
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
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
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:
# Discord Welcome Bot
## Configuration
```yaml
events:
- guildMemberAdd
- guildMemberRemove
Welcome Message
// 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
// Assign "New Member" role
await member.roles.add(newMemberRole);
DM Welcome
// Send DM with server info
await member.send({
content: `Welcome to ${guild.name}! Here's everything you need to know...`,
embeds: [infoEmbed]
});
n8n Workflow
trigger: Discord - On Member Join
actions:
- Discord - Send Channel Message (welcome)
- Discord - Add Role
- Discord - Send DM
- Google Sheets - Log new member
---
*Discord Bot Skill - Part of Claude Office Skills*
Weekly Installs
129
Repository
claude-office-sā¦s/skillsGitHub Stars
10
First Seen
7 days ago
Security Audits
Installed on
claude-code107
opencode52
github-copilot51
gemini-cli49
amp49
cline49