0

スプレッドシートの値からトリガーを使用して Google フォームを送信することは可能ですか? もしそうなら、私はどこに助けを求めますか?

ここで表示できる Google フォームを作成しましたhttp://www.leadersoftomorrowisn.org/Become_a_Member.html

質問5「あなたは何に興味がありますか?」の回答を取れるようにしたいです。それらを使用して特定の Google フォームを送信します。

スプレッドシートの値からトリガーを使用して Google フォームを送信することは可能ですか? もしそうなら、私はそれについてどこに助けを求めますか?

ベスト、マクスウェル

4

1 に答える 1

2

メンバーになるフォームに応答を受信するスプレッドシートがあり、フォーム応答トリガーを使用してスクリプトを作成し、受信した応答を確認すると仮定します。これを trigger と呼びますonFormSubmit()。フォーム スクリプトまたはスプレッドシート スクリプト内に含まれるこのトリガー関数を作成するオプションがあります。これらのコンテナーのいずれかがフォーム応答を受け取ることができます。この選択によって、どのイベントが受信されるかが決まります。onFormSubmit()詳細については、イベントについてを参照してください。

関心のある範囲の追加の Google フォームのセットを作成します (または既に持っています)。これらの各フォームには一意の ID があり、それを使用して、回答者に送信するフォームの URL を取得します。API の詳細については、クラス FormAppを参照してください。お問い合わせフォームごとに、一意の ID をスクリプトに埋め込む必要があります。この ID は、フォーム エディターまたはライブ フォームにいる間、URL に表示されます。

ではonFormSubmit、フォーム送信イベントを使用して、現在の応答のコピーを読み取ることができます。質問 5 はcheckBox質問であるため、チェックされたすべての回答がカンマ区切りの文字列で配信されます。(質問にコンマを含めないように注意してください!) 以下の例では、split質問 5 への回答を送信して一連の関心を取得し、それらに基づいて追加の調査へのリンクを電子メールで送信しています。それは非常に粗雑で、フォームと非常に密接に結びついていますが、うまくいくはずです。

function onFormSubmit(event) {
  // Get the responses into convenient variables.
  var firstName = event.values[1];     // Question 1
  var lastName = event.values[2];      // Question 2
  var email = event.values[3];         // Question 3
  var allInterests = event.values[5]   // Question 5, a comma-separated list,
                          .split(','); //  which we turn into an array

  // Loop over all expressed interests, sending surveys
  for (var interest in allInterests) {
    sendInterestSurvey( firstName, lastName, email, allInterests[interest] );
  }
}

/**
 * Determine the id for a form that matches the given survey (interest),
 * and send an email to the respondent.
 */
function sendInterestSurvey( firstName, lastName, email, survey ) {
  var surveyFormId = null;  // Will fill with appropriate survey ID

  // Set serveyFormId according to current value of 'survey'.
  switch (survey) {
    case "Becoming an LOT Member of the USD Chapter":
      surveyFormId = '1234567890abcdefghijklmnopqrstuvwxyz';  // Replace with real form ID
      break;
    case "Presenting a business idea at one of USD's Business Opportunity Meetings (Spring 2014)":
      surveyFormId = '1234567890abcdefghijklmnopqrstuvwxyz';  // Replace with real form ID
      break;
    // and so on...
    default:
      // Error handling, or for "other"
      break;
  }

  // Send an email for any interest with a survey form
  if (surveyFormId != null) {

    var existingForm = FormApp.openById(surveyFormId);
    var surveyURL = existingForm.getPublishedUrl();
    var surveyTitle = existingForm.getTitle();

    // Build Email Body
    var body = 'Dear '+firstName+' '+lastName+',<br><br>';    // Dear John Doe,
    body += 'Thanks for completing our Member Contact Information.<br><br>';
    body += 'You expressed an interest in: ' + survey;
    body += ', and we would like to get more details about your interest.<br><br>';
    body += 'Please follow <a href="' +surveyURL+ '">this link</a> to complete the survey.<br><br>';
    body += 'Thank you!';

    MailApp.sendEmail({
     to: email,
     subject: surveyTitle,
     htmlBody: body
    });
  }
}

これをさらに進めることができます。たとえば、回答者の名前が既に入力されている追加の調査の事前入力バージョンの URL を生成できます。

于 2013-07-02T02:33:19.797 に答える