コードのタスク

スイート
Customer Experience Employee Experience Strategy & Research
製品
Qualtrics

このページの内容

コードタスクについて

注意: この機能へのアクセスおよび継続的な利用には、ライセンスのアップグレードが必要な場合があります。詳細については、クアルトリクスのアカウントエグゼクティブにお問い合わせください。

コードタスクを使用すると、ワークフロー内の他のタスクの前後で、カスタムJavaScriptを使用してデータの操作、フォーマット、計算処理を実行できます。例えば、コードタスクを使用してAPIコールの戻り出力をよりユーザーフレンドリーな結果に変換できます(例えば、技術に詳しくないマネージャーに結果を伝える必要がある場合など)。変換された結果をメールタスクにパイプ処理して、マネージャーにメールを送信できます。

注意:カスタムコーディング機能は現状有姿で提供されており、実装にはプログラミングの知識が必要です。Qualtricsサポートでは、カスタムコーディングに関するサポートやコンサルティングを提供していません。その代わり、クアルトリクスXMコミュニティの経験豊富なユーザーにいつでも質問できます。カスタムコーディングサービスの詳細については、クアルトリクスの営業担当にお問い合わせください。

コードタスクの設定

ワークフローを作成するをクリックします。
イベント受信時に開始を選択します。
ワークフローを開始するイベントを選択します。通常、これはアンケート回答イベントです。
必要に応じて、プラス記号(+)をクリックし、[条件を追加]を選択してワークフローに条件を追加します。条件は、ワークフローがいつ実行されるかを決定するのに役立ちます。条件の作成に関する詳細は、リンク先のページを参照してください。
プラス記号(+)をクリックし、[タスクを追加]を選択します。
コードタスクを選択します。
ボックスにJavaScriptの式を入力します。コードを記述する際に役立つ情報については、ベストプラクティスに関するセクションを参照してください。
ヒント:コードエディターは編集履歴を保持するため、CTRL + Zキー(PC)またはCMD + Zキー(Mac)を押すと、コードの変更を元に戻すことができます。SHIFT+CTRL+Y(PC)またはSHIFT+CMD+Y(Mac)で変更をやり直します。
ヒント:コードを記述する際、ウィンドウにエラーが表示されることがあります。これらのエラーは、実行エラーではなく、構文エラーをチェックするものです。構文エラーは、アカウントの言語設定に関わらず、常に英語で表示されます。タスクが保存され、ワークフローがトリガーされるまで実行されません。
必要に応じて、JavaScriptコードで実行する内容を説明するタスクの要約を入力します。
テストコードをクリックすると、ローカルブラウザでコードが実行されます。
ヒント:実行環境が異なるため、コードをテストしても、ワークフローで実行した場合とまったく同じ結果が得られるとは限りません。
{a} テキストの差し込みを追加メニューを使用して、JavaScript の式にテキストの差し込みを追加します。テキストの差し込みは、回答者のアンケート回答を取り込むなど、イベントから値を取り込む場合に便利です。テキストの差し込みは、JavaScriptの式が実行される前に評価されます。
コードを消去してやり直す必要がある場合は、デフォルトにリセットをクリックします。
終了したら、[保存]をクリックします。
コードタスクは、その出力を利用するために、別のタスクとペアで設定されることがよくあります。プラス記号(+)をクリックし、[タスクを追加]を選択して、次のタスクを選択します。タスクの概要については、こちらのページを参照してください。
ヒント:後続のタスクを設定する際、コードタスクの出力はタスクのテキストの差し込みメニューで利用できます。

JavaScript実行制限

コードタスクに含めるJavaScriptコードを作成する際は、以下の実行制限にご注意ください。

  • 最大実行時間: 10秒
  • JavaScriptの最大長: 200KB
  • アウトバウンドAPIリクエストなし:セキュリティ上の理由から、コードタスクは他のAPIやサービスへのアウトバウンドリクエストを行うことや、HTTPリクエストを使用して実行時に他のJavaScriptライブラリを取得することはできません。

JavaScriptコードがこれらの制限を超えると、コードタスクは失敗します。ワークフローが失敗した場合は、ワークフローレポートで失敗した理由に関する詳細を確認してください。

エンコーディングとデコーディングのヘルパー

コードタスク内で文字列をbase64にエンコードしたり、文字列をutf-8にデコードしたりする場合は、以下のヘルパーを使用できます。

  • 関数 base64ToUtf8(base64String: 文字列): 文字列
  • 関数 utf8ToBase64(utf8String: 文字列): 文字列

これらの関数はUNICODEと互換性があるため、絵文字、ウムラウト、アクセントなどの文字を使用できます。

ベストプラクティス

