Discord Form Bot transforms how you manage applications, support requests, and feedback in your server. Say goodbye to messy DMs and hello to a streamlined, fully in-Discord experience!
With an intuitive Control Panel, admins can create unlimited forms, review submissions with pre-configured templates, and even automatically invite approved applicants to private target servers.
- 🎯 Multi-Form Support — Create an unlimited number of forms customized for different purposes.
- 🔘 Persistent Buttons — Provide users with interactive, always-on buttons to trigger forms.
- 🕹️ Admin Control Panel — Manage everything directly in Discord (
/panel) using intuitive modals and dropdowns. - ✉️ Review System — Approve or reject with customized (or pre-configured) messages delivered directly to the user's DMs.
- 🔗 Auto-Invite Architecture — Automatically send unique, single-use invite links to target servers upon approval.
- 🛡️ Spam Protection — Set submission limits to prevent spam (Once vs. Unlimited).
- 🔔 Smart Notifications — Tag specific roles or users when a new submission arrives.
- 💾 SQLite Database — Robust storage utilizing SQLite with automatic migrations.
- Node.js - JavaScript runtime environment.
- Discord.js (v14) - Powerful module to interact with the Discord API.
- Better-SQLite3 - The fastest and simplest SQLite3 library for Node.js.
Follow these instructions to get a copy of the bot up and running on your local machine or server.
- Node.js (v18.0.0 or higher)
- NPM or Yarn
- A Discord Bot Account with a token.
Note: The bot requires the
Guilds,Guild Messages, andDirect Messagesintents, along withSend Messages,Embed Links,Manage Messages, andCreate Instant Invitepermissions.
-
Clone the repository:
git clone https://github.com/89CF/discord-form-bot.git cd discord-form-bot -
Install dependencies:
npm install
-
Configure Environment Variables: Rename
.env.exampleto.envand fill in your details:DISCORD_TOKEN=your_bot_token_here CLIENT_ID=your_client_id_here DATABASE_PATH=./data/bot.db ALLOWED_GUILD_ID=your_server_id_here # Optional: Restrict bot to a specific server
-
Deploy Application (Slash) Commands:
npm run deploy
-
Start the Bot:
npm start
To access the core of the bot, type:
/panel
(Only users with Admin permissions can use this command.)
From the interactive dashboard, you can:
- ➕ Create a New Form: Setup title, description, and up to 5 custom questions.
- 📝 Manage Forms: Edit questions, set target Auto-Invite servers, configure default review messages.
- ⚙️ Settings: Define the Admin Channel where submissions land, and configure ping notifications.
- Go to Manage Forms -> Edit -> Set Target Server.
- Input the Discord Server ID of the destination server (the bot must be in that server too).
- Every time you click Approve on a submission, the bot creates a temporary, single-use invite to that target server and DMs it to the user!
discord-form-bot/
├── src/
│ ├── commands/ # Slash command definitions
│ ├── handlers/ # Event & Interaction routing
│ ├── panels/ # UI builders for Discord Modals/Embeds
│ ├── database/ # SQLite Queries & Migrations
│ ├── utils/ # Helpers, Embed definitions, Validators
│ └── index.js # Main Entry Point
├── data/
│ └── bot.db # Auto-generated SQLite Database
├── config.json # Base configuration limits
└── package.json
Contributions make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
