Headless Web SDK API-Methoden

Auf dieser Seite werden die API-Methoden aufgeführt, die für das Headless Web SDK verfügbar sind.

Unternehmen und Speisekarten

getTrigger

Mit dieser Methode werden die proaktiven Trigger der aktuellen Seite erkannt. Es wird entweder der aktuelle übereinstimmende Trigger oder null zurückgegeben.

const trigger = await client.getTrigger()

getCompany

Mit dieser Methode werden die Unternehmensinformationen abgerufen.

Methodensignatur

getCompany(): Promise<CompanyResponse>

Rückgabewert

Gibt ein CompanyResponse-Objekt zurück.

Schnittstellen

interface CompanyResponse {
  name: string;
  subdomain: string;
  support_email: string;
  languages: LanguageOption[];
  action_tracking: boolean;
  email_transcripts: boolean;
  message_preview: boolean;
  email_enhancement: boolean;
  cobrowse_domain?: string;
}

Beispiel für die Verwendung

try {
  const company = await client.getCompany()
} catch (error) {
  // handle error
}

getAfterHourMessage

Mit dieser Methode wird die Nachricht für die Weiterleitung außerhalb der Geschäftszeiten abgerufen.

Anfrageparameter:

(lang?: string)

Beispiel:

const message: string = await client.getAfterHourMessage()

getMenus

Mit dieser Methode werden alle Menüelemente aufgelistet, die für den Mandanten verfügbar sind.

Methodensignatur

getMenus(key?: string, lang?: string): Promise<MenuResponse>

Rückgabewert

Gibt ein MenuResponse-Objekt zurück.

Schnittstellen

interface MenuResponse {
  menus: MenuItem[];
  direct: {
    key: boolean;
    user: boolean;
  };
}

interface MenuItem {
  id: number;
  name?: string;
  enabled: boolean;
  redirection?: {
    option: string;
    data: string;
  };
  children?: MenuItem[];
  channels: MenuChannel[];
  deflection?: {
    enabled: boolean;
    type: string;
  };
}

Beispiel für die Verwendung

try {
  const data: MenuResponse = await client.getMenus("direct_menu_key")
  console.log(data.menus)
  console.log(data.direct)
} catch (error) {
  // handle error
}

getWaitTimes

Mit dieser Methode wird die Wartezeit für den Chat- oder Anrufkanal eines Menüs abgerufen.

Methodensignatur

getWaitTimes(menuId: number | string, lang?: string): Promise<WaitTimeResponse>

Rückgabewert

Gibt ein WaitTimeResponse-Objekt zurück.

Schnittstellen

interface WaitTimeResponse {
  chat: number;
  voice_call: number;
}

Beispiel für die Verwendung

try {
  const data: WaitTimeResponse = await client.getWaitTimes(123)
} catch (error) {
  // handle error
}

Anrufe

createCall

Mit dieser Methode wird ein sofortiger oder geplanter Anruf erstellt.

Methodensignatur

createCall(menuId: number | string, data: CallRequest): Promise<CallResponse>

Rückgabewert

Gibt ein CallResponse-Objekt zurück.

Schnittstellen

interface CallRequest {
  phone_number: string;
  lang?: string;
  scheduled_at?: string;
  ticket_id?: string;
  email?: string;
  recording_permission?: "recording_permission_not_asked" | "recording_permission_granted" | "recording_permission_denied";
  custom_data?: {
    signed?: string;
    unsigned?: Record<string, any>;
  };
}

Beispiel für die Verwendung

try {
  const call = await client.createCall(123, { phone_number: '+12345678' })
} catch (error) {
  // handle error
}

loadCall

Mit dieser Methode werden die Anrufinformationen für eine bestimmte Anruf-ID abgerufen.

Methodensignatur

loadCall(callId: number | string): Promise<CallResponse>

Rückgabewert

Gibt ein CallResponse-Objekt zurück.

Schnittstellen

interface CallResponse {
  id: number;
  lang: string;
  menu_id: number;
  status: string;
  type: string;
  scheduled_at?: string;
  recording_permitted: boolean;
  survey_enabled: boolean;
  created_at: string;
  menus: {
    id: number;
    name: string;
  }[];
}

Beispiel für die Verwendung

try {
  const call = await client.loadCall(1234)
} catch (error) {
  // handle error
}

cancelCall

Mit dieser Methode wird ein Anruf abgebrochen.

Methodensignatur

cancelCall(callId: number | string): Promise<CallResponse>

Rückgabewert

Gibt ein CallResponse-Objekt zurück.

Schnittstellen

interface CallResponse {
  id: number;
  lang: string;
  menu_id: number;
  status: string;
  type: string;
  scheduled_at?: string;
  recording_permitted: boolean;
  survey_enabled: boolean;
  created_at: string;
  menus: {
    id: number;
    name: string;
  }[];
}

