Méthodes de l'API du SDK Web headless

Cette page liste les méthodes d'API disponibles pour le SDK Web sans interface graphique.

Entreprise et menus

getTrigger

Cette méthode détecte les déclencheurs proactifs de la page actuelle. Il renvoie le déclencheur correspondant actuel ou null.

const trigger = await client.getTrigger()

getCompany

Cette méthode récupère les informations sur l'entreprise.

Signature de la méthode

getCompany(): Promise<CompanyResponse>

Valeur renvoyée

Renvoie un objet 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;
}

Exemple d'utilisation

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

getAfterHourMessage

Cette méthode récupère le message pour la déviation hors horaires d'ouverture.

Paramètre de requête :

(lang?: string)

Exemple :

const message: string = await client.getAfterHourMessage()

getMenus

Cette méthode liste tous les éléments de menu disponibles pour le locataire.

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet 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;
  };
}

Exemple d'utilisation

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

getWaitTimes

Cette méthode permet d'obtenir le temps d'attente pour le canal de chat ou d'appel d'un menu.

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet WaitTimeResponse.

Interfaces

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

Exemple d'utilisation

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

Appels

createCall

Cette méthode permet de créer un appel instantané ou programmé.

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet 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>;
  };
}

Exemple d'utilisation

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

loadCall

Cette méthode récupère les informations d'appel pour un ID d'appel spécifié.

Signature de la méthode

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

Valeur renvoyée

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

Exemple d'utilisation

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

cancelCall

Cette méthode annule un appel.

Signature de la méthode

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

Valeur renvoyée

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

Exemple d'utilisation

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

getTimeSlots

Cette méthode permet d'obtenir les créneaux horaires disponibles.

Signature de la méthode

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

Valeur renvoyée

Renvoie un tableau de chaînes (créneaux horaires).

Exemple d'utilisation

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

Discussions

createChat

Cette méthode permet de créer un chat.

Signature de la méthode

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

Valeur renvoyée

Renvoie une instance 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>;
  };
}

Exemple d'utilisation

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

loadChat

Cette méthode récupère les informations de chat pour un ID de chat donné.

Signature de la méthode

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

Valeur renvoyée

Renvoie une instance Chat.

Exemple d'utilisation

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

loadOngoingChat

Cette méthode permet d'obtenir l'instance de chat en cours.

Signature de la méthode

loadOngoingChat(): Promise<Chat | null>

Valeur renvoyée

Renvoie une instance Chat si elle est trouvée, ou null si aucune discussion n'est en cours. Nettoie les valeurs de stockage si le chat n'est pas en cours.

Exemple d'utilisation

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

resumeChat

Cette méthode permet de reprendre une discussion fermée.

Signature de la méthode

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

Valeur renvoyée

Renvoie une instance de chat.

Exemple d'utilisation

client.resumeChat(1234)

finishChat

Cette méthode définit l'état du chat sur finished.

Signature de la méthode

finishChat(): Promise<void>

Exemple d'utilisation

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

destroyChat

Cette méthode détruit la discussion en cours.

Signature de la méthode

destroyChat(): Promise<void>

Exemple d'utilisation

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

fetchMessages

Cette méthode permet d'obtenir tous les messages précédents. En cas d'échec, un tableau vide est renvoyé. Vous utiliserez cette méthode une fois le chat connecté.

Signature de la méthode

fetchMessages(): Promise<MessageResponse[]>

Valeur renvoyée

Renvoie un tableau de MessageResponse. Renvoie un tableau vide en cas d'échec.

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

Exemple d'utilisation

const messages = client.fetchMessages()

sendTextMessage

Cette méthode envoie un message.

Signature de la méthode

sendTextMessage(rawContent: string): Promise<void>

Exemple d'utilisation

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

sendFileMessage

Cette méthode envoie un message de fichier.

Signature de la méthode

sendFileMessage(file: File): Promise<number>

Valeur renvoyée

Renvoie l'ID du message ou -1 en cas d'échec.

Exemple d'utilisation

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

sendPreviewMessage

Signature de la méthode

sendPreviewMessage(content: string): Promise<void>

Exemple d'utilisation

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

getChatDeflection

Cette méthode permet d'obtenir la configuration de la déviation du chat.

Signature de la méthode

getChatDeflection(): Promise<ChatDeflectionResponse>

Valeur renvoyée

Renvoie un objet ChatDeflectionResponse.

Interfaces

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

Exemple d'utilisation

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

sendChatTranscripts

Envoyez les transcriptions de chat actuelles aux adresses e-mail spécifiées.

Signature de la méthode

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

Exemple d'utilisation

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

downloadChatTranscript

Signature de la méthode

downloadChatTranscript(): Promise<GenerateTranscriptResponse>

Valeur renvoyée

Renvoie l'objet de transcription.

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

Exemple d'utilisation

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

getPdfStatus

Signature de la méthode

getPdfStatus(id: number): Promise<RequestReturn>

Valeur renvoyée

Renvoie l'objet d'état du PDF.

Interfaces

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

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

Exemple d'utilisation

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

Cette méthode permet d'obtenir les questions de l'enquête par chat.

Signature de la méthode

getChatSurvey(): Promise<ChatSurveyResponse>

Valeur renvoyée

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

Exemple d'utilisation

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

sendChatSurvey

Cette méthode envoie une enquête au consommateur.

Signature de la méthode

sendChatSurvey(answers: SurveyAnswers): void

Interfaces

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

Exemple d'utilisation

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

sendChatRate

Cette méthode envoie les commentaires de l'utilisateur final pour la discussion en cours lorsque celle-ci est terminée.

Signature de la méthode

sendChatRate(data: RateRequest): Promise<void>

Interfaces

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

Exemple d'utilisation

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

escalateChat

Signature de la méthode

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

Interfaces

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

Exemple d'utilisation

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

trackChatEscalation

Signature de la méthode

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

Exemple d'utilisation

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

trackChatEndUserEvent

Signature de la méthode

trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>

Valeur renvoyée

Ne renvoie aucune valeur.

Interfaces

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

Exemple d'utilisation

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

getChatHistory

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet 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;
  }
}

Exemple d'utilisation

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

E-mails

createEmails

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet EmailResponse en cas d'échec ou de réussite.

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

Exemple d'utilisation

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

Signature de la méthode

getProhibitedFileTypes(): Promise<FileTypeItem[]>

Valeur renvoyée

Renvoie un tableau de FileTypeItem.

Interfaces

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

Exemple d'utilisation

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

Partage d'écran

createCobrowseCode

Cette méthode crée un code de partage d'écran.

Signature de la méthode

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

Valeur renvoyée

Renvoie une chaîne de code de partage d'écran ou une chaîne vide en cas d'échec.

Exemple d'utilisation

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

startCobrowse

Signature de la méthode

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

Exemple d'utilisation

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

getMessageAttachment

Signature de la méthode

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

Valeur renvoyée

Renvoie un objet File s'il est trouvé, ou null si ce n'est pas le cas.

Exemple d'utilisation

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

Agents virtuels post-session

updatePostSession

Signature de la méthode

updatePostSession(postSessionStatus: PostSessionStatus): Promise<void>

Interfaces

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

Exemple d'utilisation

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

Interface associée

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

Valeurs :

  • post_session_required : post-session requise après une discussion

  • post_session_opt_in_required : l'activation est activée

  • post_session_transfer_status : une énumération PostSessionStatus

Autres

runTrigger

Signature de la méthode

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

Exemple d'utilisation

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

getAfterHourMessage

Signature de la méthode

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

Valeur renvoyée

Renvoie une chaîne contenant un message configuré.

Exemple d'utilisation

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