Konfiguration
DobroDeskSdkConfig
Erforderlich
Die Framework-Konfiguration liefert App-Identität und Kontobereich und bezieht über den Credential-Provider des Hosts ein neues kurzlebiges Authorization-Token. Token- und Ergebnisformen entsprechen der angezeigten Plattform-Signatur.
{ apiOrigin: string; integrationId: string; accountScope: string; locale?: SdkLocale; turnstileToken?: string; pollIntervalMs?: number; fetchImpl?: typeof fetch; credentialProvider: () => Promise<{ authorizationToken: string }>; hostActions?: HostActionHandlers; context?: JsonObject }- Fehler
- invalid-config
Lebenszyklus und Unterhaltung
DobroDeskCapacitorClient
Erstellt den Client und prüft die Integrationskonfiguration.
new DobroDeskCapacitorClient(config: DobroDeskSdkConfig)startSession
Startet eine Unterhaltung mit idempotenter erster Nachricht.
startSession(message: string, options?: Omit<SessionStartInput, 'message'>): Promise<Record<string, unknown>>- Fehler
- network
- field-invalid
- idempotency-conflict
- outbox-corrupt
resumeSession
Stellt den Kontostatus oder eine Serversitzung wieder her.
resumeSession(): Promise<Record<string, unknown> | null>- Fehler
- network
- session-expired
- outbox-corrupt
refresh
Lädt den aktuellen Unterhaltungsverlauf.
refresh(): Promise<Record<string, unknown>>- Fehler
- network
- session-expired
- message-rejected
waitForAssistant
Fragt mit begrenztem Timing ab, bis die Arbeit des Assistenten abgeschlossen ist oder die Wartezeit endet.
waitForAssistant(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<Record<string, unknown>>- Fehler
- realtime-unavailable
- network
- session-expired
sendMessage
Sendet eine Nachricht und liefert ihren Lieferstatus.
sendMessage(text: string, idempotencyKey?: string): Promise<Record<string, unknown>>- Fehler
- network
- idempotency-conflict
- conversation-stale
- rate-limited
- message-rejected
flushOutbox
Wiederholt ausstehende Mutationen mit unverändertem Inhalt und Schlüssel.
flushOutbox(): Promise<readonly Record<string, unknown>[]>- Fehler
- network
- outbox-corrupt
- session-expired
resetSession
Löscht die kontobezogene Sitzung, den Snapshot und ausstehende Mutationen.
resetSession(): Promise<void>- Fehler
- request-in-progress
- outbox-corrupt
logout
Beendet die Kundensitzung und optionale Funktionen.
logout(): Promise<void>- Fehler
- outbox-corrupt
presentWidget
Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.
presentWidget(options?: NativeWidgetOptions): Promise<void>Parameter
localeSdkLocale?- Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.
titleString?- Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
subtitleString?- Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
appearanceobject?- Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.
platformobject?- Plattformspezifische Anpassungen für Safe Area, Tastatur und Navigation innerhalb des gemeinsamen Designvertrags.
reduceMotionboolean?- Standardmäßig folgt die App der Systemeinstellung sowie den nativen Energiespar- und Thermalrichtlinien.
viewhome | messages | help- Optionen für native Navigation sowie die Darstellung des Web-Launchers oder Panels.
articleIdstring?- Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
hostActionIdsstring[]?- Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
contextJsonObject?- Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
- Fehler
- invalid-config
- request-in-progress
- field-invalid
closeWidget
Schließt die aktuelle native Darstellung oder gibt einen gemounteten Host frei.
closeWidget(): Promise<void>subscribe
Abonniert kanonische SDK-Ereignisse. Zum Freigeben des Listeners verwenden Sie die von der Plattform gelieferte Subscription, den Abbruch-Callback oder die Stream-Subscription.
subscribe(listener: (event: SdkEvent) => void): Promise<{ remove(): Promise<void> }>operations
Stellt typisierte Formular-, Client-Tool-, Anhang- und Commerce-Operationen über die native Engine bereit.
operations: DobroDeskRichOperationssubmitForm
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
operations.submitForm(requestId: string, values: JsonObject): Promise<JsonValue>Parameter
requestIdstringErforderlich- Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
valuesJsonObjectErforderlich- Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- message-rejected
requestClientTool
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
operations.requestClientTool(input: ClientToolRequest): Promise<JsonValue>Parameter
inputClientToolRequestErforderlich- Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- not_found
completeClientTool
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
operations.completeClientTool(input: ClientToolResult): Promise<JsonValue>Parameter
inputClientToolResultErforderlich- Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- not_found
clientToolStatus
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
operations.clientToolStatus(callId: string): Promise<JsonValue>Parameter
callIdstringErforderlich- Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- not_found
procedureAction
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
operations.procedureAction(input: ProcedureActionInput): Promise<JsonValue>Parameter
input.actionstart | answer | availability | select | calendar_date | back | confirm | declineErforderlich- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.valuestringErforderlich- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.idempotencyKeystring (16-128 characters)Erforderlich- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.procedureId / runId / expectedUpdatedAtstring?- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.locale"en" | "uk" | "de" | "es"?- Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.
input.stepId / parameterId / timeZonestring?- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.nativeCommerceUitrue?- Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- message-rejected
- idempotency-conflict
attachmentIntents
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
operations.attachmentIntents(messageId: string, attachments: readonly AttachmentDescriptor[]): Promise<JsonValue>Parameter
messageIdstringErforderlich- Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Erforderlich- Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- attachment_policy_failed
- attachment_rate_limited
uploadAttachment
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
operations.uploadAttachment(intent: AttachmentUploadIntent, fileUri: string, mimeType: string): Promise<JsonValue>Parameter
intentAttachmentUploadIntentErforderlich- Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
fileUristring (file:// or content:// URI)Erforderlich- Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
mimeTypestringErforderlich- Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- attachment_policy_failed
- attachment_rate_limited
listOrders
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
operations.listOrders(query?: CommerceOrderQuery): Promise<JsonValue>Parameter
queryCommerceOrderQuery- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
orderDetail
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
operations.orderDetail(orderRef: string): Promise<JsonValue>Parameter
orderRefstringErforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- not_found
createCommerceProposal
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
operations.createCommerceProposal(input: CommerceProposalInput, idempotencyKey: string): Promise<JsonValue>Parameter
inputCommerceProposalInputErforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
- idempotency-conflict
confirmCommerceProposal
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
operations.confirmCommerceProposal(proposalId: string, idempotencyKey: string): Promise<JsonValue>Parameter
proposalIdstringErforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- shopify_reconnect_required
- shopify_rate_limited
- not_found
- idempotency-conflict
commerceProposal
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
operations.commerceProposal(proposalId: string): Promise<JsonValue>Parameter
proposalIdstringErforderlich- Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
- Rückgabewert
- Promise<JsonValue>
- Fehler
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- not_found
ClientToolRequest
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
{ toolName: string; basisMessageId: string; input: ClientToolPayload }ClientToolResult
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
{ callId: string; output: ClientToolPayload }AttachmentDescriptor
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: AttachmentKind }AttachmentUploadIntent
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
{ clientId: string; attachmentId: string; uploadUrl: string; uploadToken: string; expiresAt: string }CommerceProposalInput
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
{ actionId: "shopify_order_cancel"; selection: { storeReference: string; orderReference: string; lineItems?: { lineItemReference: string; quantity: number }[] } }DobroDeskLoadingState
Der gemeinsame Ladezustand ist idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting oder flushing-outbox.
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"SdkEvent
Native und Wrapper-Ereignisse verwenden das gemeinsame Envelope für Laden, Sitzung, Snapshot, akzeptierte Nachricht, Fehler und gelöschte Sitzung.
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelledWidget-Darstellung
WidgetExperience
Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy- Fehler
- field-invalid
- unsupported
mountWidget
Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.
mountWidget(container: HTMLElement, options?: NativeWidgetOptions, callbacks?: DobroDeskEmbeddedCallbacks): Promise<DobroDeskEmbeddedWidget>- Fehler
- invalid-config
- request-in-progress
- field-invalid
DobroDeskEmbeddedWidget
Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.
setVisible(visible: boolean): void; dispose(): Promise<void>NativeOperation (wrapper bridge)
Stellt typisierte Formular-, Client-Tool-, Anhang- und Commerce-Operationen über die native Engine bereit.
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)
Framework-Brücken kodieren den Abschluss einer Host-Aktion über eine lokale native Präsentationsbrücke. Er wird nicht als HTTP-Operation über den direkten nativen Client gesendet.
{ operation: "complete-host-action"; requestId: string; actionId: string; result: HostActionResult }Parameter
requestIdstringErforderlich- Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
actionIdstringErforderlich- Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
resultHostActionResultErforderlich- Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
- Rückgabewert
- JsonValue
- Fehler
- field-invalid
- session-expired
- unsupported
Optionale Funktionen
attachVoice
Verbindet die separat installierte, vom Host verwaltete Sprachfunktion.
attachVoice(port: DobroDeskVoicePort): Promise<DobroDeskVoiceFacade>- Fehler
- unsupported
- invalid-config
voice
Steuert eine optionale, vom Host installierte Sprachfunktion: Start, Stopp, Stummschaltung, Barge-in und Freigabe. Das Browser-Widget kann eine Sprachoberfläche anzeigen, aber diese SDK-API steuert nur eine vom Host bereitgestellte Sprachbrücke.
voice: DobroDeskVoiceFacade | undefinedcreateCapacitorVoicePort
Verbindet die separat installierte, vom Host verwaltete Sprachfunktion.
createCapacitorVoicePort(bridge): DobroDeskVoicePortvoice lifecycle
Steuert eine optionale, vom Host installierte Sprachfunktion: Start, Stopp, Stummschaltung, Barge-in und Freigabe. Das Browser-Widget kann eine Sprachoberfläche anzeigen, aber diese SDK-API steuert nur eine vom Host bereitgestellte Sprachbrücke.
start(): Promise<void>; stop(): Promise<void>; setMuted(muted: boolean): Promise<void>; bargeIn(): Promise<void>; dispose(): Promise<void>- Fehler
- invalid-configuration
- permission-denied
- audio-unavailable
- session-expired
- realtime-unavailable
- invalid-response
- protocol-violation
- stale-frame
- queue-overloaded
- cancelled
- unsupported
push module (native only)
Beschreibt das optionale native Push-Artefakt und die Host-Registrierung. Framework-Wrapper exportieren keinen JavaScript- oder Dart-Push-Client; verwenden Sie das native iOS- oder Android-Modul.
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.Fehler
SdkErrorCode
Behandeln Sie stabile maschinenlesbare Codes und halten Sie Serverdiagnosen aus der Kundenoberfläche fern.
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