10/14/2026
Build your first Discord bot without code: start with one useful command
A practical first build in Bottly: create a Discord application, add a useful slash command, invite the bot with sensible permissions, and test it before your members do.
A bot does not need twenty commands to earn its place in a server. One reliable
For a first build, keep the job small: someone types
This guide uses Bottly's visual builder. You will still need a Discord application and permission to add a bot to your test server. You do not need to write JavaScript.
Before opening the editor, write the response in a note. For example:
Replace those directions with real channels and a real support process. If your server does not offer private support yet, do not promise it in the bot's reply.
A good first command has one input and one obvious result. Avoid starting with giveaways, purchases or automatic moderation. Those involve more permissions, more failure cases and usually some persistent data.
Open the Discord Developer Portal and create an application. Give it a name your members will recognise, then open its Bot settings.
Discord provides a bot token. Treat it like a password: anyone with a valid token can attempt to operate that bot. Copy it only when you are ready to connect it, and do not put it in a screenshot, a support message or a public repository.
If a token has been exposed, reset it in the Developer Portal. Removing the message that contained it is not enough.
You will also see settings for privileged gateway intents. A bot that only responds to slash commands does not need Message Content just to receive those interactions. Enable additional intents when a feature actually needs them, rather than turning everything on in advance.
The Discord application guide covers the connection details.
Sign in to Bottly, create a new bot and choose Flow Builder. Give the project a clear name. If you already have several test projects, a name such as “Community help — test” makes mistakes less likely than “Bot 2”.
Open the bot's Settings, find Bot token, paste the token and save it. Keep this token out of command responses and ordinary text fields. It belongs in the dedicated token setting.
Start with a blank project or a simple template. Templates are useful starting points, but read the actions they contain before running them in a server. A welcome-message example and a moderation example need very different access.
Open Commands and add a command named
For the first version, use a plain-text response. Paste in your prepared message and update the channel references. You can move to an embed once the wording is right.
If you want a styled response, use Design to prepare the embed, then select it as the command response. Keep the title short and put the important instruction in the first sentence. An elaborate footer will not rescue an unclear answer.
Choose whether the reply should be ephemeral. An ephemeral response is visible only to the person who invoked the command. That is often a sensible choice for help menus and error messages; a public announcement is a different use case.
You can find the supported options in the slash-command documentation.
Use the bot's invite link to add it to a server you control. Make sure the invite includes the
Do not select Administrator to save time. For a simple response bot, start with the channel access and messaging permissions its response requires. An embed response also needs the relevant embed permission. Add broader access only when you add a feature that uses it.
If you are building in a busy community, use a private testing channel or a separate server first. A typo in a help message is harmless; an unexpected moderation action is not.
Use the run controls on Overview to start the bot. Save or register your commands using the controls available in Commands, then open Discord and try
Global command updates are not always immediate. Discord can take time to display a newly registered command, so do not repeatedly delete and recreate the application if it does not appear straight away.
Test three things separately:
An administrator account is a poor final test for permissions. Try an ordinary member account, or ask someone with no special roles to check it.
The command is missing: check that you invited the correct application, included
The command appears but fails: check whether the bot is running, then read Logs. Confirm the token has not been reset since you saved it.
It works for you but not members: inspect the command permissions and the channel's role overrides. Your administrator access may be hiding the problem.
The response is wrong: change the text before adding more actions. Get the smallest version working first.
The troubleshooting guide is a useful next stop when a log entry points to a permission or connection problem.
Once
Keep a short test list as the bot grows. Every new feature should answer the same questions: who may use it, what access does the bot need, and what happens when something is missing?
Start with one command your community will use this week. A small bot that works is a much better foundation than a large one nobody has tested.
/help command can save your moderators more time than a half-finished moderation suite.For a first build, keep the job small: someone types
/help, and the bot replies with your server's rules, support channel and a useful next step. You can test that in a quiet channel, fix the wording, and add more later.This guide uses Bottly's visual builder. You will still need a Discord application and permission to add a bot to your test server. You do not need to write JavaScript.
Decide what the first command should do
Before opening the editor, write the response in a note. For example:
Need a hand?
Read the rules before posting.
Ask general questions in the community help channel.
For account or payment issues, contact the support team privately.
Never share passwords, bot tokens or payment details in public chat.
Replace those directions with real channels and a real support process. If your server does not offer private support yet, do not promise it in the bot's reply.
A good first command has one input and one obvious result. Avoid starting with giveaways, purchases or automatic moderation. Those involve more permissions, more failure cases and usually some persistent data.
Create the application in Discord
Open the Discord Developer Portal and create an application. Give it a name your members will recognise, then open its Bot settings.
Discord provides a bot token. Treat it like a password: anyone with a valid token can attempt to operate that bot. Copy it only when you are ready to connect it, and do not put it in a screenshot, a support message or a public repository.
If a token has been exposed, reset it in the Developer Portal. Removing the message that contained it is not enough.
You will also see settings for privileged gateway intents. A bot that only responds to slash commands does not need Message Content just to receive those interactions. Enable additional intents when a feature actually needs them, rather than turning everything on in advance.
The Discord application guide covers the connection details.
Create the bot in Bottly
Sign in to Bottly, create a new bot and choose Flow Builder. Give the project a clear name. If you already have several test projects, a name such as “Community help — test” makes mistakes less likely than “Bot 2”.
Open the bot's Settings, find Bot token, paste the token and save it. Keep this token out of command responses and ordinary text fields. It belongs in the dedicated token setting.
Start with a blank project or a simple template. Templates are useful starting points, but read the actions they contain before running them in a server. A welcome-message example and a moderation example need very different access.
Add the slash command
Open Commands and add a command named
help. Discord command names use lowercase letters and cannot contain spaces. Write a description that tells a member what will happen, such as “Find the rules and support channels”.For the first version, use a plain-text response. Paste in your prepared message and update the channel references. You can move to an embed once the wording is right.
If you want a styled response, use Design to prepare the embed, then select it as the command response. Keep the title short and put the important instruction in the first sentence. An elaborate footer will not rescue an unclear answer.
Choose whether the reply should be ephemeral. An ephemeral response is visible only to the person who invoked the command. That is often a sensible choice for help menus and error messages; a public announcement is a different use case.
You can find the supported options in the slash-command documentation.
Invite it with the permissions it needs
Use the bot's invite link to add it to a server you control. Make sure the invite includes the
applications.commands scope as well as the bot scope.Do not select Administrator to save time. For a simple response bot, start with the channel access and messaging permissions its response requires. An embed response also needs the relevant embed permission. Add broader access only when you add a feature that uses it.
If you are building in a busy community, use a private testing channel or a separate server first. A typo in a help message is harmless; an unexpected moderation action is not.
Start, register and test
Use the run controls on Overview to start the bot. Save or register your commands using the controls available in Commands, then open Discord and try
/help.Global command updates are not always immediate. Discord can take time to display a newly registered command, so do not repeatedly delete and recreate the application if it does not appear straight away.
Test three things separately:
Discovery: can you find the command in Discord's slash-command picker?
Execution: does the bot respond when you run it?
Access: can an ordinary member use it in the channel where you intend it to work?
An administrator account is a poor final test for permissions. Try an ordinary member account, or ask someone with no special roles to check it.
If it does not work
The command is missing: check that you invited the correct application, included
applications.commands, and registered the command. Allow for global propagation.The command appears but fails: check whether the bot is running, then read Logs. Confirm the token has not been reset since you saved it.
It works for you but not members: inspect the command permissions and the channel's role overrides. Your administrator access may be hiding the problem.
The response is wrong: change the text before adding more actions. Get the smallest version working first.
The troubleshooting guide is a useful next stop when a log entry points to a permission or connection problem.
What to add next
Once
/help is dependable, choose one more task your members actually repeat: a server-information command, a welcome message, or a button that directs people to support.Keep a short test list as the bot grows. Every new feature should answer the same questions: who may use it, what access does the bot need, and what happens when something is missing?
Start with one command your community will use this week. A small bot that works is a much better foundation than a large one nobody has tested.