Configuración
DobroDeskSdkConfig
Obligatorio
La configuración del framework proporciona la identidad de la aplicación y el ámbito de la cuenta y obtiene un token de autorización nuevo y de corta duración del proveedor de credenciales del host. Las formas del token y del resultado siguen la firma de la plataforma mostrada.
{ apiOrigin: string; integrationId: string; accountScope: string; locale?: SdkLocale; turnstileToken?: string; pollIntervalMs?: number; fetchImpl?: typeof fetch; credentialProvider: () => Promise<{ authorizationToken: string }>; hostActions?: HostActionHandlers; context?: JsonObject }- Errores
- invalid-config
Ciclo de vida y conversación
DobroDeskCapacitorClient
Crea el cliente y valida la configuración.
new DobroDeskCapacitorClient(config: DobroDeskSdkConfig)startSession
Inicia una conversación con un primer mensaje idempotente.
startSession(message: string, options?: Omit<SessionStartInput, 'message'>): Promise<Record<string, unknown>>- Errores
- network
- field-invalid
- idempotency-conflict
- outbox-corrupt
resumeSession
Restaura el estado de la cuenta o una sesión del servidor.
resumeSession(): Promise<Record<string, unknown> | null>- Errores
- network
- session-expired
- outbox-corrupt
refresh
Carga el estado actual de la conversación.
refresh(): Promise<Record<string, unknown>>- Errores
- network
- session-expired
- message-rejected
waitForAssistant
Consulta con tiempos limitados hasta que termina el trabajo del asistente o expira la espera.
waitForAssistant(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<Record<string, unknown>>- Errores
- realtime-unavailable
- network
- session-expired
sendMessage
Envía un mensaje y devuelve su estado de entrega.
sendMessage(text: string, idempotencyKey?: string): Promise<Record<string, unknown>>- Errores
- network
- idempotency-conflict
- conversation-stale
- rate-limited
- message-rejected
flushOutbox
Reintenta mutaciones pendientes con el cuerpo y la clave originales.
flushOutbox(): Promise<readonly Record<string, unknown>[]>- Errores
- network
- outbox-corrupt
- session-expired
resetSession
Borra la sesión, el snapshot y las mutaciones pendientes asociadas a la cuenta.
resetSession(): Promise<void>- Errores
- request-in-progress
- outbox-corrupt
logout
Finaliza la sesión y libera capacidades opcionales.
logout(): Promise<void>- Errores
- outbox-corrupt
presentWidget
Presenta el widget nativo con el contrato compartido.
presentWidget(options?: NativeWidgetOptions): Promise<void>Parámetros
localeSdkLocale?- Locale del widget para el contenido. La web usa auto de forma predeterminada; los bundles nativos admiten actualmente en, uk, de y es.
titleString?- Overrides limitados para las claves de texto compartidas del widget.
subtitleString?- Overrides limitados para las claves de texto compartidas del widget.
appearanceobject?- Objeto compartido appearance-v2: colores, tipografía, diseño y sombra dentro de los límites documentados.
platformobject?- Ajustes específicos de plataforma para área segura, teclado y navegación dentro del contrato de diseño compartido.
reduceMotionboolean?- De forma predeterminada sigue el sistema y las políticas nativas de accesibilidad, batería y temperatura.
viewhome | messages | help- Opciones de navegación nativa y de presentación del launcher o panel web.
articleIdstring?- Contexto JSON limitado proporcionado a acciones del host registradas explícitamente.
hostActionIdsstring[]?- Callbacks permitidos de la aplicación para acciones guiadas del widget. No autentican solicitudes de red.
contextJsonObject?- Contexto JSON limitado proporcionado a acciones del host registradas explícitamente.
- Errores
- invalid-config
- request-in-progress
- field-invalid
closeWidget
Cierra la presentación nativa actual o libera un host montado.
closeWidget(): Promise<void>subscribe
Se suscribe a eventos canónicos del SDK. Para liberar el listener, usa la suscripción, el callback de cancelación o la suscripción de stream que devuelve la plataforma.
subscribe(listener: (event: SdkEvent) => void): Promise<{ remove(): Promise<void> }>operations
Expone operaciones tipadas de formularios, herramientas del cliente, adjuntos y comercio mediante el motor nativo.
operations: DobroDeskRichOperationssubmitForm
Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.
operations.submitForm(requestId: string, values: JsonObject): Promise<JsonValue>Parámetros
requestIdstringObligatorio- Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.
valuesJsonObjectObligatorio- Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- message-rejected
requestClientTool
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
operations.requestClientTool(input: ClientToolRequest): Promise<JsonValue>Parámetros
inputClientToolRequestObligatorio- Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- not_found
completeClientTool
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
operations.completeClientTool(input: ClientToolResult): Promise<JsonValue>Parámetros
inputClientToolResultObligatorio- Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- not_found
clientToolStatus
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
operations.clientToolStatus(callId: string): Promise<JsonValue>Parámetros
callIdstringObligatorio- Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- not_found
procedureAction
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
operations.procedureAction(input: ProcedureActionInput): Promise<JsonValue>Parámetros
input.actionstart | answer | availability | select | calendar_date | back | confirm | declineObligatorio- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
input.valuestringObligatorio- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
input.idempotencyKeystring (16-128 characters)Obligatorio- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
input.procedureId / runId / expectedUpdatedAtstring?- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
input.locale"en" | "uk" | "de" | "es"?- Locale del widget para el contenido. La web usa auto de forma predeterminada; los bundles nativos admiten actualmente en, uk, de y es.
input.stepId / parameterId / timeZonestring?- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
input.nativeCommerceUitrue?- Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- message-rejected
- idempotency-conflict
attachmentIntents
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
operations.attachmentIntents(messageId: string, attachments: readonly AttachmentDescriptor[]): Promise<JsonValue>Parámetros
messageIdstringObligatorio- Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Obligatorio- Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- attachment_policy_failed
- attachment_rate_limited
uploadAttachment
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
operations.uploadAttachment(intent: AttachmentUploadIntent, fileUri: string, mimeType: string): Promise<JsonValue>Parámetros
intentAttachmentUploadIntentObligatorio- Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
fileUristring (file:// or content:// URI)Obligatorio- Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
mimeTypestringObligatorio- Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- attachment_policy_failed
- attachment_rate_limited
listOrders
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
operations.listOrders(query?: CommerceOrderQuery): Promise<JsonValue>Parámetros
queryCommerceOrderQuery- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
orderDetail
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
operations.orderDetail(orderRef: string): Promise<JsonValue>Parámetros
orderRefstringObligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- not_found
createCommerceProposal
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
operations.createCommerceProposal(input: CommerceProposalInput, idempotencyKey: string): Promise<JsonValue>Parámetros
inputCommerceProposalInputObligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
idempotencyKeystring (16-128 characters)Obligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
- idempotency-conflict
confirmCommerceProposal
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
operations.confirmCommerceProposal(proposalId: string, idempotencyKey: string): Promise<JsonValue>Parámetros
proposalIdstringObligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
idempotencyKeystring (16-128 characters)Obligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
- not_found
- idempotency-conflict
commerceProposal
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
operations.commerceProposal(proposalId: string): Promise<JsonValue>Parámetros
proposalIdstringObligatorio- Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
- Devuelve
- Promise<JsonValue>
- Errores
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- not_found
ClientToolRequest
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
{ toolName: string; basisMessageId: string; input: ClientToolPayload }ClientToolResult
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
{ callId: string; output: ClientToolPayload }AttachmentDescriptor
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: AttachmentKind }AttachmentUploadIntent
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
{ clientId: string; attachmentId: string; uploadUrl: string; uploadToken: string; expiresAt: string }CommerceProposalInput
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
{ actionId: "shopify_order_cancel"; selection: { storeReference: string; orderReference: string; lineItems?: { lineItemReference: string; quantity: number }[] } }DobroDeskLoadingState
El estado de carga compartido es idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting o flushing-outbox.
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"SdkEvent
Los eventos nativos y de wrappers usan el envelope compartido de carga, sesión, snapshot, mensaje aceptado, error y sesión eliminada.
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelledPresentación del widget
WidgetExperience
Objeto compartido appearance-v2: colores, tipografía, diseño y sombra dentro de los límites documentados.
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy- Errores
- field-invalid
- unsupported
mountWidget
Presenta el widget nativo con el contrato compartido.
mountWidget(container: HTMLElement, options?: NativeWidgetOptions, callbacks?: DobroDeskEmbeddedCallbacks): Promise<DobroDeskEmbeddedWidget>- Errores
- invalid-config
- request-in-progress
- field-invalid
DobroDeskEmbeddedWidget
Presenta el widget nativo con el contrato compartido.
setVisible(visible: boolean): void; dispose(): Promise<void>NativeOperation (wrapper bridge)
Expone operaciones tipadas de formularios, herramientas del cliente, adjuntos y comercio mediante el motor nativo.
operation: "complete-host-action" | "request-client-tool" | "complete-client-tool" | "client-tool-status" | "submit-form" | "procedure-action" | "attachment-intents" | "upload-attachment" | "list-orders" | "order-detail" | "create-commerce-proposal" | "confirm-commerce-proposal" | "commerce-proposal"complete-host-action (local bridge)
Los puentes de framework codifican la finalización de una acción del host mediante un puente nativo local. No se envía como una operación HTTP a través del cliente nativo directo.
{ operation: "complete-host-action"; requestId: string; actionId: string; result: HostActionResult }Parámetros
requestIdstringObligatorio- Callbacks permitidos de la aplicación para acciones guiadas del widget. No autentican solicitudes de red.
actionIdstringObligatorio- Callbacks permitidos de la aplicación para acciones guiadas del widget. No autentican solicitudes de red.
resultHostActionResultObligatorio- Callbacks permitidos de la aplicación para acciones guiadas del widget. No autentican solicitudes de red.
- Devuelve
- JsonValue
- Errores
- field-invalid
- session-expired
- unsupported
Capacidades opcionales
attachVoice
Conecta la capacidad de voz opcional instalada por el host.
attachVoice(port: DobroDeskVoicePort): Promise<DobroDeskVoiceFacade>- Errores
- unsupported
- invalid-config
voice
Controla una capacidad de voz opcional instalada por el host: inicio, detención, silencio, barge-in y liberación. El widget web puede mostrar una interfaz de voz, pero esta API del SDK solo controla un puente de voz proporcionado por el host.
voice: DobroDeskVoiceFacade | undefinedcreateCapacitorVoicePort
Conecta la capacidad de voz opcional instalada por el host.
createCapacitorVoicePort(bridge): DobroDeskVoicePortvoice lifecycle
Controla una capacidad de voz opcional instalada por el host: inicio, detención, silencio, barge-in y liberación. El widget web puede mostrar una interfaz de voz, pero esta API del SDK solo controla un puente de voz proporcionado por el host.
start(): Promise<void>; stop(): Promise<void>; setMuted(muted: boolean): Promise<void>; bargeIn(): Promise<void>; dispose(): Promise<void>- Errores
- invalid-configuration
- permission-denied
- audio-unavailable
- session-expired
- realtime-unavailable
- invalid-response
- protocol-violation
- stale-frame
- queue-overloaded
- cancelled
- unsupported
push module (native only)
Describe el artefacto push nativo opcional y el registro del host. Los wrappers de framework no exportan un cliente push de JavaScript o Dart; usa el módulo nativo de iOS o Android.
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.Errores
SdkErrorCode
Gestiona códigos estables legibles por máquinas y mantén los diagnósticos del servidor fuera de la interfaz del cliente.
invalid-config | network | http | integration-disabled | integration-paused | origin-not-allowed | turnstile-required | turnstile-failed | request-in-progress | idempotency-conflict | conversation-limit-reached | rate-limited | payload-too-large | field-invalid | conversation-stale | session-expired | realtime-unavailable | message-rejected | outbox-corrupt | unsupported