Jotform が統合されて送信されたときに Google Apps Script をトリガーする方法はありますか??? 作成された新しい行をトリガーする方法さえあると思います。
これが私が求めている流れです。
Jotform 送信 >> Google スプレッドシート >> Google Apps Script のトリガー >> いくつかのことを行う
乾杯...
Jotform が統合されて送信されたときに Google Apps Script をトリガーする方法はありますか??? 作成された新しい行をトリガーする方法さえあると思います。
これが私が求めている流れです。
Jotform 送信 >> Google スプレッドシート >> Google Apps Script のトリガー >> いくつかのことを行う
乾杯...
はい、できます。
スクリプト マネージャーを使用してスクリプトをスプレッドシートに追加した後、次のように onChange イベント トリガーを有効にします。
最初に [リソース] -> [現在のプロジェクトのトリガー...] を選択します。
次に、トリガーを次のように設定します。
onChange関数内では、何でも実行できます。新しく挿入された行を電子メールとして送信する例を次に示します。
function onChange(e){
// sends newly inserted row as an email
if (e.changeType == "OTHER") { // mean the sheet is updated via an api call
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getLastRow();
var columns = sheet.getLastColumn();
var data = [];
for (var i=1; i<columns; i++){
data.push(sheet.getRange(rows, i).getValue());
}
MailApp.sendEmail("you@example.com", "autoTriggeredByJotform", Utilities.jsonStringify(data));
}
};
JotForm、Formstack、Zapier など、または Google フォーム以外のその他のフォームを使用して Ultradox をトリガーする場合は、この 2 日間、この質問に対する適切な解決策をまとめるのと同じように苦労するでしょう。 2012 年 11 月に初めて質問されました。
このソリューションは、JotForm から Ultradox トリガーに合わせて調整されます。
新しい Ultradox から > 'Trigger' という名前を付けます > 最初のブロックとして 1 分間のタイマーを設定します (そうしないと、JotForm が新しいフォーム データをシートに書き込む前にトリガーが開始されます) > Google Apps スクリプトを挿入します - マイ スクリプトブロック > [作成] をクリックして [トリガー] に名前を変更 > 1 行目から 78 行目を以下のコードに置き換えます。
// The following method will be invoked whenever Ultradox executes the script
function execute(mode1) {
var sheet = SpreadsheetApp.openById('1KFVcrrCpiPKn7pOz2sQoI5IPjiPNlNKuHpykhlKA0fY').getSheetByName('Submissions');
//Change the sheet Id and name as appropriate
var lastRow = sheet.getLastRow();
var response = UrlFetchApp.fetch('http://www.ultradox.com/batch?id=x5OPzk9iQ5LssjaeEgxScBMqXA3Pnc&chunk='+lastRow);}
スクリプト エディターから、4 行目で、シート ID (URL にある応答シート ID に) と、応答があるスプレッドシート内のシート タブの名前 (スプレッドシートの名前ではない) を変更します。トリガーしたい Ultradox > ファイル > 統合 > 統合 URL をコピー > スクリプトに戻り、9 行目の URL を置き換えます。「&chunk=」はスクリプトの一部であり、URL の最後にある必要があります。
[発行] > [Web アプリとしてデプロイ] をクリックし、[アプリにアクセスできるユーザー:] を [すべてのユーザー] に変更 > [デプロイ] > [現在の Web アプリの URL をコピー] をクリックします。
Trigger Ultradox に戻り、スクリプト ブロックの歯車アイコンをクリックします (使用できない場合は、このブロックを削除し、別のスクリプト ブロックを追加し、[選択] をクリックして、作成したスクリプトを見つけてこのブロックに関連付けます)。「アプリの URL」を「Enter」に貼り付けます。公開されたスクリプト URL > OK > [ファイル] > [統合] をクリックし、統合 URL をコピーします。
JotForm に移動し、カスタム 'Thank You' ページを開く > 画像を挿入/編集 > トリガー Ultradox からの統合リンクをソースに貼り付け > OK > 新しいボックスのサイズを非常に小さいものに変更します。この時点で、サンキュー ページを開くたびに Ultradox がトリガーされることに注意してください :-)
フローの概要... JotForm が送信されます > お礼のページ トリガー Ultradox 1 分タイマーがトリガーされます > フォーム データがシートに書き込まれます > トリガー スクリプトがシートから最後の行番号を取得します > スクリプトはこの行番号を「チャンク」として追加します' を Ultradox 統合 URL に追加してから、統合をトリガーします。
別の Ultradox としてではなく、トリガーしたい Ultradox 内にトリガー スクリプトを配置しますか?
「lastRow」変数をトリガー スクリプトから「Pick row(s)」ビルディング ブロックに渡す方法を考え出す必要があります。これはワークフローの上にあるため、トリガー スクリプトの「次の条件が true の場合にのみ実行する」ことも検討する必要があります。これにより、スクリプトが干渉することなく他の行をトリガーできるようになります。