Beispiel für die Verwendung

try {
  const response = await client.cancelCall(1234)
} catch (error) {
  // handle error
}

getTimeSlots

Mit dieser Methode werden verfügbare Zeitblöcke abgerufen.

Methodensignatur

getTimeSlots(menuId: number | string, lang?: string): Promise<string[]>

Rückgabewert

Gibt ein Array von Strings (Zeitblöcken) zurück.

Beispiel für die Verwendung

try {
  const slots = await client.getTimeSlots(123)
} catch (error) {
  // handle error
}

Chats

createChat

Mit dieser Methode wird ein neuer Chat erstellt.

Methodensignatur

createChat(menuId: number | string, data: ChatRequest): Promise<Chat>

Rückgabewert

Gibt eine Chat-Instanz zurück.

Schnittstellen

interface ChatRequest {
  lang?: string;
  trigger_id?: string;
  ticket_id?: string;
  email?: string;
  greeting?: string;
  cobrowsable?: boolean;
  custom_data?: {
    signed?: string;
    unsigned?: Record<string, any>;
  };
}

Beispiel für die Verwendung

try {
  const chat = client.createChat(123, { lang: 'en' })
} catch (error) {
  // handle error
}

loadChat

Mit dieser Methode werden die Chat-Informationen für eine bestimmte Chat-ID abgerufen.

Methodensignatur

loadChat(chatId: number | string): Promise<Chat>

Rückgabewert

Gibt eine Chat-Instanz zurück.

Beispiel für die Verwendung

try {
  const chat = await client.loadChat(1234)
} catch (error) {
  // handle error
}

loadOngoingChat

Mit dieser Methode wird die laufende Chatinstanz abgerufen.

Methodensignatur

loadOngoingChat(): Promise<Chat | null>

Rückgabewert

Gibt eine Chat-Instanz zurück, falls gefunden, oder „null“, wenn kein laufender Chat vorhanden ist. Löscht Speicherwerte, wenn kein Chat stattfindet.

Beispiel für die Verwendung

try {
  const chat = await client.loadOngoingChat()
} catch (error) {
  // handle error
}

resumeChat

Mit dieser Methode wird ein geschlossener Chat fortgesetzt.

Methodensignatur

resumeChat(chatId: number | string): Promise<Chat>

Rückgabewert

Gibt eine Chatinstanz zurück.

Beispiel für die Verwendung

client.resumeChat(1234)

finishChat

Mit dieser Methode wird der Chatstatus in finished geändert.

Methodensignatur

finishChat(): Promise<void>

Beispiel für die Verwendung

try {
  await client.finishChat()
} catch (error) {
  // handle error
}

destroyChat

Bei dieser Methode wird der aktuelle Chat beendet.

Methodensignatur

destroyChat(): Promise<void>

Beispiel für die Verwendung

try {
  await client.destroyChat()
} catch (error) {
  // handle error
}

fetchMessages

Mit dieser Methode werden alle vorherigen Nachrichten abgerufen. Bei einem Fehler wird ein leeres Array zurückgegeben. Sie verwenden diese Methode, nachdem der Chat verbunden ist.

Methodensignatur

fetchMessages(): Promise<MessageResponse[]>

Rückgabewert

Gibt ein Array von MessageResponse zurück. Gibt bei einem Fehler ein leeres Array zurück.

Schnittstellen

interface MessageResponse {
  $index: number;
  $sid: string;
  $timestamp: Date;
  $userType: string;
  $userId: number;
  type: string;
  content?: string;
  event?: string;
  file?: File;
  media_id?: number;
  groupMessageId?: number;
  document?: {
    url: string;
  };
  unredacted?: string;
  buttons?: {
    title: string;
  }[];
  message?: {
    messages: string[];
    type: string;
  };
  signature: string;
  form?: {
    id: number;
    form_type: string;
    name: string;
    title: string;
    subtitle: string;
    external_form_id: string;
    smart_action_id: number;
    image: string;
  };
}

Beispiel für die Verwendung

const messages = client.fetchMessages()

sendTextMessage

Mit dieser Methode wird eine SMS gesendet.

Methodensignatur

sendTextMessage(rawContent: string): Promise<void>

Beispiel für die Verwendung

try {
  client.sendTextMessage("hello world")
} catch (error) {
  // handle error
}

sendFileMessage

Mit dieser Methode wird eine Dateinachricht gesendet.

Methodensignatur

sendFileMessage(file: File): Promise<number>

Rückgabewert

Gibt die Nachrichten-ID zurück oder -1 bei einem Fehler.

Beispiel für die Verwendung

const input = document.querySelector('input[type="file"]')
const file = input.files[0]
const id = client.sendFileMessage(file)

