Metodi dell'API SDK web headless

Questa pagina elenca i metodi API disponibili per l'SDK web headless.

Azienda e menu

Metodi per gestire i valori e i menu dell'azienda.

getTrigger

Questo metodo rileva i trigger proattivi della pagina corrente. Restituisce l'attivatore corrente corrispondente o null.

const trigger = await client.getTrigger()

getCompany

Questo metodo recupera le informazioni sull'azienda.

Firma del metodo

getCompany(): Promise<CompanyResponse>

Valore restituito

Restituisce un oggetto CompanyResponse.

Interfacce

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;
}

Esempio di utilizzo

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

getAfterHourMessage

Questo metodo recupera il messaggio per la deviazione fuori orario.

Parametro di richiesta:

(lang?: string)

Esempio:

const message: string = await client.getAfterHourMessage()

getMenus

Questo metodo elenca tutte le voci di menu disponibili per il tenant.

Firma del metodo

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

Valore restituito

Restituisce un oggetto MenuResponse.

Interfacce

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;
  };
}

Esempio di utilizzo

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

getWaitTimes

Questo metodo ottiene il tempo di attesa per il canale di chat o il canale di chiamata di un menu.

Firma del metodo

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

Valore restituito

Restituisce un oggetto WaitTimeResponse.

Interfacce

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

Esempio di utilizzo

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

Chiamate

Metodi per gestire le chiamate pianificate tramite l'SDK.

createCall

Questo metodo crea una chiamata istantanea o pianificata.

Firma del metodo

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

Valore restituito

Restituisce un oggetto CallResponse.

Interfacce

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>;
  };
}

Esempio di utilizzo

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

loadCall

Questo metodo recupera le informazioni sulla chiamata per un ID chiamata specificato.

Firma del metodo

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

Valore restituito

Restituisce un oggetto CallResponse.

Interfacce

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;
  }[];
}

Esempio di utilizzo

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

cancelCall

Questo metodo annulla una chiamata.

Firma del metodo

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

Valore restituito

Restituisce un oggetto CallResponse.

Interfacce

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;
  }[];
}

Esempio di utilizzo

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

getTimeSlots

Questo metodo viene utilizzato per ottenere le fasce orarie disponibili.

Firma del metodo

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

Valore restituito

Restituisce un array di stringhe (fasce orarie).

Esempio di utilizzo

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

Chat

Metodi per gestire le chat con l'SDK.

createChat

Questo metodo crea una nuova chat.

Firma del metodo

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

Valore restituito

Restituisce un'istanza Chat.

Interfacce

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

Esempio di utilizzo

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

loadChat

Questo metodo recupera le informazioni sulla chat per un determinato ID chat.

Firma del metodo

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

Valore restituito

Restituisce un'istanza Chat.

Esempio di utilizzo

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

loadOngoingChat

Questo metodo viene utilizzato per ottenere l'istanza di chat in corso.

Firma del metodo

loadOngoingChat(): Promise<Chat | null>

Valore restituito

Restituisce un'istanza di Chat se trovata o null se non esiste alcuna chat in corso. Pulisce i valori di archiviazione se la chat non è in corso.

Esempio di utilizzo

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

resumeChat

Questo metodo riprende una chat chiusa.

Firma del metodo

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

Valore restituito

Restituisce un'istanza di chat.

Esempio di utilizzo

client.resumeChat(1234)

finishChat

Questo metodo cambia lo stato della chat in finished.

Firma del metodo

finishChat(): Promise<void>

Esempio di utilizzo

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

destroyChat

Questo metodo interrompe la chat in corso.

Firma del metodo

destroyChat(): Promise<void>

Esempio di utilizzo

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

fetchMessages

Questo metodo viene utilizzato per recuperare tutti i messaggi precedenti. Se si verifica un errore, viene restituito un array vuoto. Utilizzerai questo metodo dopo aver connesso la chat.

Firma del metodo

fetchMessages(): Promise<MessageResponse[]>

Valore restituito

Restituisce un array di MessageResponse. Restituisce un array vuoto in caso di errore.

Interfacce

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;
  };
}

Esempio di utilizzo

const messages = client.fetchMessages()

sendTextMessage

Questo metodo invia un messaggio.

Firma del metodo

sendTextMessage(rawContent: string): Promise<void>

Esempio di utilizzo

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

sendFileMessage

Questo metodo invia un messaggio file.

Firma del metodo

sendFileMessage(file: File): Promise<number>

Valore restituito

Restituisce l'ID messaggio o -1 in caso di errore.

Esempio di utilizzo

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

sendPreviewMessage

Utilizzato per inviare un'anteprima del messaggio all'adattatore dell'agente. Il messaggio di anteprima viene visualizzato nell'adattatore dell'agente solo se viene chiamato il metodo startTyping. Il messaggio di anteprima viene visualizzato solo fino all'invio del messaggio finale o alla chiamata del metodo stopTyping. Per saperne di più, consulta Esperienza dell'agente - Anteprima messaggio.

Firma del metodo

