スクリプトのスポーン

スクリプトをスポーンすると、スクリプトを手動で実行できます。また、他のスクリプトや外部プロセスからスクリプトを起動するためにも使われます。スクリプトをテストするためにも使用できます。テストの際は、スクリプトトレースと一緒に使用できます。

スクリプトをテストするには、次の方法でスポーンすることができます:

他のスクリプトやプロセスからスクリプトを起動するには:

  • 呼び出し元のスクリプトでSPAWNactionを使用します。
  • POST /scripts/start 中央から右上隅に矢印が向いている正方形のアイコン。APIを使用します。これは、外部プロセスからスクリプトをスポーンするための解決策としてお勧めします。
  • ACDのスクリプトページからショートカットのURLを使用します。

スクリプトパラメーター

スクリプトパラメーターは、スクリプトにデータを渡すことができます。データは、システムスクリプトを含む他のスクリプトや、CRM閉じた コンタクト、販売情報、サポートの詳細、ケース履歴などを管理するサードパーティーシステム。またはAPIなどの外部ソースから取得されます。これはpX変数のp1pNを使ってスクリプトに渡されます。ここで、Nはスポーンメソッドがサポートするパラメーターの最大数です。スクリプトをスポーンするときにスクリプトに渡すデータは、前のセクションに挙げたオプションのいずれかを使用して指定できます。

パラメーター変数の名前を変更したい場合は、スポーン済みスクリプト内のBeginアクションを新しい名前で設定することができます。スクリプトがBEGINアクションを処理すると、pX変数は新しい名前に変換されます。新しい名前を指定しない場合、変数はデフォルトのpXの名前を保持します。

データがスクリプトに渡されると、traceでそれを確認できます。BEGINアクションを選択すると、トレース出力の変数リストにこれらのパラメーター変数が表示されます。BEGINアクションを新しい変数名で設定した場合は、スクリプトトレースでBEGINの後のアクションを選択すると、その変数名が表示されます。

値のソースによって、トレース出力にpXの変数がすべて表示される場合と、値を持つ変数のみが表示される場合があります。ACDのスクリプトページからスポーンすると、すべてのpX変数が渡されます。値を指定しなかったものは、空白文字列になります。他のスポーンメソッドでは、値を保持しているパラメーター変数のみが存在します。

カスタムパラメーターには次が該当します。

  • 最大で以下をサポートしています。
    • ショートカットURL経由でスポーンされた場合、1つの値につき100文字。
    • SPAWNアクションを使ってスポーンされた場合、各値につき32 KB。
    • APIからスポーンされた場合、全パラメーターでパイプ区切り文字を含めて合計32 KB。
  • 変数の置換をサポートしています。変数名は中括弧({})で囲んで入力します。
  • スポーンの方法によって、サポートされるパラメーター数が異なります:
    • URLまたはACDのスクリプトページからスポーンする場合、1~9個のパラメーター。
    • SPAWNアクションまたはAPIでスポーンする場合、1~20個のパラメーター。
  • ダイナミックデータオブジェクトはサポートされません。オブジェクトはまず、JSON文字列に変換する必要があります。

この例では、呼び出し元のアプリケーションまたはスクリプトから子スクリプトにカスタムパラメーターがどのように渡されるかを示します。この例では、BEGINアクションで一部の変数名だけが変更されるので、どちらの場合でも何が起こるかを確認できます。

次の画像は、ACDのスクリプトページから、IBVoice ACDスキル閉じた エージェントのスキル、能力、知識に基づいてインタラクションの配信を自動化するために使用されますと4つのカスタムパラメーター値、value1value2value3value4を持つIBVoiceスクリプトがスポーンされたことを示しています。

次の画像は、Parametersプロパティの最初の3行に新しい変数名が設定された、IBVoiceスクリプトのBEGINアクションを示しています。新しい名前はnewVar1newVar2newVar3です。

次の2つの画像は、トレース出力のスポーンの結果を示しています。この画像にあるBeginアクションには、p1p2p3p4の変数に4つのスクリプトパラメーター値が含まれています。

最後の画像は、BEGINアクションが処理を終えた後のスクリプトの変数を示しています。これはスクリプトの2番目のアクションをクリックすることで確認できます。この例では、HOURSアクションです。p1p2p3はスクリプトから消えています。これらの値はnewVar1newVar2newVar3にそれぞれ割り当てられています。変数p4p9はスクリプトに残っています。p4には、スクリプトページで割り当てられた値が含まれています。残りのpX変数は、空白文字列として渡されています。