JavaScriptを作成する際は、以下のベストプラクティスに従ってください。

  • コードはES6構文に準拠している必要があります。
  • コードはプレーンなJavaScriptで実行されます 。
  • コードは、結果をJavaScriptオブジェクトとして返す必要があります。返された結果がこの方法でフォーマットされている場合、システムはカスタムコードが返すフィールドを自動的に推測し、後続のタスクに適したテキストの差し込みを提供できます。

    例:この例では、複数の結果が返されます。

    function codeTask() {
    return {
    hello: "world",
    foo: "bar",
    status: 200
    };
    }

    例:この例では、1つの結果が返されます。

    function codeTask() {
    return {
    result: "hello world",
    };
    }

  • 想定される情報の種類によっては、ロケーターの構文を引用符で囲む必要があります。ロケーターを文字列として解決するには、引用符を追加する必要があります。オブジェクトに解決される場合は、引用符を追加する必要はありません
  • 引用符を含む可能性のあるフィールドでテキストの差し込みを使用する場合は、差し込みテキストを引用符で囲む代わりに、テンプレートリテラル(`)を使用する必要があります。

例:例えば、以下のようなコードには引用符が必要です。

function codeTask() {
let ticketId = "~{ch://OCAC_31HNMUuEpm3Jg/exports.data.key}";
...
}

例:コードタスクとウェブサービスタスクを併用する

この例では、コードタスクとウェブサービスタスクを併用する方法を順を追って説明します。コードタスクとウェブサービスタスクを併用すると、回答者のアンケート回答をAPIに適したコードに変換し、返された値を使用してAPIコールを実行できます。その後、API呼び出しの結果を取得し、別のコードタスクを使用して、返された値を人間が読みやすい回答に変換できます。

この例では、クアルトリクスでレストラン検索ツールを作成します。詳細については後ほど詳しく説明しますが、以下にその実現方法の概要を説明します。

このアンケートでは、回答者にどこで食事をしたいか、また、どのように結果を返してほしいかを尋ねます。
レストラン検索を実行するために、サードパーティのレストラン検索アプリを使用します。コードタスクを使用して、アンケート回答者の回答を、サードパーティのレストラン検索APIが使用できる形式に変換します。
次に、ウェブサービスタスクを使用してサードパーティのレストラン検索機能にAPIコールを実行すると、結果がJSONとして返されます。
別のコードタスクを使用して、結果のJSONを人間が読める形式に変換します。
最後のタスクを1つ使用して、この情報を回答者または自分自身に送信できます。例えば、メールタスクを使用して、回答者に返された結果を記載したメールを送信します。

コードタスクでレストラン検索を作成する

アンケートで、コードタスクにフィードする質問を作成します。この例では、レストランを検索する場所を尋ねる自由回答形式の質問と、結果の並べ替え方法を尋ねる多肢選択式の質問です。
ワークフローに移動します。
新規ワークフローを作成します。
ワークフローイベントには、アンケート回答イベントを選択し、新しい回答が作成されたときにトリガーされるようにイベントを設定します。詳細については、リンク先のページを参照してください。
プラス記号(+)をクリックし、[タスクを追加]を選択します。
コードタスクを選択します。
このコードでは、回答者の回答をレストラン検索APIで必要とされる値に変換しています。
テキストの差し込みを使用して、回答者が回答した質問を取り込みます。
「保存」をクリックしてタスクを保存します。
プラス記号(+)をクリックし、[タスクを追加]を選択します。
ウェブサービスタスクを選択し、認証を選択します。詳細については、こちらのページをご覧ください。
アクセスしようとしているURLを入力してください。
クエリ文字列を使用してパラメーターを追加します。テキストの差し込みメニュー{a}を使用して、アンケートや前のコードタスクの値を使用します。

例:完全に構築されたURLは次のとおりです

https://api.example.com/v3/businesses/search?sort_by=~{ch://OCAC_Zt2TNQYggAb6u89/sort_by}&location=${q://QID1/ChoiceTextEntryValue}

これには、sort_bylocationの2つのパラメーターが含まれています。sort_by の値は、最初のコードタスクの結果です。locationの場合、値は回答者が自由回答の質問に入力した回答です。

必要に応じてタスクの設定を完了します。サポートが必要な場合は、ウェブサービスタスクを参照してください。
ヒント:ウェブサービスタスクでは、APIコールが機能することを確認するために、期待される戻り値をテストできます。
必要に応じて、他のタスクで使用できるカスタムJSONパスを作成します。この例では、検索結果から事業の配列を返す「businesses」パスを作成します。
ヒント:ウェブサービスタスクをテストした場合、クアルトリクスは自動的にJSONパスを識別し、ここに追加します。ごみ箱のアイコンをクリックすると、不要なものを自由に削除できます。
保存]をクリックします。
プラス記号(+)をクリックし、タスクを追加を選択します。
コードタスクを選択します。
次に、ウェブサービスタスクから得られたJSONを、読み取り可能な形式に変換する必要があります。このケースでは、メールで使用するためにHTMLに変換しています。
ウェブサービスタスクから結果のJSONを取得するには、テキストの差し込みメニュー{a}を使用します。
保存]をクリックします。
ヒント:テキストの差し込みを使用している場合、テキストの差し込みの指定子は有効なJavaScriptではないため、警告が表示されることがあります。ただし、コードが実行される前にテキストの差し込み指定子がフィールドの値に置き換えられるため、これは実行前に解決されます。
プラス記号(+)をクリックし、[タスクを追加]を選択します。
メールを選択します。
メールタスクを設定します。詳細については、リンク先のページを参照してください。
2つ目のコードタスクの結果をメール本文にパイプします。レストラン検索の結果を返すのがこれです。
例:以下は、回答者の回答がパイプされ、2つ目のコードタスクの結果とともに表示されたメールエディターの表示例です。
その結果として送信されるメールには、回答者が選択した検索結果が記載されています。

FAQs

ワークフローテンプレートで利用可能なすべての拡張機能にアクセスできますか?

ワークフローテンプレートとは何ですか?

ワークフローとは? / アクションはどこにありますか?

当サポートサイトの日本語のコンテンツは英語原文より機械翻訳されており、補助的な参照を目的としています。機械翻訳の精度は十分な注意を払っていますが、もし、英語・日本語翻訳が異なる場合は英語版が正となります。英語原文と機械翻訳の間に矛盾があっても、法的拘束力はありません。

この記事は役に立ちましたか

いただいたフィードバックはこのページの改善の目的のみに利用します。

素晴らしい! フィードバックありがとうございます!

フィードバックありがとうございます!