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
- Grab roles in
roles
- 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" 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