LoginSignup
3
5

More than 3 years have passed since last update.

Googleフォームで問合せを受け付け、Trelloにカードを追加する

Last updated at Posted at 2020-08-07

目的

Googleフォームで社内の問合せを受けています。
対応漏れがないように、GASでTrelloに自動でカードを追加します。

概要

googleフォームを作成し、問合せ内容をスプレッドシートに書き出します。
書き出された内容を元にして、TrelloのAPIを使って、追加したいリストにpostします。

スプレッドシートはこんな感じです。
image.png

TrelloのAPIを使うための認証情報

今回のTrelloのAPIを使うためには、認証情報としてAPIキーとトークンとリストIDが必要です。

まず、以下のURLにアクセスすると、APIキーを取得できますのでコピーして下さい。
https://trello.com/1/appKey/generate
次に、アプリケーションの「認証」を押して下さい。

アクセス許可が求められたら許可して下さい。

そして、認証するとAPIトークンを取得できます。

ちなみに、curlを使うと簡単かと思うので、こちらの記事を参考に、自身のTrelloのAPIキー、トークン、リストIDを確認して下さい。
リストIDを確認するためには、上記のAPIキー、トークンの情報が必要です。
https://qiita.com/isseium/items/8eebac5b79ff6ed1a180

リストはTrelloの「未対応リスト」的なリストに追加すると良いと思います。

GASの内容

googleフォームを書き出したスプレッドシートからスクリプトを作成し、以下のコードを記述します。
項目は例ですので適宜修正して下さい。

addTrello.gs
function myFunction(e) {

  // 入力カラム名の指定
  var A_FROM_NAME ='タイムスタンプ';
  var B_FROM_NAME ='メールアドレス';
  var C_FROM_NAME ='氏名';
  var D_FROM_NAME ='所属部署/組織';
  var E_FROM_NAME ='件名/依頼分類';
  var F_FROM_NAME ='対応依頼内容';
  var G_FROM_NAME ='メーリングリスト利用範囲';
  var H_FROM_NAME ='対象システム';
  var I_FROM_NAME ='ファイル添付';
  var J_FROM_NAME ='承認者名';
  var K_FROM_NAME ='希望納期';
  var L_FROM_NAME ='備考';
  var Kaigyo = "\n";

  //問合せ内容を変数に格納

  var timeStamp = e.namedValues[A_FROM_NAME];
  var mailAdress = e.namedValues[B_FROM_NAME];
  var name = e.namedValues[C_FROM_NAME];
  var busho = e.namedValues[D_FROM_NAME];
  var bunrui = e.namedValues[E_FROM_NAME];
  var contents = e.namedValues[F_FROM_NAME];
  var mlHani = e.namedValues[G_FROM_NAME];
  var system = e.namedValues[H_FROM_NAME];
  var tenpu = e.namedValues[I_FROM_NAME];
  var Author = e.namedValues[J_FROM_NAME];
  var deadline = e.namedValues[K_FROM_NAME];
  var bikou = e.namedValues[L_FROM_NAME];

 //カードに追加する本文を格納

  var body = "■ メールアドレス" + Kaigyo + mailAdress + Kaigyo + Kaigyo
  + "■ 氏名"+ Kaigyo + name + Kaigyo + Kaigyo
  + "■ 所属部署"+ Kaigyo + busho + Kaigyo + Kaigyo
  + "■ 件名/依頼分類"+ Kaigyo + bunrui + Kaigyo + Kaigyo
  + "■ 対応依頼内容"+ Kaigyo + contents + Kaigyo + Kaigyo
  + "■ メーリングリストの利用範囲"+ Kaigyo + mlHani + Kaigyo + Kaigyo
  + "■ 対象システム"+ Kaigyo + system + Kaigyo + Kaigyo
  + "■ ファイル添付"+ Kaigyo + tenpu + Kaigyo + Kaigyo
  + "■ 承認者名"+ Kaigyo + Author + Kaigyo + Kaigyo
  + "■ 希望納期"+ Kaigyo + deadline + Kaigyo + Kaigyo
  + "■ 備考"+ Kaigyo;  

  // Trelloのカードのタイトル定義。期日を明確にするために期日を含めています。
  var titleTrello = "" + busho + "/" + name + "" + " 期日:" + deadline; // + " [分類:" + bunrui + "]";
  addTrelloCard(titleTrello, body);

}

function addTrelloCard(title,body) {

  // カード作成
  //取得したTrelloの情報を入力して下さい
  var api_key = "APIキー";
  var api_token = "トークン";
  var list_id = "リストID";

  var card_title = title;
  var card_description = body;

  var url = 'https://api.trello.com/1/cards/?key=' + api_key + '&token=' + api_token;
  var options = {
      'method' : 'post',
      'muteHttpExceptions' : true,
      'payload' : {
        'name'      : card_title,
        'desc'      : card_description,
        'due'       : '',
        'idList'    : list_id,
        'urlSource' : ''
      }
    }
    var response = UrlFetchApp.fetch(url, options);

}

トリガー設定

以下の通り設定します。

結果

このような形でカードが追加されます。
これで問合せ対応を漏れなく実施することができました!

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5