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)
}
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 chatpost_session_opt_in_required: is opt-in enabledpost_session_transfer_status: un'enumerazionePostSessionStatus
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
}