# howdyai/botkit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/howdyai-botkit).**

11,585 stars · 2,251 forks · TypeScript · MIT · archived

## Links

- GitHub: https://github.com/howdyai/botkit
- awesome-repositories: https://awesome-repositories.com/repository/howdyai-botkit.md

## Topics

`bot` `bot-application` `botkit` `botkit-studio` `bots` `chatbot` `cisco-spark` `conversational-ui` `facebook` `facebook-bot` `facebook-messenger` `glitch` `making-bots` `microsoft-bot-framework` `microsoft-teams` `slack` `sms` `twilio` `web-bot` `workplacebyfacebook`

## Description

Botkit is a multi-platform chatbot framework designed to build conversational bots that operate across different messaging services using a unified interface. It provides a core system for multi-platform development, utilizing a platform adaptation layer to translate service-specific API payloads into a standardized internal format.

The framework features a conversational dialog manager that coordinates multi-turn interactions through state-tracking, branching logic, and scripted flows. It employs a message processing middleware pipeline to intercept, normalize, and enrich incoming and outgoing messages before they reach the bot handlers.

The project covers a wide range of capabilities including rich UI component management for interactive cards and modal dialogs, and conversation management through keyword triggers and slash commands. It supports various integration targets through specialized adapters for Slack, Facebook Messenger, Webex Teams, and SMS, alongside tools for conversation state persistence and webhook authenticity verification.

A command-line project scaffolder is provided to generate standardized project structures and boilerplate code for new bot developments.

## Tags

### Artificial Intelligence & ML

