{ "openapi": "3.0.1", "info": { "title": "CloseBot API", "version": "v1" }, "servers": [ { "url": "https://api.closebot.com", "description": "CloseBot API Endpoint" } ], "paths": { "/account/apiKey": { "post": { "tags": [ "Account" ], "summary": "Create API Key", "description": "Creates a new API key.", "requestBody": { "description": "Key name", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/CreateApiKeyOutput" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyOutput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyOutput" } } } } } }, "get": { "tags": [ "Account" ], "summary": "List API keys", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKeyDTO" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKeyDTO" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKeyDTO" } } } } } } } }, "/account/apiKey/{keyId}": { "delete": { "tags": [ "Account" ], "summary": "Delete API Key", "description": "Deletes an API key.", "parameters": [ { "name": "keyId", "in": "path", "description": "The key ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/agency/current": { "get": { "tags": [ "Agency" ], "summary": "Get agency", "description": "Retrieve the current agency details.\r\n\r\nCurrently, CloseBot accounts can only be part of one agency.", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AgencyDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AgencyDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AgencyDto" } } } } } } }, "/agency/usage": { "get": { "tags": [ "Agency" ], "summary": "Get usage", "parameters": [ { "name": "scopes", "in": "query", "description": "Comma-separated list of scopes to retrieve. Scopes are: bots, storage, users, responses.", "style": "form", "schema": { "type": "string", "default": "bots,storage,users,responses" } } ], "responses": { "200": { "description": "Success" } } } }, "/agency/invite": { "post": { "tags": [ "Agency" ], "summary": "Invite users", "requestBody": { "description": "Emails to invite", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteUserInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/InviteUserInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/InviteUserInput" } } } }, "responses": { "200": { "description": "Success" } } }, "delete": { "tags": [ "Agency" ], "summary": "Revoke invitation", "parameters": [ { "name": "email", "in": "query", "description": "The invited email to revoke", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/agency": { "get": { "tags": [ "Agency" ], "summary": "List agencies", "description": "List all agencies the account is a part of.\r\n\r\nCurrently, CloseBot accounts can only be part of one agency.", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgencyDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgencyDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgencyDto" } } } } } } } }, "/agency/billing/refill": { "post": { "tags": [ "Billing" ], "summary": "Refill agency wallet", "description": "Attempts to charge the payment method on file for the agency to refill the agency wallet.\r\n\r\n\r\nInvoking this endpoint will charge you. Use with caution.\r\n", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/agency/billing/refill/source/{sourceId}": { "post": { "tags": [ "Billing" ], "summary": "Refill source wallet", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateRefillDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/agency/billing/re-billing": { "get": { "tags": [ "Billing" ], "summary": "Get re-billing settings", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ReBillingDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReBillingDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReBillingDto" } } } } } }, "put": { "tags": [ "Billing" ], "summary": "Update re-billing", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReBillingUpdateInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReBillingUpdateInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReBillingUpdateInput" } } } }, "responses": { "200": { "description": "Success" } } } }, "/agency/billing/balance": { "get": { "tags": [ "Billing" ], "summary": "Get agency balance", "description": "Gets the balance of the agency.", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BalanceDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BalanceDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BalanceDto" } } } } } } }, "/agency/billing/options": { "get": { "tags": [ "Billing" ], "summary": "Get agency billing", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } } } } } }, "put": { "tags": [ "Billing" ], "summary": "Update agency billing", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBillingConfigInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateBillingConfigInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateBillingConfigInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BillingOptionsDto" } } } } } } }, "/agency/billing/balance/source/{sourceId}": { "get": { "tags": [ "Billing" ], "summary": "Get source balance", "description": "Gets the balance of the source.", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BalanceDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BalanceDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BalanceDto" } } } } } } }, "/agency/billing/transactions/source/{sourceId}": { "get": { "tags": [ "Billing" ], "summary": "List source transactions", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "status", "in": "query", "description": "Filter by status when included. Statuses are: pending, succeeded, failed.", "style": "form", "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "description": "", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } } } } } }, "post": { "tags": [ "Billing" ], "summary": "Add source transaction", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddSourceTransactionDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddSourceTransactionDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddSourceTransactionDto" } } } }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TransactionDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TransactionDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TransactionDto" } } } } } } }, "/agency/billing/transactions": { "get": { "tags": [ "Billing" ], "summary": "List agency transactions", "parameters": [ { "name": "status", "in": "query", "description": "Filter by status when included. Statuses are: pending, succeeded, failed.", "style": "form", "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 1 } }, { "name": "pageSize", "in": "query", "description": "", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 20 } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } } } } } } } }, "/agency/billing/usages": { "get": { "tags": [ "Billing" ], "summary": "List billed usages", "parameters": [ { "name": "startTime", "in": "query", "description": "The start time.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "endTime", "in": "query", "description": "The end time.", "style": "form", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BilledUsageDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BilledUsageDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BilledUsageDto" } } } } } } } }, "/agency/billing/transactions/source/{sourceId}/{id}": { "delete": { "tags": [ "Billing" ], "summary": "Delete source transaction", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "id", "in": "path", "description": "ID of the transaction to delete.", "required": true, "style": "simple", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success" } } } }, "/bot/ai": { "post": { "tags": [ "Bot" ], "summary": "Create bot with AI", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AiCreateBotInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AiCreateBotInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AiCreateBotInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotDto" } } } } } } }, "/bot/{id}/source/{sourceId}": { "post": { "tags": [ "Bot" ], "summary": "Attach a source to a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachSourceInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AttachSourceInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AttachSourceInput" } } } }, "responses": { "200": { "description": "Success" } } }, "delete": { "tags": [ "Bot" ], "summary": "Detach a source from a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/bot": { "post": { "tags": [ "Bot" ], "summary": "Create a new bot", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateBotInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateBotInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateBotInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotDto" } } } } } }, "get": { "tags": [ "Bot" ], "summary": "List bots", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotDto" } } } } } } } }, "/bot/{id}": { "delete": { "tags": [ "Bot" ], "summary": "Delete a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } }, "get": { "tags": [ "Bot" ], "summary": "Get a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotDto" } } } } } }, "put": { "tags": [ "Bot" ], "summary": "Update a bot", "description": "Updates fields in a bot.\r\n\r\nOnly non-null fields are updated. Any missing or null field is ignored.", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBotInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateBotInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateBotInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotDto" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateBotErrorResponse" } } } } } } }, "/bot/{id}/duplicate": { "post": { "tags": [ "Bot" ], "summary": "Duplicate a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotDto" } } } } } } }, "/bot/{id}/export": { "get": { "tags": [ "Bot" ], "summary": "Export a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botVersion", "in": "query", "description": "The bot version (x.y.z). If not provided, the latest version is exported.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ExportBotResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ExportBotResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ExportBotResponse" } } } } } } }, "/bot/bbb/templates": { "get": { "tags": [ "Bot" ], "summary": "Get bot builder builder templates", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "type": "string" } } }, "application/json": { "schema": { "type": "array", "items": { "type": "string" } } }, "text/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } } } }, "/bot/{id}/steps": { "get": { "tags": [ "Bot" ], "summary": "Get steps for a version", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botVersion", "in": "query", "description": "The bot version (x.y.z).", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { } }, "application/json": { "schema": { } }, "text/json": { "schema": { } } } } } } }, "/bot/nodeDescriptors": { "get": { "tags": [ "Bot" ], "summary": "Get the node descriptors", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/NodeInformation" } }, "application/json": { "schema": { "$ref": "#/components/schemas/NodeInformation" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NodeInformation" } } } } } } }, "/bot/{id}/publish": { "post": { "tags": [ "Bot" ], "summary": "Publish a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PublishBotResponse" } } } } } } }, "/bot/{id}/save": { "post": { "tags": [ "Bot" ], "summary": "Save a bot", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveBotInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SaveBotInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/SaveBotInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SaveBotResponse" } } } } } } }, "/bot/{id}/saveTools": { "post": { "tags": [ "Bot" ], "summary": "Save bot tools", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ToolInputDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ToolInputDto" } } }, "application/*+json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ToolInputDto" } } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotToolDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotToolDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotToolDto" } } } } } } } }, "/bot/{id}/version/{version}": { "put": { "tags": [ "Bot" ], "summary": "Update a bot version", "parameters": [ { "name": "id", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "version", "in": "path", "description": "The version ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateVersionInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateVersionInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateVersionInput" } } } }, "responses": { "200": { "description": "Success" } } } }, "/botMetric/agencySummary": { "get": { "tags": [ "BotMetric" ], "summary": "Get agency summary", "parameters": [ { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AgencyDashboardSummaryResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AgencyDashboardSummaryResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AgencyDashboardSummaryResponse" } } } } } } }, "/botMetric/actionCount": { "get": { "tags": [ "BotMetric" ], "summary": "Get action count", "parameters": [ { "name": "leadId", "in": "query", "description": "Optional lead ID.", "style": "form", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "botId", "in": "query", "description": "Optional bot ID.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "Optional start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "Optional end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "integer", "format": "int32" } }, "application/json": { "schema": { "type": "integer", "format": "int32" } }, "text/json": { "schema": { "type": "integer", "format": "int32" } } } } } } }, "/botMetric/actions": { "get": { "tags": [ "BotMetric" ], "summary": "Get actions", "parameters": [ { "name": "leadId", "in": "query", "description": "Optional lead ID.", "style": "form", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "botId", "in": "query", "description": "Optional bot ID.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "Optional start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "Optional end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "maxCount", "in": "query", "description": "Optional maximum number of actions to return.", "style": "form", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricAction" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricAction" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricAction" } } } } } } } }, "/botMetric/agencyMetric": { "get": { "tags": [ "BotMetric" ], "summary": "Get agency metric", "parameters": [ { "name": "metric", "in": "query", "description": "The metric to get. Valid options: responses, bookings, activeSources, contacts, totalStorage, revenue.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "The start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "The end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "resolution", "in": "query", "description": "The resolution.", "style": "form", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/botMetric/bookingGraph": { "get": { "tags": [ "BotMetric" ], "summary": "Get booking graph", "parameters": [ { "name": "start", "in": "query", "description": "The start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "The end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "resolution", "in": "query", "description": "The resolution. Valid options are hourly, daily, or monthly.", "style": "form", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/botMetric/leaderboard": { "get": { "tags": [ "BotMetric" ], "summary": "Get global leaderboard", "parameters": [ { "name": "metric", "in": "query", "description": "The metric to get. Valid options: responses, bookings, contacts.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "The start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "The end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "numTopLeaders", "in": "query", "description": "The number of top leaders to return.", "style": "form", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } } } } } } }, "/botMetric/localleaderboard": { "get": { "tags": [ "BotMetric" ], "summary": "Get local leaderboard", "parameters": [ { "name": "metric", "in": "query", "description": "The metric to get. Valid options: responses, bookings, contacts.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "The start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "The end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "numSurroundingAgencies", "in": "query", "description": "The number of surrounding agencies to return.", "style": "form", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaderboardResponse" } } } } } } } }, "/botMetric/logs": { "get": { "tags": [ "BotMetric" ], "summary": "Get logs", "parameters": [ { "name": "botId", "in": "query", "description": "Optional bot ID.", "style": "form", "schema": { "type": "string" } }, { "name": "messageId", "in": "query", "description": "Optional message ID.", "style": "form", "schema": { "type": "string" } }, { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "leadId", "in": "query", "description": "Optional lead ID.", "style": "form", "schema": { "type": "string" } }, { "name": "actionId", "in": "query", "description": "Optional action ID.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "Optional start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "Optional end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "maxCount", "in": "query", "description": "Optional maximum number of logs to return.", "style": "form", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricLog" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricLog" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricLog" } } } } } } } }, "/botMetric/messageCount": { "get": { "tags": [ "BotMetric" ], "summary": "Get message count", "parameters": [ { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "leadId", "in": "query", "description": "Optional lead ID.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "Optional start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "Optional end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "integer", "format": "int32" } }, "application/json": { "schema": { "type": "integer", "format": "int32" } }, "text/json": { "schema": { "type": "integer", "format": "int32" } } } } } } }, "/botMetric/messageFeedback": { "get": { "tags": [ "BotMetric" ], "summary": "Get messages with feedback", "parameters": [ { "name": "leadId", "in": "query", "description": "The lead ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MessageFeedbackResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MessageFeedbackResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageFeedbackResponse" } } } } } }, "post": { "tags": [ "BotMetric" ], "summary": "Save message feedback", "requestBody": { "description": "The message feedback request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageFeedbackRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageFeedbackRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/MessageFeedbackRequest" } } } }, "responses": { "200": { "description": "Success" } } } }, "/botMetric/messageLikes": { "get": { "tags": [ "BotMetric" ], "summary": "Get messages with likes", "parameters": [ { "name": "leadId", "in": "query", "description": "The lead ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MessageLikesResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MessageLikesResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageLikesResponse" } } } } } } }, "/botMetric/messageReason": { "get": { "tags": [ "BotMetric" ], "summary": "Get message feedback reason", "parameters": [ { "name": "messageId", "in": "query", "description": "The message ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MessageReason" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MessageReason" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MessageReason" } } } } } } }, "/botMetric/messages": { "get": { "tags": [ "BotMetric" ], "summary": "Get messages", "parameters": [ { "name": "sourceId", "in": "query", "description": "Optional source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "leadId", "in": "query", "description": "Optional lead ID.", "style": "form", "schema": { "type": "string" } }, { "name": "start", "in": "query", "description": "Optional start date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "end", "in": "query", "description": "Optional end date.", "style": "form", "schema": { "type": "string", "format": "date-time" } }, { "name": "maxCount", "in": "query", "description": "Optional maximum number of messages to return.", "style": "form", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricMessage" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricMessage" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricMessage" } } } } } } } }, "/botVariables/{botId}/{sourceId}": { "get": { "tags": [ "BotSourceVariable" ], "summary": "Get source variables", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableDto" } } } } }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "post": { "tags": [ "BotSourceVariable" ], "summary": "Update a source variable", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The list of variables to update.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableUpdateInput" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableUpdateInput" } } }, "application/*+json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableUpdateInput" } } } } }, "responses": { "200": { "description": "Success" }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/botTemplates": { "get": { "tags": [ "BotTemplate" ], "summary": "List templates", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotTemplateDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotTemplateDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BotTemplateDto" } } } } } } } }, "/bot/{botId}/testSession": { "post": { "tags": [ "BotTesting" ], "summary": "Create a test session", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TestSession" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TestSession" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TestSession" } } } } } }, "get": { "tags": [ "BotTesting" ], "summary": "List test sessions", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "The offset.", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "maxCount", "in": "query", "description": "The maximum count.", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 100 } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ListLeadDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ListLeadDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ListLeadDto" } } } } } } }, "/bot/{botId}/testSession/{leadId}": { "delete": { "tags": [ "BotTesting" ], "summary": "Delete a test session", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "leadId", "in": "path", "description": "The lead ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "BotTesting" ], "summary": "Update a test session", "parameters": [ { "name": "leadId", "in": "path", "description": "The lead ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botId", "in": "path", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The update session input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSessionInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateSessionInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateSessionInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UpdateSessionDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSessionDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateSessionDto" } } } } } } }, "/bot/{botId}/testSession/{leadId}/force-step": { "post": { "tags": [ "BotTesting" ], "summary": "Force processing", "parameters": [ { "name": "leadId", "in": "path", "description": "The lead ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botId", "in": "path", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/bot/{botId}/testSession/messages/{leadId}": { "get": { "tags": [ "BotTesting" ], "summary": "Listen for messages", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "leadId", "in": "path", "description": "The lead ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/bot/{botId}/testSession/{leadId}/rollback": { "post": { "tags": [ "BotTesting" ], "summary": "Rollback a test session", "parameters": [ { "name": "leadId", "in": "path", "description": "", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botId", "in": "path", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackOutput" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackOutput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BotTestingRollbackOutput" } } } } } } }, "/bot/{botId}/testSession/message": { "post": { "tags": [ "BotTesting" ], "summary": "Send a message to a test session", "parameters": [ { "name": "botId", "in": "path", "description": "The bot ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSessionMessageInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TestSessionMessageInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/TestSessionMessageInput" } } } }, "responses": { "200": { "description": "Success" } } } }, "/hierarchy": { "post": { "tags": [ "Hierarchy" ], "summary": "Add a folder", "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddHierarchyInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddHierarchyInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddHierarchyInput" } } } }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/AddHierarchyOutput" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AddHierarchyOutput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddHierarchyOutput" } } } } } }, "get": { "tags": [ "Hierarchy" ], "summary": "List folders", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListHierarchyResult" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListHierarchyResult" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListHierarchyResult" } } } } }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/hierarchy/{id}": { "delete": { "tags": [ "Hierarchy" ], "summary": "Delete a folder", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the folder to delete.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "get": { "tags": [ "Hierarchy" ], "summary": "Get a folder", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the folder to get.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ListHierarchyResult" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ListHierarchyResult" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ListHierarchyResult" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Hierarchy" ], "summary": "Update a folder", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the folder to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HierarchyInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HierarchyInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/HierarchyInput" } } } }, "responses": { "200": { "description": "Success" }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/lead/{leadId}": { "delete": { "tags": [ "Lead" ], "summary": "Delete a lead", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead to delete.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "get": { "tags": [ "Lead" ], "summary": "Get a lead", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead to get.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LeadDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LeadDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LeadDto" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Lead" ], "summary": "Update lead fields", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/lead": { "get": { "tags": [ "Lead" ], "summary": "List leads", "parameters": [ { "name": "page", "in": "query", "description": "The page number.", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "pageSize", "in": "query", "description": "The page size.", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 20 } }, { "name": "sourceId", "in": "query", "description": "The source ID.", "style": "form", "schema": { "type": "string" } }, { "name": "leadId", "in": "query", "description": "The lead ID.", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LeadDtoPaginated" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LeadDtoPaginated" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LeadDtoPaginated" } } } } } } }, "/lead/search": { "post": { "tags": [ "Lead" ], "summary": "Search leads", "requestBody": { "description": "The search query input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchQueryInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SearchQueryInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/SearchQueryInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeadDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeadDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeadDto" } } } } }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/lead/{leadId}/instance/{botId}": { "put": { "tags": [ "Lead" ], "summary": "Update a lead instance", "parameters": [ { "name": "leadId", "in": "path", "description": "The ID of the lead to update.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "botId", "in": "path", "description": "The ID of the bot to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The update instance input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceUpdateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/InstanceUpdateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/InstanceUpdateDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/library/files/{fileId}/source/{sourceId}": { "post": { "tags": [ "Library" ], "summary": "Attach a file to a source", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to attach.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The ID of the source to attach the file to.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } }, "delete": { "tags": [ "Library" ], "summary": "Detach a file from a source", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to detach.", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sourceId", "in": "path", "description": "The ID of the source to detach the file from.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/library/files/{fileId}": { "delete": { "tags": [ "Library" ], "summary": "Delete a file", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to delete.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "get": { "tags": [ "Library" ], "summary": "Get a file metadata", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to get.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FileDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FileDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FileDto" } } } } } }, "put": { "tags": [ "Library" ], "summary": "Replace file content", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "newFile": { "type": "string", "format": "binary" } } }, "encoding": { "newFile": { "style": "form" } } } } }, "responses": { "200": { "description": "Success" } } } }, "/library/files/{fileId}/scrape-pages": { "get": { "tags": [ "Library" ], "summary": "Get the scrape pages for a file", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to get the scrape pages for.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WebscrapePageDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WebscrapePageDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WebscrapePageDto" } } } } } } }, "put": { "tags": [ "Library" ], "summary": "Update the scrape pages for a file", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to update the scrape pages for.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The input containing the new scrape pages.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebscrapePageUpdateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WebscrapePageUpdateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/WebscrapePageUpdateDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/library/files": { "get": { "tags": [ "Library" ], "summary": "List files", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileDto" } } } } } } }, "post": { "tags": [ "Library" ], "summary": "Upload a file", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" } } }, "encoding": { "file": { "style": "form" } } } } }, "responses": { "200": { "description": "Success" } } } }, "/library/webscrape": { "post": { "tags": [ "Library" ], "summary": "Create a Web-Scrape file", "requestBody": { "description": "The input containing the webscrape information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadWebscrapeToSourceInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UploadWebscrapeToSourceInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UploadWebscrapeToSourceInput" } } } }, "responses": { "200": { "description": "Success" } } } }, "/library/files/{fileId}/view": { "get": { "tags": [ "Library" ], "summary": "Get file content", "parameters": [ { "name": "fileId", "in": "path", "description": "The ID of the file to view.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/bot-live-demo/{botId}": { "post": { "tags": [ "LiveDemo" ], "summary": "Create Live Demo", "parameters": [ { "name": "botId", "in": "path", "description": "The ID of the Bot", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } } } } } }, "get": { "tags": [ "LiveDemo" ], "summary": "List Live Demos", "parameters": [ { "name": "botId", "in": "path", "description": "The ID of the Bot", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiveDemoDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiveDemoDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiveDemoDto" } } } } } } } }, "/bot-live-demo/live/{key}/session": { "post": { "tags": [ "LiveDemo" ], "summary": "Create Live Demo Session", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LiveDemoSessionDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoSessionDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoSessionDto" } } } } } } }, "/bot-live-demo/{botId}/{key}": { "delete": { "tags": [ "LiveDemo" ], "summary": "Delete Live Demo", "parameters": [ { "name": "botId", "in": "path", "description": "The ID of the Bot", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "key", "in": "path", "description": "The key of the live demo", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } } } } } }, "put": { "tags": [ "LiveDemo" ], "summary": "Update Live Demo", "parameters": [ { "name": "botId", "in": "path", "description": "The ID of the Bot", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "key", "in": "path", "description": "The key of the live demo", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LiveDemoCreateDto" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } } } } } } }, "/bot-live-demo/live/{key}": { "get": { "tags": [ "LiveDemo" ], "summary": "Get Live Demo", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoDto" } } } } } } }, "/bot-live-demo/live/{key}/session/{sessionLeadId}": { "get": { "tags": [ "LiveDemo" ], "summary": "Get Live Demo Lead", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sessionLeadId", "in": "path", "description": "The session lead ID", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } }, "put": { "tags": [ "LiveDemo" ], "summary": "Update Live Demo Fields", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sessionLeadId", "in": "path", "description": "The session lead ID", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LeadUpdateDto" } } } }, "responses": { "200": { "description": "Success" } } } }, "/bot-live-demo/live/{key}/session/{sessionLeadId}/message": { "post": { "tags": [ "LiveDemo" ], "summary": "Stream Live Demo Messages", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sessionLeadId", "in": "path", "description": "The session lead ID", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiveDemoMessageInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LiveDemoMessageInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/LiveDemoMessageInput" } } } }, "responses": { "200": { "description": "Success" } } } }, "/bot-live-demo/live/{key}/session/{sessionLeadId}/stream": { "get": { "tags": [ "LiveDemo" ], "summary": "Stream Live Demo Messages", "parameters": [ { "name": "key", "in": "path", "description": "The key of the demo", "required": true, "style": "simple", "schema": { "type": "string" } }, { "name": "sessionLeadId", "in": "path", "description": "The session lead ID", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } } }, "/notifications/{id}": { "delete": { "tags": [ "Notification" ], "summary": "Delete a notification", "parameters": [ { "name": "id", "in": "path", "description": "", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "default": { "description": "Error", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/NotificationDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } } } } } }, "put": { "tags": [ "Notification" ], "summary": "Update a notification", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the notification to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The notification update input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationUpdateDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationUpdateDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NotificationUpdateDto" } } } }, "responses": { "default": { "description": "Error", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/NotificationDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } } } } } } }, "/notifications/forwarding": { "get": { "tags": [ "Notification" ], "summary": "Get notification forwarding settings", "responses": { "200": { "description": "Success" } } }, "put": { "tags": [ "Notification" ], "summary": "Update notification forwarding settings", "requestBody": { "description": "The notification forwarding settings.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationForwardingDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/NotificationForwardingDto" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/NotificationForwardingDto" } } } }, "responses": { "200": { "description": "Success" }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/notifications": { "get": { "tags": [ "Notification" ], "summary": "List notifications", "responses": { "default": { "description": "Error", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationDto" } } } } } } } }, "/persona": { "post": { "tags": [ "Persona" ], "summary": "Create a new persona", "requestBody": { "description": "The persona input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePersonaInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreatePersonaInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreatePersonaInput" } } } }, "responses": { "200": { "description": "Success" } } }, "get": { "tags": [ "Persona" ], "summary": "List personas", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersonaDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersonaDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PersonaDto" } } } } } } } }, "/persona/{id}": { "delete": { "tags": [ "Persona" ], "summary": "Delete a persona", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the persona to delete.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "get": { "tags": [ "Persona" ], "summary": "Get a persona", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the persona to get.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PersonaDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PersonaDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PersonaDto" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Persona" ], "summary": "Update a persona", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the persona to update.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The persona input.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonaInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonaInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdatePersonaInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PersonaDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PersonaDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PersonaDto" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/smart-faq/answered-followup": { "post": { "tags": [ "SmartFAQ" ], "summary": "Follow up on answered FAQs", "requestBody": { "description": "The request containing a list of lead IDs.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnsweredFAQFollowUpRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AnsweredFAQFollowUpRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AnsweredFAQFollowUpRequest" } } } }, "responses": { "200": { "description": "Success" } } } }, "/smart-faq/answer": { "post": { "tags": [ "SmartFAQ" ], "summary": "Answer multiple FAQs", "requestBody": { "description": "The answer multiple FAQs request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnswerMultipleFAQsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AnswerMultipleFAQsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AnswerMultipleFAQsRequest" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } } } } } } }, "/smart-faq": { "post": { "tags": [ "SmartFAQ" ], "summary": "Create a new FAQ", "requestBody": { "description": "The create FAQ request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSmartFAQRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateSmartFAQRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateSmartFAQRequest" } } } }, "responses": { "201": { "description": "Created" } } }, "get": { "tags": [ "SmartFAQ" ], "summary": "List FAQs", "parameters": [ { "name": "sourceId", "in": "query", "description": "The source ID of the FAQs.", "style": "form", "schema": { "type": "string" } }, { "name": "state", "in": "query", "description": "The state of the FAQs. \"compressed\" or \"uncompressed\".", "style": "form", "schema": { "type": "string" } }, { "name": "answered", "in": "query", "description": "The answered status of the FAQs. \"answered\" or \"unanswered\".", "style": "form", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SmartFAQDto" } } } } } } } }, "/smart-faq/{id}": { "delete": { "tags": [ "SmartFAQ" ], "summary": "Delete an FAQ", "parameters": [ { "name": "id", "in": "path", "description": "The ID of the FAQ to delete.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content" }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/agency/source": { "post": { "tags": [ "Source" ], "summary": "Add a source", "requestBody": { "description": "Source information.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddSourceInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddSourceInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddSourceInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } }, "get": { "tags": [ "Source" ], "summary": "List sources", "description": "Retrieves sources within the current agency.", "parameters": [ { "name": "pageSize", "in": "query", "description": "Size of each page (max 100)", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 20 } }, { "name": "page", "in": "query", "description": "The page number. For example, page 5 with page size of 20 would start at offset 100.", "style": "form", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "query", "in": "query", "description": "Search by source name", "style": "form", "schema": { "type": "string" } }, { "name": "category", "in": "query", "description": "Search by only specific categories (GHL, HubSpot, WebHook, etc)", "style": "form", "schema": { "type": "string" } }, { "name": "order", "in": "query", "description": "How results should be ordered. \"+\" or \"-\" prefix to specific ascending or descending.", "style": "form", "schema": { "type": "string", "default": "+id" } }, { "name": "forceTokenRefresh", "in": "query", "description": "When true, access token for all returned sources are refreshed.", "style": "form", "schema": { "type": "boolean", "default": false } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SourceDtoPaginated" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SourceDtoPaginated" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SourceDtoPaginated" } } } } } } }, "/agency/source/{id}": { "delete": { "tags": [ "Source" ], "summary": "Delete a source", "description": "Deletes a source and all associated information from Closebot.\r\n\r\nAlso attempts to uninstall the Closebot app from the external CRM.", "parameters": [ { "name": "id", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success" } } }, "get": { "tags": [ "Source" ], "summary": "Get a source", "description": "Retrieves information for a single source.", "operationId": "Get a source", "parameters": [ { "name": "id", "in": "path", "description": "The source ID", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } } } } } } }, "/agency/source/{id}/calendars": { "get": { "tags": [ "Source" ], "summary": "List source calendars", "description": "Lists all calendars attached to a source.\r\n\r\nThis will return both manually added calendars and calendars from the external CRM.", "parameters": [ { "name": "id", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceCalendarDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceCalendarDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceCalendarDto" } } } } } } } }, "/agency/source/{id}/channels": { "get": { "tags": [ "Source" ], "summary": "List source channels", "description": "Lists all channels available to a source.", "parameters": [ { "name": "id", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceChannelDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceChannelDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceChannelDto" } } } } } } } }, "/agency/source/{id}/fields": { "get": { "tags": [ "Source" ], "summary": "List source fields", "description": "", "parameters": [ { "name": "id", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SourceFieldCollectionDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SourceFieldCollectionDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SourceFieldCollectionDto" } } } } } } }, "/agency/source/{id}/tags": { "get": { "tags": [ "Source" ], "summary": "List source tags", "parameters": [ { "name": "id", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceTagDto" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceTagDto" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceTagDto" } } } } } } } }, "/agency/source/{sourceId}": { "put": { "tags": [ "Source" ], "summary": "Update a source", "description": "Updates fields in a source.\r\n\r\nOnly non-null fields are updated. Any missing or null field is ignored.", "parameters": [ { "name": "sourceId", "in": "path", "description": "The source ID.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The fields to update.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSourceInput" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateSourceInput" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateSourceInput" } } } }, "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SourceDto" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "type": "string" } }, "application/json": { "schema": { "type": "string" } }, "text/json": { "schema": { "type": "string" } } } } } } }, "/webhook/event/{sourceId}": { "post": { "tags": [ "Webhook" ], "summary": "Send a webhook event", "parameters": [ { "name": "sourceId", "in": "path", "description": "The ID of the WebHook source.", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "The body of the webhook event.", "content": { "application/json": { "schema": { } }, "text/json": { "schema": { } }, "application/*+json": { "schema": { } } } }, "responses": { "200": { "description": "Success" } } } } }, "components": { "schemas": { "AddHierarchyInput": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the folder", "nullable": true }, "parentId": { "type": "string", "description": "The parent ID of the folder", "nullable": true } }, "additionalProperties": false }, "AddHierarchyOutput": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the folder", "nullable": true } }, "additionalProperties": false }, "AddSourceInput": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "category": { "type": "string", "nullable": true }, "key": { "type": "string", "nullable": true }, "accessToken": { "type": "string", "nullable": true }, "refreshToken": { "type": "string", "nullable": true }, "expiresIn": { "type": "integer", "format": "int32", "nullable": true }, "autoShutoff": { "type": "boolean", "nullable": true }, "gracefulGoodbye": { "type": "boolean", "nullable": true }, "summarizeAttachments": { "type": "boolean", "nullable": true }, "webhookCallback": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AddSourceTransactionDto": { "type": "object", "properties": { "amount": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AgencyDashboardSummaryResponse": { "type": "object", "properties": { "currentMonthMessageCount": { "type": "integer", "description": "The number of messages sent to leads in the current month", "format": "int32" }, "lastMonthMessageCount": { "type": "integer", "description": "The number of messages sent to leads in the last month", "format": "int32" }, "totalStorage": { "type": "number", "description": "The total storage used by the agency", "format": "double" }, "currentMonthSuccessfulBookings": { "type": "integer", "description": "The number of successful bookings in the current month", "format": "int32" }, "lastMonthSuccessfulBookings": { "type": "integer", "description": "The number of successful bookings in the last month", "format": "int32" }, "currentMonthActiveSources": { "type": "integer", "description": "The number of active sources in the current month", "format": "int32" }, "lastMonthActiveSources": { "type": "integer", "description": "The number of active sources in the last month", "format": "int32" }, "currentUsers": { "type": "integer", "description": "The number of users in the current month", "format": "int32" }, "currentMonthContacts": { "type": "integer", "description": "The number of leads in the current month", "format": "int32" }, "lastMonthContacts": { "type": "integer", "description": "The number of leads in the last month", "format": "int32" } }, "additionalProperties": false }, "AgencyDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "members": { "type": "array", "items": { "$ref": "#/components/schemas/AgencyMemberDto" }, "nullable": true } }, "additionalProperties": false }, "AgencyMemberDto": { "type": "object", "properties": { "accountId": { "type": "string", "nullable": true }, "role": { "type": "string", "nullable": true }, "authId": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AgencySourceFAQState": { "enum": [ "Uncompressed", "Compressed" ], "type": "integer", "format": "int32" }, "AiCreateBotInput": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the new bot", "nullable": true }, "description": { "type": "string", "description": "The prompt to use to create the new bot", "nullable": true }, "category": { "type": "string", "description": "The source category of the new bot (GHL, WebHook, etc.)", "nullable": true }, "folderId": { "type": "string", "description": "The folder/group to place the newly created bot", "nullable": true } }, "additionalProperties": false }, "AnswerFAQRequest": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "answer": { "type": "string", "nullable": true } }, "additionalProperties": false }, "AnswerMultipleFAQsRequest": { "type": "object", "properties": { "faQs": { "type": "array", "items": { "$ref": "#/components/schemas/AnswerFAQRequest" }, "nullable": true } }, "additionalProperties": false }, "AnsweredFAQFollowUpRequest": { "type": "object", "properties": { "faqId": { "type": "string", "description": "The answered FAQ.", "nullable": true }, "leadIds": { "type": "array", "items": { "type": "string" }, "description": "The leads to follow with.", "nullable": true } }, "additionalProperties": false }, "ApiKeyDTO": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "AttachSourceInput": { "type": "object", "properties": { "tags": { "type": "array", "items": { "$ref": "#/components/schemas/ContactTag" }, "nullable": true }, "channels": { "type": "array", "items": { "type": "string" }, "nullable": true }, "personaNameOverride": { "type": "string", "nullable": true }, "enabled": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "BalanceDto": { "type": "object", "properties": { "balance": { "type": "integer", "description": "Balance in smallest unit of currency (cents in USD).", "format": "int64" }, "currency": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BilledUsageDto": { "type": "object", "properties": { "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time" }, "responses": { "type": "integer", "format": "int32" }, "libraryBytes": { "type": "integer", "format": "int64" }, "users": { "type": "integer", "format": "int32" }, "responseCost": { "type": "integer", "format": "int64" }, "libraryCost": { "type": "integer", "format": "int64" }, "userCost": { "type": "integer", "format": "int64" } }, "additionalProperties": false }, "BillingOptionsDto": { "type": "object", "properties": { "overBillingEnabled": { "type": "boolean" }, "usageBillingEnabled": { "type": "boolean" }, "autoRefillEnabled": { "type": "boolean" }, "topUpAmount": { "type": "integer", "format": "int64" }, "refillThreshold": { "type": "integer", "format": "int64" }, "currency": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "modifiedAt": { "type": "string", "nullable": true }, "modifiedBy": { "type": "string", "nullable": true }, "versions": { "type": "array", "items": { "$ref": "#/components/schemas/BotVersionDto" }, "nullable": true }, "sources": { "type": "array", "items": { "$ref": "#/components/schemas/BotSourceDto" }, "nullable": true }, "personaIds": { "type": "array", "items": { "type": "string" }, "nullable": true }, "favorited": { "type": "boolean" }, "locked": { "type": "boolean" }, "reschedulingEnabled": { "type": "boolean" }, "category": { "type": "string", "nullable": true }, "folderId": { "type": "string", "nullable": true }, "followUpActive": { "type": "boolean" }, "followUpSequences": { "type": "array", "items": { "$ref": "#/components/schemas/FollowUpSequenceDto" }, "nullable": true }, "smartFollowUp": { "type": "boolean" }, "followUpRepeat": { "type": "boolean" }, "followUpVarianceMinutes": { "type": "integer", "format": "int32" }, "followUpExtraPrompt": { "type": "string", "nullable": true }, "tools": { "type": "array", "items": { "$ref": "#/components/schemas/BotToolDto" }, "nullable": true } }, "additionalProperties": false }, "BotInstanceDto": { "type": "object", "properties": { "botId": { "type": "string", "nullable": true }, "botVersion": { "type": "string", "nullable": true }, "followUpTimezoneKind": { "type": "string", "nullable": true }, "followUpTimezone": { "type": "string", "nullable": true }, "followUpTime": { "type": "string", "format": "date-time", "nullable": true }, "isSmartFollowUpTime": { "type": "boolean" } }, "additionalProperties": false }, "BotMetricAction": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "actionId": { "type": "string", "nullable": true }, "leadId": { "type": "string", "nullable": true }, "sourceId": { "type": "string", "nullable": true }, "botId": { "type": "string", "nullable": true }, "nodeId": { "type": "integer", "format": "int32" }, "frontendNodeId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotMetricActivity": { "type": "object", "properties": { "activity": { "type": "string", "nullable": true }, "data": { "type": "string", "nullable": true }, "timeData": { "type": "string", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "BotMetricAttachment": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL of the attachment", "nullable": true } }, "additionalProperties": false }, "BotMetricLog": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "botId": { "type": "string", "nullable": true }, "messageId": { "type": "string", "nullable": true }, "sourceId": { "type": "string", "nullable": true }, "leadId": { "type": "string", "nullable": true }, "actionId": { "type": "string", "nullable": true }, "severity": { "type": "integer", "format": "int32", "nullable": true }, "message": { "type": "string", "nullable": true }, "prompt": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricPrompt" }, "nullable": true }, "response": { "type": "string", "nullable": true }, "promptTokens": { "type": "integer", "format": "int32", "nullable": true }, "completionTokens": { "type": "integer", "format": "int32", "nullable": true }, "provider": { "type": "string", "nullable": true }, "model": { "type": "string", "nullable": true }, "purpose": { "type": "string", "nullable": true }, "body": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotMetricMessage": { "type": "object", "properties": { "messageId": { "type": "string", "description": "The unique ID of the message", "nullable": true }, "sourceId": { "type": "string", "description": "The ID of the source", "nullable": true }, "leadId": { "type": "string", "description": "The ID of the lead", "nullable": true }, "botId": { "type": "string", "description": "The optional ID of the bot", "nullable": true }, "personaId": { "type": "string", "description": "The optional ID of the persona", "nullable": true }, "channel": { "type": "string", "description": "The optional channel of the message", "nullable": true }, "fromBot": { "type": "boolean", "description": "Whether the message was sent from the bot" }, "direction": { "type": "string", "description": "The direction of the message (inbound or outbound)", "nullable": true }, "message": { "type": "string", "description": "The content of the message", "nullable": true }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricAttachment" }, "description": "The list of attachments associated with the message", "nullable": true }, "timestamp": { "type": "string", "description": "The timestamp when the message was sent", "format": "date-time" }, "activities": { "type": "array", "items": { "$ref": "#/components/schemas/BotMetricActivity" }, "description": "The list of activities associated with the message", "nullable": true } }, "additionalProperties": false }, "BotMetricPrompt": { "type": "object", "properties": { "kind": { "type": "string", "nullable": true }, "body": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotNodeGroup": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "order": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "BotNodePropertyCondition": { "type": "object", "properties": { "key": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotPersonaDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotSourceDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "category": { "type": "string", "nullable": true }, "key": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/ContactTag" }, "nullable": true }, "channelList": { "type": "array", "items": { "type": "string" }, "nullable": true }, "personaNameOverride": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" } }, "additionalProperties": false }, "BotTemplateDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "level": { "type": "string", "nullable": true }, "industry": { "type": "string", "nullable": true }, "tags": { "type": "array", "items": { "type": "string" }, "nullable": true }, "videoUrl": { "type": "string", "nullable": true }, "previewUrl": { "type": "string", "nullable": true }, "tier": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotTestingRollbackInput": { "type": "object", "properties": { "messageId": { "type": "string", "description": "The ID of the first message to delete. All subsequent messages will also be deleted.", "nullable": true } }, "additionalProperties": false }, "BotTestingRollbackOutput": { "type": "object", "properties": { "deletedMessageIds": { "type": "array", "items": { "type": "string" }, "description": "The IDs of the deleted messages", "nullable": true }, "deletedActionIds": { "type": "array", "items": { "type": "string" }, "description": "The IDs of the deleted actions", "nullable": true } }, "additionalProperties": false }, "BotToolDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" }, "options": { "$ref": "#/components/schemas/BotToolOptions" } }, "additionalProperties": false }, "BotToolOptions": { "type": "object", "additionalProperties": false }, "BotVariableDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotVariableUpdateInput": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "BotVersionDto": { "type": "object", "properties": { "version": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "published": { "type": "boolean" }, "modifiedAt": { "type": "string", "format": "date-time" }, "modifiedBy": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ContactTag": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "approveDeny": { "type": "boolean" }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateApiKeyInput": { "type": "object", "properties": { "name": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateApiKeyOutput": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "key": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "expiresAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "CreateBotInput": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the new bot", "nullable": true }, "templateId": { "type": "string", "description": "The template ID to use to create the new bot", "nullable": true }, "importKdl": { "type": "string", "description": "The KDL template to import into the new bot", "nullable": true }, "folderId": { "type": "string", "description": "The folder ID to place the new bot in", "nullable": true }, "category": { "type": "string", "description": "The category of the new bot", "nullable": true } }, "additionalProperties": false }, "CreatePersonaInput": { "type": "object", "properties": { "personaName": { "type": "string", "description": "The name of the persona", "nullable": true }, "description": { "type": "string", "description": "The description of the persona", "nullable": true }, "voiceStyles": { "type": "string", "description": "The voice styles of the persona", "nullable": true }, "howToRespond": { "type": "string", "description": "The how to respond of the persona", "nullable": true }, "typoPercent": { "type": "integer", "description": "The typo percent of the persona", "format": "int32" }, "breakupLargeMessagePercent": { "type": "integer", "description": "The breakup large message percent of the persona", "format": "int32" }, "responseTime": { "type": "string", "description": "The response time of the persona", "nullable": true }, "responseDelay": { "type": "integer", "description": "The response delay of the persona", "format": "int32" }, "aiProviderPreferences": { "type": "array", "items": { "type": "string" }, "description": "The AI provider preferences of the persona", "nullable": true }, "color": { "type": "string", "description": "The color of the persona", "nullable": true }, "imageData": { "type": "string", "description": "The image data of the persona", "nullable": true } }, "additionalProperties": false }, "CreateRefillDto": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64" }, "currency": { "type": "string", "nullable": true } }, "additionalProperties": false }, "CreateSmartFAQRequest": { "type": "object", "properties": { "sourceId": { "type": "string", "description": "The source ID of the FAQ", "nullable": true }, "question": { "type": "string", "description": "The question of the FAQ", "nullable": true }, "answer": { "type": "string", "description": "The answer of the FAQ", "nullable": true } }, "additionalProperties": false }, "DataTypeInfo": { "type": "object", "properties": { "dataTypeName": { "type": "string", "nullable": true }, "properties": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyInfo" }, "nullable": true }, "displayName": { "type": "string", "nullable": true } }, "additionalProperties": false }, "DynamicOutputHandleInfo": { "type": "object", "properties": { "linkedProperty": { "type": "string", "nullable": true }, "labelPropertyName": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ExportBotResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "The bot ID", "nullable": true }, "kdl": { "type": "string", "description": "The KDL for the bot", "nullable": true }, "version": { "type": "string", "description": "The version of the bot", "nullable": true } }, "additionalProperties": false }, "FileDto": { "type": "object", "properties": { "fileId": { "type": "string", "nullable": true }, "fileName": { "type": "string", "nullable": true }, "lastModified": { "type": "string", "format": "date-time" }, "fileType": { "type": "string", "nullable": true }, "fileStatus": { "type": "string", "nullable": true }, "fileSize": { "type": "integer", "format": "int64" }, "estimatedFileSize": { "type": "integer", "format": "int64" }, "sources": { "type": "array", "items": { "$ref": "#/components/schemas/FileSourceDto" }, "nullable": true }, "accountId": { "type": "string", "nullable": true }, "uri": { "type": "string", "nullable": true } }, "additionalProperties": false }, "FileSourceDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "category": { "type": "string", "nullable": true } }, "additionalProperties": false }, "FollowUpSequenceDto": { "type": "object", "properties": { "order": { "type": "integer", "format": "int32" }, "duration": { "type": "integer", "format": "int32" }, "unit": { "type": "string", "nullable": true } }, "additionalProperties": false }, "HierarchyInput": { "type": "object", "properties": { "name": { "type": "string", "description": "The new name of the folder", "nullable": true } }, "additionalProperties": false }, "InstanceUpdateDto": { "type": "object", "properties": { "followUpTime": { "type": "string", "description": "The follow up time of the instance", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "Invite": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "role": { "type": "string", "nullable": true }, "sourceIds": { "type": "array", "items": { "type": "string" }, "nullable": true } }, "additionalProperties": false }, "InviteUserInput": { "type": "object", "properties": { "invites": { "type": "array", "items": { "$ref": "#/components/schemas/Invite" }, "nullable": true } }, "additionalProperties": false }, "JsonNode": { "type": "object", "properties": { "options": { "$ref": "#/components/schemas/JsonNodeOptions" }, "parent": { "$ref": "#/components/schemas/JsonNode" }, "root": { "$ref": "#/components/schemas/JsonNode" } }, "additionalProperties": false }, "JsonNodeOptions": { "type": "object", "properties": { "propertyNameCaseInsensitive": { "type": "boolean" } }, "additionalProperties": false }, "JsonValue": { "type": "object", "properties": { "options": { "$ref": "#/components/schemas/JsonNodeOptions" }, "parent": { "$ref": "#/components/schemas/JsonNode" }, "root": { "$ref": "#/components/schemas/JsonNode" } }, "additionalProperties": false }, "LeadDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "contactId": { "type": "string", "nullable": true }, "lastMessageTime": { "type": "string", "format": "date-time", "nullable": true }, "lastMessage": { "type": "string", "nullable": true }, "lastMessageDirection": { "type": "string", "nullable": true }, "lastMessageBotId": { "type": "string", "nullable": true }, "mostRecentFailureReason": { "type": "string", "nullable": true }, "mimicSourceId": { "type": "string", "nullable": true }, "source": { "$ref": "#/components/schemas/LeadSourceDto" }, "tags": { "type": "array", "items": { "type": "string" }, "nullable": true }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/LeadFieldDto" }, "nullable": true }, "instances": { "type": "array", "items": { "$ref": "#/components/schemas/BotInstanceDto" }, "nullable": true } }, "additionalProperties": false }, "LeadDtoPaginated": { "type": "object", "properties": { "total": { "type": "integer", "format": "int32" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/LeadDto" }, "nullable": true }, "page": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "LeadFieldDto": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LeadFieldUpdateDto": { "type": "object", "properties": { "field": { "type": "string", "nullable": true }, "value": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LeadSourceDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true } }, "additionalProperties": false }, "LeadUpdateDto": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/components/schemas/LeadFieldUpdateDto" }, "nullable": true } }, "additionalProperties": false }, "LeaderboardResponse": { "type": "object", "properties": { "agencyName": { "type": "string", "description": "The name of the agency", "nullable": true }, "count": { "type": "integer", "description": "The number of the metric", "format": "int32" } }, "additionalProperties": false }, "ListHierarchyResult": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the folder", "nullable": true }, "name": { "type": "string", "description": "The name of the folder", "nullable": true }, "bots": { "type": "array", "items": { "type": "string" }, "description": "The list of bots in the folder", "nullable": true }, "personas": { "type": "array", "items": { "type": "string" }, "description": "The list of personas in the folder", "nullable": true }, "children": { "type": "array", "items": { "type": "string" }, "description": "The list of children folders", "nullable": true } }, "additionalProperties": false }, "ListLeadDto": { "type": "object", "properties": { "leads": { "type": "array", "items": { "$ref": "#/components/schemas/LeadDto" }, "nullable": true }, "total": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "LiveDemoCreateDto": { "type": "object", "properties": { "name": { "type": "string", "description": "The friendly-name of the live demo.", "nullable": true }, "mimicSourceId": { "type": "string", "description": "The source ID to mimic when conversing.", "nullable": true }, "active": { "type": "boolean", "description": "Whether or not this demo is active." } }, "additionalProperties": false }, "LiveDemoDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "key": { "type": "string", "nullable": true }, "organizationId": { "type": "string", "nullable": true }, "active": { "type": "boolean" }, "mimicSourceId": { "type": "string", "nullable": true }, "sourceVariables": { "type": "array", "items": { "$ref": "#/components/schemas/BotVariableDto" }, "nullable": true } }, "additionalProperties": false }, "LiveDemoMessageInput": { "type": "object", "properties": { "message": { "type": "string", "description": "The message to send", "nullable": true } }, "additionalProperties": false }, "LiveDemoSessionDto": { "type": "object", "properties": { "key": { "type": "string", "description": "The key of the live demo used to create this session", "nullable": true }, "sessionLeadId": { "type": "string", "description": "The lead ID of the session", "nullable": true } }, "additionalProperties": false }, "MessageFeedbackRequest": { "type": "object", "properties": { "messageId": { "type": "string", "nullable": true }, "leadId": { "type": "string", "nullable": true }, "reasons": { "type": "string", "nullable": true }, "liked": { "type": "boolean", "nullable": true } }, "additionalProperties": false }, "MessageFeedbackResponse": { "type": "object", "properties": { "feedbackMessageIds": { "type": "array", "items": { "type": "string" }, "description": "The list of message IDs with feedback", "nullable": true } }, "additionalProperties": false }, "MessageLikesResponse": { "type": "object", "properties": { "likedMessageIds": { "type": "array", "items": { "type": "string" }, "description": "The list of message IDs with likes", "nullable": true } }, "additionalProperties": false }, "MessageReason": { "type": "object", "properties": { "reason": { "type": "string", "nullable": true } }, "additionalProperties": false }, "NodeInfo": { "type": "object", "properties": { "className": { "type": "string", "nullable": true }, "displayName": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "group": { "type": "string", "nullable": true }, "properties": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyInfo" }, "nullable": true }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/OutputInfo" }, "nullable": true }, "outputHandles": { "type": "array", "items": { "$ref": "#/components/schemas/OutputHandleInfo" }, "nullable": true }, "dynamicHandles": { "type": "array", "items": { "$ref": "#/components/schemas/DynamicOutputHandleInfo" }, "nullable": true }, "hasInputHandle": { "type": "boolean" }, "hasDynamicVariables": { "type": "boolean" }, "helpUrl": { "type": "string", "nullable": true }, "requiresPaid": { "type": "boolean" }, "order": { "type": "integer", "format": "int32" }, "hidden": { "type": "boolean" } }, "additionalProperties": false }, "NodeInformation": { "type": "object", "properties": { "dataTypes": { "type": "array", "items": { "$ref": "#/components/schemas/DataTypeInfo" }, "nullable": true }, "atomicNodes": { "type": "array", "items": { "$ref": "#/components/schemas/NodeInfo" }, "nullable": true }, "groups": { "type": "array", "items": { "$ref": "#/components/schemas/BotNodeGroup" }, "nullable": true }, "tools": { "type": "array", "items": { "$ref": "#/components/schemas/ToolInfo" }, "nullable": true } }, "additionalProperties": false }, "NotificationDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "kind": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "body": { "type": "string", "nullable": true }, "viewed": { "type": "boolean" }, "timestamp": { "type": "string", "format": "date-time" }, "metadata": { "$ref": "#/components/schemas/_Metadata" } }, "additionalProperties": false }, "NotificationForwardingDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether notification forwarding is enabled" }, "channelsEnabled": { "type": "array", "items": { "type": "string" }, "description": "The channels enabled for notification forwarding", "nullable": true }, "webhookEndpoint": { "type": "string", "description": "The webhook endpoint for notification forwarding", "nullable": true } }, "additionalProperties": false }, "NotificationUpdateDto": { "type": "object", "properties": { "viewed": { "type": "boolean", "description": "Whether the notification has been viewed" } }, "additionalProperties": false }, "OutputHandleInfo": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "label": { "type": "string", "nullable": true }, "color": { "type": "string", "nullable": true } }, "additionalProperties": false }, "OutputInfo": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "displayName": { "type": "string", "nullable": true } }, "additionalProperties": false }, "PersonaDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "agencyId": { "type": "string", "nullable": true }, "personaName": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "color": { "type": "string", "nullable": true }, "imageUri": { "type": "string", "nullable": true }, "voiceStyles": { "type": "string", "nullable": true }, "howToRespond": { "type": "string", "nullable": true }, "typoPercent": { "type": "integer", "format": "int32" }, "breakupLargeMessagePercent": { "type": "integer", "format": "int32" }, "responseTime": { "type": "string", "nullable": true }, "responseDelay": { "type": "integer", "format": "int32" }, "modifiedAt": { "type": "string", "nullable": true }, "modifiedBy": { "type": "string", "nullable": true }, "aiProviderPreferences": { "type": "array", "items": { "type": "string" }, "nullable": true }, "folderId": { "type": "string", "nullable": true }, "botIds": { "type": "array", "items": { "type": "string" }, "nullable": true }, "bots": { "type": "array", "items": { "$ref": "#/components/schemas/BotPersonaDto" }, "nullable": true }, "favorited": { "type": "boolean" }, "default": { "type": "boolean" } }, "additionalProperties": false }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true }, "detail": { "type": "string", "nullable": true }, "instance": { "type": "string", "nullable": true } }, "additionalProperties": { } }, "PropertyInfo": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "type": { "type": "string", "nullable": true }, "enumValues": { "type": "array", "items": { "type": "string" }, "nullable": true }, "displayName": { "type": "string", "nullable": true }, "defaultValue": { "type": "string", "nullable": true }, "group": { "type": "string", "nullable": true }, "conditions": { "type": "array", "items": { "$ref": "#/components/schemas/BotNodePropertyCondition" }, "nullable": true } }, "additionalProperties": false }, "PublishBotResponse": { "type": "object", "properties": { "version": { "type": "string", "nullable": true }, "message": { "$ref": "#/components/schemas/JsonValue" } }, "additionalProperties": false }, "ReBillingDto": { "type": "object", "properties": { "reBillingConfigured": { "type": "boolean" }, "responseUnitCost": { "type": "string", "nullable": true }, "storageUnitCost": { "type": "string", "nullable": true }, "userUnitCost": { "type": "string", "nullable": true }, "tokenMultiplier": { "type": "string", "nullable": true } }, "additionalProperties": false }, "ReBillingUpdateInput": { "type": "object", "properties": { "enabled": { "type": "boolean", "nullable": true }, "responseCost": { "type": "string", "nullable": true }, "storageCost": { "type": "string", "nullable": true }, "userCost": { "type": "string", "nullable": true }, "tokenMultiplier": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SaveBotInput": { "type": "object", "properties": { "botSteps": { } }, "additionalProperties": false }, "SaveBotResponse": { "type": "object", "properties": { "version": { "type": "string", "nullable": true }, "invalidPaths": { "type": "array", "items": { "type": "string" }, "nullable": true }, "message": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SearchQueryInput": { "type": "object", "properties": { "offset": { "type": "integer", "description": "The offset of the search results.", "format": "int32", "nullable": true }, "count": { "type": "integer", "description": "The count of the search results.", "format": "int32", "nullable": true }, "search": { "type": "string", "description": "The search query.", "nullable": true }, "sourceIds": { "type": "array", "items": { "type": "string" }, "description": "The source IDs.", "nullable": true }, "channels": { "type": "array", "items": { "type": "string" }, "description": "The channel IDs.", "nullable": true }, "botIds": { "type": "array", "items": { "type": "string" }, "description": "The bot IDs.", "nullable": true }, "personaIds": { "type": "array", "items": { "type": "string" }, "description": "The persona IDs.", "nullable": true }, "minimumResponses": { "type": "integer", "description": "The minimum number of responses.", "format": "int32", "nullable": true }, "lastMessageDirection": { "type": "string", "description": "The last message direction.", "nullable": true }, "followUpScheduled": { "type": "boolean", "description": "Whether the follow up is scheduled.", "nullable": true } }, "additionalProperties": false }, "SmartFAQDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "agencyId": { "type": "string", "nullable": true }, "sourceId": { "type": "string", "nullable": true }, "question": { "type": "string", "nullable": true }, "answer": { "type": "string", "nullable": true }, "leadIds": { "type": "array", "items": { "type": "string" }, "nullable": true }, "state": { "$ref": "#/components/schemas/AgencySourceFAQState" } }, "additionalProperties": false }, "SourceAvailabilityDto": { "type": "object", "properties": { "dayOfWeekUtc": { "type": "string", "nullable": true }, "startTimeUtc": { "type": "string", "nullable": true }, "duration": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceBotDto": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "botName": { "type": "string", "nullable": true }, "tags": { "type": "array", "items": { "$ref": "#/components/schemas/ContactTag" }, "nullable": true }, "channels": { "type": "array", "items": { "type": "string" }, "nullable": true }, "personaNameOverride": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" } }, "additionalProperties": false }, "SourceCalendarDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceChannelDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceDoNotRespondWindowDto": { "type": "object", "properties": { "start": { "type": "string", "format": "date-time" }, "end": { "type": "string", "format": "date-time" } }, "additionalProperties": false }, "SourceDto": { "type": "object", "properties": { "agencyId": { "type": "string", "nullable": true }, "sourceId": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "category": { "type": "string", "nullable": true }, "key": { "type": "string", "nullable": true }, "accessToken": { "type": "string", "nullable": true }, "address": { "type": "string", "nullable": true }, "connected": { "type": "boolean" }, "autoShutoff": { "type": "boolean" }, "gracefulGoodbye": { "type": "boolean" }, "bots": { "type": "array", "items": { "$ref": "#/components/schemas/SourceBotDto" }, "nullable": true }, "accountsWithAccess": { "type": "array", "items": { "type": "string" }, "nullable": true }, "isAvailabilityContactTimezone": { "type": "boolean" }, "respondWindows": { "type": "array", "items": { "$ref": "#/components/schemas/SourceAvailabilityDto" }, "nullable": true }, "doNotRespondWindows": { "type": "array", "items": { "$ref": "#/components/schemas/SourceDoNotRespondWindowDto" }, "nullable": true }, "summarizeAttachments": { "type": "boolean" }, "respondToReactions": { "type": "boolean" }, "markConversationAsUnread": { "type": "boolean" }, "webhookCallback": { "type": "string", "nullable": true }, "wallet": { "$ref": "#/components/schemas/SourceWalletDto" } }, "additionalProperties": false }, "SourceDtoPaginated": { "type": "object", "properties": { "total": { "type": "integer", "format": "int32" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/SourceDto" }, "nullable": true }, "page": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "SourceFieldCollectionDto": { "type": "object", "properties": { "contact": { "type": "array", "items": { "$ref": "#/components/schemas/SourceFieldDto" }, "nullable": true }, "location": { "type": "array", "items": { "$ref": "#/components/schemas/SourceFieldDto" }, "nullable": true }, "customValue": { "type": "array", "items": { "$ref": "#/components/schemas/SourceFieldDto" }, "nullable": true } }, "additionalProperties": false }, "SourceFieldDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "fieldKey": { "type": "string", "nullable": true }, "dataType": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceTagDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "id": { "type": "string", "nullable": true } }, "additionalProperties": false }, "SourceWalletDto": { "type": "object", "properties": { "reBilling": { "type": "boolean" }, "autoRefill": { "type": "boolean" }, "topUpAmount": { "type": "integer", "format": "int32" }, "refillThreshold": { "type": "integer", "format": "int32" }, "stripeCustomerId": { "type": "string", "nullable": true }, "currency": { "type": "string", "nullable": true }, "responseUnitCostOverride": { "type": "string", "nullable": true }, "storageUnitCostOverride": { "type": "string", "nullable": true }, "userUnitCostOverride": { "type": "string", "nullable": true } }, "additionalProperties": false }, "TestSession": { "type": "object", "properties": { "leadId": { "type": "string", "description": "The lead ID of the test session", "nullable": true }, "sourceId": { "type": "string", "description": "The source ID of the test session", "nullable": true } }, "additionalProperties": false }, "TestSessionMessageInput": { "type": "object", "properties": { "leadId": { "type": "string", "description": "The lead ID", "nullable": true }, "message": { "type": "string", "description": "The message to send", "nullable": true } }, "additionalProperties": false }, "ToolInfo": { "type": "object", "properties": { "className": { "type": "string", "nullable": true }, "displayName": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "properties": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyInfo" }, "nullable": true }, "helpUrl": { "type": "string", "nullable": true }, "hidden": { "type": "boolean" } }, "additionalProperties": false }, "ToolInputDto": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of the tool", "nullable": true }, "enabled": { "type": "boolean", "description": "Whether the tool is enabled" }, "options": { "description": "The options for the tool" } }, "additionalProperties": false }, "TransactionDto": { "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "status": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "amount": { "type": "integer", "format": "int64" }, "currency": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "receiptUrl": { "type": "string", "nullable": true }, "usage": { "$ref": "#/components/schemas/BilledUsageDto" } }, "additionalProperties": false }, "UpdateBillingConfigInput": { "type": "object", "properties": { "overBillingEnabled": { "type": "boolean", "nullable": true }, "autoRefillEnabled": { "type": "boolean", "nullable": true }, "topUpAmount": { "type": "integer", "format": "int64", "nullable": true }, "refillThreshold": { "type": "integer", "format": "int64", "nullable": true } }, "additionalProperties": false }, "UpdateBotErrorResponse": { "type": "object", "properties": { "message": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateBotInput": { "type": "object", "properties": { "favorite": { "type": "boolean", "description": "Whether the bot is favorited", "nullable": true }, "trash": { "type": "boolean", "description": "Whether the bot is trashed", "nullable": true }, "locked": { "type": "boolean", "description": "Whether the bot is locked", "nullable": true }, "rescheduling": { "type": "boolean", "description": "Whether the bot has conversation rescheduling enabled", "nullable": true }, "name": { "type": "string", "description": "The name of the bot", "nullable": true }, "folderId": { "type": "string", "description": "The folder ID of the bot", "nullable": true }, "category": { "type": "string", "description": "The category of the bot", "nullable": true }, "followUpActive": { "type": "boolean", "description": "Whether the bot does follow-ups", "nullable": true }, "followUpSequences": { "type": "array", "items": { "$ref": "#/components/schemas/FollowUpSequenceDto" }, "description": "The follow-up sequences of the bot", "nullable": true }, "smartFollowUp": { "type": "boolean", "description": "Whether the bot does smart follow-ups", "nullable": true }, "followUpRepeat": { "type": "boolean", "description": "Whether the bot repeats the last follow-up sequence", "nullable": true }, "followUpVarianceMinutes": { "type": "integer", "description": "The variance minutes for the follow-ups", "format": "int32", "nullable": true }, "followUpExtraPrompt": { "type": "string", "description": "The extra prompt for the follow-ups", "nullable": true } }, "additionalProperties": false }, "UpdatePersonaInput": { "type": "object", "properties": { "personaName": { "type": "string", "description": "The name of the persona", "nullable": true }, "description": { "type": "string", "description": "The description of the persona", "nullable": true }, "voiceStyles": { "type": "string", "description": "The voice styles of the persona", "nullable": true }, "howToRespond": { "type": "string", "description": "The how to respond of the persona", "nullable": true }, "typoPercent": { "type": "integer", "description": "The typo percent of the persona", "format": "int32", "nullable": true }, "breakupLargeMessagePercent": { "type": "integer", "description": "The breakup large message percent of the persona", "format": "int32", "nullable": true }, "responseTime": { "type": "string", "description": "The response time of the persona", "nullable": true }, "responseDelay": { "type": "integer", "description": "The response delay of the persona", "format": "int32", "nullable": true }, "aiProviderPreferences": { "type": "array", "items": { "type": "string" }, "description": "The AI provider preferences of the persona", "nullable": true }, "folderId": { "type": "string", "description": "The folder ID of the persona", "nullable": true }, "favorited": { "type": "boolean", "description": "Whether the persona is favorited", "nullable": true }, "trash": { "type": "boolean", "description": "Whether the persona is trashed", "nullable": true }, "default": { "type": "boolean", "description": "Whether the persona is default", "nullable": true }, "color": { "type": "string", "description": "The color of the persona", "nullable": true }, "imageData": { "type": "string", "description": "The image data of the persona", "nullable": true } }, "additionalProperties": false }, "UpdateSessionDto": { "type": "object", "properties": { "sessionId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateSessionInput": { "type": "object", "properties": { "mimicSourceId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateSourceInput": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "autoShutoff": { "type": "boolean", "nullable": true }, "gracefulGoodbye": { "type": "boolean", "nullable": true }, "isAvailabilityContactTimezone": { "type": "boolean", "nullable": true }, "respondWindows": { "type": "array", "items": { "$ref": "#/components/schemas/SourceAvailabilityDto" }, "nullable": true }, "doNotRespondWindows": { "type": "array", "items": { "$ref": "#/components/schemas/SourceDoNotRespondWindowDto" }, "nullable": true }, "summarizeAttachments": { "type": "boolean", "nullable": true }, "respondToReactions": { "type": "boolean", "nullable": true }, "markConversationsAsUnread": { "type": "boolean", "nullable": true }, "wallet": { "$ref": "#/components/schemas/UpdateSourceWalletInput" }, "accountsWithAccess": { "type": "array", "items": { "type": "string" }, "nullable": true }, "webhookCallback": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateSourceWalletInput": { "type": "object", "properties": { "reBilling": { "type": "boolean", "nullable": true }, "autoRefill": { "type": "boolean", "nullable": true }, "topUpAmount": { "type": "integer", "format": "int32", "nullable": true }, "refillThreshold": { "type": "integer", "format": "int32", "nullable": true }, "responseUnitCostOverride": { "type": "string", "nullable": true }, "storageUnitCostOverride": { "type": "string", "nullable": true }, "userUnitCostOverride": { "type": "string", "nullable": true }, "stripeCustomerId": { "type": "string", "nullable": true } }, "additionalProperties": false }, "UpdateVersionInput": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the bot version", "nullable": true }, "importKdl": { "type": "string", "description": "The KDL import for the bot version", "nullable": true } }, "additionalProperties": false }, "UploadWebscrapeToSourceInput": { "type": "object", "properties": { "scrapeUrl": { "type": "string", "nullable": true }, "maxBreadth": { "type": "integer", "format": "int32" }, "maxDepth": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "WebscrapePageDto": { "type": "object", "properties": { "url": { "type": "string", "nullable": true }, "enabled": { "type": "boolean" } }, "additionalProperties": false }, "WebscrapePageUpdateDto": { "type": "object", "properties": { "pages": { "type": "array", "items": { "$ref": "#/components/schemas/WebscrapePageDto" }, "nullable": true } }, "additionalProperties": false }, "_Metadata": { "type": "object", "properties": { "aiProviderId": { "type": "string", "nullable": true }, "sourceId": { "type": "string", "nullable": true }, "botId": { "type": "string", "nullable": true }, "rawAiError": { "type": "string", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "Key": { "type": "apiKey", "description": "CloseBot API Key Authorization", "name": "X-CB-KEY", "in": "header" } } }, "security": [ { "Key": [ ] } ] }