このページでは、ヘッドレス ウェブ SDK で使用できる API メソッドの一覧を示します。
会社とメニュー
会社の価値観とメニューを処理する方法。
getTrigger
このメソッドは、現在のページのプロアクティブ トリガーを検出します。現在のマッチしたトリガーまたは null のいずれかを返します。
const trigger = await client.getTrigger()
getCompany
このメソッドは会社情報を取得します。
メソッドのシグネチャ
getCompany(): Promise<CompanyResponse>
戻り値
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;
}
使用例
try {
const company = await client.getCompany()
} catch (error) {
// handle error
}
getMenus
このメソッドは、テナントで使用可能なすべてのメニュー項目を一覧表示します。
メソッドのシグネチャ
getMenus(key?: string, lang?: string): Promise<MenuResponse>
戻り値
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;
};
}
使用例
try {
const data: MenuResponse = await client.getMenus("direct_menu_key")
console.log(data.menus)
console.log(data.direct)
} catch (error) {
// handle error
}
getWaitTimes
このメソッドは、メニューのチャット チャネルまたは通話チャネルの待ち時間を取得します。
メソッドのシグネチャ
getWaitTimes(menuId: number | string, lang?: string): Promise<WaitTimeResponse>
戻り値
WaitTimeResponse オブジェクトを返します。
Interfaces
interface WaitTimeResponse {
chat: number;
voice_call: number;
}
使用例
try {
const data: WaitTimeResponse = await client.getWaitTimes(123)
} catch (error) {
// handle error
}
通話
SDK を介してスケジュールされた呼び出しを処理するためのメソッド。
createCall
このメソッドは、インスタント通話またはスケジュール設定された通話を作成します。
メソッドのシグネチャ
createCall(menuId: number | string, data: CallRequest): Promise<CallResponse>
戻り値
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>;
};
reschedule_call_id?: number;
use_advanced_call_scheduling?: boolean;
}
使用例
try {
const call = await client.createCall(123, { phone_number: '+12345678' })
} catch (error) {
// handle error
}
loadCall
このメソッドは、指定された通話 ID の通話情報を取得します。
メソッドのシグネチャ
loadCall(callId: number | string): Promise<CallResponse>
戻り値
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;
}[];
}
使用例
try {
const call = await client.loadCall(1234)
} catch (error) {
// handle error
}
cancelCall
このメソッドは通話をキャンセルします。
メソッドのシグネチャ
cancelCall(callId: number | string): Promise<CallResponse>
戻り値
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;
}[];
}
使用例
try {
const response = await client.cancelCall(1234)
} catch (error) {
// handle error
}
getTimeSlots
指定されたメニューでスケジュール設定された通話の空き時間枠を取得します。
GetTimeSlotsRequest オプション オブジェクトを指定して呼び出すと、このメソッドは次の処理をサポートします。
高度な通話のスケジュール設定:
useAdvancedCallScheduling: true既存の電話相談の日程を変更する:
rescheduleCallId
非推奨の lang 文字列シグネチャは引き続きサポートされており、同じエンドポイントにルーティングされます。この場合、lang のみが入力されます。
メソッドのシグネチャ
getTimeSlots(menuId: number | string, options?: GetTimeSlotsRequest): Promise<string[]>
戻り値
時間帯の文字列の配列を返します。
Interfaces
interface GetTimeSlotsRequest {
lang?: string;
rescheduleCallId?: number; // ID of an existing call being rescheduled
useAdvancedCallScheduling?: boolean; // Enable advanced call scheduling behavior
}
使用例
// 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
このメソッドは、時間枠の完全なリストを取得せずに、指定されたメニューで時間枠が利用可能かどうかを確認します。これを使用して、UI からスケジュール オプションを条件付きで表示できます。
メソッドのシグネチャ
fetchTimeSlotAvailability(menuId: number | string, lang?: string): Promise<boolean>
戻り値
タイムスロットが利用可能な場合は true を返します。それ以外の場合は、false。
使用例
try {
const isAvailable = await client.fetchTimeSlotAvailability(123, 'en')
if (isAvailable) {
// Show scheduling UI
}
} catch (error) {
// handle error
}
チャット
SDK でチャットを処理する方法。
createChat
このメソッドは新しいチャットを作成します。
メソッドのシグネチャ
createChat(menuId: number | string, data: ChatRequest): Promise<Chat>
戻り値
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>;
};
}
使用例
try {
const chat = client.createChat(123, { lang: 'en' })
} catch (error) {
// handle error
}
loadChat
このメソッドは、指定されたチャット ID のチャット情報を取得します。
メソッドのシグネチャ
loadChat(chatId: number | string): Promise<Chat>
戻り値
Chat インスタンスを返します。
使用例
try {
const chat = await client.loadChat(1234)
} catch (error) {
// handle error
}
loadOngoingChat
このメソッドは、進行中のチャット インスタンスを取得するために使用されます。
メソッドのシグネチャ
loadOngoingChat(): Promise<Chat | null>
戻り値
進行中のチャットが見つかった場合は Chat インスタンスを返し、進行中のチャットがない場合は null を返します。チャットが進行中でない場合、ストレージ値をクリーンアップします。
使用例
try {
const chat = await client.loadOngoingChat()
} catch (error) {
// handle error
}
resumeChat
このメソッドは、閉じたチャットを再開します。
メソッドのシグネチャ
resumeChat(chatId: number | string): Promise<Chat>
戻り値
チャット インスタンスを返します。
使用例
client.resumeChat(1234)
finishChat
このメソッドは、チャットのステータスを finished に変更します。
メソッドのシグネチャ
finishChat(): Promise<void>
使用例
try {
await client.finishChat()
} catch (error) {
// handle error
}
destroyChat
このメソッドは、現在進行中のチャットを破棄します。
メソッドのシグネチャ
destroyChat(): Promise<void>
使用例
try {
await client.destroyChat()
} catch (error) {
// handle error
}
fetchMessages
このメソッドは、以前のすべてのメッセージを取得するために使用されます。失敗した場合は、空の配列が返されます。このメソッドは、チャットが接続された後に使用します。
メソッドのシグネチャ
fetchMessages(): Promise<MessageResponse[]>
戻り値
MessageResponse の配列を返します。失敗した場合は空の配列を返します。
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;
};
}
使用例
const messages = client.fetchMessages()
sendTextMessage
このメソッドはテキスト メッセージを送信します。
メソッドのシグネチャ
sendTextMessage(rawContent: string): Promise<void>
使用例
try {
client.sendTextMessage("hello world")
} catch (error) {
// handle error
}
sendFileMessage
このメソッドはファイル メッセージを送信します。
メソッドのシグネチャ
sendFileMessage(file: File): Promise<number>
戻り値
メッセージ ID を返します。失敗した場合は -1 を返します。
使用例
const input = document.querySelector('input[type="file"]')
const file = input.files[0]
const id = client.sendFileMessage(file)
sendPreviewMessage
エージェント アダプターにメッセージのプレビューを送信するために使用されます。プレビュー メッセージは、startTyping メソッドが呼び出された場合にのみ、エージェント アダプタに表示されます。プレビュー メッセージは、最終メッセージが送信されるか、stopTyping メソッドが呼び出されるまでのみ表示されます。詳細については、エージェント エクスペリエンス - メッセージのプレビューをご覧ください。
メソッドのシグネチャ
sendPreviewMessage(content: string): Promise<void>
使用例
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
メソッドのシグネチャ
startTyping()
使用例
try {
client.startTyping()
} catch (error) {
// handle error
}
stopTyping
メソッドのシグネチャ
stopTyping()
使用例
try {
client.stopTyping()
} catch (error) {
// handle error
}
getChatDeflection
このメソッドは、チャットの回避設定を取得します。
メソッドのシグネチャ
getChatDeflection(): Promise<ChatDeflectionResponse>
戻り値
ChatDeflectionResponse オブジェクトを返します。
Interfaces
interface ChatDeflectionResponse {
enabled: boolean;
threshold: number;
email: boolean;
keep_waiting: boolean;
external_deflection_links: {
enabled: boolean;
ids: number[];
};
}
使用例
try {
const deflection = await client.getChatDeflection()
} catch (error) {
// handle error
}
sendChatTranscripts
現在のチャットの記録を指定したメールアドレスに送信します。
メソッドのシグネチャ
sendChatTranscripts (emails: string[]): Promise<void>
使用例
try {
client.sendChatTranscripts([
"name1@example.com",
"name2@example.com",
])
} catch (error) {
// handle error
}
downloadChatTranscript
メソッドのシグネチャ
downloadChatTranscript(): Promise<GenerateTranscriptResponse>
戻り値
文字起こしオブジェクトを返します。
interface GenerateTranscriptResponse {
status: string;
chat_transcript_id: number;
}
使用例
try {
const resp = await client.downloadChatTranscript()
} catch (error) {
// handle error
}
getPdfStatus
メソッドのシグネチャ
getPdfStatus(id: number): Promise<RequestReturn>
戻り値
PDF ステータス オブジェクトを返します。
Interfaces
interface RequestReturn {
//...
headers,
data: PdfStatusResponse,
}
interface PdfStatusResponse {
status: string;
body?: File;
failed_reason?: string;
}
使用例
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
このメソッドは、チャット アンケートの質問を取得するために使用されます。
メソッドのシグネチャ
getChatSurvey(): Promise<ChatSurveyResponse>
戻り値
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[];
}
使用例
try {
const data = await client.getChatSurvey()
console.log(data.questions)
} catch (error) {
// handle error
}
sendChatSurvey
このメソッドは、消費者向けにアンケートを送信します。
メソッドのシグネチャ
sendChatSurvey(answers: SurveyAnswers): void
Interfaces
interface SurveyAnswers {
[question_id: string]: number | string;
}
使用例
try {
await client.sendChatSurvey({
123: "a",
231: "b",
})
} catch (error) {
// handle error
}
sendChatRate
このメソッドは、チャットが終了したときに現在のチャットのエンドユーザー フィードバックを送信します。
メソッドのシグネチャ
sendChatRate(data: RateRequest): Promise<void>
Interfaces
interface RateRequest {
rating: number;
feedback?: string;
}
使用例
try {
await client.sendChatRate({
rating: 5,
feedback: "Very good service",
})
} catch (error) {
// handle error
}
escalateChat
メソッドのシグネチャ
escalateChat(data?: EscalateRequest): Promise<void>
Interfaces
interface EscalateRequest {
reason?: string;
// ...other escalation fields
}
使用例
try {
await client.escalateChat()
} catch (error) {
// handle error
}
trackChatEscalation
メソッドのシグネチャ
trackChatEscalation(escalationId: number, channel: string): Promise<void>
使用例
try {
await client.trackChatEscalation(escalationId, channel)
} catch (error) {
// handle error
}
trackChatEndUserEvent
メソッドのシグネチャ
trackChatEndUserEvent(data: ChatEndUserEventRequest): Promise<void>
戻り値
void を返します。
Interfaces
interface ChatEndUserEventRequest {
end_user_name?: string;
// ...other event fields
}
使用例
try {
await client.trackChatEndUserEvent(eventData)
} catch (error) {
// handle error
}
getChatHistory
メソッドのシグネチャ
getChatHistory(page?: number): Promise<ChatHistoryResponse>
戻り値
ChatHistoryResponse オブジェクトを返します。
Interfaces
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;
}
}
使用例
try {
const data = client.getChatHistory(page: number)
console.log(data)
} catch (error) {
console.log(error)
}
メール
サポート メールを処理する方法。
createEmails
メソッドのシグネチャ
createEmail(menuId: number | string, data: EmailRequest): Promise<EmailResponse>
戻り値
失敗または成功時に EmailResponse オブジェクトを返します。
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;
}
使用例
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
メソッドのシグネチャ
getProhibitedFileTypes(): Promise<FileTypeItem[]>
戻り値
FileTypeItem の配列を返します。
Interfaces
interface FileTypeItem {
extension: string;
description: string;
}
使用例
try {
const types = await client.getProhibitedFileTypes()
} catch (error) {
// handle error
}
画面共有
画面共有機能を処理する方法。
createCobrowseCode
このメソッドは画面共有コードを作成します。
メソッドのシグネチャ
createCobrowseCode(lang?: string, customData?: Record<string, string>): Promise<string>
戻り値
画面共有コードの文字列を返します。失敗した場合は空の文字列を返します。
使用例
const code = await client.createCobrowseCode()
// 123456
startCobrowse
メソッドのシグネチャ
startCobrowse(from?: string): Promise<void>
使用例
try {
await client.startCobrowse()
} catch (error) {
// handle error
}
restoreCobrowseSession
このメソッドは、ブラウザ ウィンドウが再度開かれた後、またはウィジェットが再読み込みされた後に、以前にアクティブだった画面共有セッションの復元を試みます。
メソッドのシグネチャ
restoreCobrowseSession(): Promise<void>
戻り値
Promise<void> を返します。このメソッドは、インスタンスで画面共有が有効になっていない場合、またはストレージに以前の画面共有セッションが存在しない場合、no-op(エラーなしで直ちに返される)です。
使用例
// Safe to call unconditionally. Will no-op if cobrowse is not enabled
// or if no previous session exists
await client.restoreCobrowseSession()
getMessageAttachment
メソッドのシグネチャ
getMessageAttachment(message: MessageResponse): Promise<File | null>
戻り値
見つかった場合は File オブジェクトを返し、該当しない場合は null を返します。
使用例
try {
const file = await client.getMessageAttachment(message);
} catch (error) {
// handle error
}
セッション後の仮想エージェント
セッション後のバーチャル エージェントを処理する方法。
updatePostSession
進行中のチャットのセッション後の仮想エージェントのステータスを更新します。セッション後のバーチャル エージェント フローの準備、進行状況、完了を通知するために使用します。postSessionStatus が FINISHED または WAITING の場合、これらの遷移は内部で処理されるため、このメソッドは no-op としてすぐに返されます。このメソッドには、400 レスポンスの IN_PROGRESS ステータス専用の内部再試行ロジックがあるため、呼び出し元はそのケースで独自の再試行を実装する必要はありません。
メソッドのシグネチャ
updatePostSession(postSessionStatus: PostSessionStatus, optInSelection?: boolean): Promise<void>
Interfaces
enum PostSessionStatus {
READY = 'ready',
IN_PROGRESS = 'in_progress',
WAITING = 'waiting',
FINISHED = 'finished',
}
使用例
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)
}
関連インターフェース
interface ChatResponse {
//...
post_session_required?: boolean;
post_session_opt_in_required?: boolean;
post_session_transfer_status?: string;
}
post_session_required: チャット後に必要なセッション後の処理。post_session_opt_in_required: オプトインが有効になっている場合。post_session_transfer_status:PostSessionStatus列挙型。
デバッグ
SDK をデバッグするためのメソッド。
getLogs
ブリッジレベルとルートレベルのログを含む、SDK によって収集された内部デバッグログを取得します。これは、統合に関する問題のトラブルシューティングに役立ちます。
メソッドのシグネチャ
getLogs(): Promise<{ bridgeLogs: LogHistoryData[], rootLogs: LogHistoryData[] }>
戻り値
2 つの LogHistoryData の配列を含むオブジェクトを返します。
Interfaces
interface LogHistoryData {
date: string;
channel: string;
level: string;
args: any[];
}
粒度
各 LogHistoryData エントリは、次のフィールドを含む単一のログイベントをキャプチャします。
date。イベントの ISO 8601 タイムスタンプ。channel。イベントを生成した SDK モジュール(トップレベル クライアント、チャットレイヤ、画面共有レイヤ、リアルタイム プロバイダなど)。level。ログの重大度。値には、debug、info、warn、errorなどがあります。args。ログ呼び出しでキャプチャされた未加工の引数。
次のコード例は、ログエントリを示しています。
{
"date": "2026-05-08T14:02:13.412Z",
"channel": "Provider",
"level": "info",
"args": ["chat connected", { "chatId": 4421 }]
}
チャンネルとメッセージの内容のセットは、SDK のリリース間で変更される可能性があります。ログは、安定した解析対象ではなく、デバッグの補助として扱います。特定のチャンネル名やメッセージ文字列に依存する本番環境ロジックを構築しないでください。
スコープと推奨される使用方法
getLogs メソッドは、ヘッドレス ウェブ SDK 自体の統合に関する問題の診断に役立つ SDK 内部レコードを返します。主なユースケースはサポート診断です。エンドユーザーが問題を報告すると、アプリケーションは getLogs の結果を取得し、コンタクト センター AI プラットフォーム(CCAI Platform)に送信されるサポート チケットに添付できます。
返されるログには、次のものは含まれません。
ホストページのアプリのテレメトリー、ビジネス イベント、ユーザー ナビゲーション。
ブラウザが SDK に表示しないネットワーク エラー(CORS、混合コンテンツ、証明書エラーなど)。
SDK に返された HTTP ステータス以外のサーバーサイドのリクエスト トレースまたはバックエンドの詳細。
getLogs メソッドは、独自のオブザーバビリティ ツールに代わるものではありません。Google は、SDK を次のものと組み合わせることを推奨しています。
ブラウザ側のエラーまたは RUM トラッカー(Sentry、Datadog Browser RUM、New Relic Browser など)。
認証エンドポイントのサーバーサイド ロギング。これは、SDK が呼び出す
authenticateコールバックです。チャット ライフサイクル シグナルを独自のテレメトリー パイプラインに転送する必要がある場合は、
chat.disconnected、chat.timeout、chat.endedのアプリケーション レベルのリスナー。
使用例
try {
const { bridgeLogs, rootLogs } = await client.getLogs()
console.log('Bridge logs:', bridgeLogs)
console.log('Root logs:', rootLogs)
} catch (error) {
// handle error
}
printLogs
すべての内部デバッグログをブラウザ コンソールに直接出力します。これは、内部で getLogs() を呼び出して出力をフォーマットする便利なメソッドです。
メソッドのシグネチャ
printLogs(): Promise<void>
使用例
try {
await client.printLogs()
} catch (error) {
// handle error
}
その他
その他の SDK メソッド。
runTrigger
メソッドのシグネチャ
runTrigger(cb: (trigger: TriggerItem) => void): Promise<void>
使用例
client.runTrigger((trigger: TriggerItem) => {
// code to run for given trigger
})
getAfterHourMessage
メソッドのシグネチャ
getAfterHourMessage(lang?: string): Promise<string>
戻り値
構成されたメッセージを含む文字列を返します。
使用例
try {
const message: string = await client.getAfterHourMessage()
} catch (error) {
// handle error
}