Google Formとマルケトを連携する方法 〜 実践編 〜[2/3]
JMUGの皆さん、こんにちは大里です。
Excelにマクロがあるように、Google Spread SheetにはGAS(Google Apps Scriptの略)というものがございます。
私のような非エンジニアでも、GASなら比較的簡単にコーディングできる点もおすすめです。
GASについて、詳しく知りたい方はこちらのページをご覧くださいませ。
https://developers.google.com/apps-script/
- スクリプトエディタを表示しましょう。
ツール > スクリプトエディタ
下記のような画面が表示されればOKです。
- GASはこのエディタにプログラムを書くと、Spread Sheetがプログラムに従って勝手に色々と動き始めます。
- スクリプトをコピペ
このスクリプトをダウンロードして、ファイルをテキストエディタで開き
プログラムのコードを全てコピーし、上記の1のスクリプトエディタに貼り付けてください。
- スクリプトの一部を編集する
2行目~6行目の基本情報を編集
restEndpoint :APIのエンドポイントを記入
identityUrl :トークン取得用のURLを記入
・・・管理 > ウェブサービス > REST API から取得
consumerKey :REST API client IDを記入
consumerSecret :REST API client secretを記入
・・・管理 > LaunchPoint> custome > 詳細の表示 から取得
http://docs.marketo.com/pages/releaseview.action?pageId=7509777
customObject :カスタムオブジェクトのAPI名を記入
・・・管理 > データベース管理 >カスタムオブジェクト
- objSpreadsheet.getSheetByName("Form");
という記述の”Form”の部分にSpreadSheetのシート名を記入
この場合、Formがシート名となる。(シートの下にあるタブみたいな所に書いてあります) - 170行目 var colStartIndex = 4; にメールアドスがセットされている列番号を記入する

上記の場合、メールアドレスの列は左から数えて4番目なので、「4」をセットする - 204行目
表示されている列と同じ順番でカスタムオブジェクトに作成したフィールドのAPI名を記入する
var titleColumns = ["timestamp", "order_rate" , "Looks_rate" , "email" , "tel_rate" , "Driver_rate" , "taste_rate" , "volume_rate" , "comment"];
- 215 ~ 216行目 リードDBに一緒に登録したい項目を入れる
json["mktoIsCustomer"] = "TRUE"; → 顧客フラグをTRUEにする
json["leadSource"] = "Survey"; → リードのソースを Survey にする
本当はもっと編集しやすいようにプログラムを組んでおきたいのですが、それをやっていると公開まで時間がかかってしまうと思いまして・・・
皆様にお見せするのが恥ずかしい感じのスクリプトになってしまいました。
有志の方がこのスクリプトをさらに改善&シェアしてくれることを切に願っております。