ホーム » ビジネスブログ » A-Form, A-Member, A-Reserve(MTプラグイン) »

問い合わせ内容をRedmineでチケット作成しSlackに通知する方法【A-Form Advent Calendar 2019/12/11】

2019年12月11日

問い合わせ内容をRedmineでチケット作成しSlackに通知する方法【A-Form Advent Calendar 2019/12/11】

投稿者 竹村

この記事は A-Form Advent Calendar 2019 参加記事です。

A-Formで作成したフォームでお問い合わせが来たら、その後の処理フローはA-Formを導入した方に委ねられているので、それぞれのルールで処理されていると思います。

例えば、

1.デフォルトのA-Formであれば、受付データに「管理ステータス」があるので問い合わせについて何らかの対応をしたら「管理ステータス」を変えることで状態管理ができます。

2.弊社で販売している A-Form To Salesforce というプラグインを利用すると、Salesforceの「リード(またはケース)」にお問い合わせデータを渡せるので、以降はSalesforce上で処理が可能です。

SalesforceなどのクラウドCRMサービスは使っていないが、デフォルトの管理ステータスだけではお問い合わせの内容が追いづらい という問題に当たることもあるかと思います。

弊社の場合は、 お問い合わせをredmineで新規チケットとして投稿 しています。ついでに、 Slackにお問い合わせがあったことを通知 するとよさそうです。

1.お問い合わせが来たら、A-Formに登録しておいたGmailのメールアドレスにメールが届く。
2.Gmailのメールボックス(IMAP)をチェックして、メールの内容をredmineに投稿する。
3.slackにredmineのチケット番号付きURLを流す。

1211-01.png

クリックで拡大

これはA-Form自体のテクニックではないですが、お問い合わせいただいた内容を複数の人員で担当する場合にはとても役立ちます。弊社でもお問い合わせはredmineへ自動的にチケット投稿するようになっており、技術的な質問については担当者にチケットを確認させ、対応する仕組みになっています。

redmineに投稿する方法

redmineの公式ドキュメント: メールによるチケット登録

redmineでAPIを利用してチケットを投稿する部分は rdm-mailhandler.rb というRubyプログラムが用意されています。これをメールサーバーにてメール受信時に実行させる、と書いてあります。弊社サーバーでもそのようにしています。

それだとredmine公式ドキュメントのママなので、ちょっと捻ってredmineが動いているサーバー以外は有効なRuby環境がない、という想定で node.jsでやります!

バージョン:
* node.js v8.16.2
* npm 6.4.1

npmでPackageのインストール

node.js でredmine APIを叩くnpmがあるのでインストールします。
node-redmine

Gmailのメールボックスで新着メールを監視してくれるように inbox をインストールします。
メール本文を取得できるように mailparser をインストールします。

npm init -y
npm install -S node-redmine
npm install inbox
npm install mailparser

redmieの設定

redmineへログイン後、「個人設定」→「APIアクセスキー」の下の「表示」を押すと表示される redmine-APIキー をメモしておきます。
※redmineのバージョンが低い場合は出ません。その場合はまずredmineのバージョンアップをしてください。

1211-02.png

クリックで拡大

GMailの設定

GMailL側の設定
「メール転送とPOP/IMAP」から「IMAPアクセス」が無効になっている場合は有効にします。

1211-03.png

クリックで拡大

nodeのメインプログラムを作る

コードはGit参照。
https://github.com/ARK-Web/node_inbox2redmine

rdm-mailhandler.rb のようにメールをパースして、必要なプロジェクトに担当を指定して投稿するような高級な機能はなく、 極シンプルな実装 ですが今回必要なredmineに投稿するのは事足ります。

node-redmineのcreate_issue()メソッドで引数issueのパラメータを入れます。プロジェクトIDやトラッカーID、担当者IDが数字で入ってますが、この辺はredmine側を調べてください。

            redmine.create_issue({
                'issue': {
                    'project_id'    : 379,        // プロジェクト ID 「projects.xml?limit=100」へアクセス
                    'tracker_id'    : 6,          // トラッカー ID
                    'subject'       : escapeHtml(mail.subject),    // チケット名
                    'description'   : escapeHtml(mail.text),        // 説明 : 改行は「\r\n\」で書ける
                    'assigned_to_id': 4,            // 担当者 ID
                    'start_date'    : '2019-12-01',  // 開始日 : 文字列 'YYYY-MM-DD'
                }

実行すると「connected」と出力されるので、これでGmailのメールボックス監視ができたことになります。あとは、Gmailにメールをすればredmineに投稿されます。

実行:
node inbox2redmine.js

slackに通知を投げる

コードは先程のメインプログラムに書いてあります。
↓これだけ。

                // ついでにSlackになげる
                var id = ticket.issue.id;
                var link = 'https://<redmineのURL>/issues/'+ id;
                var slack_msg = "お問い合わせがありました。「"+ ticket.issue.subject +"」のチケット参照 <"+ link +">";
                slack.write(slack_msg);

slack.write()については lib/slack.js の方に細かい実装は書きました。
Webhook URL については次を参照ください。

slackの Webhook設定

「Incoming WebHooks」を使います。
* Slack Add App より incoming-webhooks を検索します。
* 【Add to Slack】を押す
* 「Post to Channel」から投稿するチャンネルを指定して【Add Incoming WebHooks integration】を押す
* 「Webhook URL をメモしておく
* lib/slack.jsの hooks に登録 する

実行

実行方法はredmine投稿の時と同じです。gmailにメールすると、redmineに書き出されてチケット番号をSlackで通知します。

実行:
node inbox2redmine.js

1211-04.png

まとめ

今回は、A-Formの管理者宛てメールからRedmineへのつなぎ込みについて実装しました。登録用のAPIがあれば他のシステムへの登録も可能かと思います。

お問い合わせ情報の共有や、ステータス管理などに外部サービスをお役立てください。

投稿者 竹村 : 2019年12月11日 12:00

カテゴリー: A-Form, A-Member, A-Reserve(MTプラグイン)

タグ: A-Form , api , Movable Type 7 , redmine , slack


Movable Type用高機能メールフォーム生成プラグイン A-Formの詳細へ
Movable Type用会員限定サイトプラグイン A-Memberの詳細へ
Movable Type用予約サイト構築プラグイン A-Reserveの詳細へ
ARK-Web×CSR(企業の社会的責任)

アークウェブの本

Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用

Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用

内容充実のZen Cart公式本(v1.3対応)がついに発表です。アークウェブのスタッフをはじめZen-Cart.JPの中心メンバーが共著で執筆しました。続きを読む

Movable Type プロフェッショナル・スタイル

Movable Type プロフェッショナル・スタイル

ビジネスサイト構築におけるCMSとしてのMTの活用方法について、豪華執筆陣による実践的MT本です。八木が共著で執筆しました。続きを読む

Web屋の本

Web屋の本

Web 2.0時代の企業サイトの構築・運用などの戦略を考える「Web屋の本」 (技術評論社)を、中野・安藤が執筆しました。続きを読む

新着はてブ

Loading

アーカイブ

応援しています

  • キッズ・セーバー
  • ソロモン・リリーフ ─ソロモン諸島を応援する有志による、震災復興支援プロジェクト─

    (終了しました)

RSS配信

 

サービスおよびソリューション一覧


最新情報・投稿をチェック


このページのトップに戻る

Photo by A is for Angie

Powered by Movable Type Pro 6.3.8