コードのタスク

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

このページの内容

コードタスクについて

注意: この機能へのアクセシビリティと継続的な使用には、ライセンスのアップグレードが必要な場合があります。詳しくはクアルトリクス営業担当までご連絡ください。

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

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

コードタスクの設定

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

JavaScriptの実行制限

コードタスクに含めるJavaScriptコードを書く際には、以下の実行制限に注意してください:

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

JavaScriptのコードがこれらの制限を超えると、コードタスクは失敗する。ワークフローが失敗した場合は、ワークフローレポートで失敗の原因をご確認ください。

ベストプラクティス

JavaScriptを書く際には、以下のベストプラクティスに従ってください:

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

      例: この例では、複数の結果を返します:

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

      例: この例では、単一の結果を返します:

      function codeTask() {
      return {
      result:"hello world",
      };
      }.
    • 期待する情報の種類によっては、ロケーター構文を引用符で囲む必要があるかもしれない。ロケーターを文字列に解決したい場合は、引用符を追加する必要があります。ITがオブジェクトに解決される場合は、引用符を付ける必要はありません。

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

      function codeTask() {
      let ticketId = "~{ch://OCAC_31HNMUuEpm3Jg/exports.data.key}";
      ...
      }.
    • 引用符を含む可能性のあるフィールドにテキストの差し込みを使用する場合、パイプされたテキストを囲む引用符の代わりにテンプレート・リテラル(`)を使用する必要があります。

例コードタスクとWebサービスタスクの併用

この例では、コードタスクとウェブサービスタスクの使い方を説明します。Web サービスタスクでコードタスクを使用して、回答者のアンケートの回答を API フレンドリーなコードに変換し、返された値を使用して API コールを実行することができます。そして、APIコールの結果を受け取り、別のコードタスクを使って、返された値を人間が使いやすいレスポンスに変換することができる。

この例では、クアルトリクスでレストラン検索を構築しています。詳しくは後ほど説明するが、以下にその概要を記す。

アンケート調査では、回答者に「どこで食べたいのか」「結果をどのように返したいのか」を尋ねます。
レストランを検索するには、サードパーティのレストラン検索アプリを使用します。コードタスクを使用して、アンケート調査回答者の回答をサードパーティのレストラン検索APIが使用できるフォームに変換します。
次に、ウェブサービスタスクを使用して、サードパーティのレストランファインダーにAPIコールを実行し、結果をJSONとして返します。
別のコードタスクを使って、結果のJSONを人間が読める形に変換する。
最後のタスクを使って、この情報を回答者、あるいは私たち自身に送ることができる。たとえば、メールタスクを使用して、回答者に返信された結果をメールで送信します。

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

アンケート調査では、コードタスクに反映させる質問を作成します。私たちの場合は、レストランをどこで検索するかという質問文と、結果をどのように並べ替えるかという多肢選択式の質問です。
ワークフローに移動します。
新しいワークフローを作成する
ワークフローイベントでは、以下の項目を選択します。 アンケート調査への回答 イベントを作成し、新しいレスポンスが作成されたときにイベントがトリガーされるように設定します。詳細については、リンク先のページを参照してください。
プラス記号(+)をクリックし、タスクの追加を選択します。
Code タスクを選択する。
コードについては、回答者の回答をレストラン検索APIに必要な値に変換しています。
テキストの差し込みを使用して、回答者の回答の元となる質問文を引き込みます。
保存を クリックしてタスクを保存する。
プラス記号(+)をクリックし、[タスクを追加]を選択します。
Web Serviceタスクを選択し、自分らしくいられることを選択する。詳しくはこのページをご覧ください。
URL を入力してください。
クエリ文字列を使用してパラメータを追加します。テキストの差し込みメニュー{a}を使用して、アンケート調査や前回のコードタスクの値を使用します。

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

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

これには2つのパラメータが含まれる:sort_byとlocationsort_byの場合、値は最初のコードタスクの結果である。場所の場合、値は自由回答質問文に対する回答者の回答です。

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

FAQs

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

すべてのワークフローのイベントトリガー、コントロールフロー、およびタスクへのリンクはありますか?

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

ワークフローとは何ですか?/ アクションはどこですか?

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

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

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

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

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