BotDeployment
A deployment of a bot to a specific messaging platform. Defines platform-specific layout and integration settings. Collection:
bot-deployments| DB: MongoDB Source:hbf-core/src/main/java/gr/helvia/hbf/core/domain/BotDeployment.ktTypeScript:hbf-core-api/src/datamodel/botDeployment.ts
Fields
| Field | Type | Required | Indexed | Notes |
|---|---|---|---|---|
id | String | yes | PK | MongoDB document ID |
handle | String | yes | yes (unique) | Deployment identifier |
platform | MessagingPlatform | yes | ||
displayName | String | no | Friendly name | |
description | String | no | ||
settings | BotDeploymentSettings | yes | Default empty | |
scope | BotDeploymentScope | no | USER or SYSTEM | |
isPreview | Boolean | no | ||
tenant | Tenant | yes | @DBRef lazy. Compound index on tenant.$id | |
messagingApp | MessagingApp | no | @DBRef lazy | |
createdAt | Date | yes | yes | @CreatedDate |
updatedAt | Date | yes | @LastModifiedDate | |
lastModifiedBy | HashMap<String, String?> | no | Audit info |
Nested Objects
BotDeploymentSettings
| Field | Type | Notes |
|---|---|---|
layout | BotDeploymentLayoutSettings | Platform-specific layout config |
integration | BotDeploymentIntegrationSettings | Platform-specific integration config |
language | LanguageCode | Default deployment language |
automaticLanguageDetectionEnabled | Boolean | Default: false |
BotDeploymentLayoutSettings
| Field | Type | Notes |
|---|---|---|
microsoftTeams | MicrosoftTeamsLayoutSettings | |
microsoftWebChat | WebChatSettings | |
viber | ViberLayoutSettings | |
facebook | FacebookLayoutSettings | |
instagram | InstagramLayoutSettings | |
slack | SlackLayoutSettings | |
whatsApp | WhatsAppLayoutSettings | |
zendesk | ZendeskLayoutSettings |
MicrosoftTeamsLayoutSettings
| Field | Type | Notes |
|---|---|---|
showTypingIndicator | Boolean |
ViberLayoutSettings
| Field | Type | Notes |
|---|---|---|
name | String | @NotNull, bot name |
avatar | String | @NotNull, avatar URL |
entryPoint | String | Greeting node ID |
FacebookLayoutSettings
| Field | Type | Notes |
|---|---|---|
showTypingIndicator | Boolean |
WhatsAppLayoutSettings
| Field | Type | Notes |
|---|---|---|
showTypingIndicator | Boolean |
ZendeskLayoutSettings
| Field | Type | Notes |
|---|---|---|
showTypingIndicator | Boolean | |
entryPoint | String |
WebChatSettings
| Field | Type | Notes |
|---|---|---|
configuration | Map<String, Any> | Free-form config including showTypingIndicator |
BotDeploymentIntegrationSettings
| Field | Type | Notes |
|---|---|---|
microsoftTeams | MicrosoftTeamsIntegrationSettings | Extends MicrosoftTeamsAppConfigurations |
microsoftWebChat | MicrosoftWebChatIntegrationSettings | Extends MicrosoftWebChatAppConfigurations |
viber | ViberIntegrationSettings | Extends ViberAppConfigurations |
facebook | FacebookIntegrationSettings | Extends FacebookAppConfigurations |
instagram | InstagramIntegrationSettings | Extends InstagramAppConfigurations |
slack | SlackIntegrationSettings | Extends SlackAppConfigurations |
unity | UnityIntegrationSettings | Extends UnityAppConfigurations |
whatsapp | WhatsAppIntegrationSettings | Extends WhatsAppAppConfigurations |
api | ApiIntegrationSettings | Extends ApiAppConfigurations |
zendesk | ZendeskIntegrationSettings | Extends ZendeskAppConfigurations |
MicrosoftTeamsIntegrationSettings (extends MicrosoftTeamsAppConfigurations)
| Field | Type | Notes |
|---|---|---|
clientId | String | Inherited from app config |
clientSecret | String | Inherited from app config |
azureTenantId | String | @NotNull |
serviceUrl | String |
FacebookIntegrationSettings (extends FacebookAppConfigurations)
| Field | Type | Notes |
|---|---|---|
pageAccessToken | String | Inherited |
pageId | String | @NotNull |
InstagramIntegrationSettings (extends InstagramAppConfigurations)
| Field | Type | Notes |
|---|---|---|
pageAccessToken | String | Inherited |
fbConnectedPageId | String | @NotNull |
SlackIntegrationSettings (extends SlackAppConfigurations)
| Field | Type | Notes |
|---|---|---|
botUserOAuthToken | String | Inherited |
clientId | String | Inherited |
clientSecret | String | Inherited |
appId | String | Inherited |
teamId | String | @NotNull |
UnityIntegrationSettings (extends UnityAppConfigurations)
| Field | Type | Notes |
|---|---|---|
jwtToken | String |
ApiIntegrationSettings (extends ApiAppConfigurations)
| Field | Type | Notes |
|---|---|---|
jwtToken | String |
Enums
BotDeploymentScope
| Value | Description |
|---|---|
USER | Created by user |
SYSTEM | System-generated |
MessagingPlatform
| Value | Description |
|---|---|
MICROSOFT_TEAMS | Microsoft Teams |
MICROSOFT_WEB_CHAT | Web chat widget |
VIBER | Viber |
FACEBOOK | Facebook Messenger |
LIVECHAT | Helvia live chat |
SLACK | Slack |
INSTAGRAM | |
UNITY | Unity game engine |
WHATSAPP | |
API | REST API |
ZENDESK | Zendesk |
Relationships
- Belongs to: Tenant (via @DBRef)
- References: MessagingApp (via @DBRef, optional)
- Platform-specific settings inherit from MessagingApp configurations
TypeScript Mapping
| hbf-core (Kotlin) | hbf-core-api (TypeScript) | Notes |
|---|---|---|
| BotDeployment | BotDeployment | TS uses messagingAppId instead of messagingApp @DBRef |
| BotDeploymentSettings | BotDeploymentSettings | Aligned |
| BotDeploymentScope | BotDeploymentScope | Aligned |
| MessagingPlatform | MessagingBackends | Different enum name. TS adds LOCAL, MONITORING, POST, ITC values |
| BotDeploymentLayoutSettings | BotDeploymentLayoutSettings | TS omits instagram, slack, zendesk layout |
| BotDeploymentIntegrationSettings | BotDeploymentIntegrationSettings | Aligned. TS omits unity, api, zendesk |
lastModifiedBy | (not in TS) | Gap |