- [Bot Platforms](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms.md) — Serves as a comprehensive framework for managing automated accounts and interactive interfaces across multiple messaging platforms. ([source](https://github.com/howdyai/botkit#readme))
- [Multi-Platform Chatbot Development](https://awesome-repositories.com/f/artificial-intelligence-ml/multi-platform-chatbot-development.md) — Provides a unified interface for building a single bot backend that works across multiple messaging services.
- [Platform Normalization Adapters](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms/platform-normalization-adapters.md) — Translates platform-specific API payloads into a standardized internal format for cross-platform communication.
- [Chatbot Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/chatbot-frameworks.md) — Provides a comprehensive framework for building conversational bots that work across multiple messaging platforms.
- [Conversation State Management](https://awesome-repositories.com/f/artificial-intelligence-ml/conversation-state-management.md) — Tracks user progress through multi-turn interactions using branching logic and transactional question flows.
- [Dialog Flow Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/conversation-state-management/conversation-flow-design/dialog-flow-engines.md) — Coordinates multi-turn interactions using scripted flows, branching logic, and transactional questions.
- [Multi-Turn Flow Managers](https://awesome-repositories.com/f/artificial-intelligence-ml/conversation-state-management/conversation-flow-design/dialog-flow-engines/multi-turn-flow-managers.md) — Coordinates multi-turn conversations by tracking user progress through branching logic and transactional flows.
- [Conversation State Persistence](https://awesome-repositories.com/f/artificial-intelligence-ml/conversation-state-management/conversation-state-persistence.md) — Stores the state of a conversation across restarts to ensure continuity for the user. ([source](https://github.com/howdyai/botkit/blob/main/changelog.md))
- [Keyword Action Triggers](https://awesome-repositories.com/f/artificial-intelligence-ml/keyword-action-triggers.md) — Provides a system to monitor user messages for specific phrases and execute predefined automated responses. ([source](https://github.com/howdyai/botkit/blob/main/packages/docs/index.md))
- [Message-Driven Dialog Triggers](https://awesome-repositories.com/f/artificial-intelligence-ml/message-driven-dialog-triggers.md) — Evaluates incoming messages against configured triggers to start corresponding conversation flows. ([source](https://github.com/howdyai/botkit/blob/main/packages/botkit-plugin-cms))
- [Trigger-Based Event Routing](https://awesome-repositories.com/f/artificial-intelligence-ml/trigger-based-event-routing.md) — Matches incoming messages against defined patterns or keywords to execute specific automated conversation paths.
- [Messaging Event Processing](https://awesome-repositories.com/f/artificial-intelligence-ml/messaging-event-processing.md) — Reacts to non-verbal triggers, such as file uploads or users joining a channel, to execute automated actions. ([source](https://github.com/howdyai/botkit/blob/main/packages/docs/index.md))

### Networking & Communication

- [Messaging Middleware](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/communication-platforms/messaging-middleware.md) — Employs a middleware pipeline to intercept, normalize, and enrich incoming and outgoing messages.
- [Messaging Protocol Translation](https://awesome-repositories.com/f/networking-communication/cross-chain-messaging-protocols/protocol-translators/messaging-protocol-translation.md) — Translates platform-specific API payloads into a unified internal format to enable cross-platform bot functionality.
- [Platform Adapters](https://awesome-repositories.com/f/networking-communication/facebook-messenger-clients/messenger-message-sending/platform-adapters.md) — Implements a specialized adapter to translate messages between the bot core and the Facebook Messenger API. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-facebook))
- [Message Interception](https://awesome-repositories.com/f/networking-communication/message-bus-interfaces/message-interception.md) — Includes middleware to intercept and modify both incoming and outgoing message streams. ([source](https://github.com/howdyai/botkit/blob/main/packages/botkit))
- [Messaging Adapters](https://awesome-repositories.com/f/networking-communication/messaging-adapters.md) — Includes a specialized adapter to translate events and messages between Webex Teams and the bot core. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-webex))
- [Messaging API Integrations](https://awesome-repositories.com/f/networking-communication/messaging-api-integrations.md) — Connects application logic to third party chat platforms via adapters to send and receive messages.
- [Conversation Path Routing](https://awesome-repositories.com/f/networking-communication/messaging-channel-management/pub-sub-subscriptions/pattern-based-routing/conversation-path-routing.md) — Matches incoming messages against keywords or patterns to trigger specific automated conversation paths.
- [Processing Pipelines](https://awesome-repositories.com/f/networking-communication/processing-pipelines.md) — Ships a modular processing pipeline to normalize and enrich message data before it reaches bot handlers. ([source](https://github.com/howdyai/botkit/blob/main/changelog.md))
- [Slack Integrations](https://awesome-repositories.com/f/networking-communication/slack-integrations.md) — Implements a specialized adapter for bidirectional messaging and file exchange on the Slack platform. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-slack))
- [SMS Messaging Gateways](https://awesome-repositories.com/f/networking-communication/sms-messaging-gateways.md) — Provides an adapter to integrate telephony APIs for sending and receiving SMS messages. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-twilio-sms))
- [API Clients](https://awesome-repositories.com/f/networking-communication/api-clients.md) — Provides preconfigured clients for interacting with external messaging and telephony API endpoints. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-facebook))
- [Message Threading](https://awesome-repositories.com/f/networking-communication/message-threading.md) — Creates and organizes messages into separate threads or conversations within a chat interface. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-hangouts))
- [Rich Embed Messages](https://awesome-repositories.com/f/networking-communication/messaging-exchange-frameworks/rich-message-types/rich-embed-messages.md) — Constructs outgoing messages using attachments and interactive elements for complex interfaces. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-facebook))

### Software Engineering & Architecture

- [Chat Platform Adapters](https://awesome-repositories.com/f/software-engineering-architecture/adapter-patterns/chat-platform-adapters.md) — Provides a specialized adapter to abstract the Google Hangouts API for multi-platform bot connectivity. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-hangouts))
- [Bot Update Middleware](https://awesome-repositories.com/f/software-engineering-architecture/property-interception-middleware/bot-update-middleware.md) — Provides a pipeline for intercepting, normalizing, and enriching messages before they reach bot handlers.
- [Conversation Hook Bindings](https://awesome-repositories.com/f/software-engineering-architecture/trees/conversation-logic/conversation-hook-bindings.md) — Attaches custom code hooks to conversation flows to run specific logic during execution. ([source](https://github.com/howdyai/botkit/blob/main/packages/botkit-plugin-cms))
- [API Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/api-wrappers.md) — Provides a structured programmatic interface to execute platform-specific requests and call advanced messaging endpoints.

### Web Development

- [Webhook Interaction Reception](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/http-interaction-frameworks/webhook-interaction-reception.md) — Receives real-time notifications from external platforms via HTTP endpoints to trigger bot logic.

### Part of an Awesome List

- [Platform-Specific Card Generators](https://awesome-repositories.com/f/awesome-lists/devtools/card-components/agent-interaction-cards/platform-specific-card-generators.md) — Constructs outgoing messages with card attachments and buttons based on platform specifications. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-hangouts))

### Content Management & Publishing

- [Remote Conversation Flow Integrations](https://awesome-repositories.com/f/content-management-publishing/remote-conversation-flow-integrations.md) — Loads and executes conversation flows from an external system to update interactions without redeploying code.

### Development Tools & Productivity

- [Content Card Action Triggers](https://awesome-repositories.com/f/development-tools-productivity/action-execution-frameworks/interactive-action-triggers/content-card-action-triggers.md) — Processes button clicks on card attachments to send updates or trigger new bot responses. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-hangouts))
- [Slash Command Interfaces](https://awesome-repositories.com/f/development-tools-productivity/slash-command-interfaces.md) — Processes requests triggered by slash commands to send public or private responses. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-slack))

### Security & Cryptography

- [Multi-Workspace Installation Managers](https://awesome-repositories.com/f/security-cryptography/multi-workspace-installation-managers.md) — Handles OAuth flows and token retrieval to operate across multiple external workspaces and teams. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-slack))
- [Webhook Security](https://awesome-repositories.com/f/security-cryptography/webhook-security.md) — Implements cryptographic signature validation to verify the authenticity of incoming webhook payloads. ([source](https://github.com/howdyai/botkit/blob/main/changelog.md))

### Testing & Quality Assurance

- [Conversation Flow Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/unit/unit-testing/activity-logic-testing/conversation-flow-testing.md) — Provides a test client to run unit tests against conversation dialogs to ensure logic correctness. ([source](https://github.com/howdyai/botkit/blob/main/changelog.md))

### User Interface & Experience

- [Conversational UI Patterns](https://awesome-repositories.com/f/user-interface-experience/conversational-ui-patterns.md) — Creates interactive chat experiences using rich media cards, buttons, and multi-turn dialog flows.
- [Modal Dialogs](https://awesome-repositories.com/f/user-interface-experience/modal-dialogs.md) — Presents multi-field pop-up forms to collect structured user input during interactions. ([source](https://github.com/howdyai/botkit/blob/main/packages/botbuilder-adapter-slack))
- [UI Component Management](https://awesome-repositories.com/f/user-interface-experience/ui-component-management.md) — Manages complex interface elements such as buttons, quick replies, and task modules. ([source](https://github.com/howdyai/botkit/blob/main/changelog.md))
