Build a status panel
Keep a single Discord message updated with your service health.
Use Timer, HTTP Request, and Message Tools to keep one status message updated. The setup needs Starter or Pro, one schedule slot, and a public status endpoint you control.
Prepare your endpoint
Have your service return a JSON health summary. It can check your database, storage, search, and other internal services, then return their status through one public URL. For example:
{
"status": "Operational",
"mainServer": "🟢 Connected",
"storageServer": "🟢 Connected",
"database": "🟢 Connected",
"configSearch": "🟢 Operational",
"uploadSystem": "🟢 Operational",
"cloudStorage": "🟢 Operational"
}Only return information intended for your Discord audience. BotDen reads the health summary; your endpoint determines each service's status.
Create the graph
- Install HTTP Request and Message Tools.
- Create a visual command named
refresh-statusand restrict manual access to server managers. - Load a saved value named
status_panel. - Add HTTP Request, pointing to your endpoint, and save its outputs as
http. - Check
{store:http.ok}. Use your status values when it istrue, and an unavailable message when it isfalse. - If
status_panelis empty, savependingto that value first, use Send Tracked Message, then replace it with{store:panel.messageId}. Otherwise use Edit Message with the saved ID.
Download the complete command JSON for a panel styled like the MX Central example. Add server settings named status_url (your endpoint URL) and status_interval (the interval displayed in the message). The JSON uses {setting:status_url} and {setting:status_interval}; you can also replace them with fixed values.
The example includes the bot's uptime, Discord heartbeat latency, and a relative last-update timestamp. Service lines come from your JSON response. Customize the title, emojis, description, color, and footer in Message Tools.
Turn on recurring updates
Run /refresh-status in the intended channel and check the message. Then install Timer, choose refresh-status, select the same channel, and set the interval to 30 minutes or longer on Starter, or 5 minutes or longer on Pro. Set status_interval to match, then save and deploy.
This setup keeps one panel per server. Run it in the configured channel. Subsequent runs edit the saved message rather than posting another one.
If an interrupted first run leaves status_panel set to pending, updates pause. Check the channel: if the panel exists, save its message ID as status_panel; otherwise clear that value and run the command again.
If you add AI-generated text, connect the message update to AI Response's On result output so it receives the answer.
If the endpoint fails, the example updates the panel to Status unavailable. If the bot itself stops, the message remains at its last update; the timestamp shows how old the result is. Bot uptime measures the current bot runtime, while service uptime must come from your endpoint.