Julian Reder Discord Bots · 2023 - 2026

Triggered

IFTTT-style Discord automation: compose trigger → action rules, persisted in MongoDB.

2023 - 2026
Pythondiscord.pyMongoDBDocker
message reaction / voice role / schedule JSON registry trigger to action Slash UX validate, autocomplete MongoDB per-guild rules
Users compose when → then rules. Triggers and actions load from a JSON registry; Mongo stores the rest.

Built

Users compose when/then rules across messages, reactions, voice, roles, and schedules. Triggers and dos load from a JSON registry; slash UX handles validation and autocomplete; permissions are scoped per server. Docker Compose + pytest; the hosted instance is personal, not a product.

IFTTT, but for one guild

Triggered is Discord automation you compose instead of code. When a message / reaction / voice / role / schedule event fires, a stored rule runs an action. Triggers and dos load from a JSON registry so the slash UX can validate and autocomplete without a hardcoded switch.

Permissions are scoped per server. Docker Compose + pytest. The hosted instance is personal, not a product.

Registry, then persistence

The useful design choice was making the registry the source of what can exist, and Mongo the source of what this guild actually configured. Autocomplete stays honest. A missing trigger type fails closed instead of executing a half-built rule.

I would not sell this as a platform. I would show it as the moment I stopped writing one-off cogs for every “if X then Y” request.

message reaction / voice role / schedule JSON registry trigger to action Slash UX validate, autocomplete MongoDB per-guild rules
Events in, registry in the middle, Mongo for the composed rules.