Halaman ini mencantumkan metode API yang tersedia untuk SDK web tanpa UI.
Perusahaan dan menu
Metode untuk menangani nilai dan menu perusahaan.
getTrigger
Metode ini mendeteksi pemicu proaktif halaman saat ini. Metode ini menampilkan pemicu yang cocok saat ini atau null.
const trigger = await client.getTrigger()
getCompany
Metode ini mengambil informasi perusahaan.
Tanda tangan metode
getCompany(): Promise<CompanyResponse>
Nilai yang ditampilkan
Mengembalikan objek CompanyResponse.
Antarmuka
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;
}
Contoh penggunaan
try {
const company = await client.getCompany()
} catch (error) {
// handle error
}
getMenus
Metode ini mencantumkan semua item menu yang tersedia untuk tenant.
Tanda tangan metode
getMenus(key?: string, lang?: string): Promise<MenuResponse>
Nilai yang ditampilkan
Mengembalikan objek MenuResponse.
Antarmuka
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;
};
}
Contoh penggunaan
try {
const data: MenuResponse = await client.getMenus("direct_menu_key")
console.log(data.menus)
console.log(data.direct)
} catch (error) {
// handle error
}
getWaitTimes
Metode ini mendapatkan waktu tunggu untuk saluran chat atau saluran panggilan menu.
Tanda tangan metode
getWaitTimes(menuId: number | string, lang?: string): Promise<WaitTimeResponse>
Nilai yang ditampilkan
Mengembalikan objek WaitTimeResponse.
Antarmuka
interface WaitTimeResponse {
chat: number;
voice_call: number;
}
Contoh penggunaan
try {
const data: WaitTimeResponse = await client.getWaitTimes(123)
} catch (error) {
// handle error
}
Panggilan
Metode untuk menangani panggilan terjadwal melalui SDK.
createCall
Metode ini membuat panggilan instan atau terjadwal.
Tanda tangan metode
createCall(menuId: number | string, data: CallRequest): Promise<CallResponse>
Nilai yang ditampilkan
Mengembalikan objek CallResponse.
Antarmuka
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>;
};
reschedule_call_id?: number;
use_advanced_call_scheduling?: boolean;
}
Contoh Penggunaan
try {
const call = await client.createCall(123, { phone_number: '+12345678' })
} catch (error) {
// handle error
}
loadCall
Metode ini mengambil informasi panggilan untuk ID panggilan yang ditentukan.
Tanda Tangan Metode
loadCall(callId: number | string): Promise<CallResponse>
Nilai yang ditampilkan
Mengembalikan objek CallResponse.
Antarmuka
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;
}[];
}
Contoh penggunaan
try {
const call = await client.loadCall(1234)
} catch (error) {
// handle error
}
cancelCall
Metode ini membatalkan panggilan.
Tanda tangan metode
cancelCall(callId: number | string): Promise<CallResponse>
Nilai yang ditampilkan
Mengembalikan objek CallResponse.
Antarmuka
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;
}[];
}
Contoh penggunaan
try {
const response = await client.cancelCall(1234)
} catch (error) {
// handle error
}
getTimeSlots
Mengambil slot waktu yang tersedia untuk panggilan terjadwal pada menu tertentu.
Saat dipanggil dengan objek opsi GetTimeSlotsRequest, metode ini mendukung
hal berikut:
Penjadwalan panggilan lanjutan:
useAdvancedCallScheduling: trueMenjadwalkan ulang panggilan yang ada:
rescheduleCallId
Tanda tangan string lang yang tidak digunakan lagi masih didukung dan dirutekan ke endpoint yang sama, dengan hanya lang yang diisi.
Tanda tangan metode
getTimeSlots(menuId: number | string, options?: GetTimeSlotsRequest): Promise<string[]>
Nilai yang ditampilkan
Menampilkan array string slot waktu.
Antarmuka
interface GetTimeSlotsRequest {
lang?: string;
rescheduleCallId?: number; // ID of an existing call being rescheduled
useAdvancedCallScheduling?: boolean; // Enable advanced call scheduling behavior
}
Contoh penggunaan
// New options-based signature (recommended)
try {
const slots = await client.getTimeSlots(123, {
lang: 'en',
useAdvancedCallScheduling: true,
})
} catch (error) {
// handle error
}
// Deprecated signature (still supported)
try {
const slots = await client.getTimeSlots(123, 'en')
} catch (error) {
// handle error
}
fetchTimeSlotAvailability
Metode ini memeriksa apakah slot waktu tersedia untuk menu tertentu tanpa mengambil daftar lengkap slot waktu. Anda dapat menggunakannya untuk menampilkan opsi penjadwalan secara bersyarat dari UI.
Tanda tangan metode
fetchTimeSlotAvailability(menuId: number | string, lang?: string): Promise<boolean>
Nilai yang ditampilkan
Menampilkan true jika slot waktu tersedia. Jika tidak, false.
Contoh penggunaan
try {
const isAvailable = await client.fetchTimeSlotAvailability(123, 'en')
if (isAvailable) {
// Show scheduling UI
}
} catch (error) {
// handle error
}
Chat
Metode untuk menangani percakapan dengan SDK.
createChat
Metode ini membuat percakapan baru.
Tanda Tangan Metode
createChat(menuId: number | string, data: ChatRequest): Promise<Chat>
Nilai Hasil
Menampilkan instance Chat.
Antarmuka
interface ChatRequest {
lang?: string;
trigger_id?: string;
ticket_id?: string;
email?: string;
greeting?: string;
cobrowsable?: boolean;
custom_data?: {
signed?: string;
unsigned?: Record<string, any>;
};
}
Contoh Penggunaan
try {
const chat = client.createChat(123, { lang: 'en' })
} catch (error) {
// handle error
}
loadChat
Metode ini mengambil informasi chat untuk ID chat tertentu.
Tanda tangan metode
loadChat(chatId: number | string): Promise<Chat>
Nilai yang ditampilkan
Menampilkan instance Chat.
Contoh Penggunaan
try {
const chat = await client.loadChat(1234)
} catch (error) {
// handle error
}
loadOngoingChat
Metode ini digunakan untuk mendapatkan instance chat yang sedang berlangsung.
Tanda Tangan Metode
loadOngoingChat(): Promise<Chat | null>
Nilai Hasil
Menampilkan instance Chat jika ditemukan, atau null jika tidak ada chat yang sedang berlangsung. Membersihkan
nilai penyimpanan jika chat tidak sedang berlangsung.
Contoh penggunaan
try {
const chat = await client.loadOngoingChat()
} catch (error) {
// handle error
}
resumeChat
Metode ini melanjutkan percakapan yang ditutup.
Tanda tangan metode
resumeChat(chatId: number | string): Promise<Chat>
Nilai yang ditampilkan
Menampilkan instance chat.
Contoh penggunaan
client.resumeChat(1234)
finishChat
Metode ini mengubah status chat menjadi finished.
Tanda tangan metode
finishChat(): Promise<void>
Contoh penggunaan
try {
await client.finishChat()
} catch (error) {
// handle error
}
destroyChat
Metode ini menghentikan percakapan yang sedang berlangsung.
Tanda tangan metode
destroyChat(): Promise<void>
Contoh penggunaan
try {
await client.destroyChat()
} catch (error) {
// handle error
}
fetchMessages
Metode ini digunakan untuk mendapatkan semua pesan sebelumnya. Jika terjadi kegagalan, fungsi ini akan menampilkan array kosong. Anda akan menggunakan metode ini setelah chat terhubung.
Tanda tangan metode
fetchMessages(): Promise<MessageResponse[]>
Nilai Hasil
Menampilkan array MessageResponse. Menampilkan array kosong jika gagal.
Antarmuka
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;
};
}
Contoh penggunaan
const messages = client.fetchMessages()
sendTextMessage
Metode ini mengirimkan pesan teks.
Tanda tangan metode
sendTextMessage(rawContent: string): Promise<void>
Contoh penggunaan
try {
client.sendTextMessage("hello world")
} catch (error) {
// handle error
}
sendFileMessage
Metode ini mengirim pesan file.
Tanda tangan metode
sendFileMessage(file: File): Promise<number>
Nilai yang ditampilkan
Menampilkan ID pesan atau -1 jika gagal.
Contoh penggunaan
const input = document.querySelector('input[type="file"]')
const file = input.files[0]
const id = client.sendFileMessage(file)
sendPreviewMessage
Digunakan untuk mengirim pratinjau pesan ke adaptor agen. Pesan pratinjau hanya ditampilkan di adaptor agen jika metode startTyping dipanggil. Pesan pratinjau hanya ditampilkan hingga pesan akhir dikirim atau metode stopTyping dipanggil. Untuk mengetahui informasi selengkapnya, lihat Pengalaman Agen - Pratinjau Pesan.
Tanda tangan metode
sendPreviewMessage(content: string): Promise<void>
Contoh penggunaan
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
Tanda tangan metode
startTyping()
Contoh penggunaan
try {
client.startTyping()
} catch (error) {
// handle error
}
stopTyping
Tanda tangan metode
stopTyping()
Contoh penggunaan
try {
client.stopTyping()
} catch (error) {
// handle error
}
getChatDeflection
Metode ini mendapatkan konfigurasi pengalihan chat.
Tanda tangan metode
getChatDeflection(): Promise<ChatDeflectionResponse>
Nilai yang ditampilkan
Mengembalikan objek ChatDeflectionResponse.
Antarmuka
interface ChatDeflectionResponse {
enabled: boolean;
threshold: number;
email: boolean;
keep_waiting: boolean;
external_deflection_links: {
enabled: boolean;
ids: number[];
};
}
Contoh penggunaan
try {
const deflection = await client.getChatDeflection()
} catch (error) {
// handle error
}
sendChatTranscripts
Mengirim transkrip chat saat ini ke email yang ditentukan.
Tanda tangan metode
sendChatTranscripts (emails: string[]): Promise<void>
Contoh penggunaan
try {
client.sendChatTranscripts([
"name1@example.com",
"name2@example.com",
])
} catch (error) {
// handle error
}
downloadChatTranscript
Tanda tangan metode
downloadChatTranscript(): Promise<GenerateTranscriptResponse>
Nilai yang ditampilkan
Menampilkan objek transkrip.
interface GenerateTranscriptResponse {
status: string;
chat_transcript_id: number;
}
Contoh penggunaan
try {
const resp = await client.downloadChatTranscript()
} catch (error) {
// handle error
}
getPdfStatus
Tanda tangan metode
getPdfStatus(id: number): Promise<RequestReturn>
Nilai yang ditampilkan
Menampilkan objek status PDF.
Antarmuka
interface RequestReturn {
//...
headers,
data: PdfStatusResponse,
}
interface PdfStatusResponse {
status: string;
body?: File;
failed_reason?: string;
}
Contoh penggunaan
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
Metode ini digunakan untuk mendapatkan pertanyaan survei chat.
Tanda tangan metode
getChatSurvey(): Promise<ChatSurveyResponse>
Nilai yang ditampilkan
Mengembalikan objek ChatSurveyResponse.
Antarmuka
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[];
}
Contoh penggunaan
try {
const data = await client.getChatSurvey()
console.log(data.questions)
} catch (error) {
// handle error
}
sendChatSurvey
Metode ini mengirimkan survei kepada konsumen.
Tanda tangan metode
sendChatSurvey(answers: SurveyAnswers): void
Antarmuka
interface SurveyAnswers {
[question_id: string]: number | string;
}
Contoh Penggunaan
try {
await client.sendChatSurvey({
123: "a",
231: "b",
})
} catch (error) {
// handle error
}
sendChatRate
Metode ini mengirimkan masukan pengguna akhir untuk chat saat ini setelah chat selesai.
Tanda tangan metode
sendChatRate(data: RateRequest): Promise<void>
Antarmuka
interface RateRequest {
rating: number;
feedback?: string;
}
Contoh penggunaan
try {
await client.sendChatRate({
rating: 5,
feedback: "Very good service",
})
} catch (error) {
// handle error
}
escalateChat
Tanda tangan metode
escalateChat(data?: EscalateRequest): Promise<void>
Antarmuka
interface EscalateRequest {
reason?: string;
// ...other escalation fields
}
Contoh penggunaan
try {
await client.escalateChat()
} catch (error) {
// handle error
}
trackChatEscalation
Tanda tangan metode
trackChatEscalation(escalationId: number, channel: string): Promise<void>
Contoh penggunaan
try {
await client.trackChatEscalation(escalationId, channel)
} catch (error) {
// handle error
}
trackChatEndUserEvent
Tanda tangan metode
trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>
Nilai Hasil
Menampilkan void.
Antarmuka
interface ChatEndUserEventRequest {
end_user_name?: string;
// ...other event fields
}
Contoh penggunaan
try {
await client.trackChatEndUserEvent(eventData)
} catch (error) {
// handle error
}
getChatHistory
Tanda tangan metode
getChatHistory(page?: number): Promise<ChatHistoryResponse>
Nilai yang ditampilkan
Mengembalikan objek ChatHistoryResponse.
Antarmuka
interface ChatHistoryItem {
comm_id: number;
assigned_at: string;
comm_type: string;
timezone: string;
entries: MessageResponse[];
[key: string]: unknown;
}
interface ChatHistoryResponse {
chats: ChatHistoryItem[];
missing_chat_ids: number[];
pagination: {
next_page: number;
per_page: number;
}
}
Contoh penggunaan
try {
const data = client.getChatHistory(page: number)
console.log(data)
} catch (error) {
console.log(error)
}
Metode untuk menangani email dukungan.
createEmails
Tanda tangan metode
createEmail(menuId: number | string, data: EmailRequest): Promise<EmailResponse>
Nilai yang ditampilkan
Menampilkan objek EmailResponse saat gagal atau berhasil.
Antarmuka
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;
}
Contoh penggunaan
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
Tanda Tangan Metode
getProhibitedFileTypes(): Promise<FileTypeItem[]>
Nilai yang ditampilkan
Menampilkan array FileTypeItem.
Antarmuka
interface FileTypeItem {
extension: string;
description: string;
}
Contoh penggunaan
try {
const types = await client.getProhibitedFileTypes()
} catch (error) {
// handle error
}
Berbagi Layar
Metode untuk menangani kemampuan Berbagi Layar.
createCobrowseCode
Metode ini membuat kode Berbagi Layar.
Tanda tangan metode
createCobrowseCode(lang?: string, customData?: Record<string, string>): Promise<string>
Nilai yang ditampilkan
Menampilkan string kode Berbagi Layar atau string kosong jika gagal.
Contoh penggunaan
const code = await client.createCobrowseCode()
// 123456
startCobrowse
Tanda tangan metode
startCobrowse(from?: string): Promise<void>
Contoh penggunaan
try {
await client.startCobrowse()
} catch (error) {
// handle error
}
restoreCobrowseSession
Metode ini mencoba memulihkan sesi Berbagi Layar yang sebelumnya aktif setelah jendela browser dibuka kembali atau widget dimuat ulang.
Tanda tangan metode
restoreCobrowseSession(): Promise<void>
Nilai yang ditampilkan
Menampilkan Promise<void>. Metode ini adalah no-op (langsung ditampilkan tanpa
error) jika Screen Share tidak diaktifkan untuk instance Anda atau jika tidak ada sesi Screen
Share sebelumnya di penyimpanan.
Contoh penggunaan
// Safe to call unconditionally. Will no-op if cobrowse is not enabled
// or if no previous session exists
await client.restoreCobrowseSession()
getMessageAttachment
Tanda tangan metode
getMessageAttachment(message: MessageResponse): Promise<File | null>
Nilai yang ditampilkan
Menampilkan objek File jika ditemukan, atau null jika tidak berlaku.
Contoh penggunaan
try {
const file = await client.getMessageAttachment(message);
} catch (error) {
// handle error
}
Agen virtual pasca-sesi
Metode untuk menangani agen virtual setelah sesi.
updatePostSession
Memperbarui status agen virtual pasca-sesi untuk chat yang sedang berlangsung. Gunakan ini untuk menandakan kesiapan, progres, atau penyelesaian alur agen virtual pasca-sesi.
Metode ini akan segera ditampilkan sebagai no-op jika postSessionStatus adalah FINISHED
atau WAITING karena transisi tersebut ditangani secara internal. Metode ini memiliki logika coba lagi internal khusus untuk status IN_PROGRESS pada respons 400, sehingga pemanggil tidak perlu menerapkan coba lagi sendiri untuk kasus tersebut.
Tanda tangan metode
updatePostSession(postSessionStatus: PostSessionStatus, optInSelection?: boolean): Promise<void>
Antarmuka
enum PostSessionStatus {
READY = 'ready',
IN_PROGRESS = 'in_progress',
WAITING = 'waiting',
FINISHED = 'finished',
}
Contoh penggunaan
try {
// Without opt-in selection
await client.updatePostSession(PostSessionStatus.READY)
// With opt-in selection
await client.updatePostSession(PostSessionStatus.READY, true)
} catch (error) {
// handle error (e.g., show a notification to the user)
}
Antarmuka terkait
interface ChatResponse {
//...
post_session_required?: boolean;
post_session_opt_in_required?: boolean;
post_session_transfer_status?: string;
}
post_session_required: Sesi pasca-chat diperlukan setelah chat.post_session_opt_in_required: Jika keikutsertaan diaktifkan.post_session_transfer_status: EnumerasiPostSessionStatus.
Proses Debug
Metode untuk men-debug SDK.
getLogs
Mengambil log debug internal yang dikumpulkan oleh SDK, termasuk log tingkat jembatan dan tingkat root. Hal ini berguna untuk memecahkan masalah integrasi.
Tanda tangan metode
getLogs(): Promise<{ bridgeLogs: LogHistoryData[], rootLogs: LogHistoryData[] }>
Nilai yang ditampilkan
Menampilkan objek yang berisi dua array LogHistoryData.
Antarmuka
interface LogHistoryData {
date: string;
channel: string;
level: string;
args: any[];
}
Contoh penggunaan
try {
const { bridgeLogs, rootLogs } = await client.getLogs()
console.log('Bridge logs:', bridgeLogs)
console.log('Root logs:', rootLogs)
} catch (error) {
// handle error
}
printLogs
Mencetak semua log debug internal langsung ke konsol browser. Ini adalah
metode praktis yang memanggil getLogs() secara internal dan memformat output.
Tanda tangan metode
printLogs(): Promise<void>
Contoh penggunaan
try {
await client.printLogs()
} catch (error) {
// handle error
}
Lain-lain
Berbagai metode SDK.
runTrigger
Tanda tangan metode
runTrigger(cb: (trigger: TriggerItem) => void): Promise<void>
Contoh penggunaan
client.runTrigger((trigger: TriggerItem) => {
// code to run for given trigger
})
getAfterHourMessage
Tanda tangan metode
getAfterHourMessage(lang?: string): Promise<string>
Nilai yang ditampilkan
Menampilkan string yang berisi pesan yang dikonfigurasi.
Contoh penggunaan
try {
const message: string = await client.getAfterHourMessage()
} catch (error) {
// handle error
}