Halaman ini mencantumkan metode API yang tersedia untuk SDK web tanpa UI.
Perusahaan dan menu
getTrigger
Metode ini mendeteksi pemicu proaktif halaman saat ini. Fungsi 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
}
getAfterHourMessage
Metode ini mengambil pesan untuk pengalihan di luar jam kerja.
Parameter permintaan:
(lang?: string)
Contoh:
const message: string = await client.getAfterHourMessage()
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
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>;
};
}
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
Metode ini digunakan untuk mendapatkan slot waktu yang tersedia.
Tanda tangan metode
getTimeSlots(menuId: number | string, lang?: string): Promise<string[]>
Nilai yang ditampilkan
Menampilkan array string (slot waktu).
Contoh penggunaan
try {
const slots = await client.getTimeSlots(123)
} catch (error) {
// handle error
}
Chat
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
Tanda tangan metode
sendPreviewMessage(content: string): Promise<void>
Contoh penggunaan
try {
await client.sendPreviewMessage('preview content')
} 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[];
}
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)
}
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
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
}
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
updatePostSession
Tanda tangan metode
updatePostSession(postSessionStatus: PostSessionStatus): Promise<void>
Antarmuka
enum PostSessionStatus {
READY = 'ready',
IN_PROGRESS = 'in_progress',
WAITING = 'waiting',
FINISHED = 'finished',
}
Contoh penggunaan
try {
await client.updatePostSession(PostSessionStatus.READY)
} 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;
}
Nilai:
post_session_required: postingan sesi diperlukan setelah chatpost_session_opt_in_required: apakah keikutsertaan diaktifkanpost_session_transfer_status: enumerasiPostSessionStatus
Lain-lain
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
}