Métodos de la API del SDK web sin interfaz gráfica

En esta página, se enumeran los métodos de API disponibles para el SDK web sin encabezado.

Empresa y menús

getTrigger

Este método detecta los activadores proactivos de la página actual. Devuelve el activador coincidente actual o null.

const trigger = await client.getTrigger()

getCompany

Este método recupera la información de la empresa.

Firma del método

getCompany(): Promise<CompanyResponse>

Valor que se devuelve

Muestra un objeto CompanyResponse.

Interfaces

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

Ejemplo de uso

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

getAfterHourMessage

Este método recupera el mensaje para la desviación fuera del horario de atención.

Parámetro de solicitud:

(lang?: string)

Ejemplo:

const message: string = await client.getAfterHourMessage()

getMenus

Este método enumera todos los elementos de menú disponibles para el arrendatario.

Firma del método

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

Valor que se devuelve

Muestra un objeto MenuResponse.

Interfaces

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

Ejemplo de uso

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

getWaitTimes

Este método obtiene el tiempo de espera del canal de chat o el canal de llamadas de un menú.

Firma del método

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

Valor que se devuelve

Muestra un objeto WaitTimeResponse.

Interfaces

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

Ejemplo de uso

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

Llamadas

createCall

Este método crea una llamada instantánea o programada.

Firma del método

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

Valor que se devuelve

Muestra un objeto CallResponse.

Interfaces

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

Ejemplo de uso

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

loadCall

Este método recupera la información de la llamada para un ID de llamada especificado.

Firma del método

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

Valor que se devuelve

Muestra un objeto CallResponse.

Interfaces

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

Ejemplo de uso

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

cancelCall

Este método cancela una llamada.

Firma del método

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

Valor que se devuelve

Muestra un objeto CallResponse.

Interfaces

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

Ejemplo de uso

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

getTimeSlots

Este método se usa para obtener los intervalos disponibles.

Firma del método

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

Valor que se devuelve

Devuelve un array de cadenas (intervalos).

Ejemplo de uso

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

Chats

createChat

Este método crea un chat nuevo.

Firma del método

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

Valor que se muestra

Devuelve una instancia de Chat.

Interfaces

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

Ejemplo de uso

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

loadChat

Este método recupera la información de chat para un ID de chat determinado.

Firma del método

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

Valor que se devuelve

Devuelve una instancia de Chat.

Ejemplo de uso

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

loadOngoingChat

Este método se usa para obtener la instancia de chat en curso.

Firma del método

loadOngoingChat(): Promise<Chat | null>

Valor que se muestra

Devuelve una instancia de Chat si se encuentra o null si no existe un chat en curso. Limpia los valores de almacenamiento si el chat no está en curso.

Ejemplo de uso

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

resumeChat

Este método reanuda un chat descartado.

Firma del método

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

Valor que se devuelve

Devuelve una instancia de chat.

Ejemplo de uso

client.resumeChat(1234)

finishChat

Este método cambia el estado del chat a finished.

Firma del método

finishChat(): Promise<void>

Ejemplo de uso

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

destroyChat

Este método destruye el chat en curso actual.

Firma del método

destroyChat(): Promise<void>

Ejemplo de uso

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

fetchMessages

Este método se usa para obtener todos los mensajes anteriores. Si se produce un error, se devolverá un array vacío. Usarías este método después de que se conecte el chat.

Firma del método

fetchMessages(): Promise<MessageResponse[]>

Valor que se muestra

Devuelve un array de MessageResponse. Devuelve un array vacío si falla.

Interfaces

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

Ejemplo de uso

const messages = client.fetchMessages()

sendTextMessage

Este método envía un mensaje de texto.

Firma del método

sendTextMessage(rawContent: string): Promise<void>

Ejemplo de uso

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

sendFileMessage

Este método envía un mensaje de archivo.

Firma del método

sendFileMessage(file: File): Promise<number>

Valor que se devuelve

