{"id":4899,"library":"botbuilder-schema","title":"BotBuilder Schema","description":"The `botbuilder-schema` library provides the core data structures and schema definitions for the Microsoft Bot Framework Python SDK. It defines essential classes like `Activity`, `ConversationAccount`, and `ChannelAccount` that represent messages and participants in a bot conversation. Version 4.17.1 is the final release, as the broader Bot Framework Python SDK has officially reached end-of-life and will no longer be updated or maintained.","status":"abandoned","version":"4.17.1","language":"en","source_language":"en","source_url":"https://github.com/Microsoft/botbuilder-python","tags":["bot","microsoft","azure","schema","messaging","eol","abandoned"],"install":[{"cmd":"pip install botbuilder-schema","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"note":"Commonly imported for defining bot messages and events.","symbol":"Activity","correct":"from botbuilder.schema import Activity"},{"note":"Used to represent a conversation's identity.","symbol":"ConversationAccount","correct":"from botbuilder.schema import ConversationAccount"},{"note":"Represents the identity of a user or bot in a channel.","symbol":"ChannelAccount","correct":"from botbuilder.schema import ChannelAccount"}],"quickstart":{"code":"import datetime\nfrom botbuilder.schema import Activity, ActivityTypes, ConversationAccount, ChannelAccount\n\n# Create a sample conversation account\nconversation = ConversationAccount(\n    id=\"conversationId123\",\n    conversation_type=\"personal\",\n    is_group=False,\n    tenant_id=\"tenantId123\"\n)\n\n# Create a sample channel account for the user\nuser = ChannelAccount(\n    id=\"userId123\",\n    name=\"Test User\",\n    role=\"user\"\n)\n\n# Create a sample channel account for the bot\nbot = ChannelAccount(\n    id=\"botId456\",\n    name=\"Test Bot\",\n    role=\"bot\"\n)\n\n# Create an Activity object\nactivity = Activity(\n    type=ActivityTypes.message,\n    id=\"messageId789\",\n    timestamp=datetime.datetime.now(datetime.timezone.utc),\n    service_url=\"https://example.azurewebsites.net/api/messages\",\n    channel_id=\"emulator\",\n    conversation=conversation,\n    from_property=user, # 'from' is a reserved keyword in Python, hence from_property\n    recipient=bot,\n    text=\"Hello from the botbuilder-schema quickstart!\",\n    locale=\"en-US\"\n)\n\nprint(f\"Created Activity of type: {activity.type}\")\nprint(f\"Activity text: {activity.text}\")\nprint(f\"From: {activity.from_property.name} ({activity.from_property.id})\")\nprint(f\"To: {activity.recipient.name} ({activity.recipient.id})\")","lang":"python","description":"This quickstart demonstrates how to instantiate core schema objects like `Activity`, `ConversationAccount`, and `ChannelAccount`, which are fundamental for representing messages and participants in the Bot Framework."},"warnings":[{"fix":"For new projects, consider the Microsoft 365 Agents SDK or alternative bot development frameworks. Existing users should avoid upgrading beyond 4.17.1 and plan for migration if future compatibility or features are critical.","message":"End-of-Life (EOL) Status: The `botbuilder-schema` library is part of the Bot Framework Python SDK, which has officially reached End-of-Life (EOL) with version 4.17.1. It will no longer receive updates, maintenance, or support. Existing applications will not be immediately disrupted, but new development or seeking support is highly discouraged.","severity":"breaking","affected_versions":"4.17.1 onwards"},{"fix":"Ensure your development and deployment environments are running Python 3.8 or a later supported version.","message":"Python 3.8+ Requirement: Beginning with SDK version 4.15.0, the broader Bot Framework SDK (of which `botbuilder-schema` is a component) requires Python 3.8 or newer due to its `aiohttp` dependency (version 3.9+). Deployments using Python 3.7 or earlier will encounter compatibility issues.","severity":"gotcha","affected_versions":"4.15.0 onwards"},{"fix":"Review the specific features you intend to use and cross-reference with the `botbuilder-schema` versions. If critical schema elements are missing, consider alternatives as the library will not be updated.","message":"Missing Schema for Newer Features: As an EOL library, `botbuilder-schema` will not receive updates for new Microsoft Teams or Bot Framework features. If your bot needs to interact with recently introduced invoke types (e.g., 'config/fetch', 'config/submit' added in 4.17.0) or other new schema elements, older `botbuilder-schema` versions might lack the necessary definitions, leading to runtime errors or unexpected behavior when deserializing activities.","severity":"gotcha","affected_versions":"Prior to 4.17.0 (for specific Teams invoke types), and all versions (for future features)"}],"env_vars":null,"last_verified":"2026-04-12T00:00:00.000Z","next_check":"2026-07-11T00:00:00.000Z"}