メールによる課題登録機能で、Googleスプレッドシートから課題登録!

仕様や画面は現行バージョンと異なる可能性があります。
Backlogの最新版についてはこちらからご確認ください。

こんにちは。Backlog上の    (おつかれサラリーマン)のアイコンが好きなのですが、周りには不評でちょっとさみしく思ってる中村です。

先日のリリースで、メールによって課題を登録できるようになりましたね。いくつか利用方法は考えられると思いますが、今日はこの機能を使って、GoogleスプレッドシートからBacklogの課題を登録する方法を紹介します。

Googleスプレッドシートとは

まず、Googleスプレッドシートについて、軽く紹介しておきます。とは言っても、「Googleが提供しているExcelライクな表計算サービス」というのは、皆さんご存知ですよね?完全にシステム化はされていないけれど、何らかの管理はしておきたいというときに、ヌーラボでもGoogleスプレッドシートをよく使っています。

Googleスプレッドシートの特徴的な機能として、以下の機能があげられます。

  • JavaScriptでスクリプトを記述できる ( Google Apps Script )
  • Googleフォームとの連携ができる

前者のGoogle Apps Scriptを使えば、例えば特定のセルの値に応じて何か処理を行う、といったスクリプトを定義することができます。このスクリプトは、シートが編集された・フォームが送信されたといった特定のイベントをトリガとして実行こともできますし、定期的に実行することもできます。

というわけで、このGoogle Apps Scriptを使って、Backlogと連携してみましょう。

Google Apps ScriptとBacklogの連携

今回のサンプルの概要図は、下記のようになります。

まず、元となるスプレッドシートを用意しておき、その中でGoogle Apps Scriptを作成します。Google Apps Scriptの中身は、シートの内容を読み取って、必要であればBacklogにメールを送信するスクリプトです。Backlog側では、メールを受け取ったらそのメールを元に課題を作成します。

スプレッドシートのサンプル

ではさっそく、サンプルを見ていきましょう。まず、下記のようなサンプルのシートを作成しました。IDと日付が入力されているだけの、単純なシートです。

Google Apps Scriptのサンプル

続いて、先ほどのスプレッドシートに対してGoogle Apps Scriptを作成します。スプレッドシートのメニューバーの “ツール > スクリプトエディタ…” をクリックします。

今回は、下記のようなスクリプトを用意してみました。現在日付(2014/03/24)より前の日付の行だけピックアップして、Backlogにメールを送信するというものです。2行目の”MAIL_TO”に指定するメールアドレスは、Backlogの”プロジェクト設定 > メールによる課題登録“から作成できます。

function sendMail() {
  var MAIL_TO = "issue-XXXXXXX-XXXXXXXXXXX@i1.backlog.jp";

  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  // スプレッドシートの内容を読み取る
  for (var i = 1; i <= numRows - 1; i++) {
    var row = values[i];
    var id = row[0];
    var date = new Date(row[1]);

    // 過去の日付のみ対象とする(今日より未来の日付は対象外)
    if (new Date() < date) {
      continue;
    }

    // Backlog にメール送信
    MailApp.sendEmail(MAIL_TO, "スプレッドシートからBacklogに登録するサンプル", "ID : " + id);
  }
}

サンプル実行

それでは、このサンプルを実行してみましょう。まずは、通常通り実行してみます。スクリプトエディタのメニューバーから、”実行 > sendMail ( サンプルで作成したfunction )”をクリックしてみてください。初回のみ、スクリプトを実行していいかを聞かれるので認証し、再度クリックします。

正しくメールが送信されて課題が登録されると、Backlog側のメールの受信履歴から確認できます。

サンプルの応用

冒頭で少しお話しましたが、Google Apps Scriptで作成したスクリプトは、手動実行だけではなくて自動実行するような設定もできます。スクリプトエディタの”リソース > 現在のプロジェクトのトリガー”をクリックすると、トリガーの設定画面が表示されます。この中で、例えば「1日1回朝8時に定期実行する」「フォームが送信されたときに実行する」といった設定も可能です。

実際、ヌーラボではここで紹介したサンプルスクリプトを応用して、1日1回シート中から期限切れになったデータに対してアクションを起こすための課題を登録するように仕込んでいます。


以上、Googleスプレッドシートとメールで課題登録機能を組み合わせるサンプルを取り上げました。

Googleスプレッドシートに限らず、大抵のシステムにはメールを送信する機能は備わっているかと思います。皆さんがすでにお使いのシステムからBacklogにメールを送るよう設定しておけば、全ての情報をBacklogに集約することができるようになります。

それでは、よいBacklogライフを!

チームで使うプロジェクト管理・タスク管理ツール

カテゴリ一覧