コムスクエアが開発・販売するIT運用自動化プラットフォーム「ロボシュタイン」。
以前の記事では『文系インターン生の知識レベルでもロボシュタインで自動化フローを作れるか』を検証するため、Slackチャットボットによる自社サイト・自社ネットワークの監視自動化フロー作成に挑戦しました。(記事はこちら)
Slack連携に関してはマニュアル内に用意されているサンプルフローに少々設定を加えるだけで成功してしまったため、今回はサンプルフローを使わずに自力でオリジナルフローの作成に挑戦してみたいと思います。
筆者は普段、インターン生としてマーケティングを担当しているので、マーケ業務に活用できそうな自動化フローを考えてみることにしました。
すばり今回のテーマは、Twitterエゴサーチの自動化。
国内SNSの中で圧倒的な利用率とアクティブユーザー数を誇るTwitterには、企業イメージや商品に関するつぶやきが数多く投稿されるため、企業にとっては自社へのカスタマーフィードバックを集めるソースとして価値ある媒体といえます。
特に、自社に関するネガティブな意見をしっかりと把握しておくことは、ネット炎上が当たり前の昨今、非常に重要な課題となっています。
そこで、自社名や自社製品名を含むツイートの中からネガティブな表現が使われているものを抽出し、任意の別媒体に通知してくれる自動化フローを作ってみることにしました。
目次
今回挑戦した自動化フロー
早速ですが、ロボシュタインマニュアルやNode-RED日本語ドキュメントを参考にしながら、自動化フローを作成しました。
フローの流れとしては、
1.Twitter APIを通じて特定のキーワード(自社名や自社製品名など)を含むツイートを抽出
2.抽出したツイートを、特定のネガティブワードにもとづいて振り分け
3.振り分けたネガティブワードを含むツイートをSlackに通知
となっています。
今回使用したノード一覧
Twitter入力ノード
Twitter APIを通じて任意のツイートやユーザー情報を取得できるノード
Functionノード
JavaScriptでさまざまな処理を記述することができるノード
今回は、msg.payloadというオブジェクトに変更を加えるために使用します。
Switchノード
条件分岐を作るためのノード
今回は、抽出したツイートの内容にもとづいてその後の処理を設定していくために使います。
Templateノード
テキストの生成に使用するノード
今回は、抽出したネガティブツイートをSlackに通知する際の本文生成に使います。
Slack送信ノード
ロボシュタインからSlackチャンネルにメッセージやファイルを送信するノード
事前準備
ノードを組み合わせてひとまずフローの外形を作ってみましたが、動作させるためにはTwitterとSlackで事前に多少の準備をしてあげる必要があります。
Twitter側での準備
Twitter APIを利用するには、まず開発者用アカウントを取得する必要があります。
Twitterデベロッパーサイトにアクセスして利用者情報やAPIの利用目的等を記入して申請すると、数日から2週間程度で承認可否が通知されます。
開発者アカウントが取得できたら、APIを利用するためのアプリを作成し、APIキーとアクセストークンを取得します。
※API keyとアクセストークンは一度しか表示できないため、必ず控えておきましょう。
以上のステップをクリアできれば、Twitter側での設定は完了です。
Slack側での準備
ロボシュタインで検知したネガティブツイートの通知先としてSlackを利用する場合は、Twitterと同じようにAPIキーとアクセストークンの取得が必要になります。
ただし、SlackBotの事前準備はすべてロボシュタインマニュアルで解説してくれています。
前回記事でも説明していますので、是非ご参照ください。
自動化フロー 各ノードを設定していく
事前準備が完了したので、冒頭で紹介した自動化フローの各ノードに設定を加えていきます。
①『#システム障害』を含むリアルタイムツイートを取得
まずはTwitterノードをダブルクリックしてプロパティを開き、検索条件にどのようなツイートを取得したいかを記述します。
今回は、ITシステムに関するネガティブなツイートを幅広く検知するために#システム障害というハッシュタグを検索対象として設定しました。
検索条件が設定できたら、Twitter IDの設定を行います。
新規にtwitter-credentialsを追加を選択して右側のえんぴつアイコンをクリック。
利用中TwitterアカウントのユーザーIDを入力します。
開発者アカウントの管理画面で新規APIを発行した際に表示されていたAPI key・API secret keyと、Access token・Access token secretの4つをコピー&ペーストして更新ボタンをクリックすれば、Twitterノードの設定はOKです。
②取得したツイート(msg.payloadオブジェクト)から、ユーザー名とツイート本文のみを抽出
次にFunctionノードの設定です。先に書いた通り、ここでは取得したツイートオブジェクトからユーザー名とツイート本文だけを取り出し、以降のフローに渡す目的でFunctionノードを使います。
プロパティ画面のコード部分に、以下のような処理を記述しました。
ツイートしたユーザー名→msg.user.nameとして定義
ツイート本文→msg.tweet.textとして定義
③ツイート本文に含まれるネガティブワードにもとづいて振り分け
ツイート取得・成型が設定できたので、Switchノードを使って条件分岐を作っていきましょう。
Switchノードでは、取得したツイートに含まれるネガティブな表現をもとに、さらに以下のような4グループに分けてみます。
1.『システム障害』を含むツイートのうち、さらに『無能』というワードも含むもの
2.『システム障害』を含むツイートのうち、さらに『使えない』というワードも含むもの
3.『システム障害』を含むツイートのうち、さらに『失態』というワードも含むもの
4.上記3ワードのいずれも含まないもの
かなり過激な表現のような気がしますが、実際にインターネット上ではこのような厳しい言葉が数多く見受けられるのが悲しい現実です。
④Slack送信用メッセージを生成
ここからは、条件分岐の処理を施したツイートをSlackに通知する際の設定をしていきます。
まずは、Templateノードで実際にSlackに送信したいメッセージを設定しましょう。
プロパティがmsg.payloadになっているのを確認して、テンプレート部分にメッセージ本文を記述していきます。
今回は、Twitterにネガティブツイートが投稿されたこと、ツイートしたユーザー名、ツイート本文を教えてくれるメッセージにしてみました。
ここではメッセージ本文がすべて統一されていますが、先ほど作った条件分岐に応じてメッセージ内容を変えてみるのもいいかと思います。
おまけとして、フローが動いているかデバッグパネルで確認できるように、ネガティブワードを含まないツイートの分岐先にはdebugノードを設置しておきました。
⑤Slack送信ノードを設定
最後にSlack送信ノードを設定していきましょう。
今回は以前の記事でSlack連携に挑戦した際に登録したアクセストークンをそのまま使ったため、該当するアクセストークンを選択して通知先のSlackチャンネルIDを入力すればOKです。
(はじめてのSlack API設定は、ロボシュタインマニュアルで詳しく解説されています。)
メッセージ本文の部分がmsg.payloadになっているのが確認できたら、自動化フロー完成です!
素人が作ったオリジナルフロー 動いてくれるか!?
せっかくなので、作成した自動化フローを動かしてみました。
フローエディタ右上のデプロイボタンをクリックしてフローを有効化すれば、Twitter入力ノードが動き始めます。
通知先に設定しておいたSlackチャンネルで待機していると、さっそく通知が飛んできました!
ちゃんと動いてよかった(笑)
個人・組織名が記載されている部分にはモザイク処理をしていますが、ひとまずフローの設計通りに動作しているようです。
注意点として、Node-REDのTwitter入力ノードで取得できるツイートは、フローが稼働してから投稿されたものに限定されているようです。
また、Twitter APIを利用してもすべてのツイートを取得できるわけではなく、非公開アカウントからの投稿は取得できない仕様になっています。
今回の挑戦振り返り
サンプルフローを使ってSlack連携をした前回記事に続き、今回はロボシュタインではじめてのオリジナルフロー作成に挑戦しました。
Twitter上での自社に関するエゴサーチを自動化してマーケティング業務に役立てるというコンセプトに沿って、素人インターン生の私でも自動化フローを作れてしまうのは驚きでした。
作業時間としては、もともと取得していたTwitter API・Slack APIを利用したため、1時間少しで自動化フローを作成し実際に動かすことができました。
今回作った自動化フローでは、ロボシュタインのベースであるNode-REDのオリジナルノードを多く使いましたが、国内でも幅広く利用されているプラットフォームだけあって日本語で入手できる情報が多く、少し検索すれば必要なノウハウはすぐに見つかりました。
またフロー作成を進めていくうちに、ネガティブツイートに対するリツイートを除いて通知の重複を防いだり、一度検知したネガティブツイートをデータベースに蓄積させてPR活動における参考資料として活用する、といったイメージも広がっていきました。
RPA管理や監視運用の自動化に特化したロボシュタインですが、それ以外に幅広い業務領域において、アイデアを気軽に形にできることもロボシュタインの魅力ではないでしょうか。
この記事を通してIT運用自動化プラットフォーム「ロボシュタイン」に興味を持っていただけましたら、ぜひ弊社製品サイトをご確認ください!