Metode API SDK web tanpa UI

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

Email

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 chat

  • post_session_opt_in_required: apakah keikutsertaan diaktifkan

  • post_session_transfer_status: enumerasi PostSessionStatus

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
}