Bundle flows into a module
The Daily question flow does not have to stay in your server. Put it in a module with its own settings and another server can install it, picking its own channel, its own time and its own role.
The settings the installing server sees
Daily question
SettingsQuestion channel
ChannelWhere the question is posted. Any text channel the bot can write in.
Post at
ScheduleA schedule picker, not a cron text box.
Suggestion role
RoleWho reviews the questions members send in.
Open a thread
Opens a thread on the question so the answers stay together.
Illustration only - actual interface may differ
What a module contains
A module is self-contained. It carries its own flows, its own stored data and its own settings, grouped into pages, plus one switch for the whole bundle.
Flows
Every flow the module needs, in folders you decide on.
Storage fields
The stored data the module owns. Flows that sit outside a module keep their data separately, and the two never mix.
Settings
What the installing server fills in, grouped into pages: text, numbers, yes or no, channels, roles, members, lists and schedules.
One switch
Turning the module off takes every flow in it along.
The same flow, now inside the module
Daily question
ActiveSaveTrigger
ChangeSchedule, every day at 09:00
Get storage value(get-storage-value)
Read the question catalogue from{questions}
Pick the next entry(array-at)
The one after yesterday's
Send message(send-message)
Post the question as an embed in{config:channel}
Create thread(start-thread-from-message)
Open a thread on that message
Increase storage value(increment-storage-value)
Count the question as asked in{asked}
Illustration only - actual interface may differ
Installed, it reads like an app
The person who installs your module does not land in a flow editor. They get an app page: an overview of what it does, a settings tab with your config fields, and a help tab with your guides and FAQ.
What the module can do is listed for you from its flows, and then you rewrite it in your own words. Help for a setting sits behind a question mark next to it. The flow editor, the stored data and the run history sit behind an advanced tab.
What a developer writes in the overview, the guides and the FAQ stays text. No scripts, and no links dressed up as something else.
Capabilities
Daily post
Posts the question at 09:00 and opens a thread for the answers.
Suggest a question
Members send in a question, the team approves it into the catalogue.
Guide
Fill your question catalogue
How to get the first thirty questions in, and what happens when the list runs out.
FAQ
Can members suggest questions?
Yes. Give the suggestion role to your team and they see every suggestion before it is used.
Illustration only - actual interface may differ
Portable by design
Modules never carry your channel, role or member IDs. Anything that belongs to one server comes from a setting, so every server that installs the module picks its own. That is what makes an install somewhere else work at all.
Channels and roles come from settings
A step never points at a channel or a role by ID. It points at a setting, and the installing server chooses what goes in it.
Each server's choices stay with that server
The values a server picked are kept next to the module, not inside it, so an update never overwrites them.
Leftovers are caught before a version ships
A new version is checked for IDs from your own server, and anything found is pointed out with the flow, the step and the field it sits in.
Every install knows its version
A server keeps exactly the version it installed until it decides to update.
Install, update, translate
A module installs into another server in one step, and the setup wizard walks the required fields one per step. When you ship a new version, every install is told about it.
An installed module tells the server running it how it is doing: it needs setup, the bot is missing a permission, something keeps failing, or all is well.
Updates
An update shows up as an Update available pill with the version number. Apply them one at a time, or with Update all.
Your own edits
A module you changed yourself is left out of Update all and asks you first, because updating replaces the flows in it. Your current version is kept for 30 days, so you can go back to it.
One main language
Your module has one main language. You pick it when you first publish, and it stays fixed once translations exist. You can hand-translate it into 28 supported languages.
Machine translation
Machine translation is opt-in and writes German only. Where it was used, the app tells the person reading it that parts were translated by AI and that the developer has not checked the wording.
When a translation arrives
Translation fixes reach an installed module at install time and at version update, never retroactively.
Modules, answered
A loose flow sits directly in your server's custom commands and is yours alone. A module bundles flows, stored data and settings into one thing with a single switch, its own settings page and its own help. Anything you want to install into another server, or hand to someone else, has to be a module.
More of Custom Commands V3
Want your server in the beta?
V3 is a large system and it still moves fast, so servers come in one at a time instead of all at once. Every application is read by a person, and you hear back within a few days.
The servers already in the beta decide a good part of what we build next. What you build is yours: flows and modules stay when the beta ends.