Devuelve el ID del mensaje o -1 si falla.

Ejemplo de uso

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

sendPreviewMessage

Firma del método

sendPreviewMessage(content: string): Promise<void>

Ejemplo de uso

try {
  await client.sendPreviewMessage('preview content')
} catch (error) {
  // handle error
}

getChatDeflection

Este método obtiene la configuración de desvío del chat.

Firma del método

getChatDeflection(): Promise<ChatDeflectionResponse>

Valor que se devuelve

Muestra un objeto ChatDeflectionResponse.

Interfaces

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

Ejemplo de uso

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

sendChatTranscripts

Envía las transcripciones de chat actuales a los correos electrónicos especificados.

Firma del método

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

Ejemplo de uso

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

downloadChatTranscript

Firma del método

downloadChatTranscript(): Promise<GenerateTranscriptResponse>

Valor que se devuelve

Devuelve el objeto de transcripción.

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

Ejemplo de uso

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

getPdfStatus

Firma del método

getPdfStatus(id: number): Promise<RequestReturn>

Valor que se devuelve

Devuelve el objeto de estado del PDF.

Interfaces

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

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

Ejemplo de uso

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

Este método se usa para obtener las preguntas de la encuesta de chat.

Firma del método

getChatSurvey(): Promise<ChatSurveyResponse>

Valor que se devuelve

Muestra un objeto ChatSurveyResponse.

Interfaces

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

Ejemplo de uso

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

sendChatSurvey

Este método envía una encuesta al consumidor.

Firma del método

sendChatSurvey(answers: SurveyAnswers): void

Interfaces

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

Ejemplo de uso

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

sendChatRate

Este método envía los comentarios del usuario final sobre el chat actual cuando este finaliza.

Firma del método

sendChatRate(data: RateRequest): Promise<void>

Interfaces

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

Ejemplo de uso

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

escalateChat

Firma del método

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

Interfaces

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

Ejemplo de uso

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

trackChatEscalation

Firma del método

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

Ejemplo de uso

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

trackChatEndUserEvent

Firma del método

trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>

Valor que se muestra

Devuelve un valor nulo.

Interfaces

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

Ejemplo de uso

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

getChatHistory

Firma del método

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

Valor que se devuelve

Muestra un objeto ChatHistoryResponse.

Interfaces

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

Ejemplo de uso

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

Correos electrónicos

createEmails

Firma del método

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

Valor que se devuelve

Devuelve un objeto EmailResponse en caso de error o éxito.

Interfaces

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

Ejemplo de uso

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 método

getProhibitedFileTypes(): Promise<FileTypeItem[]>

Valor que se devuelve

Devuelve un array de FileTypeItem.

Interfaces

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

Ejemplo de uso

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

Compartir la pantalla

createCobrowseCode

Este método crea un código de Screen Share.

Firma del método

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

Valor que se devuelve

Devuelve una cadena de código de Compartir pantalla o una cadena vacía si falla.

Ejemplo de uso

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

startCobrowse

Firma del método

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

Ejemplo de uso

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

getMessageAttachment

Firma del método

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

Valor que se devuelve

Devuelve un objeto File si se encuentra o un valor nulo si no es aplicable.

Ejemplo de uso

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

Agentes virtuales posteriores a la sesión

updatePostSession

Firma del método

updatePostSession(postSessionStatus: PostSessionStatus): Promise<void>

Interfaces

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

Ejemplo de uso

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

Interfaz relacionada

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

Valores:

  • post_session_required: Se requiere una publicación posterior a la sesión después de un chat.

  • post_session_opt_in_required: Indica si la opción de participación está habilitada.

  • post_session_transfer_status: una enumeración PostSessionStatus

Varios

runTrigger

Firma del método

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

Ejemplo de uso

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

getAfterHourMessage

Firma del método

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

Valor que se devuelve

Devuelve una cadena que contiene un mensaje configurado.

Ejemplo de uso

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