すでに問い合わせ管理ツールなどを導入している会社では不要ですが、Slack上での依頼やGoogleフォーム単品で依頼が行われていると、依頼のステータス管理や担当者管理が非常に煩雑になるといった課題が多々発生します。
社内で使っているアセットを用いて、依頼・申請と依頼管理を効率化しようとしましたので、その内容を共有いたします。
KIYONOにあるアセット
- Slack
- Backlog
- GoogleWorkspaces
単品でも運用は可能ですが、エンジニア、コンサル、営業、バックオフィスと異なる職種やリテラシーの異なるメンバーが一緒に働く環境なので、なるべく誰でも扱えるようなフローにする必要がありました
特にGoogleフォームから依頼や申請をしていても、ステータスが分からずSlackで個別の担当者に状況を確認したり、Slackで直接依頼するようなこともあるため、依頼(と承認)の証跡を一元管理しようとしたことも試してみた背景です。
今回試したこと
社内ポータルからGoogleフォームを使って依頼・申請する流れが標準としているので、まずはSlackで個別依頼や確認する流れが減らせられることをゴールと設定します。
使うツール
- Googleフォーム
- Backlog
Backlogでチケット登録する方法もシンプルですが、入力項目が多い点、あとは社内全体で入力ルールを統一する難易度もあるため、上記の2ツールを組み合わせます
Googleフォームで申請→Backlogでチケット管理→担当者割り振り・進捗ステータスの確認はBacklog上で実施
というフローにします
Backlogのメールで課題登録管理する機能を利用
GoogleフォームからBacklogへ登録はBacklogの「課題登録用メールアドレス」を利用します。
「課題登録用メールアドレス」の発行手順は、こちらを参照
Backlogへの「課題登録用メールアドレス」の設定
| 項目 | 設定値 |
|---|---|
| 課題の件名 | メールに記載された件名で登録 |
| 課題の登録者 |
メールの送信元(From)から登録者を割り当てる |
| カテゴリー |
事前に作成しておいた、依頼用のカテゴリを選択 |
| 担当者 | 1名しか選択できないのでいったん決め打ちで |
| 期限日 |
登録日から3日後に設定 ※ここも決め打ち |
| 開始日 |
登録日から0日後に設定 |
| セキュリティ |
件名がre:から始まるメールは登録しないにチェック |
あとは標準値をそのまま利用
依頼・申請用のフォームを作成
必要な入力項目を設定してフォームを作成
ここでフォームの保存先をスプレッドシートにしておきます
メール送信用のApp Scriptの作成
フォームの保存先になるスプレッドシート側で、入力内容をBacklogの課題登録用アドレスにメール送信するAppScriptを作成します
function inviteSlackChannel(e) {
// 入力カラム名の指定
var CLIENT_NAME = '申請者名'; // 申請者名
var CLIENT_ORGANIZATION = '申請者所属組織'; // 申請者所属組織名
var INVITE_USER_NAME ='招待するユーザーの氏名(フルネーム)'; // 招待者名
var INVITE_USER_ORGANIZATION ='招待するユーザーの所属会社名'; // 招待者所属会社名
var INVITE_USER_EMAIL = '招待するユーザーのメールアドレス'; // 招待するユーザーのメールアドレス
var INVITE_USER_ROLE = 'ユーザーに付与する主なロール(権限)'; // ユーザーに付与する主なロール(権限)
var INVITE_CHANNEL = 'ゲストの場合、アクセスを許可するチャンネル名(複数選択可)'; // ゲストの場合、アクセスを許可するチャンネル名(複数選択可)
var INVITE_CHANNEL_OTHER = '上記「上記以外」を選択した場合のチャンネル名(改行区切りで入力)、または補足事項'; // 上記「上記以外」を選択した場合のチャンネル名(改行区切りで入力)、または補足事項
var INVITE_REASON = '招待を希望する理由'; // 招待を希望する理由
var APPROVER_NAME = '承認者名'; // 承認者名
var INVITE_DATE = '招待希望日(任意)'; // 招待希望日(任意)
var INVITE_END_DATE = '利用終了予定日(任意)'; // 利用終了予定日(任意)
// Backlogの課題登録用メールアドレス
var to ='****************'; // Backlogの課題登録用メールアドレス
// メール件名
var clientName = e.namedValues[CLIENT_NAME];
var subject = "【Slackユーザー招待依頼】【依頼者:"+ clientName +"】";
// メール本文
var clientOrganization = e.namedValues[CLIENT_ORGANIZATION];
var inviteUserName = e.namedValues[INVITE_USER_NAME];
var inviteUserOrganization = e.namedValues[INVITE_USER_ORGANIZATION];
var inviteUserEmail = e.namedValues[INVITE_USER_EMAIL];
var inviteUserRole = e.namedValues[INVITE_USER_ROLE];
var inviteChannel = e.namedValues[INVITE_CHANNEL];
var inviteChannelOther = e.namedValues[INVITE_CHANNEL_OTHER];
var inviteReason = e.namedValues[INVITE_REASON];
var inviteDate = e.namedValues[INVITE_DATE];
var inviteEndDate = e.namedValues[INVITE_END_DATE];
var body = '■■ 依頼内容 ■■ \n'
+ '【' + CLIENT_NAME + '】 : ' + clientName + '\n'
+ '【'+ CLIENT_ORGANIZATION + '】 : ' + clientOrganization + '\n'
+ '【'+ INVITE_USER_NAME + '】 : ' + inviteUserName + '\n'
+ '【'+ INVITE_USER_ORGANIZATION + '】 : ' + inviteUserOrganization + '\n'
+ '【'+ INVITE_USER_EMAIL + '】 : ' + inviteUserEmail + '\n'
+ '【'+ INVITE_USER_ROLE + '】 : ' + inviteUserRole + '\n'
+ '【'+ INVITE_CHANNEL + '】 : ' + inviteChannel + '\n'
+ '【'+ INVITE_CHANNEL_OTHER + '】 : ' + inviteChannelOther + '\n\n'
+ '【'+ INVITE_REASON + '】 : ' + inviteReason + '\n'
+ '【'+ INVITE_DATE + '】 : ' + inviteDate + '\n'
+ '【'+ INVITE_END_DATE + '】 : ' + inviteEndDate;
// メール送信
MailApp.sendEmail(to, subject, body);
}
件名に「担当者名」と「依頼の種別」、本文に「依頼内容」をセットしてMailApp.sendEmailメソッドを利用してBacklogに課題登録メールを送信しています
GoogleAppScript画面で「編集」→「すべてのトリガー」をクリック。
以下の画面がでてきたら実行するスクリプトに「inviteSlackChannel」を選択。
イベントは画面を参考に保存すればOKです。

実際に試してみる
実際に試してみると、Googleフォームで送信された申請や依頼がBacklog上にチケット登録されます。

担当者の割り振りや、進捗の確認、依頼者との確認などはBacklog上で行えば、情報は集約されるようになります。
同じようなことをやろうとされた方にとって、今回の記事が参考になれば幸いです。



コメント