Studioアクションの比較

現在のスクリプトから新規スクリプトを開始するStudioアクションは3つあります。ただし、これらには重要な違いがいくつかあります。

  • RunscriptRunscriptが別のスクリプトをトリガーすると、2番目のスクリプトから最初のスクリプトに戻ることはありません。
  • RunsubRunsub:Runsubがサブスクリプトをトリガーすると、サブスクリプトにReturnアクションがある限り、スクリプトは最初のスクリプトに戻ることができます。Returnアクションは、添え字が終了したときにRunsubアクションに値を返します。
  • SPAWNSPAWN:最初のスクリプトと並行して実行される2番目のスクリプトを開始します。スポーンされたスクリプトにSIGNALactionを含めない限り、スポーンされたスクリプトは最初のスクリプトにデータを戻すことができません。

SPAWNアクションを使用した別のスクリプトからのスポーン

子スクリプトにパラメーター値を渡す必要がない場合は、親スクリプトにSPAWNアクションを追加して設定するだけで済みます。パラメーターを渡す必要がある場合は、以下の設定を行わなければなりません。

  • 親スクリプトを以下のように変更します。
    • SPAWNアクションを、子スクリプトをスポーンしたい場所に配置します。SPAWNアクションのParametersプロパティに、子スクリプトに渡す必要のある値を設定します。値は変数p1p9で渡されます。
    • SPAWNアクションのother propertiesを設定します。
  • 子スクリプトを以下のように変更します。

    • BEGINアクションのParametersプロパティを設定して、カスタムパラメーター変数の名前を変更します。何もしない場合、カスタムパラメーターの値はpX変数に残ります。
    • 親スクリプトや呼び出し元のアプリケーションに値を返す必要がある場合は、SIGNALactionを追加して設定します。

ACDのスクリプトページからのスポーン

スクリプトは、CXoneACDアプリケーションのスクリプトページからスポーンできます。このメソッドを使うと、pXの変数がすべて、スポーンされたスクリプトに渡されます。値が指定されていない変数は空白文字列として渡されます。

  1. CXoneで、アプリセレクターをクリックし、選択します:ACD
  2. [コンタクト設定]の下で、Scriptsをクリックします。
  3. ページに表示されたリストからスクリプトをクリックします。
  4. スクリプトのプロパティページで、[スポーン]タブをクリックします。
  5. ドロップダウンからACDスキルを選択します。スキルは次の条件を満たしている必要があります。

    • アクティブであること。
    • スクリプトのメディアタイプに一致すること。たとえば、電話のスクリプトは、電話のスキルと相関している必要があります。スキルタイプは、スキルの詳細タブで確認できます。Genericタイプのスクリプトは、任意のアクティブスキルで機能します。
  6. スクリプトにデータを渡すには、Parameterフィールドに値を入力します。最大9つの値を入力できます。
  7. スクリプトトレースなしでスクリプトを直ちにスポーンするには、[スポーン]をクリックします。[スポーン]タブに、「Script spawned.Contact ID: [number]」というメッセージが表示されます。

    応答のコンタクトIDは、スクリプトが正常に実行されたことを保証するものではありません。これはスポーンが開始されたことを示しているだけです。このスクリプトは、コンタクトIDが生成された後のどの時点でも失敗する可能性があります。

ACDのスクリプトページのショートカットURLを使ったスポーン

ACDのスクリプトページの[ショートカットを表示]オプションは、標準のREST APIのGETリクエストとして実行できるURLを生成します。このURLは、クエリー文字列パラメーターを使用して、プラットフォームにスクリプトをスポーンする方法を指示します。パラメーターとその値はURLエンコードされていなければなりません。

次の例は、IBVoiceというスクリプトのショートカットURLを示しています。

https://home-[clusterName].nice-incontact.com/inContact/Manage/Scripts/Spawn.aspx?scriptName=IBVoice&bus_no=12334567&scriptId=172309310&skill_no=20967527&p1=ValOne&p2=ValTwo&p3=&p4=&p5=&Guid=abcdefgh-1not-real-2345-6789abcdefgh

ショートカットのURLには以下のパラメーターが含まれています。