sendPreviewMessage

Methodensignatur

sendPreviewMessage(content: string): Promise<void>

Beispiel für die Verwendung

try {
  await client.sendPreviewMessage('preview content')
} catch (error) {
  // handle error
}

getChatDeflection

Mit dieser Methode wird die Konfiguration für die Chat-Ablenkung abgerufen.

Methodensignatur

getChatDeflection(): Promise<ChatDeflectionResponse>

Rückgabewert

Gibt ein ChatDeflectionResponse-Objekt zurück.

Schnittstellen

interface ChatDeflectionResponse {
  enabled: boolean;
  threshold: number;
  email: boolean;
  keep_waiting: boolean;
  external_deflection_links: {
    enabled: boolean;
    ids: number[];
  };
}

Beispiel für die Verwendung

try {
  const deflection = await client.getChatDeflection()
} catch (error) {
  // handle error
}

sendChatTranscripts

Senden Sie aktuelle Chat-Transkripte an die angegebenen E‑Mail-Adressen.

Methodensignatur

sendChatTranscripts (emails: string[]): Promise<void>

Beispiel für die Verwendung

try {
  client.sendChatTranscripts([
    "name1@example.com",
    "name2@example.com",
  ])
} catch (error) {
  // handle error
}

downloadChatTranscript

Methodensignatur

downloadChatTranscript(): Promise<GenerateTranscriptResponse>

Rückgabewert

Gibt das Transkriptobjekt zurück.

interface GenerateTranscriptResponse {
  status: string;
  chat_transcript_id: number;
}

Beispiel für die Verwendung

try {
  const resp = await client.downloadChatTranscript()
} catch (error) {
  // handle error
}

getPdfStatus

Methodensignatur

getPdfStatus(id: number): Promise<RequestReturn>

Rückgabewert

Gibt das PDF-Statusobjekt zurück.

Schnittstellen

 interface RequestReturn {
    //...
    headers,
    data: PdfStatusResponse,
  }

  interface PdfStatusResponse {
    status: string;
    body?: File;
    failed_reason?: string;
  }

Beispiel für die Verwendung

const response = await client.getPdfStatus(pdfId)
// check header for status
const status = resp.headers['x-transcript-status'];

// otherwise use status on data
const data: PdfStatusResponse = resp.data
console.log(data.status)

getChatSurvey

Mit dieser Methode werden die Fragen für die Chat-Umfrage abgerufen.

Methodensignatur

getChatSurvey(): Promise<ChatSurveyResponse>

Rückgabewert

Gibt ein ChatSurveyResponse-Objekt zurück.

Schnittstellen

interface QuestionItem {
  id: number;
  type: "csat" | "star" | "free-form" | "scale" | "enumeration";
  display_text: string;
  name?: string;
  is_csat?: boolean;
  position?: number;
  valid_answers?: {
    key: string;
    value: string;
  }[]
}

interface ChatSurveyResponse {
  id?: number;
  lang?: string;
  sign_off_display_text: string;
  questions: QuestionItem[];
}

Beispiel für die Verwendung

try {
  const data = await client.getChatSurvey()
  console.log(data.questions)
} catch (error) {
  // handle error
}

sendChatSurvey

Mit dieser Methode wird eine Umfrage an den Verbraucher gesendet.

Methodensignatur

sendChatSurvey(answers: SurveyAnswers): void

Schnittstellen

interface SurveyAnswers {
  [question_id: string]: number | string;
}

Beispiel für die Verwendung

try {
  await client.sendChatSurvey({
    123: "a",
    231: "b",
  })
} catch (error) {
  // handle error
}

sendChatRate

Mit dieser Methode wird das Feedback des Endnutzers für den aktuellen Chat gesendet, wenn der Chat beendet ist.

Methodensignatur

sendChatRate(data: RateRequest): Promise<void>

Schnittstellen

interface RateRequest {
  rating: number;
  feedback?: string;
}

Beispiel für die Verwendung

try {
  await client.sendChatRate({
    rating: 5,
    feedback: "Very good service",
  })
} catch (error) {
  // handle error
}

escalateChat

Methodensignatur

escalateChat(data?: EscalateRequest): Promise<void>

Schnittstellen

interface EscalateRequest {
  reason?: string;
  // ...other escalation fields
}

Beispiel für die Verwendung

try {
  await client.escalateChat()
} catch (error) {
  // handle error
}

trackChatEscalation

Methodensignatur

trackChatEscalation(escalationId: number, channel: string): Promise<void>

Beispiel für die Verwendung

try {
  await client.trackChatEscalation(escalationId, channel)
} catch (error) {
  // handle error
}

trackChatEndUserEvent

Methodensignatur

trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>

Rückgabewert

