@besales/mcp 0.47.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -164
- package/README.onprem.ru.md +35 -0
- package/bin/besales-mcp-http.js +9 -0
- package/bin/besales-onprem.mjs +19 -0
- package/dist/auth/connection-store.d.ts +3 -1
- package/dist/auth/connection-store.js +9 -3
- package/dist/auth/connection-store.js.map +1 -1
- package/dist/auth/oauth-client.d.ts +20 -27
- package/dist/auth/oauth-client.js +31 -23
- package/dist/auth/oauth-client.js.map +1 -1
- package/dist/auth/session-workspace.d.ts +1 -0
- package/dist/auth/session-workspace.js +10 -1
- package/dist/auth/session-workspace.js.map +1 -1
- package/dist/auth/token-storage.js +4 -1
- package/dist/auth/token-storage.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +80 -19
- package/dist/cli.js.map +1 -1
- package/dist/constants/crm-catalog.d.ts +2 -0
- package/dist/constants/crm-catalog.js +3 -0
- package/dist/constants/crm-catalog.js.map +1 -0
- package/dist/http/api-client.d.ts +52 -7
- package/dist/http/api-client.js +131 -66
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/feedback-document-error.d.ts +26 -0
- package/dist/http/feedback-document-error.js +22 -0
- package/dist/http/feedback-document-error.js.map +1 -0
- package/dist/http-server.d.ts +15 -0
- package/dist/http-server.js +378 -0
- package/dist/http-server.js.map +1 -0
- package/dist/instructions/server-instructions.d.ts +1 -1
- package/dist/instructions/server-instructions.js +6 -3
- package/dist/instructions/server-instructions.js.map +1 -1
- package/dist/network/constants.d.ts +25 -0
- package/dist/network/constants.js +26 -0
- package/dist/network/constants.js.map +1 -0
- package/dist/network/failed-verifications.d.ts +10 -0
- package/dist/network/failed-verifications.js +37 -0
- package/dist/network/failed-verifications.js.map +1 -0
- package/dist/network/http-test-fixture.d.ts +3 -0
- package/dist/network/http-test-fixture.js +86 -0
- package/dist/network/http-test-fixture.js.map +1 -0
- package/dist/network/known-keys.d.ts +10 -0
- package/dist/network/known-keys.js +38 -0
- package/dist/network/known-keys.js.map +1 -0
- package/dist/network/memory-credentials.d.ts +11 -0
- package/dist/network/memory-credentials.js +24 -0
- package/dist/network/memory-credentials.js.map +1 -0
- package/dist/network/rate-limit.d.ts +23 -0
- package/dist/network/rate-limit.js +62 -0
- package/dist/network/rate-limit.js.map +1 -0
- package/dist/network/rejected-keys.d.ts +9 -0
- package/dist/network/rejected-keys.js +39 -0
- package/dist/network/rejected-keys.js.map +1 -0
- package/dist/network/request-work.d.ts +8 -0
- package/dist/network/request-work.js +20 -0
- package/dist/network/request-work.js.map +1 -0
- package/dist/network/successful-keys.d.ts +17 -0
- package/dist/network/successful-keys.js +47 -0
- package/dist/network/successful-keys.js.map +1 -0
- package/dist/resources/concepts/external-execution.md +3 -1
- package/dist/resources/concepts/feedback-sheets.md +21 -12
- package/dist/resources/concepts/icp.md +8 -1
- package/dist/resources/concepts/sandbox.md +15 -6
- package/dist/resources/concepts/triggers.md +8 -0
- package/dist/resources/concepts/workbook-classification.md +104 -50
- package/dist/resources/docs/agent-behavior.md +51 -382
- package/dist/resources/docs/campaigns.md +9 -16
- package/dist/resources/docs/crm-integration.md +39 -523
- package/dist/resources/docs/files-and-uploads.md +23 -286
- package/dist/resources/docs/follow-up.md +47 -12
- package/dist/resources/docs/knowledge-base.md +52 -521
- package/dist/resources/docs/pipeline-builder.md +26 -216
- package/dist/resources/docs/pipeline-settings-deep.md +27 -220
- package/dist/resources/docs/platforms.md +106 -519
- package/dist/resources/docs/prompt-anatomy.md +39 -285
- package/dist/resources/docs/routing.md +8 -16
- package/dist/resources/docs/trigger-actions.md +40 -24
- package/dist/resources/docs/variables.md +8 -12
- package/dist/resources/operator-edit.contract.d.ts +7 -0
- package/dist/resources/operator-edit.contract.js +8 -0
- package/dist/resources/operator-edit.contract.js.map +1 -0
- package/dist/resources/registry.js +20 -4
- package/dist/resources/registry.js.map +1 -1
- package/dist/resources/workflows/audit-dialogues.md +23 -12
- package/dist/resources/workflows/compare-models.md +6 -4
- package/dist/resources/workflows/connect-crm-from-scratch.md +15 -12
- package/dist/resources/workflows/connect-datasource-from-scratch.md +5 -4
- package/dist/resources/workflows/extract-from-document.md +8 -6
- package/dist/resources/workflows/operator-edit.md +15 -0
- package/dist/resources/workflows/platform-setup-from-scratch.md +59 -70
- package/dist/resources/workflows/production-readiness-check.md +25 -15
- package/dist/schemas/mcp-tools.json +12061 -6753
- package/dist/schemas/voice-actions-api.contract.json +248 -0
- package/dist/shared/constants/broadcast-reason.constants.d.ts +2 -0
- package/dist/shared/constants/broadcast-reason.constants.js +47 -0
- package/dist/shared/constants/broadcast-reason.constants.js.map +1 -0
- package/dist/shared/constants/crm-stage-pool.constants.d.ts +2 -0
- package/dist/shared/constants/crm-stage-pool.constants.js +3 -0
- package/dist/shared/constants/crm-stage-pool.constants.js.map +1 -0
- package/dist/shared/constants/followup-note.constants.d.ts +3 -0
- package/dist/shared/constants/followup-note.constants.js +4 -0
- package/dist/shared/constants/followup-note.constants.js.map +1 -0
- package/dist/shared/constants/followup-session.constants.d.ts +2 -0
- package/dist/shared/constants/followup-session.constants.js +3 -0
- package/dist/shared/constants/followup-session.constants.js.map +1 -0
- package/dist/shared/constants/funnel-analytics.constants.d.ts +2 -0
- package/dist/shared/constants/funnel-analytics.constants.js +3 -0
- package/dist/shared/constants/funnel-analytics.constants.js.map +1 -0
- package/dist/shared/constants/message-filter.constants.d.ts +7 -0
- package/dist/shared/constants/message-filter.constants.js +8 -0
- package/dist/shared/constants/message-filter.constants.js.map +1 -0
- package/dist/shared/utils/trigger-repeat-mapping.d.ts +72 -0
- package/dist/shared/utils/trigger-repeat-mapping.js +53 -0
- package/dist/shared/utils/trigger-repeat-mapping.js.map +1 -0
- package/dist/skills/besales-dialogue-audit/SKILL.md +31 -20
- package/dist/tasks/task-state-store.js +5 -0
- package/dist/tasks/task-state-store.js.map +1 -1
- package/dist/tools/annotations.js +4 -3
- package/dist/tools/annotations.js.map +1 -1
- package/dist/tools/definitions/agent-design.d.ts +78 -21
- package/dist/tools/definitions/agent-design.js +246 -90
- package/dist/tools/definitions/agent-design.js.map +1 -1
- package/dist/tools/definitions/agent-model-notice.d.ts +5 -0
- package/dist/tools/definitions/agent-model-notice.js +31 -0
- package/dist/tools/definitions/agent-model-notice.js.map +1 -0
- package/dist/tools/definitions/agent-models.d.ts +5 -0
- package/dist/tools/definitions/agent-models.js +26 -0
- package/dist/tools/definitions/agent-models.js.map +1 -0
- package/dist/tools/definitions/agent-settings.d.ts +85 -0
- package/dist/tools/definitions/agent-settings.js +187 -0
- package/dist/tools/definitions/agent-settings.js.map +1 -0
- package/dist/tools/definitions/ai-costs.d.ts +12 -0
- package/dist/tools/definitions/ai-costs.js +142 -0
- package/dist/tools/definitions/ai-costs.js.map +1 -0
- package/dist/tools/definitions/api-tool-request.d.ts +15 -0
- package/dist/tools/definitions/api-tool-request.js +2 -0
- package/dist/tools/definitions/api-tool-request.js.map +1 -0
- package/dist/tools/definitions/behavior-shipped-form.d.ts +182 -0
- package/dist/tools/definitions/behavior-shipped-form.js +185 -0
- package/dist/tools/definitions/behavior-shipped-form.js.map +1 -0
- package/dist/tools/definitions/broadcast-alerts.d.ts +6 -0
- package/dist/tools/definitions/broadcast-alerts.js +72 -0
- package/dist/tools/definitions/broadcast-alerts.js.map +1 -0
- package/dist/tools/definitions/broadcast-analytics.d.ts +102 -18
- package/dist/tools/definitions/broadcast-analytics.js +732 -427
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-scheduler.d.ts +19 -13
- package/dist/tools/definitions/broadcast-scheduler.js +217 -128
- package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
- package/dist/tools/definitions/call-operator-task.schema.d.ts +11 -0
- package/dist/tools/definitions/call-operator-task.schema.js +30 -0
- package/dist/tools/definitions/call-operator-task.schema.js.map +1 -0
- package/dist/tools/definitions/contacts.d.ts +3 -0
- package/dist/tools/definitions/contacts.js +57 -31
- package/dist/tools/definitions/contacts.js.map +1 -1
- package/dist/tools/definitions/crm-platform.d.ts +28 -39
- package/dist/tools/definitions/crm-platform.js +235 -344
- package/dist/tools/definitions/crm-platform.js.map +1 -1
- package/dist/tools/definitions/crm-stage-pool.messages.d.ts +39 -0
- package/dist/tools/definitions/crm-stage-pool.messages.js +43 -0
- package/dist/tools/definitions/crm-stage-pool.messages.js.map +1 -0
- package/dist/tools/definitions/crm-stage-pool.schema.d.ts +64 -0
- package/dist/tools/definitions/crm-stage-pool.schema.js +109 -0
- package/dist/tools/definitions/crm-stage-pool.schema.js.map +1 -0
- package/dist/tools/definitions/custom-reports.d.ts +12 -0
- package/dist/tools/definitions/custom-reports.js +68 -0
- package/dist/tools/definitions/custom-reports.js.map +1 -0
- package/dist/tools/definitions/datasource.d.ts +2 -1
- package/dist/tools/definitions/datasource.js +28 -13
- package/dist/tools/definitions/datasource.js.map +1 -1
- package/dist/tools/definitions/dialog-review-findings-response.d.ts +14 -0
- package/dist/tools/definitions/dialog-review-findings-response.js +23 -0
- package/dist/tools/definitions/dialog-review-findings-response.js.map +1 -0
- package/dist/tools/definitions/dialog-review-safe-response.d.ts +5 -0
- package/dist/tools/definitions/dialog-review-safe-response.js +152 -0
- package/dist/tools/definitions/dialog-review-safe-response.js.map +1 -0
- package/dist/tools/definitions/dialog-review.d.ts +49 -0
- package/dist/tools/definitions/dialog-review.js +383 -0
- package/dist/tools/definitions/dialog-review.js.map +1 -0
- package/dist/tools/definitions/dialogue-analysis.d.ts +46 -0
- package/dist/tools/definitions/dialogue-analysis.js +170 -0
- package/dist/tools/definitions/dialogue-analysis.js.map +1 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.d.ts +7 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.js +41 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.js.map +1 -0
- package/dist/tools/definitions/dialogue-audit-alias.d.ts +67 -0
- package/dist/tools/definitions/dialogue-audit-alias.js +559 -0
- package/dist/tools/definitions/dialogue-audit-alias.js.map +1 -0
- package/dist/tools/definitions/dialogue-export.d.ts +7 -1
- package/dist/tools/definitions/dialogue-export.js +89 -32
- package/dist/tools/definitions/dialogue-export.js.map +1 -1
- package/dist/tools/definitions/dialogue-followup-state.d.ts +9 -0
- package/dist/tools/definitions/dialogue-followup-state.js +69 -0
- package/dist/tools/definitions/dialogue-followup-state.js.map +1 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.d.ts +13 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.js +292 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.js.map +1 -0
- package/dist/tools/definitions/edit-version.d.ts +5 -0
- package/dist/tools/definitions/edit-version.js +20 -0
- package/dist/tools/definitions/edit-version.js.map +1 -0
- package/dist/tools/definitions/external-api-channels.js +17 -15
- package/dist/tools/definitions/external-api-channels.js.map +1 -1
- package/dist/tools/definitions/feedback-document-access.d.ts +16 -0
- package/dist/tools/definitions/feedback-document-access.js +63 -0
- package/dist/tools/definitions/feedback-document-access.js.map +1 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.d.ts +3 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.js +9 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.js.map +1 -0
- package/dist/tools/definitions/follow-up-config.d.ts +79 -0
- package/dist/tools/definitions/follow-up-config.js +258 -0
- package/dist/tools/definitions/follow-up-config.js.map +1 -0
- package/dist/tools/definitions/follow-up-funnel-test.d.ts +4 -3
- package/dist/tools/definitions/follow-up-funnel-test.js +65 -52
- package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
- package/dist/tools/definitions/follow-up-promotion-instructions.d.ts +2 -0
- package/dist/tools/definitions/follow-up-promotion-instructions.js +7 -0
- package/dist/tools/definitions/follow-up-promotion-instructions.js.map +1 -0
- package/dist/tools/definitions/follow-up-setup.d.ts +4 -28
- package/dist/tools/definitions/follow-up-setup.js +20 -87
- package/dist/tools/definitions/follow-up-setup.js.map +1 -1
- package/dist/tools/definitions/follow-up.d.ts +20 -122
- package/dist/tools/definitions/follow-up.js +200 -354
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/followup-getcourse-compat.d.ts +29 -0
- package/dist/tools/definitions/followup-getcourse-compat.js +62 -0
- package/dist/tools/definitions/followup-getcourse-compat.js.map +1 -0
- package/dist/tools/definitions/followup-sequence-config.schema.d.ts +10 -0
- package/dist/tools/definitions/followup-sequence-config.schema.js +14 -0
- package/dist/tools/definitions/followup-sequence-config.schema.js.map +1 -0
- package/dist/tools/definitions/funnel-analytics.d.ts +18 -0
- package/dist/tools/definitions/funnel-analytics.js +150 -0
- package/dist/tools/definitions/funnel-analytics.js.map +1 -0
- package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +5 -9
- package/dist/tools/definitions/getcourse-anchor-refresh.js +26 -31
- package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-outbound-settings.d.ts +46 -0
- package/dist/tools/definitions/getcourse-cold-outbound-settings.js +37 -0
- package/dist/tools/definitions/getcourse-cold-outbound-settings.js.map +1 -0
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +17 -29
- package/dist/tools/definitions/getcourse-cold-welcome.js +182 -242
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
- package/dist/tools/definitions/getcourse-wave-welcome.messages.d.ts +10 -0
- package/dist/tools/definitions/getcourse-wave-welcome.messages.js +17 -0
- package/dist/tools/definitions/getcourse-wave-welcome.messages.js.map +1 -0
- package/dist/tools/definitions/help.js.map +1 -1
- package/dist/tools/definitions/icp-import-source.d.ts +75 -0
- package/dist/tools/definitions/icp-import-source.js +88 -0
- package/dist/tools/definitions/icp-import-source.js.map +1 -0
- package/dist/tools/definitions/inbound-analytics.d.ts +13 -0
- package/dist/tools/definitions/inbound-analytics.js +55 -0
- package/dist/tools/definitions/inbound-analytics.js.map +1 -0
- package/dist/tools/definitions/instagram-comment.templates.d.ts +19 -0
- package/dist/tools/definitions/instagram-comment.templates.js +34 -0
- package/dist/tools/definitions/instagram-comment.templates.js.map +1 -0
- package/dist/tools/definitions/instagram-settings-compat.d.ts +33 -0
- package/dist/tools/definitions/instagram-settings-compat.js +7 -0
- package/dist/tools/definitions/instagram-settings-compat.js.map +1 -0
- package/dist/tools/definitions/knowledge-chunking.d.ts +42 -0
- package/dist/tools/definitions/knowledge-chunking.js +83 -0
- package/dist/tools/definitions/knowledge-chunking.js.map +1 -0
- package/dist/tools/definitions/knowledge-space-search-fields.d.ts +12 -0
- package/dist/tools/definitions/knowledge-space-search-fields.js +30 -0
- package/dist/tools/definitions/knowledge-space-search-fields.js.map +1 -0
- package/dist/tools/definitions/knowledge.d.ts +24 -14
- package/dist/tools/definitions/knowledge.js +342 -233
- package/dist/tools/definitions/knowledge.js.map +1 -1
- package/dist/tools/definitions/legacy-trigger-repeat.d.ts +17 -0
- package/dist/tools/definitions/legacy-trigger-repeat.js +53 -0
- package/dist/tools/definitions/legacy-trigger-repeat.js.map +1 -0
- package/dist/tools/definitions/link-tracking.d.ts +8 -0
- package/dist/tools/definitions/link-tracking.js +141 -38
- package/dist/tools/definitions/link-tracking.js.map +1 -1
- package/dist/tools/definitions/mailing-variant-content.d.ts +75 -0
- package/dist/tools/definitions/mailing-variant-content.js +73 -0
- package/dist/tools/definitions/mailing-variant-content.js.map +1 -0
- package/dist/tools/definitions/model-comparison.d.ts +1 -0
- package/dist/tools/definitions/model-comparison.js +4 -5
- package/dist/tools/definitions/model-comparison.js.map +1 -1
- package/dist/tools/definitions/money-currency.d.ts +5 -0
- package/dist/tools/definitions/money-currency.js +10 -0
- package/dist/tools/definitions/money-currency.js.map +1 -0
- package/dist/tools/definitions/operator-workflow.d.ts +5 -5
- package/dist/tools/definitions/operator-workflow.js +80 -27
- package/dist/tools/definitions/operator-workflow.js.map +1 -1
- package/dist/tools/definitions/platform-funnel-analytics.d.ts +42 -0
- package/dist/tools/definitions/platform-funnel-analytics.js +72 -0
- package/dist/tools/definitions/platform-funnel-analytics.js.map +1 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.d.ts +42 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js +51 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js.map +1 -0
- package/dist/tools/definitions/platform-settings-limits.d.ts +5 -0
- package/dist/tools/definitions/platform-settings-limits.js +6 -0
- package/dist/tools/definitions/platform-settings-limits.js.map +1 -0
- package/dist/tools/definitions/platform-settings-shipped-form.d.ts +37 -0
- package/dist/tools/definitions/platform-settings-shipped-form.js +310 -0
- package/dist/tools/definitions/platform-settings-shipped-form.js.map +1 -0
- package/dist/tools/definitions/platform-settings-update.d.ts +300 -0
- package/dist/tools/definitions/platform-settings-update.js +134 -0
- package/dist/tools/definitions/platform-settings-update.js.map +1 -0
- package/dist/tools/definitions/{getcourse-wave.d.ts → platform-setup-wave.d.ts} +75 -6
- package/dist/tools/definitions/platform-setup-wave.js +1079 -0
- package/dist/tools/definitions/platform-setup-wave.js.map +1 -0
- package/dist/tools/definitions/platform-setup.d.ts +701 -222
- package/dist/tools/definitions/platform-setup.js +313 -752
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/platform-widget-page-rules.schema.d.ts +10 -0
- package/dist/tools/definitions/platform-widget-page-rules.schema.js +7 -0
- package/dist/tools/definitions/platform-widget-page-rules.schema.js.map +1 -0
- package/dist/tools/definitions/prompt-authoring.constants.d.ts +2 -0
- package/dist/tools/definitions/prompt-authoring.constants.js +3 -0
- package/dist/tools/definitions/prompt-authoring.constants.js.map +1 -0
- package/dist/tools/definitions/prompt-batch-controls.d.ts +5 -0
- package/dist/tools/definitions/prompt-batch-controls.js +40 -0
- package/dist/tools/definitions/prompt-batch-controls.js.map +1 -0
- package/dist/tools/definitions/prompt-draft-authoring.d.ts +5 -0
- package/dist/tools/definitions/prompt-draft-authoring.js +24 -0
- package/dist/tools/definitions/prompt-draft-authoring.js.map +1 -0
- package/dist/tools/definitions/prompt-text-projection.d.ts +11 -0
- package/dist/tools/definitions/prompt-text-projection.js +62 -0
- package/dist/tools/definitions/prompt-text-projection.js.map +1 -0
- package/dist/tools/definitions/reviewer-paid.d.ts +19 -0
- package/dist/tools/definitions/reviewer-paid.js +115 -0
- package/dist/tools/definitions/reviewer-paid.js.map +1 -0
- package/dist/tools/definitions/routing-condition-projection.d.ts +31 -0
- package/dist/tools/definitions/routing-condition-projection.js +97 -0
- package/dist/tools/definitions/routing-condition-projection.js.map +1 -0
- package/dist/tools/definitions/schedule-selection-hints.d.ts +3 -0
- package/dist/tools/definitions/schedule-selection-hints.js +42 -0
- package/dist/tools/definitions/schedule-selection-hints.js.map +1 -0
- package/dist/tools/definitions/{scheduled-tasks.d.ts → scheduled-task-alias.d.ts} +12 -10
- package/dist/tools/definitions/scheduled-task-alias.js +207 -0
- package/dist/tools/definitions/scheduled-task-alias.js.map +1 -0
- package/dist/tools/definitions/session.js +3 -3
- package/dist/tools/definitions/session.js.map +1 -1
- package/dist/tools/definitions/setup-init-operation.schema.d.ts +2 -0
- package/dist/tools/definitions/setup-init-operation.schema.js +6 -0
- package/dist/tools/definitions/setup-init-operation.schema.js.map +1 -0
- package/dist/tools/definitions/shared-input.helpers.d.ts +51 -0
- package/dist/tools/definitions/shared-input.helpers.js +323 -0
- package/dist/tools/definitions/shared-input.helpers.js.map +1 -0
- package/dist/tools/definitions/shared.d.ts +414 -284
- package/dist/tools/definitions/shared.js +436 -619
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions/shipped-output-names.d.ts +19 -0
- package/dist/tools/definitions/shipped-output-names.js +123 -0
- package/dist/tools/definitions/shipped-output-names.js.map +1 -0
- package/dist/tools/definitions/task-state.d.ts +5 -5
- package/dist/tools/definitions/task-state.js +2 -1
- package/dist/tools/definitions/task-state.js.map +1 -1
- package/dist/tools/definitions/telegram-personal-capacity.d.ts +4 -0
- package/dist/tools/definitions/telegram-personal-capacity.js +18 -0
- package/dist/tools/definitions/telegram-personal-capacity.js.map +1 -0
- package/dist/tools/definitions/telegram-pool-policy.d.ts +8 -0
- package/dist/tools/definitions/telegram-pool-policy.js +56 -0
- package/dist/tools/definitions/telegram-pool-policy.js.map +1 -0
- package/dist/tools/definitions/touch-history-alias.d.ts +4 -0
- package/dist/tools/definitions/touch-history-alias.js +99 -0
- package/dist/tools/definitions/touch-history-alias.js.map +1 -0
- package/dist/tools/definitions/trigger-action-item.schema.d.ts +254 -0
- package/dist/tools/definitions/trigger-action-item.schema.js +121 -0
- package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -0
- package/dist/tools/definitions/trigger-argument.schema.d.ts +14 -0
- package/dist/tools/definitions/trigger-argument.schema.js +23 -0
- package/dist/tools/definitions/trigger-argument.schema.js.map +1 -0
- package/dist/tools/definitions/trigger-claim-alias.d.ts +10 -0
- package/dist/tools/definitions/trigger-claim-alias.js +90 -0
- package/dist/tools/definitions/trigger-claim-alias.js.map +1 -0
- package/dist/tools/definitions/trigger-echo-projection.d.ts +1 -0
- package/dist/tools/definitions/trigger-echo-projection.js +41 -0
- package/dist/tools/definitions/trigger-echo-projection.js.map +1 -0
- package/dist/tools/definitions/trigger-upsert.tool.d.ts +29 -0
- package/dist/tools/definitions/trigger-upsert.tool.js +122 -0
- package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -0
- package/dist/tools/definitions/v15-port-descriptions.d.ts +11 -0
- package/dist/tools/definitions/v15-port-descriptions.js +30 -0
- package/dist/tools/definitions/v15-port-descriptions.js.map +1 -0
- package/dist/tools/definitions/variables.d.ts +44 -0
- package/dist/tools/definitions/variables.js +310 -0
- package/dist/tools/definitions/variables.js.map +1 -0
- package/dist/tools/definitions/voice-action-input.d.ts +9 -0
- package/dist/tools/definitions/voice-action-input.js +141 -0
- package/dist/tools/definitions/voice-action-input.js.map +1 -0
- package/dist/tools/definitions/widget-customization-compat.d.ts +51 -0
- package/dist/tools/definitions/widget-customization-compat.js +23 -0
- package/dist/tools/definitions/widget-customization-compat.js.map +1 -0
- package/dist/tools/definitions.d.ts +1105 -621
- package/dist/tools/definitions.js +57 -27
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/description-localization.js +3 -2
- package/dist/tools/description-localization.js.map +1 -1
- package/dist/tools/follow-up-request.d.ts +19 -0
- package/dist/tools/follow-up-request.js +81 -0
- package/dist/tools/follow-up-request.js.map +1 -0
- package/dist/tools/followup-revision.d.ts +4 -0
- package/dist/tools/followup-revision.js +29 -0
- package/dist/tools/followup-revision.js.map +1 -0
- package/dist/tools/incomplete-list.js +4 -0
- package/dist/tools/incomplete-list.js.map +1 -1
- package/dist/tools/inventory.js +47 -11
- package/dist/tools/inventory.js.map +1 -1
- package/dist/tools/operation-recovery.d.ts +4 -0
- package/dist/tools/operation-recovery.js +33 -0
- package/dist/tools/operation-recovery.js.map +1 -0
- package/dist/tools/registry-mapping-primary.cases.d.ts +2 -0
- package/dist/tools/registry-mapping-primary.cases.js +753 -0
- package/dist/tools/registry-mapping-primary.cases.js.map +1 -0
- package/dist/tools/registry-mapping-secondary.cases.d.ts +2 -0
- package/dist/tools/registry-mapping-secondary.cases.js +626 -0
- package/dist/tools/registry-mapping-secondary.cases.js.map +1 -0
- package/dist/tools/registry-mapping.cases.d.ts +8 -0
- package/dist/tools/registry-mapping.cases.js +13 -0
- package/dist/tools/registry-mapping.cases.js.map +1 -0
- package/dist/tools/registry-test-fixtures.d.ts +50 -0
- package/dist/tools/registry-test-fixtures.js +120 -0
- package/dist/tools/registry-test-fixtures.js.map +1 -0
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.js +82 -52
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/result.d.ts +1 -0
- package/dist/tools/result.js +90 -22
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/toolsets.d.ts +16 -0
- package/dist/tools/toolsets.js +25 -1
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/types/api-contract.gen.d.ts +105862 -22115
- package/dist/utils/credential-signatures.d.ts +3 -0
- package/dist/utils/credential-signatures.js +10 -0
- package/dist/utils/credential-signatures.js.map +1 -0
- package/dist/utils/data-source-column-name.d.ts +10 -0
- package/dist/utils/data-source-column-name.js +36 -0
- package/dist/utils/data-source-column-name.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +32 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/secret-read-boundary.d.ts +2 -0
- package/dist/utils/secret-read-boundary.js +88 -0
- package/dist/utils/secret-read-boundary.js.map +1 -0
- package/dist/utils/setup-secrets.d.ts +4 -0
- package/dist/utils/setup-secrets.js +40 -0
- package/dist/utils/setup-secrets.js.map +1 -0
- package/docs/agent-models.md +9 -0
- package/docs/agent-usage-guide.full.ru.md +1 -4
- package/docs/analytics-contract.md +67 -0
- package/docs/async-operation-lifecycle.md +10 -3
- package/docs/connect.ru.md +144 -4
- package/docs/contact-company-profile.md +17 -0
- package/docs/contact-recommendations.md +7 -0
- package/docs/crm-stage-pool.md +73 -0
- package/docs/customer-data.md +61 -0
- package/docs/edit-versions.md +36 -0
- package/docs/failure-semantics.md +17 -9
- package/docs/help-navigation.md +15 -42
- package/docs/host-compatibility-matrix.md +72 -93
- package/docs/host-setup.md +33 -35
- package/docs/invariants/public-api-and-contracts.md +16 -0
- package/docs/legacy-action-settings.md +21 -0
- package/docs/main-transfer-dependencies.md +38 -0
- package/docs/mcp2-parity.md +50 -0
- package/docs/modules/analytics.md +79 -0
- package/docs/modules/besales-mcp.md +137 -0
- package/docs/modules/dialog-review-report.md +38 -0
- package/docs/modules/dialogue-followup-adapters.md +39 -0
- package/docs/modules/message-reactions.md +17 -0
- package/docs/modules/network-mode.md +284 -0
- package/docs/modules/prompt-batch-and-dialogue-controls.md +69 -0
- package/docs/pii-policy.md +21 -16
- package/docs/response-size-budget.md +197 -7
- package/docs/secret-read-boundary.md +102 -0
- package/docs/task-state.md +7 -2
- package/docs/telegram-pool-policy.md +19 -0
- package/docs/tool-effects.md +15 -9
- package/docs/tool-surface.md +205 -4
- package/docs/voice-actions-and-inbox.md +95 -0
- package/docs/wazzup-instagram-comments.md +26 -0
- package/package.json +17 -10
- package/scripts/api-source-loader.spec.mjs +40 -0
- package/scripts/audit-bridge-controls.mjs +129 -0
- package/scripts/audit-revert-mutants.mjs +107 -0
- package/scripts/bridge-api-input.spec.mjs +98 -0
- package/scripts/bridge-controls-mutants.mjs +130 -0
- package/scripts/brx3-shipped-refusals.spec.mjs +149 -0
- package/scripts/brx4-ledger-payload.spec.mjs +127 -0
- package/scripts/build-onprem.mjs +108 -0
- package/scripts/connect-clients.sh +141 -0
- package/scripts/connect-scopes.mjs +166 -0
- package/scripts/connect-scopes.spec.mjs +83 -0
- package/scripts/emit-personal-link-carrier.mjs +31 -0
- package/scripts/emit-setup-init-schemas.mjs +24 -0
- package/scripts/emit-tool-routes.mjs +878 -0
- package/scripts/emit-tool-routes.spec.mjs +300 -0
- package/scripts/followup-registry.spec.mjs +107 -0
- package/scripts/generate-crm-rotation-contract.mjs +98 -0
- package/scripts/generate-followup-session-contract.mjs +16 -0
- package/scripts/icp-import-verification/mutate.cjs +70 -0
- package/scripts/import-secret-read-contract.mjs +53 -0
- package/scripts/install-claude-desktop.js +1 -1
- package/scripts/lag-decisions.mjs +37 -0
- package/scripts/lag-decisions.spec.mjs +87 -0
- package/scripts/lag-open-task-owners.mjs +46 -0
- package/scripts/lag-open-task-owners.spec.mjs +78 -0
- package/scripts/lag-payload.mjs +10 -0
- package/scripts/legacy-action-lag.spec.mjs +22 -0
- package/scripts/legacy-field-refusal.shipped.spec.mjs +99 -0
- package/scripts/mcpcompat-handler.mjs +34 -0
- package/scripts/mcpcompat-loader.mjs +36 -0
- package/scripts/mcpcompat-typescript.mjs +3 -0
- package/scripts/platform-settings-shipped-parity.spec.mjs +89 -0
- package/scripts/prbr-round1-recheck.spec.mjs +605 -0
- package/scripts/prbr-shipped-compatibility.spec.mjs +276 -0
- package/scripts/publish-mcp-registry.mjs +98 -0
- package/scripts/publish-mcp-registry.spec.mjs +68 -0
- package/scripts/record-scheduled-task-call.mjs +26 -0
- package/scripts/refusal-probe.mjs +17 -0
- package/scripts/refusal-probe.spec.mjs +29 -0
- package/scripts/registry-diff.mjs +502 -0
- package/scripts/registry-diff.spec.mjs +787 -0
- package/scripts/request-query.mjs +43 -0
- package/scripts/request-query.spec.mjs +82 -0
- package/scripts/route-lag.mjs +23 -0
- package/scripts/route-lag.spec.mjs +30 -0
- package/scripts/sample-args.mjs +174 -0
- package/scripts/sample-args.spec.mjs +160 -0
- package/scripts/shipped-definitions.mjs +197 -0
- package/scripts/shipped-definitions.spec.mjs +57 -0
- package/scripts/shipped-inputs.spec.mjs +136 -0
- package/scripts/shipped-recordings.spec.mjs +19 -0
- package/scripts/shipped-ref.d.mts +5 -0
- package/scripts/shipped-ref.mjs +20 -0
- package/scripts/shipped-ref.spec.mjs +59 -0
- package/scripts/shipped-registry.mjs +107 -0
- package/scripts/shipped-sample-candidates.mjs +69 -0
- package/scripts/shipped-sample-candidates.spec.mjs +117 -0
- package/scripts/shipped-sample.mjs +868 -0
- package/scripts/shipped-sample.spec.mjs +451 -0
- package/scripts/sync-agent-model-schemas.mjs +72 -0
- package/scripts/sync-api-contracts.mjs +85 -0
- package/scripts/sync-api-contracts.spec.mjs +144 -0
- package/scripts/sync-contract-ledger-schemas.mjs +161 -0
- package/scripts/sync-crm-stage-pool-schema.mjs +85 -0
- package/scripts/sync-prompt-draft-schema.mjs +92 -0
- package/scripts/sync-route-map.mjs +94 -0
- package/scripts/sync-schema-descriptions.mjs +25 -0
- package/scripts/sync-tool-inventory.mjs +27 -0
- package/scripts/sync-trigger-argument-schema.mjs +121 -0
- package/scripts/sync-trigger-repeat-mapping.mjs +12 -0
- package/scripts/sync-voice-actions-contract.mjs +67 -0
- package/scripts/sync-voice-actions-tools.mjs +97 -0
- package/scripts/sync-wave-id-schemas.mjs +55 -0
- package/scripts/tool-input-schemas.mjs +46 -0
- package/scripts/tool-input-schemas.spec.mjs +50 -0
- package/scripts/verify-followup-adapters.mjs +235 -0
- package/scripts/verify-secret-read-import.mjs +84 -0
- package/scripts/verify-secret-read-mutants.mjs +143 -0
- package/dist/tools/definitions/analytics.d.ts +0 -40
- package/dist/tools/definitions/analytics.js +0 -233
- package/dist/tools/definitions/analytics.js.map +0 -1
- package/dist/tools/definitions/broadcast-mailing-variants.d.ts +0 -41
- package/dist/tools/definitions/broadcast-mailing-variants.js +0 -194
- package/dist/tools/definitions/broadcast-mailing-variants.js.map +0 -1
- package/dist/tools/definitions/dialogue-audit.d.ts +0 -38
- package/dist/tools/definitions/dialogue-audit.js +0 -292
- package/dist/tools/definitions/dialogue-audit.js.map +0 -1
- package/dist/tools/definitions/getcourse-wave.js +0 -519
- package/dist/tools/definitions/getcourse-wave.js.map +0 -1
- package/dist/tools/definitions/operational-overview.d.ts +0 -3
- package/dist/tools/definitions/operational-overview.js +0 -23
- package/dist/tools/definitions/operational-overview.js.map +0 -1
- package/dist/tools/definitions/scheduled-tasks.js +0 -173
- package/dist/tools/definitions/scheduled-tasks.js.map +0 -1
- package/dist/tools/definitions/trigger-contact-claims.d.ts +0 -7
- package/dist/tools/definitions/trigger-contact-claims.js +0 -60
- package/dist/tools/definitions/trigger-contact-claims.js.map +0 -1
- package/dist/tools/registry-mapping-cases-core.d.ts +0 -38
- package/dist/tools/registry-mapping-cases-core.js +0 -927
- package/dist/tools/registry-mapping-cases-core.js.map +0 -1
- package/dist/tools/registry-mapping-cases-platform.d.ts +0 -2
- package/dist/tools/registry-mapping-cases-platform.js +0 -1052
- package/dist/tools/registry-mapping-cases-platform.js.map +0 -1
- package/dist/tools/trigger-action-config.d.ts +0 -49
- package/dist/tools/trigger-action-config.js +0 -171
- package/dist/tools/trigger-action-config.js.map +0 -1
- package/docs/evals/model-behavior-scorecard.md +0 -80
- package/docs/operation-coverage.md +0 -114
- package/scripts/mock-credentials.js +0 -77
- package/scripts/model-eval-server.js +0 -213
- package/scripts/run-model-eval.js +0 -447
|
@@ -1,519 +1,106 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```json
|
|
109
|
-
{
|
|
110
|
-
"type": "TelegramBot",
|
|
111
|
-
"botToken": "<токен от @BotFather>",
|
|
112
|
-
"isActive": true,
|
|
113
|
-
"isAiEnabled": true,
|
|
114
|
-
"enableCleanupCommands": false
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
| Поле | Описание |
|
|
119
|
-
|---|---|
|
|
120
|
-
| `botToken` | Токен от @BotFather. **Обязательное** для активации. |
|
|
121
|
-
| `enableCleanupCommands` | По умолчанию `false`. Если `true` — Animaly через `setMyCommands` регистрирует у бота меню `/clean` (очистить историю чата) и `/delete` (удалить ChatUser-контакт). Используется только для **TelegramBot**-платформ; на других channel-типах backend отклоняет с 400 (typed validation). Команды реализованы через отдельный сервисный Cleanup Bot — клиент должен добавить себя как `WorkspaceTrustedIdentity` (по `telegram_user_id`/`telegram_username`) ещё ДО первого `/start`. |
|
|
122
|
-
|
|
123
|
-
**Поддерживает:** медиа (фото/видео/документы/аудио/voice/video_note), кнопки (INLINE/REPLY), группы (с ограничениями), polling/webhook, Markdown.
|
|
124
|
-
|
|
125
|
-
**Лимиты:** caption ≤1024, текст ≤4096, файлы ≤50MB.
|
|
126
|
-
|
|
127
|
-
### 3.2. `TelegramPersonal` (личный Telegram-аккаунт через MTProto)
|
|
128
|
-
|
|
129
|
-
```json
|
|
130
|
-
{
|
|
131
|
-
"type": "TelegramPersonal",
|
|
132
|
-
"isActive": true,
|
|
133
|
-
"isAiEnabled": true
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Привязка через `TelegramPersonalAccount` (отдельная сущность):
|
|
138
|
-
|
|
139
|
-
```json
|
|
140
|
-
{
|
|
141
|
-
"phoneNumber": "+79991234567",
|
|
142
|
-
"apiId": 12345,
|
|
143
|
-
"apiHash": "<api hash>",
|
|
144
|
-
"sessionString": "<MTProto сессия>",
|
|
145
|
-
"status": "CONNECTED",
|
|
146
|
-
"dailyMessageLimit": 10,
|
|
147
|
-
"isActiveInCampaigns": true,
|
|
148
|
-
"sendingIntervalMinutes": 2,
|
|
149
|
-
"proxyId": "<Proxy.id>"
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
**Поддерживает:** все медиа, voice, video_note, кнопки только REPLY (Telegram personal не поддерживает inline).
|
|
154
|
-
|
|
155
|
-
**Особенности:**
|
|
156
|
-
- Можно несколько аккаунтов на одну платформу (карусель для рассылок).
|
|
157
|
-
- `dailyMessageLimit` — анти-бан защита (default 10).
|
|
158
|
-
- `restrictionStatus` отслеживает баны Telegram.
|
|
159
|
-
- `messageOpenDelay` (`AgentBehavior`) применяется только здесь.
|
|
160
|
-
|
|
161
|
-
### 3.3. `Wazzup` (агрегатор каналов)
|
|
162
|
-
|
|
163
|
-
```json
|
|
164
|
-
{
|
|
165
|
-
"type": "Wazzup",
|
|
166
|
-
"wazzupCrmKey": "<ключ от Wazzup>",
|
|
167
|
-
"wazzupChannel": "WhatsApp",
|
|
168
|
-
"isActive": true
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
| `wazzupChannel` | Канал |
|
|
173
|
-
|---|---|
|
|
174
|
-
| `WhatsApp` | WhatsApp Business |
|
|
175
|
-
| `Avito` | Avito (через Wazzup) |
|
|
176
|
-
| `Instagram` | Instagram DM (через Wazzup) |
|
|
177
|
-
| `Vk` | ВКонтакте |
|
|
178
|
-
| `Telegram` | Telegram (через Wazzup) |
|
|
179
|
-
| `Viber` | Viber |
|
|
180
|
-
| `Max` | Max (Россия) |
|
|
181
|
-
| `TelegramPersonal` | Telegram Personal через Wazzup |
|
|
182
|
-
|
|
183
|
-
**Поддерживает:** WhatsApp шаблоны (WABA), медиа, кнопки (для Telegram-канала). На WhatsApp — лимит 24h-окна и approved templates.
|
|
184
|
-
|
|
185
|
-
### 3.4. `Avito` (Avito Messenger напрямую)
|
|
186
|
-
|
|
187
|
-
```json
|
|
188
|
-
{
|
|
189
|
-
"type": "Avito",
|
|
190
|
-
"config": {
|
|
191
|
-
"clientId": "<Avito Client ID>",
|
|
192
|
-
"clientSecret": "<...>",
|
|
193
|
-
"userId": "<Avito User ID>",
|
|
194
|
-
"accessToken": "<oauth token>",
|
|
195
|
-
"refreshToken": "<...>",
|
|
196
|
-
"expiresAt": "..."
|
|
197
|
-
},
|
|
198
|
-
"isActive": true
|
|
199
|
-
}
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Подключение (OAuth):** браузерная OAuth-авторизация Avito (`clientId` / `clientSecret` → `accessToken` / `refreshToken`); с OAuth Phase 2 доступно подключение через MCP setup-flow (Setup URL), код авторизации не проходит через чат. Поддерживает: текст, картинки. **Не поддерживает:** кнопки, документы, видео.
|
|
203
|
-
|
|
204
|
-
### 3.5. `Instagram` (Direct API через Facebook Graph)
|
|
205
|
-
|
|
206
|
-
```json
|
|
207
|
-
{
|
|
208
|
-
"type": "Instagram",
|
|
209
|
-
"instagramBusinessAccountId": "<IG account>",
|
|
210
|
-
"instagramPageId": "<Facebook Page>",
|
|
211
|
-
"instagramPageAccessToken": "<encrypted>",
|
|
212
|
-
"instagramTokenExpiresAt": "...",
|
|
213
|
-
"instagramUserAccessToken": "<encrypted>",
|
|
214
|
-
"instagramWebhookVerifyToken": "<token>",
|
|
215
|
-
|
|
216
|
-
"replyToInstagramComments": false,
|
|
217
|
-
"instagramCommentHandlingMode": "MENTIONS_ONLY",
|
|
218
|
-
"instagramCommentReplyMethod": "PRIVATE_DM",
|
|
219
|
-
"instagramCommentKeywords": null,
|
|
220
|
-
"replyToStoryMentions": false,
|
|
221
|
-
|
|
222
|
-
"isActive": true
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
**Особенности:**
|
|
227
|
-
- **24h-окно**: можно отвечать только в течение 24 часов после сообщения пользователя.
|
|
228
|
-
- Комментарии под постами обрабатываются отдельно (`instagramCommentHandlingMode`).
|
|
229
|
-
- Story Mentions/Replies — опционально.
|
|
230
|
-
|
|
231
|
-
**Подключение (OAuth):** канал подключается браузерной OAuth-авторизацией через Facebook Graph API (v21). Поток: `POST /api/instagram/auth/initiate` (под JWT) возвращает `authUrl` с подписанным HMAC-`state` → клиент подтверждает доступ в диалоге Facebook → `GET /api/instagram/auth/callback` обменивает `code` на токены и сохраняет `instagramPageAccessToken` / `instagramUserAccessToken`. Токены не вводятся вручную и не проходят через чат; тот же поток используется при подключении через MCP setup-flow (OAuth Phase 2).
|
|
232
|
-
|
|
233
|
-
### 3.6. `Salebot` (внешний агрегатор)
|
|
234
|
-
|
|
235
|
-
```json
|
|
236
|
-
{
|
|
237
|
-
"type": "Salebot",
|
|
238
|
-
"salebotApiKey": "<API key>",
|
|
239
|
-
"salebotProjectId": "<project id>",
|
|
240
|
-
"salebotGroupId": "<group/bot name>",
|
|
241
|
-
"isActive": true
|
|
242
|
-
}
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Salebot сам подключает Telegram/VK/WhatsApp/etc. Animaly через API Salebot отправляет/принимает сообщения.
|
|
246
|
-
|
|
247
|
-
### 3.7. `SmsGorod` (SMS через сервис)
|
|
248
|
-
|
|
249
|
-
```json
|
|
250
|
-
{
|
|
251
|
-
"type": "SmsGorod",
|
|
252
|
-
"smsgorodApiKey": "<API key>",
|
|
253
|
-
"smsgorodChannel": "DIGIT",
|
|
254
|
-
"smsgorodSender": null,
|
|
255
|
-
"isActive": true
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
| `smsgorodChannel` | Описание |
|
|
260
|
-
|---|---|
|
|
261
|
-
| `DIGIT` | Цифровой номер отправителя (sender необязателен). |
|
|
262
|
-
| `CHAR` | Буквенное имя отправителя — `smsgorodSender` обязателен. |
|
|
263
|
-
|
|
264
|
-
**Лимиты:**
|
|
265
|
-
- Один SMS = 70 символов кириллицей или 160 латиницей.
|
|
266
|
-
- Длинные сообщения разбиваются провайдером.
|
|
267
|
-
- **Не поддерживает:** медиа, кнопки.
|
|
268
|
-
- Рекомендуется задать `AgentChat.maxResponseSymbols` (например, 140), чтобы LLM не генерировал слишком длинно.
|
|
269
|
-
|
|
270
|
-
### 3.8. `VKon` (VK сообщество)
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"type": "VKon",
|
|
275
|
-
"config": {
|
|
276
|
-
"groupId": "<community ID>",
|
|
277
|
-
"accessToken": "<community access token>",
|
|
278
|
-
"secret": "<callback secret>",
|
|
279
|
-
"confirmation": "<callback confirmation string>"
|
|
280
|
-
},
|
|
281
|
-
"isActive": true
|
|
282
|
-
}
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
**Поддерживает:** текст, медиа (фото/видео/аудио/документы), кнопки (как REPLY-клавиатура), карусели.
|
|
286
|
-
|
|
287
|
-
### 3.9. `WebWidget` (встраиваемый виджет на сайт)
|
|
288
|
-
|
|
289
|
-
```json
|
|
290
|
-
{
|
|
291
|
-
"type": "WebWidget",
|
|
292
|
-
"webWidgetAllowedOrigins": ["*"],
|
|
293
|
-
"webWidgetShowPageInfo": true,
|
|
294
|
-
"webWidgetRateLimitPerMinute": 20,
|
|
295
|
-
"webWidgetCustomization": {
|
|
296
|
-
"logo": "https://example.com/logo.png",
|
|
297
|
-
"colors": { "primary": "#7B61FF" },
|
|
298
|
-
"position": "bottom-right",
|
|
299
|
-
"buttonStyle": "rounded"
|
|
300
|
-
},
|
|
301
|
-
"webWidgetMarketingFieldMappings": {
|
|
302
|
-
"utm_source": "<crmFieldId>",
|
|
303
|
-
"utm_campaign": "<crmFieldId>",
|
|
304
|
-
"ymClientId": "<crmFieldId>",
|
|
305
|
-
"googleClientId": "<crmFieldId>"
|
|
306
|
-
},
|
|
307
|
-
"webWidgetEntryUrlVariableMapping": {
|
|
308
|
-
"variableName": "first_visit_url",
|
|
309
|
-
"regex": null
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**Особенности:**
|
|
315
|
-
- Real-time через **Socket.IO** (не webhook).
|
|
316
|
-
- `webWidgetShowPageInfo` (**default `false`**, opt-in) — добавляет в системный промпт блок
|
|
317
|
-
«Контекст страницы»: URL, заголовок и meta description страницы, на которой находится
|
|
318
|
-
посетитель. Работает **только для RAG-агентов** — у SIMPLE- и QA-шаблонов этого блока нет.
|
|
319
|
-
Вложения (файлы, скриншоты) приходят без контекста страницы. Значения санируются: пробелы
|
|
320
|
-
схлопываются, длина режется (url 512 / title 200 / description 400 символов).
|
|
321
|
-
- `webWidgetMarketingFieldMappings` — UTM/yaClientId/gaClientId автоматически отправляются в CRM-поля.
|
|
322
|
-
- Push-кампании **не поддерживаются** (нет инициатора со стороны бота).
|
|
323
|
-
- Особая логика follow-up через `webWidgetLastSeenAt` (см. [`08-follow-up.md`](08-follow-up.md)).
|
|
324
|
-
|
|
325
|
-
### 3.10. `Bitrix24Bot` (Bitrix24 Open Lines)
|
|
326
|
-
|
|
327
|
-
```json
|
|
328
|
-
{
|
|
329
|
-
"type": "Bitrix24Bot",
|
|
330
|
-
"bitrix24BotId": 42,
|
|
331
|
-
"bitrix24BotCode": "animaly_bot_<workspaceId>",
|
|
332
|
-
"bitrix24BotName": "BeSales AI",
|
|
333
|
-
"bitrix24OpenLineId": "5",
|
|
334
|
-
"isActive": true
|
|
335
|
-
}
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
Бот регистрируется в Bitrix24 и принимает сообщения из всех каналов Open Lines (Telegram/WhatsApp/VK/Viber/Avito).
|
|
339
|
-
|
|
340
|
-
**Особенности:**
|
|
341
|
-
- Live-проверка колонки CRM перед отправкой follow-up (см. [`08-follow-up.md`](08-follow-up.md), раздел 4.1).
|
|
342
|
-
- `hasExitedSilentMode` у `ChatUser` — лид/сделка активирована (попала в INCOMING/OUTGOING).
|
|
343
|
-
|
|
344
|
-
### 3.11. `GetCourse` (LMS GetCourse)
|
|
345
|
-
|
|
346
|
-
```json
|
|
347
|
-
{
|
|
348
|
-
"type": "GetCourse",
|
|
349
|
-
"getcourseAccountDomain": "school.getcourse.ru",
|
|
350
|
-
"getcourseSchoolApiKey": "<encrypted>",
|
|
351
|
-
"getcourseEmployeeUserId": 42,
|
|
352
|
-
"getcourseAvailableTransports": ["Site", "Email", "Telegram"],
|
|
353
|
-
"getcourseDefaultTransport": "Site",
|
|
354
|
-
"getcourseWebhookSecret": "<random32bytes>",
|
|
355
|
-
"getcourseDepartments": [
|
|
356
|
-
{ "id": 1, "label": "Отдел продаж" },
|
|
357
|
-
{ "id": 2, "label": "Поддержка" }
|
|
358
|
-
]
|
|
359
|
-
}
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
**Особенности:**
|
|
363
|
-
- **Single Platform** на школу с массивом активных транспортов (`Site`, `Email`, `SMS`, `Telegram`, `Facebook`, `VK`, `Chatium`, `WhatsApp`, `Viber`).
|
|
364
|
-
- Каждое сообщение знает свой транспорт (`ChatUsersMessages.getcourseTransport`).
|
|
365
|
-
- Reply-routing: куда написал — туда отвечаем (`ChatUser.lastGetcourseTransport`).
|
|
366
|
-
- Поддерживает GetCourse как CRM (отдельные `ActionGetCourse*` — см. [`04-triggers-and-actions.md`](04-triggers-and-actions.md)).
|
|
367
|
-
|
|
368
|
-
## 4. Сводная таблица возможностей
|
|
369
|
-
|
|
370
|
-
| Платформа | Кнопки | Медиа | Группы | Push-кампании | 24h-окно |
|
|
371
|
-
|---|---|---|---|---|---|
|
|
372
|
-
| `TelegramBot` | INLINE+REPLY | Все | Да | Да | — |
|
|
373
|
-
| `TelegramPersonal` | REPLY | Все | Да | Да | — |
|
|
374
|
-
| `Wazzup` (WhatsApp) | Inline (WABA) | Да | Да | Через WABA шаблоны | Да |
|
|
375
|
-
| `Wazzup` (Telegram) | Inline | Все | Да | Да | — |
|
|
376
|
-
| `Avito` | Нет | Картинки | Нет | Ограниченно | — |
|
|
377
|
-
| `Instagram` | Quick Replies | Изображения | Нет | Только в 24h-окне | Да |
|
|
378
|
-
| `Salebot` | Зависит от подключённого канала | Зависит | Зависит | Да | Зависит |
|
|
379
|
-
| `SmsGorod` | Нет | Нет | Нет | Да | — |
|
|
380
|
-
| `VKon` | REPLY-клавиатура | Все | Да | Да | — |
|
|
381
|
-
| `WebWidget` | Inline + popup | Да | Нет | **Нет** | — |
|
|
382
|
-
| `Bitrix24Bot` | Зависит от Open Line | Да | Зависит | Да | — |
|
|
383
|
-
| `GetCourse` | Нет (Inbox API ограничен) | Да | Нет | Да | — |
|
|
384
|
-
|
|
385
|
-
## 5. Стратегии ответственного (`responsibleAssigneeStrategy`)
|
|
386
|
-
|
|
387
|
-
| Значение | Поведение |
|
|
388
|
-
|---|---|
|
|
389
|
-
| `KEEP` | Сохранять текущего ответственного в CRM. |
|
|
390
|
-
| `ALWAYS_ONE` | Всегда `fixedResponsibleId`. |
|
|
391
|
-
| `RANDOM_OPERATOR` | Случайный оператор из списка `CrmOperator`. |
|
|
392
|
-
|
|
393
|
-
## 6. PipelineSettings — фильтрация существующих сделок
|
|
394
|
-
|
|
395
|
-
```json
|
|
396
|
-
{
|
|
397
|
-
"platformId": "<platformId>",
|
|
398
|
-
"filters": [
|
|
399
|
-
{
|
|
400
|
-
"fieldId": "PHONE",
|
|
401
|
-
"valueType": "SYSTEM_VARIABLE",
|
|
402
|
-
"value": "phone",
|
|
403
|
-
"action": "LINK"
|
|
404
|
-
}
|
|
405
|
-
]
|
|
406
|
-
}
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
`PipelineSettings` определяет, что делать, если в CRM уже есть сделка с тем же телефоном/email:
|
|
410
|
-
- `LINK` — привязать пользователя к существующей сделке.
|
|
411
|
-
- `IGNORE` — игнорировать (создать новую, или `isBotActive=false`).
|
|
412
|
-
|
|
413
|
-
## 7. Inline-пример: Telegram-бот для интернет-магазина
|
|
414
|
-
|
|
415
|
-
```json
|
|
416
|
-
{
|
|
417
|
-
"type": "TelegramBot",
|
|
418
|
-
"name": "Главный Telegram-бот",
|
|
419
|
-
"botToken": "<TOKEN>",
|
|
420
|
-
"isActive": true,
|
|
421
|
-
"isAiEnabled": true,
|
|
422
|
-
"timezone": "Europe/Moscow",
|
|
423
|
-
|
|
424
|
-
"useDynamicVariables": true,
|
|
425
|
-
"clearDynamicVarsOnHistoryClear": true,
|
|
426
|
-
|
|
427
|
-
"responsibleAssigneeStrategy": "RANDOM_OPERATOR",
|
|
428
|
-
"sendToCrm": false,
|
|
429
|
-
|
|
430
|
-
"sendStartNoteToCrm": true,
|
|
431
|
-
"startNoteTemplate": "Новый лид из Telegram-бота",
|
|
432
|
-
|
|
433
|
-
"sendOperatorTakeoverNoteToCrm": true,
|
|
434
|
-
|
|
435
|
-
"finishAutoEnabled": true,
|
|
436
|
-
"finishAutoDays": 14,
|
|
437
|
-
"sendFinishAutoNoteToCrm": true,
|
|
438
|
-
|
|
439
|
-
"dealMarkerType": "TAG",
|
|
440
|
-
"dealMarkerValue": "telegram-bot"
|
|
441
|
-
}
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
## 8. Inline-пример: SmsGorod для отправки уведомлений
|
|
445
|
-
|
|
446
|
-
```json
|
|
447
|
-
{
|
|
448
|
-
"type": "SmsGorod",
|
|
449
|
-
"name": "SMS-уведомления",
|
|
450
|
-
"smsgorodApiKey": "<KEY>",
|
|
451
|
-
"smsgorodChannel": "CHAR",
|
|
452
|
-
"smsgorodSender": "MyShop",
|
|
453
|
-
"isActive": true,
|
|
454
|
-
"isAiEnabled": false,
|
|
455
|
-
"timezone": "Europe/Moscow"
|
|
456
|
-
}
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
`isAiEnabled=false`: SMS-канал часто не для AI-диалога, а для исходящих уведомлений (через follow-up/кампании).
|
|
460
|
-
|
|
461
|
-
## 9. Inline-пример: Web Widget с UTM-маркетингом
|
|
462
|
-
|
|
463
|
-
```json
|
|
464
|
-
{
|
|
465
|
-
"type": "WebWidget",
|
|
466
|
-
"name": "Виджет на сайте",
|
|
467
|
-
"isActive": true,
|
|
468
|
-
"isAiEnabled": true,
|
|
469
|
-
"timezone": "Europe/Moscow",
|
|
470
|
-
|
|
471
|
-
"webWidgetAllowedOrigins": ["https://shop.example.com", "https://example.com"],
|
|
472
|
-
"webWidgetShowPageInfo": true,
|
|
473
|
-
"webWidgetRateLimitPerMinute": 30,
|
|
474
|
-
|
|
475
|
-
"webWidgetCustomization": {
|
|
476
|
-
"colors": { "primary": "#7B61FF", "background": "#FFFFFF" },
|
|
477
|
-
"position": "bottom-right"
|
|
478
|
-
},
|
|
479
|
-
|
|
480
|
-
"webWidgetMarketingFieldMappings": {
|
|
481
|
-
"utm_source": "<crmFieldId-utm_source>",
|
|
482
|
-
"utm_campaign": "<crmFieldId-utm_campaign>",
|
|
483
|
-
"ymClientId": "<crmFieldId-yandex_client_id>"
|
|
484
|
-
},
|
|
485
|
-
|
|
486
|
-
"webWidgetEntryUrlVariableMapping": {
|
|
487
|
-
"variableName": "first_visit_url"
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
## 10. Граничные случаи и валидация
|
|
493
|
-
|
|
494
|
-
| Правило | Что AI-сервису помнить |
|
|
495
|
-
|---|---|
|
|
496
|
-
| `botToken` обязателен для TelegramBot | Без него `isActive=true` всё равно не сработает. |
|
|
497
|
-
| `wazzupChannel` определяет фичи | На WhatsApp — лимит 24h, на Telegram через Wazzup — нет. |
|
|
498
|
-
| Avito — без кнопок и видео | Не предлагать. |
|
|
499
|
-
| Instagram — только в 24h-окне | Кампании пройдут только тем, кто писал недавно. |
|
|
500
|
-
| WebWidget — нет push-кампаний | Используется только в реальном времени. |
|
|
501
|
-
| SMS — `maxResponseSymbols` критично | LLM может генерировать длинные ответы; для SMS обязательно ограничить (например, 140). |
|
|
502
|
-
| `useCrossPlatformHistory=true` | Требует `UnifiedCustomer`-привязки клиентов. |
|
|
503
|
-
| `finishAutoEnabled=true` | Автозакрытие после `finishAutoDays` дней. Полезно для аналитики «потерянных», но не для активных воронок. |
|
|
504
|
-
| `dealMarkerType=TAG` | Создаёт тег в CRM (например, для атрибуции). |
|
|
505
|
-
| `inboundDealFilterEnabled=true` (GetCourse) | Платформа отвечает только «контактам в волне» (поле/тег на активной сделке). TAG-режим best-effort (скан ~1000 последних сделок); для надёжности — `CUSTOM_FIELD`. Маркер часто = move-signal поле сделки. |
|
|
506
|
-
| Telegram Personal лимиты | `dailyMessageLimit`, `sendingIntervalMinutes` — иначе бан. |
|
|
507
|
-
| `proxyId` для TG Personal | Желательно — Telegram быстро банит без прокси. |
|
|
508
|
-
|
|
509
|
-
## 11. Связь с другими подсистемами
|
|
510
|
-
|
|
511
|
-
| Подсистема | Связь |
|
|
512
|
-
|---|---|
|
|
513
|
-
| **Агенты** ([`01-agents.md`](01-agents.md)) | Все агенты привязаны к платформе. |
|
|
514
|
-
| **Поведение** ([`10-agent-behavior.md`](10-agent-behavior.md)) | Один `AgentBehavior` на платформу. |
|
|
515
|
-
| **Follow-up** ([`08-follow-up.md`](08-follow-up.md)) | WebWidget — особая логика. Bitrix24Bot — live-проверка. |
|
|
516
|
-
| **Кампании** ([`09-campaigns.md`](09-campaigns.md)) | Не все платформы поддерживают; разные лимиты. |
|
|
517
|
-
| **CRM** ([`12-crm-integration.md`](12-crm-integration.md)) | `sendToCrm`, `dealMarkerType`, `responsibleAssigneeStrategy`, `PlatformAmoChatConfig`. |
|
|
518
|
-
| **Переменные** ([`05-variables.md`](05-variables.md)) | `useDynamicVariables`, `webWidgetEntryUrlVariableMapping`. |
|
|
519
|
-
| **CustomVariable** | Привязаны к платформе через `platformId`. |
|
|
1
|
+
# Каналы связи
|
|
2
|
+
|
|
3
|
+
Каноническая сущность Besales — `channels`; секретная и провайдерская конфигурация хранится в
|
|
4
|
+
`channel_connections`. В workspace разрешено несколько экземпляров одного типа, поэтому канал
|
|
5
|
+
всегда выбирается по своему ID, а не по предположению «Telegram здесь один».
|
|
6
|
+
|
|
7
|
+
## Поддерживаемые семейства
|
|
8
|
+
|
|
9
|
+
Рабочая поверхность включает Telegram Bot, Telegram Personal, Wazzup, Instagram DM, Avito, VK,
|
|
10
|
+
SMS, Web Widget, Bitrix24 Bot, Salebot, GetCourse, Voice и External API. Возможности различаются:
|
|
11
|
+
кнопки, media caption, доставка тела собственного файла и подтверждение результата объявляются
|
|
12
|
+
адаптером явно.
|
|
13
|
+
|
|
14
|
+
## Подключение
|
|
15
|
+
|
|
16
|
+
Секреты никогда не передаются через MCP или LLM. Инициализация возвращает короткоживущую setup
|
|
17
|
+
ссылку, пользователь вводит credentials в браузере, а клиент опрашивает статус. OAuth-каналы
|
|
18
|
+
используют тот же принцип: код авторизации завершается сервером и не появляется в чате.
|
|
19
|
+
|
|
20
|
+
После подключения проверь:
|
|
21
|
+
|
|
22
|
+
- соединение принадлежит нужному workspace;
|
|
23
|
+
- webhook подписан и проходит дедупликацию;
|
|
24
|
+
- канал готов принимать входящие события;
|
|
25
|
+
- capability-профиль заполнен без умолчаний для обязательных свойств;
|
|
26
|
+
- агент и пространства знаний привязаны именно к этому экземпляру.
|
|
27
|
+
|
|
28
|
+
## Настройки канала через мост
|
|
29
|
+
|
|
30
|
+
`besales_platform_settings_update` принимает страну разбора телефона в
|
|
31
|
+
`general_settings.phone_parsing_country`: строка передаётся API для проверки по его реестру,
|
|
32
|
+
`null` снимает настройку. От страны зависит, получит ли агент инструмент сохранения телефона;
|
|
33
|
+
`UZ` означает, что девятизначный номер трактуется как узбекский; `RU` выдаёт инструмент без
|
|
34
|
+
разбора девяти цифр — российский номер разбирается по своей длине, девятизначный отклоняется.
|
|
35
|
+
|
|
36
|
+
В `crm_behavior` доступны семь связанных настроек:
|
|
37
|
+
|
|
38
|
+
- `create_deal_on_first_outbound`;
|
|
39
|
+
- `finish_auto_enabled`;
|
|
40
|
+
- `finish_auto_days` — целое число от 1 до защитного потолка 36 500 дней;
|
|
41
|
+
- `send_finish_auto_note_to_crm`;
|
|
42
|
+
- `finish_auto_note_template` — строка либо `null`, который снимает шаблон даже на свежем канале
|
|
43
|
+
без сохранённых `crm_behavior` и `auto_finish`;
|
|
44
|
+
- `getcourse_create_deal_payment_tracking_enabled`;
|
|
45
|
+
- `getcourse_status_deal_fallback_enabled`.
|
|
46
|
+
|
|
47
|
+
Если `crm_behavior` ещё не сохранён, единственное активное CRM-подключение требуется для
|
|
48
|
+
`send_to_crm`, создания сделки по первой исходящей, стратегии и фиксированного ответственного,
|
|
49
|
+
четырёх флагов отправки заметок, трёх полей маркера сделки, четырёх шаблонов заметок и обоих
|
|
50
|
+
GetCourse-флагов. Ноль или несколько подключений дают 422 `CRM_CONNECTION_UNRESOLVED`. При уже
|
|
51
|
+
сохранённом `crm_behavior` подключение этим маршрутом повторно не проверяется.
|
|
52
|
+
|
|
53
|
+
Опасные изменения `create_deal_on_first_outbound`, `send_finish_auto_note_to_crm` и
|
|
54
|
+
`getcourse_create_deal_payment_tracking_enabled` требуют `explicit_confirmation=true`. Последний
|
|
55
|
+
флаг по умолчанию включён: при отсутствующем сохранённом ключе `false` требует
|
|
56
|
+
подтверждения, а `true` проходит как неизменное действующее значение. Включение
|
|
57
|
+
автозавершения не требует подтверждения, опасна отправка заметки.
|
|
58
|
+
|
|
59
|
+
## Входящие и исходящие сообщения
|
|
60
|
+
|
|
61
|
+
Webhook быстро сохраняет сырой факт, дедуплицирует его и ставит обработку в очередь. Тяжёлая
|
|
62
|
+
логика и биллинг не должны задерживать ответ провайдеру. Медиа скачивается единым безопасным
|
|
63
|
+
контуром, проверяется по содержимому и сохраняется в объектное хранилище.
|
|
64
|
+
|
|
65
|
+
Исходящий контент проходит `OutboundDeliveryService`. Прямой вызов адаптера из бизнес-модуля
|
|
66
|
+
запрещён: он обошёл бы governance, идемпотентность, журнал исхода и побочные эффекты доставки.
|
|
67
|
+
|
|
68
|
+
## Имена и жизненный цикл
|
|
69
|
+
|
|
70
|
+
Название и описание канала редактируются пользователем. Удаление канала не превращает его
|
|
71
|
+
локальные правила маршрутизации в правила всего workspace: такие правила удаляются вместе с
|
|
72
|
+
каналом. Исторические сообщения и аудит подчиняются своим правилам хранения, а не имени канала.
|
|
73
|
+
|
|
74
|
+
## Прежняя форма настроек канала
|
|
75
|
+
|
|
76
|
+
`besales_platform_settings_update` принимает прежние выключатели `access_control.is_active` и
|
|
77
|
+
`is_ai_enabled`, а также прежние поля `widget_marketing.web_widget_*`. Мост переносит выключатели,
|
|
78
|
+
список сайтов, лимит, сведения о странице и оформление в `general_settings`; две карты виджета
|
|
79
|
+
остаются в `widget_marketing`. Для списка сайтов пустой объект и пустой список означают
|
|
80
|
+
`['*']` — работать везде; непустой объект получает отказ с адресом поля. Непустой массив
|
|
81
|
+
сохраняется. `null` тоже принимается как `['*']` для совместимости чтения, хотя прежний сервер
|
|
82
|
+
не мог записать голый `null` в JSON-колонку.
|
|
83
|
+
|
|
84
|
+
Во вложенных настройках мост переводит camelCase прежнего DTO в snake_case API: например
|
|
85
|
+
`button.backgroundColor` → `button.background_color`, `window.userMessageGradient` →
|
|
86
|
+
`window.user_message_gradient`, `window.botMessageBackgroundColor` →
|
|
87
|
+
`window.bot_message_background_color` (необязательная заливка сообщений бота, цвет `#RGB` или
|
|
88
|
+
`#RRGGBB`; мост значение не проверяет и не меняет, форму проверяет сервер), `utmSource` →
|
|
89
|
+
`utm_source`, `targetVariableName` → `target_variable_name`, `rules[].useStrictUrlMatching` →
|
|
90
|
+
`rules[].use_strict_url_matching`. Оба имени одного поля вместе дают отказ с адресом, даже если
|
|
91
|
+
значения одинаковы. Голый `null` для оформления и обеих карт
|
|
92
|
+
отклоняется: прежний сервер также не мог записать его в JSON-колонку; присылай изменяемые поля.
|
|
93
|
+
|
|
94
|
+
`general_settings.show_page_info` включает контекст страницы посетителя Web Widget: URL,
|
|
95
|
+
заголовок и meta description. Это opt-in: без включённого флага блок в ход не попадает.
|
|
96
|
+
Значения санируются и ограничиваются по длине; это недоверенные данные страницы.
|
|
97
|
+
Наличие семейства канала в runtime не доказывает возможность подключения через MCP — сверяй
|
|
98
|
+
поддерживаемый тип со схемой `besales_platform_create_init`.
|
|
99
|
+
|
|
100
|
+
## Ответы на комментарии Instagram
|
|
101
|
+
|
|
102
|
+
Настройки поддерживают отдельные утверждённые личные ответы и публичные ответы на жалобы.
|
|
103
|
+
Каждая из трёх групп содержит русскую, узбекскую латинскую и узбекскую кириллическую версию.
|
|
104
|
+
Передаваемый объект заменяет шаблоны целиком: пропуск сохраняет, {} очищает, null убирает.
|
|
105
|
+
Публичный ответ и личное сообщение имеют независимые исходы; неизвестная доставка не повторяется.
|
|
106
|
+
Сначала проверьте доступность записи настроек и подключение канала. Живая проверка Meta выполняется отдельно.
|