Back to countdown
← Back to home

Documentation

Everything you need to go from an empty workspace to a live Discord bot — and to selling it on the marketplace.

Basics

Getting started

Bottly is a no-code workspace for Discord bots. You design the bot in the browser, connect it with a bot token, and Bottly runs the commands, components and automations for you.

The 5 minute path
Create an account and confirm your email.
Open Dashboard → New bot and pick a name plus a starting template.
Design your first embed in the Design tab.
Add one slash command in the Commands tab.
Paste your Discord token in Settings, invite the bot and try the command in your server.
Every workspace change is saved to your account, so you can leave the tab and come back later.

The workspace

Each bot has its own workspace with dedicated tabs:
Overview — status, invite link, quick stats.
Design — embeds, colors, branding.
Commands — slash commands and their responses.
Components — buttons, select menus and modals.
Events — welcome messages, reaction roles and other listeners.
Automations — the visual flow builder.
Presence — activity and status of the bot user.
Logs — what your bot actually did, with errors.
Settings — token, invite permissions, danger zone.

The left sidebar switches bots; the search field jumps between bots and pages, and the bell icon opens your notification center.

Creating a Discord application

Go to the Discord Developer Portal and press New Application.
Open the Bot tab, then Reset Token and copy it.
Enable the intents your bot needs (Message Content only if you read message text).
In Bottly open Settings → Bot token, paste the token and save.

Bottly verifies the token against Discord, encrypts it and stores it server-side. It is never kept in your browser and never sent back to it. If you reset the token in Discord, paste the new one in Bottly — the old one stops working immediately.

Building

Designing messages

The Design workspace pairs an editor with a pixel-accurate Discord preview.
Theme presets set accent and embed colors in one click.
Fields can be dragged to reorder and toggled inline.
Author, footer, thumbnail and image accept plain URLs.
The preview renders real Discord markdown, so you can check formatting before shipping.

Markdown that works in Discord
# Big heading
## Medium heading
### Small heading
-# Subtext
**bold** *italic* __underline__ ~~strike~~ `code`
> quote

Mentions use ID syntax, not plain text: <#channel_id> for a channel, <@user_id> for a user, <@&role_id> for a role and </name:command_id> for a slash command. A bare # is a heading, not a channel.

Slash commands

A command has a name, description, options, permissions and a response.

Options support string, integer, number, boolean, user, channel, role, mentionable and attachment types. Mark an option required when the command cannot run without it; optional options must come after required ones.

Responses can be:
plain text,
an embed from the Design tab,
a message with components,
a modal that collects input before replying.

Ephemeral replies are only visible to the person who ran the command — good for settings, tickets and errors.

Command names must be lowercase, 1–32 characters, no spaces. Discord may take up to an hour to propagate global commands the first time.

Buttons, menus and modals

Components attach to a message and react to clicks.
Buttons — primary, secondary, success, danger or link. Up to 5 per row, 5 rows per message.
Select menus — string, user, role or channel selects with min/max choices.
Modals — up to 5 text inputs, short or paragraph, with placeholders and length limits.

Every component gets an action: send a message, assign a role, open a modal, or start an automation. The live preview shows labels, emoji and styles exactly as Discord renders them.

Automations

The flow builder connects triggers → conditions → actions.

Common triggers: member joins, message sent, reaction added, button clicked, command run, scheduled time.

Conditions branch the flow: role checks, channel checks, text matching, number comparisons.

Actions: send message, DM the user, add or remove a role, create a channel, add a timeout, call a webhook, wait.

A workflow only runs when it is enabled. Use the Logs tab to see each run step by step, including which condition stopped the flow.

Events and presence

Events run without a command: welcome and goodbye messages, autorole, reaction roles, join logging and boost announcements. Each event has its own channel target and message body.

Presence controls what your bot shows in the member list: status (online, idle, do not disturb) and activity text such as "Playing /help".

Logs and debugging

The Logs tab records command runs, automation executions and runtime errors with timestamps.

Typical issues:
Command not showing — reinvite the bot with the applications.commands scope.
Missing permissions — the bot role must be above the roles it manages.
Nothing happens on a button — the component has no action attached, or the workflow is disabled.
Bot offline — the token was reset in Discord; paste the new one in Settings.

Marketplace

Buying a bot

The marketplace is public — anyone can browse listings without an account. Filter by category, tags and price, or sort by newest, rating, best sellers and price.

A listing page shows the image gallery, price, seller profile with a Verified badge when applicable, a markdown description and reviews.

Buying requires an account and enough balance. If you have a discount code, paste it in the purchase box to see the recalculated price before confirming. After purchase the bot lands in your dashboard.

Purchased bots are locked to appearance edits: you can rebrand the design, but the original command and automation logic stays intact.

Selling your bot

Open Marketplace → Publish and pick one of your bots.

A good listing has:
a clear title and category,
up to 6 uploaded images (max 5 MB each, PNG/JPG/WebP),
a markdown description covering features, setup and limits,
accurate tags,
a fair price in USD (0 makes it free).

Listings are copies: buyers get a clone, you keep your original. You can unpublish at any time from My listings. Banned accounts cannot publish.

Reviews and reports

Only buyers can review a listing: 1–5 stars plus an optional comment. The average and review count appear on cards and the listing page. You can edit or delete your own review.

If a listing breaks the rules, use Report on the listing page. Reports go to a moderation queue where the team can hide the listing, resolve or dismiss the report. You get a notification when your report is handled.

Creator profiles

Every seller has a public profile at /u/username with their bio, verification badge, sales stats and active listings. Set your username, avatar and bio in Account settings.

Verification is granted manually by the team to creators with a consistent sales and review history.

Account

Balance and top-ups

Your balance is shown in USD next to your avatar. Clicking it opens /balance with the current amount, full transaction history and a top-up box.

Top-ups use codes: paste a balance code and the amount is credited instantly. Purchases, refunds and admin adjustments all appear in the history with a timestamp and description.

Discount codes

Discount codes reduce the price of a marketplace purchase by a percentage. Enter the code on the listing page before confirming; the quote is recalculated server-side, so the shown price is the price you pay.

A code can be limited by number of uses and expiry date, and each account can normally redeem it once.

Plans and billing

Plans control how many bots you can run and which features are unlocked. Manage your plan in Billing, where you can also redeem plan codes.

Downgrading keeps your data: bots above the new limit are paused rather than deleted.

Notifications

The bell in the dashboard header collects sales, purchases, moderation results, balance changes and platform announcements. Unread items are highlighted; opening the panel marks them as read.

Site-wide announcements can also appear as a popup or a top bar when the team publishes something important.

Security and privacy

Bot tokens are encrypted at rest and never exposed to the browser.
Every table uses row-level security, so you only ever read your own data.
Admin actions require a server-verified role, not a client flag.
Marketplace images are stored privately and served through short-lived signed URLs.

Never share your Discord token in a listing description, screenshot or support message. If you think it leaked, reset it in the Developer Portal and paste the new one in Settings.