(57)【特許請求の範囲】
【請求項１】
記憶位置から、第１のメモリにスクリプト定義をロードするためのローダーを備え、前記スクリプト定義の構成要素は、顧客関係管理ユーザーインタフェースの一部として、ユーザーに提示されるべき、論理的にリンクされた質問の組を含み、前記ローダーは、ユーザーからの指定に応答して、前記スクリプト定義に含まれるテキストが指定された言語に翻訳された状態のスクリプト定義を前記第１のメモリにロードし、
前記質問の組をリンクしている前記スクリプト定義の少なくとも一部に基づく提示順序で、前記スクリプト定義を実行して得られる質問を表示する実行ユニットと、
前記スクリプト定義の少なくとも一部に基づく表示順序で質問を表示するためのファイルを作成して、ネットワークを介して伝送し、前記スクリプト定義の構成要素を前記顧客関係管理ユーザーインタフェースの一部としてクライアント端末に提示できるようにするユーザーインタフェース構成要素と、
前記クライアント端末から受け取った回答を記憶する回答テーブルまたはデータベーステーブルと、
入力されたユーザー識別情報に関連付けて前記スクリプト定義の特定のセッションをセーブするセーブ構成要素とを備え、前記セーブ構成要素は、前記スクリプト定義の特定のセッションに関する情報を含む実行時状態情報をシリアル化してファイルにセーブするとともに、当該セーブしたファイルを特定するための情報をテーブルに記録し、
前記ローダーは、再開要求に応答して、保存された特定のスクリプト定義をロードし、
前記スクリプト定義の提示される構成要素の少なくとも一部は、先に受け取った回答に含まれる情報が織り込まれる、装置。
【請求項２】
前記ユーザーインタフェース構成要素は、ユーザー操作に応じて、提示された前記スクリプト定義の構成要素内のデータを修正する、請求項１に記載の装置。
【請求項３】
前記ユーザーインタフェース構成要素は、セーブされたセッションおよび新規のセッションを選択可能に提示する、請求項１または２に記載の装置。
【請求項４】
前記ユーザーインタフェース構成要素は、あるユーザー識別情報に関連付けられたセッションを別のユーザー識別情報を有するユーザーへ提示する、請求項１〜３のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、概括的には、情報の自動処理に関しており、限定するわけではないが特に
、ウェブサイトを介して顧客関係管理（ＣＲＭ）システム用の論理構造のような論理構造
に基づいてユーザーインタフェースを提示できるエンジンに関する。
【背景技術】
【０００２】
ビジネスは、顧客に提供するサービスを改良するよう常に努力している。実際、ビジネ
スが成功するか否かは、顧客の満足度に依ることが多い。顧客の要望に巧く対処するため
に、ビジネスは「顧客サービス部門」を設けていることが多い。これらの顧客サービス部
門は、通常、顧客の質問、問合せ、苦情又は他の販売及びサービス上の問題に答える人間
（「エージェント」又は「代理人」と呼ばれることもある）を採用している。最も基本的
な形態では、エージェントは、電話を介して顧客と通信し、顧客サービス部門に電話を掛
けてくる顧客の販売／サービスに関する問合せに口頭で答えている。
【０００３】
ビジネスとその顧客の間の対話を自動化するため、近年顧客関係管理（ＣＲＭ）システ
ムが普及してきている。ハードウェアとソフトウェアを利用すれば、従来エージェントが
行ってきたタスクの多くを、今や電子的に実行することができる。例えば、顧客は、予め
記録されたメッセージを聴き、電話機のボタンを使ってメニューを選択する自動ボイスメ
ールシステム（ＣＲＭの一形態）に慣れてきている。
【０００４】
ＣＲＭシステムの利用が増えているにも関わらず、幾つかの実行上の欠点が問題になっ
ている。例えば、ビジネス、製品及び顧客は、或る状況から別の状況へ大きく変化する。
或るのビジネスで上手く作用するものでも、別のビジネスには全く役に立たないかもしれ
ない。このように考えると、ＣＲＭシステムは、各ビジネス毎に専用仕様化する必要があ
る。この専用仕様化は、高価で時間が掛かることもあり、ビジネスに、専用ソフトウェア
コード、専用ハードウェア、専用アプリケーションなどを持ち込むことも多い。
【０００５】
この様に専用仕様化しても、ビジネスのシステム管理者は、既存機能の修正、機能追加
、構成要素の更新、ＣＲＭシステムの最初のインストール又は他の行為を行うような時に
は、ＣＲＭシステムを適切に実行するために、ソフトウェアコードを書き込まなければな
らないことがある。この制限は、システムの管理者がコードの書き方を知らなかったり、
ＣＲＭシステムの構造及びユーザーインタフェースに不慣れな場合は、ＣＲＭシステムの
展開に遅滞又は不適切な作動を引き起こすことになりかねない。
【０００６】
既存のＣＲＭシステムの別の欠点は、顧客の側からの欠点である。先に述べた自動ボイ
スメールシステムのような多くのタイプのＣＲＭシステムは、メニュー選択を顧客に段階
的に提示し、それから顧客の回答を処理する。顧客は電話を掛けたままでいなければなら
ず、或いは、通話が切れた場合、電話番号をリダイヤルして、処理を全てやり直さなけれ
ばならない。これは、顧客にとって大いに苛立たせ且つ不便なものであり、自動メッセー
ジの或るポイントまで辿り付くまでに多くの労力を費していた場合には特にそうであり、
通信は早期に終結されることになる。
【０００７】
幾つかのＣＲＭシステムは、人間エージェントからのサポートを最小にした「セルフサ
ービス」を顧客に提供するために、インターネットのようなネットワークを通して顧客サ
ービスを提供する試みを行っている。インターネットウェブサイトがその例で、このウェ
ブサイトは、ハイパーテキストリンク形態のメニュー選択又は質問を備えて提示するか、
或いは、顧客が名前、アドレス、製品注文などの情報を入力できる形態を備えて提示する
ことにより、顧客がある程度の顧客サービスを入手できるウェブページを有している。し
かしながら、そのようなウェブサイトは、一般的に非常に粗末なもので、多くの顧客が持
ちたがるような個人化の段階を提供するものではない。更に、これらのウェブサイトは、
通常、障害追跡、用紙記入、個人化された命令などのタスクを実行するワークフローで対
話式ガイダンスを提供することは殆ど又は全くない。これらのウェブサイトも、顧客の問
い合わせが処理されている間に顧客のインターネット接続が切断された場合には、顧客は
通常再度初めからやり直さなくてはならず、自動ボイスメールシステムに関して先に述べ
たのと同じ「通話切れ」制限に悩まされている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】ＰＣＴ出願番号第ＰＣＴ／ＵＳ９９／２８４１５号
【特許文献２】ＰＣＴ発行第ＷＯ  ００／３３２２６号
【発明の概要】
【課題を解決するための手段】
【０００９】
論理構造に基づいてユーザーインタフェースをウェブサイトに亘って提示するためのエ
ンジンの実施形態をここで説明する。以下の説明には、本発明の実施形態を完全に理解頂
けるよう、具体的詳細事項を数多く配している。しかしながら、当業者には理解頂けるよ
うに、本発明は、１つ又は複数の具体的詳細事項を備えていなくても実施できるし、別の
方法、構成要素、材料などを使って実施することもできる。また、本発明の態様を不明確
にしないために、周知の構造、材料又は作動については詳細に図示又は説明しない。
【００１０】
本明細書を通して「１つの実施形態」又は「或る実施形態」という場合、その実施形態
と関連して記述する特定の特徴、構造又は特性が、本発明の少なくとも１つの実施形態に
含まれていることを意味している。従って、本明細書を通して様々な箇所に現れる「１つ
の実施形態において」又は「或る実施形態において」という語句は、必ずしも全て同じ実
施形態に言及しているわけではない。更に、特定の特徴、構造又は特性は、１つ又は複数
の実施形態において、何れかの適した方法で組み合わせることもできる。
【００１１】
概括的には、本発明の１つの実施形態は、フローチャートベースのツールを使って、ビ
ジネスのシステム管理者のような個人が、論理構造を組み立てることができるようにして
いる。ＣＲＭシステムでは、論理構造は、顧客が販売又はサービスの問合せのような問合
せ、又は別の対話によってビジネスに接触するときにビジネスの顧客に提示される順序付
けられた一式の質問及び分岐論理で構成することができる。所与のタスクを達成するため
のワークフローを含む論理構造に基づいているユーザーインタフェースを、顧客又はエー
ジェントに提示することができる。論理構造は、顧客又はエージェントに提供されるユー
ザーインタフェースに関係付けられている。フローチャートベースのツールの１つの実施
形態は、ドラッグ・アンド・ドロップインタフェースを使って論理構造を組み立てており
、論理構造の個々の構成要素に関する質問は、管理者が構成することもできるし、メニュ
ーから選択することもできる。
【００１２】
論理構造が作成された後、エンジンは、論理構造と関係付けられたセッションを実行し
て、質問、テキスト、グラフィクスなどをユーザーに動的に提示することができる。分岐
論理は、前の質問に対する回答に基づいて、適切な情報を判定してユーザーに提示する。
１つの実施形態では、エンジンは、ハイパーテキストマークアップ言語（ＨＴＭＬ）ファ
イルを作成してユーザーのクライアント端末上に質問又は論理構造の別の構成要素を表示
することによって、インターネット及びウェブサイトのようなネットワークを通してユー
ザー／顧客へ情報を提示することができるようになっている。別の実施形態では、エンジ
ンは、質問又は論理構造の別の構成要素のような情報をエージェントに提示し、次にエー
ジェントは、顧客からの回答を得るために顧客に質問を伝え、結果的に論理構造を介して
対話を進行させることができるようになっている。
【００１３】
ここに開示されている様々な実施形態の特徴は、ＰＣＴ出願番号第ＰＣＴ／ＵＳ９９／
２８４１５号「スマート・スクリプティング・コールセンター」及び１９９８年１１月３
０日出願の米国特許出願第６０／１１０，１８７号に基づく優先権を請求している２００
０年６月８日発行のＰＣＴ発行第ＷＯ００／３３２２６号に開示されている方法、システ
ム、ツール及び製品と連結して用いることができる。なお上記出願は、どちらも、本出願
と同じ譲渡人に譲渡されており、参考文献としてその全体をここに援用する。
【００１４】
説明を簡単にするために、本明細書に用いている幾つかの用語を明らかにする。この専
門用語は、説明のために用いているのであり、本発明の範囲を厳しく制限するものではな
い。更に、これらの用語で示されている構成要素は、別の実施形態では、別の専門用語を
使って違った呼び方をされることもある。本発明の実施形態を説明するために本明細書で
用いている専門用語は、以下の通りである。
【００１５】
「質問」は、スクリプトと顧客／ユーザーの間の単一の対話を示している。質問は回答
を有することもあり、必ずしも情報を集める必要はない。例えば、ユーザーに提示される
情報のテキストは、必ずしもユーザーからの応答を必要としない。
【００１６】
「回答」は、質問に対して定義されている特定の値を含んでいる。回答は、ユーザーの
質問に対する応答を制約するか、或いは、質問からのナビゲーションを制御するのに用い
ることもできる。
【００１７】
「スクリプト」又は「スクリプト定義」は、順序付けられた一式の質問及びそれらの間
の分岐を含んでいる。質問は、２つ以上のスクリプトに用いることもできるし、分岐を通
してスクリプトと関係付けることもできる。スクリプト定義も、順序付けられた一式のペ
ージとそれらの間の分岐を含んでいる。各ページは、ページ内に分岐を定義することがで
き、分岐がページ間に存在してもよい。
【００１８】
「分岐」は１つの質問と別の質問との間のリンクであってもよいし、１つのページと別
のページとの間のリンクであってもよい。
【００１９】
「ページ」は、分岐を含む一式の質問を備えており、１つ又は複数のスクリプトで用い
ることができる。ページは、質問の「コンテナ」と考えることができ、スクリプトはペー
ジの「コンテナ」として考えることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態を実行できるシステムのブロック図である。
【図２】論理構造を組み立てるために図１のシステムで使用することのできるフローチャートベースのツールのユーザーインタフェースの実施形態を示す。
【図３】論理構造を組み立てるために図１のシステムで使用することのできるフローチャートベースのツールのユーザーインタフェースの実施形態を示す。
【図４】論理構造を組み立てるために図１のシステムで使用することのできるフローチャートベースのツールのユーザーインタフェースの実施形態を示す。
【図５】論理構造を組み立てるために図１のシステムで使用することのできるフローチャートベースのツールのユーザーインタフェースの実施形態を示す。
【図６】論理構造を組み立てるために図１のシステムで使用することのできるフローチャートベースのツールのユーザーインタフェースの実施形態を示す。
【図７】論理構造の状態又は制御フローを見るためのユーザーインタフェースの実施形態を示す。
【図８】本発明の或る実施形態による論理構造の検証及びインポート／エクスポートを示す機能ブロック図である。
【図９】本発明の或る実施形態による論理構造の作動を実行できるエンジンを示す機能ブロック図である。
【図１０】本発明の別の実施形態による論理構造の作動を実行できるエンジンを示す機能ブロック図である。
【図１１】論理構造に関するセーブと再開の機能の実施形態を示す機能ブロック図である。
【発明を実施するための形態】
【００２１】
図面には、本発明の非限定的且つ非包括的実施形態を示している。なお、特に指定しな
い限り、同様な部品、部分には同様な参照番号を付している。
【００２２】
先ず図１には、本発明の実施形態を実行することができるシステムの例を、全体として
参照番号１０で示している。システム１０は、ビジネス１２と、複数のエンドユーザー即
ち「顧客」１４−１８とを含んでいる。ビジネス１２は、顧客１４−１８に、課金情報、
購入／注文情報、製品情報、障害追跡情報、及びビジネス１２によって指揮されるビジネ
スのタイプ次第で変わりうる多数の別のタイプの情報及びサービスを含む異なるタイプの
サービス及び情報を提供するよう作動する「顧客サービス」構成要素２０を有することが
できる。顧客サービス構成要素２０の１つの例は、「コールセンター」と呼ばれることも
あるものである。
【００２３】
顧客サービス構成要素２０は、本発明の実施形態では少なくとも１部は自動化すること
ができる。以下に詳細に説明するように、この自動化は、適したＣＲＭハードウェア及び
ソフトウェアによって実行することができる。システム管理者２２は、本発明のフローチ
ャートベースの実施形態を使って顧客サービス構成要素２０のオペレーションを構成し、
管理することができる。顧客サービス構成要素２０は、１つ又は複数のエージェント２４
−２６を含んでいてもよい。エージェント２４−２６は人間のオペレーターであってもよ
く、１つの実施形態では、人間のオペレーターがＣＲＭハードウェア及びソフトウェアを
使って顧客１４−１８からの問合せに対応している。少なくともエージェント２４−２６
の１つを、人間ではなく完全に自動化して、例えばウェブサイトを介して顧客サービス構
成要素２０と電子的に通信する顧客（例えば「ウェブユーザー」）からの問合せに対応す
ることもできる。
【００２４】
本発明の１つの実施形態では、顧客サービス構成要素２０は、電話のような従来型の通
信媒体を介して顧客１４−１６と通信することができる。顧客サービス構成要素２０と顧
客１４−１６の間の通信に用いることができる他のタイプの通信技術には、Ｅメール、フ
ァクシミリ、インスタントメッセージ、ボイスオーバーＩＰなどが含まれるが、これ等に
限定されるものではない。例えば、本発明の１つの実施形態では、顧客１８は、インター
ネット３０と通信的に接続可能なパソコン（ＰＣ）、ラップトップ、無線装置又は他の通
信装置のような顧客１８のクライアント端末にインストールされているウェブブラウザ２
８を介して、顧客サービス構成要素２０と通信できるようになっている。
【００２５】
インターネット３０は、ウェブサーバー３２及び１つ又は複数のウェブサーバー拡張部
３４を介して顧客サービス構成要素２０と通信的に接続されている。本発明の１つの実施
形態によれば、ウェブサーバー拡張部３４は、顧客サービス構成要素２０（又はウェブサ
ーバー３２の背後の顧客サービス構成要素２０のアーキテクチャ内に構築された他のアプ
リケーション）のオブジェクトマネージャー（図示せず）との通信か、そうでなければイ
ンタフェースを容易にするよう作用する。
【００２６】
システム１０の或る例示的オペレーションでは、管理者２２は、フローチャートベース
技法の実施形態を使って、以下に説明するやり方で、スクリプト定義のような論理構造を
作る。スクリプトが定義されると、顧客サービス構成要素２０は、顧客１４−１８からの
問合せを受け取る準備が整う。特定の顧客から問合せを受け取ると、エージェント２４（
又は２６）は、スクリプトの中の適した１つを開始し、続けて、スクリプト定義により定
義されている順序及び関係に従って、スクリプトから質問をその顧客に提示する。エージ
ェント２４がユーザーインタフェースを使って顧客の与えた回答を入力すると、エージェ
ントは、前の回答に基づいて次の質問（又は、ページ、スクリプト等）を、最終的な解決
に到達するまで、顧客に提示することができる。
【００２７】
例えば、顧客１４が、最近購入した製品について障害追跡するよう電話を掛けてきてい
る場合、エージェント２４は、その特定の製品に関する障害追跡に関連するスクリプトを
開始することができる。スクリプトの最初の質問は、顧客１４の名前、住所、電話番号、
購入した製品のモデル等の項目を含んでいてもよい。スクリプトの次の質問は、１つの実
施形態では、顧客１４が製品に関して有している問題の詳細に関して、顧客１４から回答
を得るために、エージェント２４が顧客と口頭で通信するようにすることもできる。最後
に、最終質問に到達すると、スクリプトは終了する。
【００２８】
或る実施形態では、顧客１８は、実質的に人間エージェントからの支援無しに、スクリ
プトを実行できる。この実施形態では、顧客１８はスクリプトを実行して、ウェブブラウ
ザ２８、及び顧客サービス構成要素２０用のウェブクライアント実施形態の他の構成要素
を使って、質問を見て、回答を提供することができる。同じスクリプトを同時に複数のエ
ージェントが実行してもよいし、ウェブサイトの複数のユーザーが同時に同じスクリプト
を実行してもよい。
【００２９】
図２−６は、図１のシステムで用いて、フローチャートベースツールの「設計モード」
の間に、ＣＲＭ実行のためのスクリプト又はスクリプト定義のような論理構造を構築する
ことのできる、フローチャートベースツールのユーザーインタフェースの実施形態を示し
ている。本発明別の実施形態では、フローチャートベースのツールを用いて、キャンペー
ンプログラム、組織図、状態モデル、ビジネスプロセス等の別のタイプの実行形態の論理
構造を構築することもできる。分かり易くするために、図２−６に示すユーザーインタフ
ェースについて、管理者２２が用いて論理構造を構築するという形で説明するが、別の個
人が、管理者２２の代わりに、又は管理者２２に加えて、フローチャートベースツール及
び関連ユーザーインタフェースを使用することもできる。
【００３０】
先ず図２に、ユーザーインタフェース３６の実施形態を示す。ユーザーインタフェース
３６はディスプレイ領域３８を含んでおり、管理者２２は、そこでフローチャート４０の
作成、編集／修正、表示等を行うことができる。ユーザーインタフェース３６は、複数の
パレット又はテンプレート４２を含んでいてもよい。図２に示す例では、テンプレート４
２は、質問テンプレートと分岐テンプレートを含んでいる。本発明の実施形態によれば、
フローチャート４０は、質問テンプレートと分岐テンプレートとを使って「ドラッグ・ア
ンド・ドロップ」技法により作成することができ、その場合、質問テンプレート及び／又
は分岐テンプレートをディスプレイ領域３８へドラッグしてドロップし、フローチャート
４０のオブジェクト又は構成要素（例えば、質問ブロック及び分岐）を構築する。この様
に、図２では、フローチャート４０は、分岐によって論理的にリンクされる複数の質問を
含んでいる。
【００３１】
一旦ディスプレイ領域３８に置くと、管理者２２は、フローチャート４０（又はディス
プレイ領域３８に表示される全フローチャート）の何れのオブジェクトでも、対話型式で
動かすか、寸法変更するか、大きさを変えるか、又は形状変更することができる。ページ
又はファイル間の切り取り及び貼り付け、階層化、格子位置又は別の位置への「スナッピ
ング」等を含む様々なこの他の異なる操作機能を駆使することができる。或る実施形態で
は、様々なオブジェクトは、その中に分岐又は他のコネクタを取り付けることができる或
るスポットを有している。これらのスポットを、例えば色によって視覚的に表示して、管
理者２２がオブジェクトを接続できるように配置するのを助け、或いは他の視認可能なイ
ンジケータを使ってオブジェクトが接続されていることを識別できるようにすることもで
きる。フローチャート４０の接続されているオブジェクトは、動かされるか、寸法変更さ
れるか、形状変更されるかしても、調和して動けるので、分離することなく、何れのオブ
ジェクトも管理者２２が再接続する必要はない。フローチャート４０の構成要素が動かさ
れるか再配置されると、情報がデータベース内に記憶され、再配置により作成される新た
な関係／構造が反映される。
【００３２】
図２の例では、フローチャート４０は、スクリプトの「導入」ページ部分を備えている
。「ニーズ分析」及び「支援プロファイル」ページのようなスクリプトの追加ページは、
ページが作成されると、リスト４４の一部として表示することができる。改訂又は閲覧の
ために表示する特定のページは、リスト４４から選択することができる。（ページ用コン
テナとして作用する）スクリプト自体を、ユーザーインタフェース３６のメニューバー４
６に表示することもできる。例えば、経費報告、価格管理、市場管理等に別々のスクリプ
トがあり、それらのページを閲覧、作成又は改訂するために、それらの何れかを選択する
ことができる。
【００３３】
ユーザーインタフェース３６は、確認ボタン４８を含んでいてもよい。以下に詳細に説
明するように、検証ボタン４８を「クリックする」と、フローチャート４０の検証プロセ
スが起動し、フローチャート４０の適切な作動を検証又は試験する。ユーザーインタフェ
ース３６は、翻訳機能５０を含んでいてもよい。翻訳機能５０を使えば、管理者２２は、
質問又は他の情報を顧客１４−１８に提示するときに、特定のスクリプトに使用すること
のできる異なる外国語を指定することができる。
【００３４】
図３は、ユーザーインタフェース３６のディスプレイ領域３８内に表示されるスクリプ
トの別のページを示している。このページは、リスト４４から選択された「ニーズ分析」
に対応するフローチャート５２を含んでいる。
【００３５】
図４は、管理者２２が、ディスプレイ領域３８内に表示されている特定のフローチャー
ト５４内の何れかのオブジェクトに関する質問自体をどのように組み立てるかを示してい
る。本発明の１つの実施形態によれば、質問選択ボックス５６（「属性」を有する「プロ
パティ」シートと呼ばれることもある）が表示され、選択ボックス５６は、管理者２２に
、各質問の内容について異なるオプションを提供するようになっている。例えば、管理者
２２が、ディスプレイ領域３８内に表示されているフローチャート５４の何れかのオブジ
ェクトをクリックすると、選択ボックス５６が表示される。フローチャート５４の各オブ
ジェクト毎に、異なる選択ボックス５６を表示してもよい。メニュー又はツールバーから
その機能を選択することによって、選択ボックス５６が表示されるようにしてもよい。も
う１つの実施形態のように、対応する質問オブジェクトが表示領域３８内にドロップされ
ると、選択ボックス５６が自動的に表示されるようにしてもよい。更に別の実施形態のよ
うに、独立したスクリーンを使って質問を作成することもできる。質問テンプレートが表
示領域３８にドラッグしてドロップされると、選択ボックス５６が現れる。管理者２２が
選択した質問を、質問テンプレートがドロップされている表示領域３８の部分で作成する
こともできる。
【００３６】
１つの実施形態では、選択ボックス５６に、事前に公式化された質問のリスト５８を含
ませておくことができる。そのような事前公式化質問は、ビジネス１２へ発送する前に、
ユーザーインタフェース３６の製造者が作成することもできるし、様々なフローチャート
を構築する過程の間に管理者２２が作成しセーブすることもできる。リスト５８内の各質
問毎に、回答のタイプを６０で定義することができる。例えば、質問が年間歳入量を求め
ている場合、有効回答として通貨の値だけを受け入れるように、対応する回答のタイプを
定義してもよい。回答タイプの他の例には、ストリング、ブール、数、特定製品情報等が
含まれるが、それ等に限定されるわけではない。
【００３７】
リスト５８から質問を選択できるようにする代わりに、又はそれに加えて、選択ボック
ス５６を使えば、管理者２２は「新規」ボタン６２又は他の構成要素を使用することで、
全く新しい質問を構成することができる。ボタン６２をクリックすることによって、管理
者２２が質問を入力／構成できるフィールド（図示せず）を表示することができる。
【００３８】
図５は、回答選択ボックス６４の実施形態を示している。選択ボックス６４は、例えば
、複数の定義された回答を有する質問用の分岐を加えるときに表示される。このように、
回答は、回答のリスト６６から選択することができる。別の実施形態では、選択ボックス
６４を使って、リスト６６とは異なる完全に新しい回答を構成し、回答のタイプ（例えば
、ストリング、通貨、ブール等）を定義するか、或いは、適当であれば、回答を定義又は
構成する。
【００３９】
図６は、ユーザーインタフェース３６を使って、ページと、ページ間の分岐とを備えた
フローチャート６８を構築する様子を示している。特に、本発明の実施形態を使えば、管
理者２２は、或るページの質問から別のページの別の質問へ分岐させ、事実上ページを関
連付けることができる。このように、フローチャート６８では、ページ７４の質問を、ペ
ージ７２と７０の質問に分岐させることができる。
【００４０】
テンプレート４２は、管理者２２がフローチャート６８を組み立てるのにドラッグ・ア
ンド・ドロップ方式で用いることのできるページパレット７６を含んでいてもよい。関連
付ける特定のページを、リスト７８から選定することができる。分岐する（及び分岐して
くる）特定の質問は、リスト８０から選定することもできる。加えて、同じページを複数
のスクリプトで利用又は再利用することもできる。
【００４１】
従って、図２−６に示すように、管理者２２は、設計モードの間にフローチャートベー
スのツールを使ってスクリプト定義を作成することができる。フローチャートベースのツ
ールを使って作成することのできるスクリプトの定義には、これに限定するわけではない
が、質問それ自体、質問の順序、質問の相互関係及び（前の回答によって変わる条件分岐
のような）分岐が含まれ、或いはスクリプトの流れを定義する別の論理構造が含まれる。
スクリプト定義の別の部分には、言語、実行時間、回答又は質問のタイプのような属性、
制御設定又はスクリプトの流れと挙動に影響を与えかねないその他の設定が含まれる。
【００４２】
ユーザーインタフェース３６の１つの実施形態では、管理者２２は、異なる外国語で提
示できるスクリプトを作成することができる。例えば、管理者２２が、全スクリプトを挨
拶の言葉で始まるように設計したければ、挨拶の言葉が最終の受信者（例えば顧客１４−
１８）の特定の言語で提示される。これは、１つの実施形態では、スクリプト定義の各要
素毎に言語記録を作成することで行うことができる。管理者２２は、図４の質問選択ボッ
クス５６又は図５の回答選択ボックス６４を使って、各質問又は回答それぞれに外国語翻
訳を作成することができる。
【００４３】
次に、図２の翻訳機能５０をクリックするか、何らかの方法で起動すると、リスト内に
異なる外国語がアッセンブリされ表示される。例えば、顧客１４がエージェント１４を呼
び出して、自分自身が独語話者である旨指定すると、エージェント１４は翻訳機能５０を
クリックしてスクリプトの独語版を選択することができる。翻訳機能５０をクリックする
と、スクリプト内の要素に関する全ての独語記録がロードされるので、スクリプトが実行
されると、独語テキストは、エンドユーザーが見る可能性のあるテキストの全部分に現れ
る。
【００４４】
従って、実行するスクリプトを選定するためのエンドユーザー用ユーザーインタフェー
スの１つの実施形態で、エンドユーザーは、２つのコラムを有するリストを見る。１つの
コラムはスクリプト名のコラムであり、もう１つのコラムは言語のコラムである。同じス
クリプトがリスト内に複数回現れることもある（例えば、翻訳を有する各言語に一回）。
エンドユーザーは、実行したいスクリプトをリストから選択する。スクリプトに利用でき
る各言語では、その言語の翻訳を、全ての質問テキスト、回答テキスト、ページ標示、ス
クリプト標示又は翻訳に適した他の特性に対して定義することができる。
【００４５】
主要な記録（例えば、スクリプト定義）と関連して働く言語記録を作成することによっ
て、全外国語に対してスクリプト全体を書き直す必要はなくなる。代わりに、管理者２２
は、テキストの或る部分に外国語の翻訳を作成しさえすればよい。そうすると、外国語の
翻訳は、言語記録に保管され、スクリプト定義に関連付けられ、その後、スクリプトが実
行されるときにロードされる。
【００４６】
従って、図２−６に示しているように、本発明の１つの実施形態では、論理構造は、管
理者２２がコードを書き込む必要無しに作成できるようになっている。更に、フローチャ
ートベースのツールを使えば、管理者２２は、コードを書き込んだり書き直したりする必
要無しに、既存のスクリプトを都合よく改訂し、或いはこれに追加できるようになってい
る。或る実施形態では、改訂及び追加は、設計モードの間に、パレット４２と選択ボック
ス５６及び６４を使って、フローチャートに適切にアクセスして変更することによって簡
単に実行することができる。
【００４７】
本発明の或る実施形態によれば、図２−６の様々なフローチャートを管理者２２が作成
する度に、スクリプト定義情報は、データベース内に記憶される。例えば、質問オブジェ
クトがディスプレイ領域３８にドロップされ、次に分岐により他の質問オブジェクトに接
続されると、ユーザーインタフェース３６（又は他のソフトウェア又は構成要素）は、対
応するスクリプト定義情報をデータベース内に記憶する。スクリプト定義情報は、特定の
質問オブジェクトの識別子、そこから分岐している質問オブジェクトの識別子、そこへ分
岐する質問オブジェクトの識別子、質問自体のテキスト、回答タイプ、質問オブジェクト
が属するページ及びスクリプト、質問の言語、そのフォント又は色、或いは、別のタイプ
のスクリプト定義情報又はオブジェクトの様々な相互関係に関係する情報を含んでいても
よい。或る実施形態では、スクリプトの各構成要素は、それ自体のデーブル内に記憶され
る。質問、ページ、分岐、回答、スクリプト、質問の翻訳、ページの翻訳等のテーブルが
あってもよい。新しい質問を作成するために新しいボタン６２を使用すると、質問テキス
トと回答タイプの入った質問テーブル内に記録が作成される。２つの質問が、フローチャ
ートツールを使って分岐で接続されるときは、接続を示すために分岐記録が作成される。
分岐記録は、質問からのＩＤ、どの回答でこの分岐を取るべきかを示す回答ＩＤ、質問へ
のＩＤ、及び、分岐が接続している質問の、フォント、色等のグラフィック特性を有する
ことができる。従って、フローチャートベースのツールを利用すると、例えば質問間の関
係を閲覧し、それらを操作する便利な方法が提供される。
【００４８】
本発明の或る実施形態では、このスクリプト定義情報は、データベースの行及びテーブ
ル内に記憶される。代わりに、又は加えて、スクリプト定義情報を、テキストファイル又
はバイナリファイルのようなファイルとして、同じデータベース又はファイルシステムの
ような別の記憶場所に記憶してもよい。「実行モード」（「実行時」と呼ばれることもあ
る）の間に、スクリプト定義がこの記憶場所からロードされ、フローチャートに定義され
た流れに従って、後に説明する方法で実行される。実行時の間に、エージェント２４又は
２６は、ワークフローによって取られた経路を見るか、又はプロセスの現在の状態（例え
ば、問い合わせている顧客はフローチャート内に在る）を見るために、フローチャートを
表示することができる。
【００４９】
図７は、図２−６のユーザーインタフェース３６を使って作成されたフローチャートの
１つのような論理構造の状態又は制御フローを見るためのユーザーインタフェース８２の
或る実施形態を示している。ユーザーインタフェース８２は、管理者２２及び／又はエー
ジェント２４又は２６が使用できる。１つの実施形態では、顧客１８のようなウェブユー
ザーは、ウェブブラウザ２８を介してユーザーインタフェース８２を使用することができ
る。ユーザーインタフェース８２は、特定のスクリプトの論理構造を示す「ツリー制御」
機能又は「ツリー構造」８４を提供することができる。例えばクリックすることによって
、ツリー構造８４内の要素の何れかを選択すると、その結果、ディスプレイ領域８８内に
対応する情報８６が表示される。
【００５０】
ユーザーインタフェース８２は、様々な目的に用いることができる。スクリプトの何れ
かの特定の部分を見るのに使用することもできる。また、スクリプトの或る場所から同じ
スクリプトの別の場所へ「ジャンプ」するのに使用することもできる。これは、スクリプ
トの或る部分にだけに関心があり、他の部分はユーザーにとって必要無いような状況で有
用である。この機能を使えば、ユーザーは、スクリプトの最初から開始する必要無しに、
そして先の部分に戻る前にスクリプト全体を終了する必要無しに、スクリプトの先の部分
何れにでも戻ることができる。このように、ツリー制御機能８４を使えば、スクリプト内
の関心のある任意の部分へ移動して、先の回答を変更し、異なる場所へ分岐し、先のメニ
ュー選択を改訂することができる。ユーザーインタフェース８２は、別のタイプの閲覧、
データ入力、修正及びナビゲーション目的に用いることもできる。
【００５１】
本発明の１つの実施形態では、管理者２２は、先の回答に基づく動的及び知的なテキス
トを有するスクリプトを作成できるようになっている。これには、全スクリプトに個人化
を織り込むテキスト置換が含まれている。例えば、第１質問の内の１つが顧客に彼／彼女
の名前を尋ねている場合、後続の質問には、顧客１８が提示した名前を織り込むことがで
きるので、スクリプトと顧客１８との間で生まれる対話は個人化されたものとなる。対話
を「個人化する」ためには、単に顧客１８の名前を後続の質問に挿入するだけでなく、幾
つかの方法がある。製品名、課金情報、故障追跡期間、又は先の回答に基づく他の情報を
、テキストの置換に利用することができる。
【００５２】
１つの実施形態では、管理者２２は、スクリプトを作成する際に、動的テキスト置換機
能をそのスクリプトに織り込むことができる。これを実現するための１つの技法は、管理
者２２が、ＪａｖＳｃｒｉｐｔTM又はＶｉｓｕａｌ  Ｂａｓｉｃコードを、そのような動
的テキスト置換が必要なスクリプトの場所（例えば、質問又は分岐）へ挿入することであ
る。実行時の間に、このコードが起動又は呼び出され、（例えば、メモリ、データベース
又はデータ構造から）先の質問に対する顧客の回答を抽出し、これらの回答が後続の質問
に挿入される。この様にして、コードはデータと対話し、後続の質問内に知的テキストを
作成する。テキスト置換を行うためのもう１つの技法は、スクリプト定義のこの機能部分
を作ることである。この実施形態では、顧客が回答を提示する度に、質問への回答が一時
的な変数の形でセーブされる。基底を成すスクリプト定義は、前記一時的な変数と関連又
はつながりがある。一時的な変数の形でセーブされている値は、後続の質問を提示する間
に呼び出され、質問の適切なテキストの場所に挿入される。
【００５３】
例えば或る実施形態では、管理者２２は、質問の定義の部分として、その質問への回答
が、名前の一時的変数にセーブされるよう指定することができる。他の質問は、質問テキ
スト内の構文 [Ｕｓｅｒ．ＶａｒｉａｂｌｅＮａｍｅ] を使って、一時的変数の値を表示
するように定義することができる。例えば、質問１は「苗字は何ですか」と尋ねて、その
回答をＬａｓｔＮａｍｅと呼ばれる変数にセーブするよう定義することができる。そうす
ると、質問２のテキストは、「Ｈｅｌｌｏ[Ｕｓｅｒ．ＬａｓｔＮａｍｅ]」と定義するこ
とができる。エンジンは、変数の値をテキスト内に、それを表示する前に自動的に置き換
える。
【００５４】
本発明の或る実施形態では、回答をデータベースの記録から選択することができ、又は
回答をデータベースの記録へセーブすることができるが、これは、１つの実施形態では、
コードをスクリプトに挿入する必要無しに、これらのオペレーションを実行することがで
きる。上記のように、これは、スクリプト定義の一部として一時的変数を使用することに
より実行することができる。他の実施形態では、エージェント又は顧客が、データベース
から記録を検索し、次に検索された記録を使って関連する質問へ回答を提示することによ
り、独立してこれを実行することができる。更に、スクリプトは、スクリプト実行の間に
ユーザーが提示した回答に基づいて、或いは、スクリプト実行前にユーザーに関する既知
の情報又はエージェントに知らされている情報に基づいて、顧客に対して個人化すること
もできる。
【００５５】
本発明の或る実施形態によれば、フローチャートベースのツールを使って構築されたス
クリプトを検証することができる。この検証は、エラー又は変造に対するスクリプトの構
造をチェックするために実行される。検出される恐れのあるエラー又は変造のタイプには
、到達し得ない質問又はページ、翻訳漏れ、開始の無い質問又はページ、質問又はページ
の漏れ等が含まれるが、これ等に限定されるものではない。
【００５６】
図８は、スクリプト（又はスクリプト定義）の検証を示す機能ブロック図である。図８
のブロック図の構成要素の少なくとも幾つかは、図１の顧客サービス構成要素２０に配置
することもできる。スクリプト定義９０（例えば、スクリプト定義情報）は、フローチャ
ートベースツールを使ってスクリプト９０を作成する時に、上記方法でデータベース９２
内に記憶される。ハードウェア又はソフトウェア或いはその両方で具現化されている検証
機ユニット９４は、データベース９２に連結されている。作動時、１つの実施形態では、
図１の検証ボタン４８をクリックすると、検証機ユニット９４は、コピーを抽出するか又
はスクリプト定義９０をロードし、スクリプト定義９０に関し検証ルーチンを実行してエ
ラー又は変造を突き止める。検証機ユニット９４がエラー又は変造を検出すると、ユーザ
ーインタフェース３６に表示するためのエラーメッセージが９６で作成される。
【００５７】
検証機ユニット９４が実行する検証ルーチンには、幾つかの技法が考えられる。１つの
実施形態では、スクリプト内の質問に対して所定の回答を提供し、回答によって全ての分
岐を試すことができるようになっている。次に、スクリプトを通過する処理のフローをモ
ニターして、スクリプトによる分岐が設計通りに作動するかどうかをチェックする（例え
ば、処理フローをモニターして、スクリプトの最後に、正しい且つ期待された「最終質問
」に到達することを検証する）。或る実施形態では、検証ルーチンは、スクリプトの基本
的構造をチェックする。例えば、検証ルーチンは、全分岐が開始ポイントと終了ポイント
を有しているかどうかをチェックする。
【００５８】
本発明の或る実施形態によれば、スクリプト（又はスクリプト定義）は、インポート、
エクスポートを行うことができる。このようなインポート、エクスポートは、バックアッ
プスクリプト定義、又は別のデータベース又はファイルシステムへの移送スクリプト定義
と連結して実行される。この移送により、異なる機械が特定のスクリプトにアクセスし利
用できるようになり、そうしなければそのような機械はスクリプトにアクセスできない。
【００５９】
図８の機能ブロック図は、本発明の実施形態によるスクリプト定義９０のエクスポート
及びインポートを示している。ハードウェア又はソフトウェア、或いはその両方で具現化
することのできるエクスポートエンジン９８は、データベース９２又はファイルシステム
に連結されている。作動時、エクスポートエンジン９８は、スクリプト定義９０のコピー
をロードするか又は作り、次に、そのスクリプト定義９０をファイル１００へとコンパイ
ル、セーブ又は変換する。ファイル１００は、バイナリファイル、テキストファイル又は
本発明の様々な実施形態による別のタイプのファイルであってもよい。ファイル１００は
、ランダムアクセスメモリ（ＲＡＭ）、フレキシブルディスク、ハードディスク、テープ
ドライブ、ＣＤ−ＲＯＭ又は他の機械読み取り可能な記憶媒体のようなメモリー又は他の
記憶場所に記憶することができる。
【００６０】
インポートの間に、ハードウェア又はソフトウェア、或いはその両方で具現化すること
のできるインポートエンジン１０２は、ファイル１００を読む。インポートエンジン１０
２は、次に、新しいエントリ又は記録をデータベース１０４内に作るか、又は、スクリプ
ト定義情報を有するもう１つのファイルを作り、そのファイルをファイルシステム内に記
憶する。新しい記録はファイル１００に対応し、而して、元のスクリプト定義９０のコピ
ーを備えている。
【００６１】
次に、図９に、本発明の実施例による論理構造のオペレーションを実行できるエンジン
１０６のブロック図を示す。ハードウェア又はソフトウェア、或いはその両方で具現化す
ることのできるエンジン１０６は、質問（テキストを含む）をユーザー（例えば、エージ
ェント又は顧客）に動的に提示することができ、そこでは、分岐論理が、前の回答に基づ
いて、提示する質問（テキストを含む）を判断する。１つの実施形態では、エンジン１０
６を使って、エージェント２２（又は２４）に論理構造を提示できるので、顧客１４（又
は１６）が顧客サービス構成要素２０に接触する時に、エンジン１０６は、エージェント
２２が閲覧するのに適切なスクリプトを実行し、それによりエージェント２２２が、顧客
１４に適切な順序で適切に質問できるようになる。
【００６２】
図９に示すように、エンジン１０６は、統合して、顧客サービス構成要素２０の他の要
素と共に作動するようにすることができる。（図２−６のユーザーインタフェース３６を
提供するツールのような）フローチャートベースのツール１０８を使って、スクリプト定
義９０を作成／編集／閲覧するが、スクリプト定義９０は、データベース記録又はエント
リとしてデータベース９２のフィールド内に記憶されている。そこには、フローチャート
ベースのツール１０８を使って作成される数多くのスクリプトに基づく複数のスクリプト
定義９０がある。代わりに、又は追加して、スクリプト定義情報を、ファイル１１０とし
てファイルシステム１１２内に記憶することもできる。ファイル１１０には、バイナリフ
ァイル、テキストファイル又は本発明の様々な実施形態による他のタイプのファイルが含
まれる。ローダー１１４は、データベース９２又はフィルシステム１１２に連結され、実
行時に、ローダー１１４がスクリプト定義９０又はファイル１１０をそれぞれロード（又
はコピー）できるようになっている。
【００６３】
作動時、実行時の間に、先ず、例えばエージェント２４又は２６の１つによって特定の
スクリプトが選択される。特定のスクリプトの選択は、ユーザーインタフェース３６（又
は他のインタフェース）を使って、例えば図２のメニューバー４６からのように、リスト
又はメニューからスクリプトを選択することにより実行される。スクリプトが選択される
と、ローダ１１４は、選択されたスクリプトに対応するデータベースエントリに備え、デ
ータベース９２を検索する。１つの実施形態では、これは、選択されたスクリプトに対応
する識別子を有するテーブルをデータベース９２内で検索することにより行なわれる。代
わりに、又は追加して、ローダー１１４は、選択されたスクリプトに関係付けられている
１つ又は複数のファイル１１０を、ファイルシステム１１２内で検索する。
【００６４】
適切なスクリプト定義９０又はファイル１１０が見つかると、ローダー１１４は、その
スクリプト定義情報を、ＲＡＭのようなメモリーにロードする。１つの実施形態では、ロ
ーダー１１４は、選択されたスクリプトに対応する全てのスクリプト定義情報をロードす
る（例えば、スクリプト又はスクリプト定義の情報のコピー又は表現をロードする）。別
の実施形態では、ローダー１１４は、スクリプト定義情報の一部（例えば、スクリプトを
開始するのに十分な情報）をロードし、次に残りのスクリプト定義情報を、スクリプトが
段階的に実行されるに応じて必要なだけロードする。
【００６５】
本発明の或る実施形態は、定義を、ローディング性能を改善するためのコンパイル済み
フォーマットに変換する能力を有している。このためデータモデルは、異なるスクリプト
の要素を異なるテーブルに記憶することを含んでいる。全要素の定義は、１つの大きな塊
又はブロックのデータにコンパイルされ、個別のテーブルか、１つのファイルのどちらか
に記憶される。そうすると、対象部分毎に個別にロードするとデータベース９２又はファ
イルシステム１１２へ何度も「ラウンドトリップ」を行うので速度が遅くなる個別ローデ
ィングではなく、１回の「ラウンドトリップ」で、１つの大きな塊のデータを１度にロー
ドすることができる。従って、ローダー１１４は、コンパイル済み定義が在れば、それを
ロードできる。存在する場合、主スクリプト定義記録は、ファイル又は他の記録の場所を
示す。
【００６６】
１つの実施形態では、ローダー１１４を使って、スクリプト定義９０（質問、ページ、
分岐、テキスト及びスクリプトの構造に関係するその他の情報）をデータ構造に入力でき
るようになっている。データは、一旦データ構造内に配置すると、必ずしも同じ情報に関
してデータベース９２に再度アクセスしなくても、又は、そこに記憶されている情報を変
更しなくても、その場所から処理し、操作することができる。これにより、結果的に、基
底のスクリプト定義９０を不用意な修正から守ることに加えて、スクリプトを実行しレン
ダする速度及び効率が改善される。
【００６７】
一旦スクリプトがローダー１１４によりロードされると、実行ユニット１１６は、中間
構成要素１１８と連携して作動し、スクリプト部分の表現をユーザーインタフェース構成
要素１２０上にレンダする。一旦ユーザーインタフェース構成要素１２０によって表示さ
れると、スクリプトは、エージェント２４（又は２６）が、顧客１４又は他の顧客へ（例
えば、電話を使って音声で）提示できるようになる。
【００６８】
ユーザーインタフェース構成要素１２０は、顧客サービス構成要素２０用の「提示層」
の部分を備えており、図９に示す実施形態では、エージェント２４及び２６が見るための
スクリプトを提示する責任を負っている。この提示は、中間構成要素１１８と通信してデ
ータを表示するユーザーインタフェース構成要素１２０の要素１２１が実行するが、この
中間構成要素１１８には、ユーザーが見て／作業している現行のページに関連するデータ
が入っており、要素１２１は、中間構成要素１１８からデータを読み取り、そのデータを
ユーザーインタフェース８２（又は別のユーザーインタフェース又はスクリーン）に表示
する。要素１２１は、データを入力できるように構成することのできる用紙、制御又はソ
フトウェアのインプリメンテーションを含み、スクローリング制御又は中間ユニット１１
８内の記録のテーブル、グラフィクス又はナビゲーションツリーの表示、或いは他のイン
タフェース特性を提供することができる。或る実施形態では、要素１２１は、ポップアッ
プウインドウ、記録選択能力及び中間構成要素１１８内のデータに関する修正能力も提供
することができる。
【００６９】
１つの実施形態では、中間構成要素１１８は、１つ又は複数のテーブルからのコラムを
単一の構造へと関連付ける仮想データベーステーブルのような論理エンティティを備えて
いる。ゆえに、スクリプト定義の質問又は他の構成要素は、中間構成要素１１８の仮想デ
ータベーステーブル内のフィールドエンティティ（例えばコラム）であってもよい。従っ
て、中間構成要素１１８は、ユーザーインタフェース構成要素１２０の要素１２１が、デ
ータベース９２内のテーブルではなく中間構成要素１１８内の仮想テーブルを参照するよ
うに、データベース９２上に追加の層を提供する。更に、質問は、アプリケーション内の
もう１つのテーブル内のコラムへマップすることができる。質問に対する回答は、ユーザ
ーがスクリプトを終了するときにマップされるテーブルコラム内に記憶することができる
。更に、ユーザーインタフェース構成要素１２０は、１つの実施形態では、一時にコラム
のサブセットを表示する仮想テーブル用の専用のユーザーインタフェースと考えることが
できる。これは、質問の幾つかを一時に表示するものと考えらることができる。質問をも
う１つのテーブルコラムへマップする必要はなく、その場合、回答は、スクリプトが終了
するときもう１つのテーブルにはセーブされない。
【００７０】
１つの実施形態では、実行ユニット１１６は、ソフトウェアを実行して（又は関数を呼
び出して）ローダー１１４がメモリーにロードしたスクリプト定義９０を読み取る（プロ
セッサ又はコントローラーのような）ハードウェアを備えている。（関数呼び出しを含ん
でいてもよい）実行ユニット１１６により実行されるソフトウェアは、次に、スクリプト
の構造及び前の回答に基づいて提示する質問を決定する。実行ユニット１１６は、中間ユ
ニット１１８と対話し、ユーザーインタフェース構成要素１２０による提示及びレンダリ
ングのための質問を識別する。１つの実施形態では、中間構成要素１１８は、或る特定の
質問だけを、どの順番で表示するかを判定することができる。中間構成要素１１８は、次
に、要素１２１に、質問をユーザーインタフェース構成要素１２０に表示するよう通知す
る。要素１２１は、質問テキストを表示するのとは別に、回答値及びユーザー入力ボック
ス（例えば、チェックボックス、ナンバーボックス、マルチラインテキストボックス等）
のような、質問に関係付けられた他のユーザーインタフェースアイテムを表示することに
なってもよい。
【００７１】
或る実施形態では、回答は、実行ユニット１１６内の回答テーブルに保持してもよいし
、中間ユニット１１８とは異なる別の場所に保持してもよい。別の実施形態では、回答は
、中間ユニット１１８内に記憶してもよい。回答テーブルの回答は、回答が仮想テーブル
の質問に属すると見なせるように、中間ユニット１１８の仮想テーブルにリンクされてい
る。回答へのこのリンクにより、実行ユニット１１６は、スクリプトの分岐に出会ったと
きにどの質問を次に提示するのかを論理的に判断できるようになる。
【００７２】
或る実施形態では、スクリプトを実行する間に、２種類の要素と関係を持つ。コマンド
要素を使えば、スクリプト実行の間何時でもスクリプトをセーブ又は打ち切る「次へ」「
前へ」「終了」又は「打ち切り」コマンドのようなナビゲーションを実行することができ
る。第２のタイプの要素は、上記ユーザー入力要素に関係している。例えば、ナビゲーシ
ョンボタン「次へ」を用いてスクリプトの次の段階へ進む場合、現在のページの回答は、
回答テーブル内に保管されるか、又は異なる場所に記憶される。ユーザー入力要素に対し
て選択／入力された回答と、その要素に関して定義されている分岐論理とに基づいて、続
いて提示すべき次の質問のセットが判断される。
【００７３】
図９は、顧客１４−１６が顧客サービス構成要素２０に接触してきたときに、スクリプ
トをエージェント２４及び２６のディスプレイスクリーン上にレンダするのに用いること
ができるエンジン１０６の実施形態を示している。図１０は、顧客１８のような、ブラウ
ザ２８を使ってインターネット経由でウェブサーバー３２にアクセスするウェブユーザー
に対して実行可能なエンジン１２３の実施形態を示している。このウェブアクセスによっ
て、顧客１８は、ハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルを得ることを
含め、ハイパーテキストトランスファプロトコル（ＨＴＴＰ）のようなプロトコルを使っ
てスクリプトにアクセスし、閲覧し、実行できるようになる。以下に限定するわけではな
いが、ファイルトランスファプロトコル（ＦＴＰ）、送信制御プロトコル／インターネッ
トプロトコル（ＴＣＰ／ＩＰ）、拡張可能マークアップ言語（ＸＭＬ）等を含む他のプロ
トコル又はフォーマットも使うことができる。
【００７４】
図１０に示す実施形態は、図９に示す実施形態と類似している。違いは、エンジン１２
３が、インターネット３０又は「ウェブ」に利用できるユーザーインタフェース構成要素
１２４を備えていることである。ユーザーインタフェース構成要素１２４は、中間構成要
素１１８内の論理１２２と対話して、ブラウザ２８に表示するために提供できる質問の最
大数を決定する。つまり、ページのリフレッシュは費用が掛かり、システム効率が犠牲に
なるので、論理１２２は、全ての特定のスクリプトの分岐で表示する質問の最適数を決定
する一式のルールを含んでいる。例えば、エンジン１２３は、できるだけ多くの質問を示
してリフレッシュの回数を最小にするように努め、次の区画へ移動するとき（例えば、次
のページへ移動するとき）にリフレッシュすることになる。例えば１つの質問から多数の
分岐が出る場合には、エンジン１２３はページを分割することもできる。
【００７５】
或る実施形態では、次の質問を何時提示するかに関する論理１２２の一式のルールは、
以下を含んでおり、すべて真ならば、次の質問が提示されることになる。
【００７６】
ａ）現在の質問は、別の質問へ１つだけ分岐を有している。２つ以上の分岐を有してい
る場合、エンジン１２３は、ユーザーが現在の質問に答えるまで待つ。次に、その回答に
基づいて、エンジン１２３は、どの分岐を取るのか、従って次に表示すべきなのはどの質
問か、を知る。
【００７７】
ｂ）次の質問は、テキスト置換に関し、現在又は前の質問に依存しない。例えば、次の
質問が、現在の質問に対する回答をそのテキストに置換する場合、次の質問は、ユーザー
がまず現在の質問に回答するまで提示されない。
【００７８】
ｃ）次の質問は、異なるページ上にあるのではない。次の質問が異なるページ上にあれ
ば、エンジン１２３に、常に中断を引き起こす。
【００７９】
本発明の実施形態による作動時、一旦ユーザーインタフェース構成要素１２４が、表示
する質問を識別すると、ユーザーインタフェース構成要素１２４は、質問を異なるスクリ
プトに亘って表示するのに再使用することのできる標準的なＸＭＬ様テンプレートに基づ
いてＨＴＭＬファイル（又は、ネットワーク上で転送するのに適した他のファイルフォー
マット）を作成する。ユーザーインタフェース構成要素１２４は、次に、対応する質問を
ブラウザ２８によって最終的にレンダリングするために、ＨＴＭＬファイルをウェブサー
バー３２に提供する。
【００８０】
質問への回答は、ブラウザ２８から受信して、回答テーブル内に記憶されるが、回答テ
ーブルは、中間構成要素１１８に配置されていてもよいし、別の場所に配置されていても
よい。ユーザーインタフェース構成要素１２４と論理１２２は、これらの回答を使って、
ブラウザ２８によるレンダリングのために提示する後続の質問を決定する。後続の質問は
、別のＨＴＭＬファイルを作成することによって提示され、次に、ＨＴＭＬファイルはブ
ラウザ２８に送られるので、質問が表示されることになる。ウェブのユーザーインプリメ
ンテーションで述べたように、表示すべき質問は、分岐が検出されるまでスクリプトを通
って前進することにより決定される。これは、非ウェブのユーザーインプリメンテーショ
ンの性能を改善し、１つの実施形態では、序列内の次の質問が単に表示される。
【００８１】
本発明の１つの実施形態によれば、スクリプトセッションは、セーブして、後で再開さ
せることができる。この機能は、例えば、何らかの理由で顧客１４とエージェント２４の
間の対話が停止又は中断された場合に有用である。例えば、顧客１４が、特定の質問に対
して容易に入手できる回答を有しておらず、従って、一旦電話を「切って」、回答が見付
かった後でエージェント２４に電話を掛け直さなければならない場合、スクリプトは停止
することができる。セーブと再開の機能により、現在のスクリプトセッションをセーブし
ておくことができるので、後で、スクリプトの最初から全てを再度やり直す必要無しに、
前記スクリプトセッションを、先のセッションが終了した所から再開することができる。
セーブと再開の機能は、システムのクラッシュ、電力異常又は電話の中断が起こった場合
のような、顧客１４とエージェント２４の間が切断されてしまった状況でも有用である。
この様に、セーブと再開の機能は、ウェブユーザー顧客１８と顧客サービス構成要素２０
の間にインターネット接続破壊が生じた場合に有用である。接続が復元されれば、インタ
ーネットセッションをセーブし再開できる。セーブと再開の機能は、ブラウザ２８が顧客
１８によって閉鎖されている状況でも使用可能である。
【００８２】
セーブと再開の機能の或る実施形態を図１１に示す。セーブを開始するためには、ユー
ザーインタフェース３６又は他のユーザーインタフェースのセーブボタン（図示せず）を
クリックすればよい。セーブボタンをクリックすると、実行時状態オブジェクト１２６が
作成（又は始動）され、実行ユニット１１６、又はＲＡＭ、データ構造又はデータベース
のような、実行時状態情報が保持される何処か他の場所から実行時状態情報を抽出する。
実行時状態情報には、回答、現在の質問、全質問の状態、中間構成要素１１８にセーブさ
れているデータの状態、スクリプトが実行される際に設定及び変更されるユーザーパラメ
ータ、一時的変数の値、スクリプト内の現在の位置を示す情報、履歴スタック等が含まれ
るが、これ等に限定されるわけではない。
【００８３】
本発明の或る実施形態では、実行時状態オブジェクト１２６は、Ｃ＋＋オブジェクトを
備えており、関数の呼び出し、データ構造へのアクセス／リンク等を行うソフトウェア又
はコードを有している。従って、実行時状態オブジェクト１２６は、実行ユニット１１６
から抽出された実行時状態情報をデータ構造内に配置することができる。
【００８４】
次に、実行時状態オブジェクト１２６は、実行ユニット１１６から抽出された実行時状
態情報をシリアル化する（順番に並べる）。或る実施形態では、このシリアル化は、実行
時状態情報を、データ構造を示すバイトのストリームに変換する段階と、次にそのバイト
をファイル１２８内に記憶する段階（ファイル１２８自体を作成する段階を含んでいても
よい）とから成っている。このシリアル化は、実行時状態オブジェクト１２６に実行時状
態情報をシリアル化する関数を呼び出させることによって実行してもよい。
【００８５】
ファイル１２８の作成後、図１１の破線１３０で象徴的に示しているように、ファイル
１２８の位置を示す／リンクする、或いは識別するために、データベース１３２のテーブ
ル内に記録が作られる。データベース１３２は、スクリプト定義を含んでいるデータベー
ス９２と同じであってもよいし、別のデータベースであってもよい。ファイル１２８の位
置を示す記録を有するテーブルは、データベース１３２のスクリプトセッションテーブル
１３４の一部であってもよい。スクリプトセッションテーブル１３４とスクリプト定義は
、１つの実施形態によれば、別のテーブルに記憶してもよい。スクリプトセッションテー
ブル１３４は、スクリプトが実行された時間、実行した人、実行されたスクリプト及び記
憶できる他のスクリプト情報のような、実行されたスクリプトに関する情報を記憶する。
スクリプトセッションテーブル１３４は、質問に対して返された回答を記憶しておく子テ
ーブルを有していてもよい。実行時状態データを、テーブル内の記録ではなく、ファイル
１２８としてセーブすると、値をロードして記憶する問合せが殆ど無くなりなり、その結
果、速度及び効率の点で性能が改善される。
【００８６】
或る実施形態では、ファイル１２８又はスクリプトセッションテーブル１３４内にオー
ナー情報が含まれている。オーナー情報は、特定のエージェント２４又は２６を特定のセ
ーブされたスクリプトに関連付ける。再開の間に、そのようなオーナー情報を使って、そ
れを先にセーブしたエージェント２４又は２６にとって適切なスクリプトを検索すること
ができる。代わりに、又は追加して、再開の間にオーナー情報を変更して、スクリプトを
１つのエージェントから別のエージェントへ（又は、１つのウェブユーザー顧客１８から
別のウェブユーザー顧客へ）送ることもできる。１つの実施形態は、複数のセッション記
録をセーブすることを考慮している。各セッション記録は、スクリプトを実行した個人を
識別するためにオーナーＩＤを有することができる。その個人に属するセッションをセー
ブしていた各個人（例えば、エージェント又は顧客）全てを示すメニューを設けることも
できる。或る個人は、オーナーＩＤを変更することによって、セーブされたセッションを
誰か別の個人に送ることもできる。すると、前記別の個人は、メニュー内のセーブされた
セッションを見て、スクリプトを再開することができる。
【００８７】
再開を始めるために、ユーザーインタフェース３６（又は他のインタフェース）の「セ
ーブされたセッション」のメニュー（図示せず）にアクセスして、セーブされたスクリプ
トのリストから選択することもできる。再開ボタン（図示せず）をクリックして、セーブ
されたセッションのメニューから選択されたスクリプトを再開することもできる。再開す
ると、ローダー１１４は、新しいスクリプトを開始させるかのように、前と同様に、デー
タベース１３２からスクリプト定義情報（又はスクリプトセッションテーブル１３４から
のデータ）をロードする。これとは別に、或る実施形態では、ファイル１２８を非シリア
ル化する関数を呼び出す新しい実行時状態オブジェクトが作成され（又は同じ実行時状態
オブジェクト１２６が使用され）るので、ファイル１２８内のバイトのストリームは、新
しい実行時状態オブジェクト（又は実行時状態オブジェクト１２６）のデータ構造内に復
元される。データ構造内に記憶されている状態は、次に、実行ユニット１１６に接続され
るので、元の実行時情報は、別に実行ユニット１１６内にロードされているスクリプト定
義の適切な場所に復元される。事実、これは、スクリプト定義をローディングし、次に、
ファイル１２８から別に得られた実行時情報で「それを満たす」ことに似ている。
【００８８】
図１１に示し、これまで説明してきたように、スクリプト及びスクリプトセッション全
体をセーブするのではなく、実行時情報及びスクリプト定義へのリンクがセーブされる。
これにより、セーブし後で呼び出すデータが少量となるので、性能と効率が改善される。
全てのスクリプトセッション情報をデータベース１３２内にセーブする必要がないので、
データベース１３２への問合せの数を減らすことができる。
【００８９】
図１１に示すセーブと再開の機能の実施形態は、スクリプトをセーブし再開するのがエ
ージェント２４であろうと、ウェブユーザー顧客１８であろうと同じ様に働くことができ
る。ウェブユーザーの場合、セーブボタン又は再開ボタンをクリックすると、同じコマン
ドをブラウザ２８から顧客サービス構成要素２０への伝送する作業が起動する。これらの
コマンドは、実行ユニット１１６に、上記のセーブ又は再開手順を実行するように指令す
る。所定時間の後、ユーザーの活動又は行為が検出されないような、切断が検出されたり
スクリプトが「時間切れ」である場合は、セーブ機能を始動させる別の方法がある。
【００９０】
要するに、本発明の実施形態は、スクリプトのような論理構造を構築し、次いで管理す
るフローチャートベースのツールを提供している。フローチャートベースのツールは、実
質的にコードを書き込む必要無しに、論理構造を作成する便利なツールを提供する。論理
構造の要素は、スクリプト定義情報としてデータベースにリンクされる。従って、質問、
回答、分岐及びそれ等の様々な相互関係を、スクリプト定義情報の一部としてセーブする
ことができる。検証技法を使って、エラー及び変造に関して論理構造をチェックすること
もできる。
【００９１】
実行時の間に、スクリプト定義情報がロードされ、エンジンは中間構成要素及びユーザ
ーインタフェース構成要素と協働して、スクリプト定義の構造に従って質問を提示する。
ツリー制御機能によって、ユーザーは、スクリプトの最初から開始する必要無しに、スク
リプトの異なる部分へ移り、又は閲覧できるようになる。セーブと再開の機能によって、
スクリプトの実行時状態情報をセーブし、後で呼び出してスクリプトを完成させることが
できるようになる。
【００９２】
上記様々な実施形態の幾つかの機能は、ソフトウェア、コード、又は機械読み取り可能
媒体に記憶されている別の機械読み取り可能な指令で実行することができる。これらの指
令を１つ又は複数のプロセッサで実行すると、フローチャート４０の作成、ツリー構造８
４を使ってのスクリプトのナビゲーション、スクリプトの検証及びインポート／エクスポ
ート、スクリプトの実行、スクリプトのセーブと再開の様な、上記様々なオペレーション
を実現することができる。
【００９３】
要約書に記載している説明を含めて、本発明の提示した実施形態に関する上記説明は、
本発明を、開示した形そのもので網羅し、或いはこれに制限する意図はない。当業者には
理解頂けるように、分かり易くするために、本発明の特定の実施形態及び代表例をここに
記載しているのであり、本発明の範囲内で様々な等価な修正を加えることができる。
【００９４】
例えば、図２−７はユーザーインタフェースの具体的なレイアウトを示しているが、そ
のようなレイアウトは単に分かり易くするためのものである。レイアウトは、様々な設計
及び美的考察に基づいて、１つのインプリメンテーションから別のインプリメンテーショ
ンへと変えることができる。更に、具体的構成要素について図８−１１に示し、様々なオ
ペレーションを実行するものとしてここに説明してきたが、そのようなオペレーションが
他の構成要素で実行されるような実施形態も提供することができる。加えて、ここに記載
したオペレーションの幾つかは、異なる構成要素によって別々に実行されるのではなく、
或る実施形態では複数の構成要素の内の１つだけで実行することもできる。
【００９５】
上記詳細な説明に鑑み、本発明には、様々な修正を施すことができる。特許請求の範囲
に用いた用語は、本発明を、本明細書及び特許請求の範囲で開示している特定の実施形態
に限定すると解釈すべきではない。むしろ、本発明の範囲は、須く特許請求の範囲に述べ
た事項によって定めるべきものであり、請求項の解釈について確立されている原則に従っ
て解釈されるべきものである。
【図１】
0005798540.tif 000002
【図２】
0005798540.tif 000003
【図３】
0005798540.tif 000004
【図４】
0005798540.tif 000005
【図５】
0005798540.tif 000006
【図６】
0005798540.tif 000007
【図７】
0005798540.tif 000008
【図８】
0005798540.tif 000009
【図９】
0005798540.tif 000010
【図１０】
0005798540.tif 000011
【図１１】
0005798540.tif 000012