Gibt „void“ zurück.

Schnittstellen

interface ChatEndUserEventRequest {
  end_user_name?: string;
  // ...other event fields
}

Beispiel für die Verwendung

try {
  await client.trackChatEndUserEvent(eventData)
} catch (error) {
  // handle error
}

getChatHistory

Methodensignatur

getChatHistory(page?: number): Promise<ChatHistoryResponse>

Rückgabewert

Gibt ein ChatHistoryResponse-Objekt zurück.

Schnittstellen

interface ChatHistoryItem {
  comm_id: number;
  assigned_at: string;
  comm_type: string;
  timezone: string;
  entries: MessageResponse[];

}
interface ChatHistoryResponse {
  chats: ChatHistoryItem[];
  missing_chat_ids: number[];
  pagination: {
    next_page: number;
    per_page: number;
  }
}

Beispiel für die Verwendung

try {
  const data = client.getChatHistory(page: number)
  console.log(data)
} catch (error) {
  console.log(error)
}

E-Mails

createEmails

Methodensignatur

createEmail(menuId: number | string, data: EmailRequest): Promise<EmailResponse>

Rückgabewert

Gibt bei Fehler oder Erfolg ein EmailResponse-Objekt zurück.

Schnittstellen

interface EmailRequest {
  name?: string;
  email: string;
  content: string;
  lang?: string;
  files?: File[];
  recaptcha?: string;
}

interface EmailResponse {
  id: number;
  type: string;
  status: string;
  fail_reason: string;
  attachment_count: number;
}

Beispiel für die Verwendung

try {
  await client.createEmail(123, {
    lang: "en",
    name: "User name",
    email: "name@example.com",
    content: "description of the question",
    files: input.files,
  })
} catch (error) {
  console.log(error.message)
}

getProhibitedFileTypes

Methodensignatur

getProhibitedFileTypes(): Promise<FileTypeItem[]>

Rückgabewert

Gibt ein Array von FileTypeItem zurück.

Schnittstellen

interface FileTypeItem {
  extension: string;
  description: string;
}

Beispiel für die Verwendung

try {
  const types = await client.getProhibitedFileTypes()
} catch (error) {
  // handle error
}

Bildschirmfreigabe

createCobrowseCode

Mit dieser Methode wird ein Bildschirmfreigabe-Code erstellt.

Methodensignatur

createCobrowseCode(lang?: string, customData?: Record<string, string>): Promise<string>

Rückgabewert

Gibt einen Code-String für die Bildschirmfreigabe oder einen leeren String bei einem Fehler zurück.

Beispiel für die Verwendung

const code = await client.createCobrowseCode()
// 123456

startCobrowse

Methodensignatur

startCobrowse(from?: string): Promise<void>

Beispiel für die Verwendung

try {
  await client.startCobrowse()
} catch (error) {
  // handle error
}

getMessageAttachment

Methodensignatur

getMessageAttachment(message: MessageResponse): Promise<File | null>

Rückgabewert

Gibt ein File-Objekt zurück, falls gefunden, oder „null“, falls nicht zutreffend.

Beispiel für die Verwendung

try {
  const file = await client.getMessageAttachment(message)
} catch (error) {
  // handle error
}

Virtuelle Kundenservicemitarbeiter nach der Sitzung

updatePostSession

Methodensignatur

updatePostSession(postSessionStatus: PostSessionStatus): Promise<void>

Schnittstellen

enum PostSessionStatus {
  READY = 'ready',
  IN_PROGRESS = 'in_progress',
  WAITING = 'waiting',
  FINISHED = 'finished',
}

Beispiel für die Verwendung

try {
  await client.updatePostSession(PostSessionStatus.READY)
} catch (error) {
  // handle error (e.g., show a notification to the user)
}

Zugehörige Schnittstelle

interface ChatResponse {
  //...
  post_session_required?: boolean;
  post_session_opt_in_required?: boolean;
  post_session_transfer_status?: string;
}

Werte:

  • post_session_required: Nachbereitung nach einem Chat erforderlich

  • post_session_opt_in_required: Die Aktivierung ist aktiviert.

  • post_session_transfer_status: eine PostSessionStatus-Aufzählung

Sonstiges

runTrigger

Methodensignatur

runTrigger(cb: (trigger: TriggerItem) => void): Promise<void>

Beispiel für die Verwendung

client.runTrigger((trigger: TriggerItem) => {
  // code to run for given trigger
})

getAfterHourMessage

Methodensignatur

getAfterHourMessage(lang?: string): Promise<string>

Rückgabewert

Gibt einen String mit einer konfigurierten Nachricht zurück.

Beispiel für die Verwendung

try {
  const message: string = await client.getAfterHourMessage()
} catch (error) {
  // handle error
}