Skip to main content

Features and Requirements

Functional Requirements

Chatbot Controls

  • Users can create their own prompts
  • Chatbot must send a message once a day that encourages team engagement and communication
  • Admins can configure scheduling mode, active days, and active channel via a control panel
  • Admins can manually force a prompt post at any time

Scheduling

  • Bot must support three scheduling modes: random time within a configured window, a selected preset time, and a static repeating time
  • Bot must reset and re-pick random prompt times at midnight for each workspace
  • Bot must only post prompts on admin-configured active days of the week

Data Collection

  • Chatbot must track how many times each prompt is sent per workspace
  • Chatbot must track how many responses each prompt receives per workspace
  • Bot must display aggregate prompt statistics including times sent and total responses per prompt

Prompts

  • Chatbot must make picture-based prompts
  • Chatbot must make text-based prompts
  • Chatbot must make a photo-encouraged prompt
  • Chatbot must make a text-encouraged prompt
  • The user prompt creation invitation must enforce a configurable submission window; late submissions must be rejected

User Engagement

  • Bot must track consecutive daily response streaks per user and announce milestone achievements (e.g., 7, 14, 21, 50, 100 days) in the active channel
  • Bot must provide a streak leaderboard displaying the top responding users

Social Features

  • Bot must automatically pair two users with overlapping interest tags and post an introduction in the active channel
  • Users must be able to register personal interest tags during onboarding for use in social matching

Mentor-Mentee Program

  • Users must be able to sign up as a mentor or mentee with a profile including role, experience, bio, and interests
  • Bot must automatically match mentors and mentees by shared interests, with a fallback for unmatched users
  • Admins must be able to manually view and pair mentor-mentee profiles
  • Bot must create group DMs for newly matched mentor-mentee pairs and send personalized AI-generated introductions

Notifications & Reminders

  • Bot must send DM reminders to channel members who have not responded to the daily prompt (configurable on/off)

AI-Powered Interactions

  • Bot may react to user responses with contextually appropriate emoji reactions generated by an LLM (configurable probability)
  • Bot may reply to user responses with short AI-generated messages matching the prompt context (configurable probability)
  • Bot must use AI to generate personalized introduction messages for the Social Connector and Mentor-Mentee features

Multi-Workspace Support

  • Bot must support OAuth-based installation across multiple independent Slack workspaces, maintaining separate configurations and state per workspace

Nonfunctional Requirements

Scalability

  • Chatbot must be able to handle large numbers of requests and responses
  • Chatbot must respond to events near-instantly
  • Chatbot must remain stable for Slack workspace growth, including additional channels and higher message volume

Security

  • Ensure that data stored is secure and minimize data loss, duplication, and corruption
  • Ensure events don't lose data or repeat prompts
  • User data (interest tags, mentor profiles, response logs) must be scoped to the originating workspace and not shared across workspaces

Reliability

  • Bot must restore per-workspace state and resume scheduling after a restart without data loss
  • Structured logs must be append-only and durable to support streak and analytics calculations

Thread Safety

  • Bot state must be protected against concurrent access from simultaneous Slack event callbacks

Configurability

  • All feature toggles (LLM reactions, LLM replies, default channel, scheduling defaults) must be configurable via environment variables without code changes

Graceful LLM fallback

  • LLM-powered features (reactions, replies, intro messages) must fall back to default behavior if the AI API is unavailable or rate-limited

Observability

  • Bot must emit structured JSON log entries for every user response, including user identity, prompt ID, channel, and timestamp, to support auditing and analytics

Testability

  • Core scheduling logic, command handlers, and service functions must have unit, integration, and acceptance test coverage