sendPreviewMessage(content: string): Promise<void>

Esempio di utilizzo

client.chat.startTyping();
clearTimeout(stopTimer);
stopTimer = setTimeout(() => {
    if (client.chat) {
        client.chat.stopTyping();
    }
}, 5000);

clearTimeout(previewTimer);
const currentTime = Date.now();

if (currentTime - lastPreviewTime >= 2000) {
    lastPreviewTime = currentTime;
    try {
        const response = await client.sendPreviewMessage("chat message");
    } catch (error) {
        console.error("Error sending preview message:", error);
    }
} else {
    previewTimer = setTimeout(async () => {
        lastPreviewTime = Date.now();
        try {
            const response = await client.sendPreviewMessage("chat message");
        } catch (error) {
            console.error("Error sending debounced preview message:", error);
        }
    }, 1000);
}

startTyping

Firma del metodo

startTyping()

Esempio di utilizzo

try {
  client.startTyping()
} catch (error) {
  // handle error
}

stopTyping

Firma del metodo

stopTyping()

Esempio di utilizzo

try {
  client.stopTyping()
} catch (error) {
  // handle error
}

getChatDeflection

Questo metodo recupera la configurazione della deviazione della chat.

Firma del metodo

getChatDeflection(): Promise<ChatDeflectionResponse>

Valore restituito

Restituisce un oggetto ChatDeflectionResponse.

Interfacce

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

Esempio di utilizzo

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

sendChatTranscripts

Invia le trascrizioni della chat corrente agli indirizzi email specificati.

Firma del metodo

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

Esempio di utilizzo

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

downloadChatTranscript

Firma del metodo

downloadChatTranscript(): Promise<GenerateTranscriptResponse>

Valore restituito

Restituisce l'oggetto della trascrizione.

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

Esempio di utilizzo

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

getPdfStatus

Firma del metodo

getPdfStatus(id: number): Promise<RequestReturn>

Valore restituito

Restituisce l'oggetto di stato PDF.

Interfacce

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

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

Esempio di utilizzo

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

Questo metodo viene utilizzato per ottenere le domande del sondaggio sulla chat.

Firma del metodo

getChatSurvey(): Promise<ChatSurveyResponse>

Valore restituito

Restituisce un oggetto ChatSurveyResponse.

Interfacce

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[];
}

Esempio di utilizzo

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

sendChatSurvey

Questo metodo invia un sondaggio al consumatore.

Firma del metodo

sendChatSurvey(answers: SurveyAnswers): void

Interfacce

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

Esempio di utilizzo

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

sendChatRate

Questo metodo invia il feedback dell'utente finale per la chat corrente al termine della chat.

Firma del metodo

sendChatRate(data: RateRequest): Promise<void>

Interfacce

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

Esempio di utilizzo

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

escalateChat

Firma del metodo

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

Interfacce

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

Esempio di utilizzo

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

trackChatEscalation

Firma del metodo

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

Esempio di utilizzo

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

trackChatEndUserEvent

Firma del metodo

trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>

Valore restituito

Restituisce void.

Interfacce

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

Esempio di utilizzo

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

getChatHistory

Firma del metodo

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

Valore restituito

Restituisce un oggetto ChatHistoryResponse.

Interfacce

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;
  }
}

Esempio di utilizzo

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

Email

Metodi per gestire le email di assistenza.

createEmails

Firma del metodo

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

Valore restituito

Restituisce un oggetto EmailResponse in caso di errore o esito positivo.

Interfacce

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;
}

Esempio di utilizzo

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

Firma del metodo

getProhibitedFileTypes(): Promise<FileTypeItem[]>

Valore restituito

Restituisce un array di FileTypeItem.

Interfacce

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

Esempio di utilizzo

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

Condivisione schermo

Metodi per gestire la funzionalità di condivisione schermo.

createCobrowseCode

Questo metodo crea un codice di condivisione dello schermo.

Firma del metodo

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

Valore restituito

Restituisce una stringa di codice di condivisione schermo o una stringa vuota in caso di errore.

Esempio di utilizzo

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

startCobrowse

Firma del metodo

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

Esempio di utilizzo

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

getMessageAttachment

Firma del metodo

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

Valore restituito

Restituisce un oggetto File se trovato o null se non applicabile.

Esempio di utilizzo

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

Agenti virtuali post-sessione

Metodi per la gestione degli agenti virtuali post-sessione.

updatePostSession

Firma del metodo

updatePostSession(postSessionStatus: PostSessionStatus): Promise<void>

Interfacce

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

Esempio di utilizzo

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

Interfaccia correlata

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

Valori:

  • post_session_required: post sessione richiesto dopo una chat

  • post_session_opt_in_required: is opt-in enabled

  • post_session_transfer_status: un'enumerazione PostSessionStatus

Vari

Metodi SDK vari.

runTrigger

Firma del metodo

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

Esempio di utilizzo

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

getAfterHourMessage

Firma del metodo

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

Valore restituito

Restituisce una stringa contenente un messaggio configurato.

Esempio di utilizzo

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