Pip Bot: Task Workflows Inside Discord

Dalrymple Ramos

Project overview

Pip Bot is a Discord-native task management bot for OJT teams. Its package and documentation also use the name MIH Bot, with tasks and deadlines managed inside chat servers.

Discord commands move tasks through their lifecycle, track deadlines, and send reminders in the channels where OJT teams already work. Keeping the workflow in chat makes the next action visible without checking another task board.

Built with

table of contents

Pip Bot brings task assignment, status changes, deadlines, and reminders into Discord. The repository package and documentation also use the name MIH Bot; they identify the same inspected implementation.

Implementation focus#

My implementation focus is a task lifecycle that survives chat-delivery failures. Node.js, Discord.js, MongoDB, Mongoose, and scheduled jobs support the workflow. Shared task actions let slash commands and buttons invoke the same approve or reject behavior.

Persist the decision before notifying#

Approval updates the database status, feedback, and completion time first. The bot then attempts to update the task card and send a direct message. Delivery failures are handled separately from the stored task decision.

Rejection returns the task to an active state and resets reminder-related fields before notification attempts. This keeps the durable record aligned with the lifecycle transition.

Apply explicit reminder conditions#

The reminder job uses Asia/Manila scheduling. Its selected active tasks exclude archived projects and completed states, and use deadline and last-notified conditions to decide which reminders qualify.

Those conditions describe eligibility. They do not make database updates and Discord sends one atomic transaction or guarantee exactly-once message delivery.

Result and limits#

The source demonstrates shared task actions and durable status changes inside a chat-based workflow. It does not establish production delivery rates, user adoption, or an independent permission audit.

A useful next improvement would make failed delivery visible and retryable without repeating the task decision. The companion article discusses durable state and Discord delivery.