GUIDは変更しないでください。GUIDは、パスワードと同様に慎重に扱ってください。GUIDは決してリセットすることはできません。

  1. CXoneで、アプリセレクターをクリックし、選択します:ACD
  2. [コンタクト設定]の下で、Scriptsをクリックします。
  3. ページに表示されたリストからスクリプトをクリックします。
  4. スクリプトのプロパティページで、[スポーン]タブをクリックします。
  5. ドロップダウンからACDスキルを選択します。スキルは次の条件を満たしている必要があります。

    • アクティブであること。
    • スクリプトのメディアタイプに一致すること。たとえば、電話のスクリプトは、電話のスキルと相関している必要があります。スキルタイプは、スキルの詳細タブで確認できます。Genericタイプのスクリプトは、任意のアクティブスキルで機能します。
  6. スクリプトにデータを渡すには、Parameterフィールドに値を入力します。最大9つの値を入力できます。
  7. [ショートカットを表示]をクリックします。
  8. [スポーン]タブの情報ボックスに表示される[スクリプト名]へのショートカットリンクを右クリックし、[リンクアドレスをコピー]を選択します。コピーオプションの名前は、お使いのブラウザによって異なる場合があります。
  9. コピーしたURLをWebブラウザのアドレスバーに貼り付け、Enterキーを押します。
  10. ブラウザに次のような応答メッセージが表示されます。

    Script spawned.Contact ID: [number]

    応答のコンタクトIDは、スクリプトが正常に実行されたことを保証するものではありません。これはスポーンが開始されたことを示しているだけです。このスクリプトは、コンタクトIDが生成された後のどの時点でも失敗する可能性があります。

ACDのスクリプトページからトレース付きでスポーン

スクリプトを直ちにスポーンし、Studioでトレースをキャプチャできます。これはスクリプトをテストするときに便利です。以前にスクリプトをスポーンして失敗したことがある場合、トレース付きでスポーンすると、問題箇所を特定するのに役立ちます。

  1. In Studio, open the script you're spawning.
  2. Click Debug > Capture Script > Next Instance Only. To capture the script continuously, click Debug > Capture Script > Continuous.
  3. CXoneで、アプリセレクターをクリックし、選択します:ACD
  4. [コンタクト設定]の下で、Scriptsをクリックします。
  5. ページに表示されたリストからスクリプトをクリックします。
  6. スクリプトのプロパティページで、[スポーン]タブをクリックします。
  7. [スポーン]タブのフィールドを完了します。
  8. スポーンを実行します。
    • ACDアプリケーションのスクリプトの[スポーン]タブで、[スポーン]をクリックします。
    • ショートカットのURLをコピーしてブラウザのアドレスバーに貼り付け、Enterキーを押します。
  9. Studioに戻り、トレース出力を確認します。
  10. パラメーター値を指定した場合は、それがトレース出力に表示されます。トレース出力のBEGINアクションをクリックし、p1からp9の変数を見つけます。変数に新しい名前を指定した場合は、スクリプトの2番目のアクションをクリックして、変更を確認します。

APIによるスクリプトのスポーン

POST /scripts/start 中央から右上隅に矢印が向いている正方形のアイコン。APIを使用してスクリプトをスポーンします。

このAPIを使用する際は、以下の重要な点に注意してください。

  • 以下のパラメーターは必須です。
    • skillId:JSONとして送信する場合は整数値が必要ですが、クエリーパラメーターとして送信する場合は該当しません。スキルには次の条件が課されます:
        • アクティブであること。
        • スクリプトのメディアタイプに一致すること。たとえば、電話のスクリプトは、電話のスキルと相関している必要があります。スキルタイプは、スキルの詳細タブで確認できます。Genericタイプのスクリプトは、任意のアクティブスキルで機能します。
    • scriptIdまたはscriptPathscriptPathの使用が推奨されます。スクリプトIDは、スクリプトの変更を保存すると変更されるので、パラメーターで更新する必要があります。

  • 最大20個のパラメーターを含めることができます。
  • パラメーターはパイプ区切りのリストとして送る必要があります。
  • APIは、パイプ区切り文字も含め、すべてのパラメーターで最大32 KBまでをサポートしています。
  • 区切り文字でない限り、パラメーターにパイプ文字を含めることはできません。
  • リクエストをJSONとして送信する場合、予約文字は適切な方法でエスケープする必要があります。
  • リクエストをURLクエリーパラメーターで送信する場合、パラメーターはURLエンコードされている必要があります。