投稿

ラベル(Google Apps Script)が付いた投稿を表示しています

Google Chat ボットで知っておきたい2つの方式

イメージ
 ― Google Chat ボットで知っておきたい2つの方式 ― はじめに Google Workspaceを使っていると、 毎朝の通知 やチャットでの 問い合わせ対応 を 自動化 したくなる瞬間がよくあります。 GASならそれを実現できますが、実装したい内容によって選ぶべき方式が変わります。 私自身、初めて触れたときは 情報の少なさに苦戦 したので、同じ悩みを持つ方の助けになればと自分なりに整理しました。 この記事では、まずは 「 自分のやりたいことには、どの方式が合っているのか? 」を正しく選ぶための判断基準をサクッと解説します。 まずは、GASでGoogle Chatボットを作る際に最初に決める二択 「通知型」 か 「対話型」 かを整理します。 両者は仕組みがまったく異なり、特に「対話型」は Google Cloud Platform (GCP) の複雑な設定が必要になるため、最初の確認が重要です。 💡 具体的なGCP環境構築手順(対話型用)   こちらをどうぞ →「 GAS×Google Chat ボット 環境構築ガイド 」 ざっくり言うと何が違う? 一言で言うと、 データの流れる方向 が違います。 通知型 : GASからチャットへ「投げるだけ」の、一方通行 対話型 : ユーザーが話しかけて、GASが返事をするという、双方向 この違いを視覚的に理解するために、下記の図を確認してください。 図を見ると、 通知型(左側) はGASから簡単な設定で一方向にメッセージを送るだけのシンプルな仕組みなのに対し、 対話型(右側) はユーザーからの質問を受け取り、GCPの複雑な設定とアプリ登録を経て双方向でやり取りする仕組みであることが分かります。 対話型では、ユーザー、Google Chat、GCP、GASの間で情報が双方向に流れることが図からも明確です。 ポイント比較 【通知型ボット】が向いている用途 定例会議アナウンスと時事ニュース通知 フォームに回答があったら通知 エラーが起きたらアラートを飛ばす 【対話型ボット】が向いている用途 勤怠申請とその情報をカレンダー登録 ※Calendar APIが別途必要 「在庫ある?」と聞いたら検索して答えてくれる カード形式のメッセージで「承...

GAS(Google Apps Scripts)写経 受信メールを利用してGoogle Chatスペースに投稿してみた

イメージ
はじめに 昨年に続きGoogle Apps Scriptsのブログを書きます。 Google Workspaceで作業を自動化をするときに利用するGoogle Apps Scripts(以下、GAS)。慣れてしまうととても便利なツールです。インターネットや書籍で情報が多いので簡単にやりたいことや困った時の答えが見つかります。 ブログのネタを探していたとき、「社内周知をGoogle Chatスペースに転送できないか?」と思い立ち、調べてみました。すると、私がやりたかったことがすでにブログで紹介されていたので写経してみました。(その方法を参考にしてスクリプトを作成してみました。) 参考にしたブログはこちらです。 Google Apps Script(GAS)で業務効率化「Gmailで受信した特定のメールをChatスペースへ連携する」 https://you-wind.net/gws/post-305/ 上記ブログを基に私がやってみた内容をご紹介します。なお、説明文作成の一部はChat GPTを活用しています。 GASの目的 社内周知はこれまでメールで行っていましたが、社員の入社タイミングに関わらず全社員が同じ情報を共有できるように、Google Chatスペースへ全社向け周知メールを転送する仕組みをGASを使って実現します。 (そもそも「過去の全社周知を共有する必要があるのか」、「社内ポータルを活用すればよいのでは?」などのご意見もあるかもしれませんが、今回はブログのネタとして取り上げているため、その点については考慮しないことにします。) GASで実現するのに必要なもの 以下を利用します。 Gmailの設定 全社向けメーリングリスト宛に届いた受信メールにラベルを付ける メール転記用のスプレッドシートを用意する GASで以下2つのスクリプトを作成する メール→スプレッドシート転記用のスクリプト スプレッドシート→Chatスペース投稿用のスクリプト やってみた いざ、トライ。 Gmailのラベル付与 Gmailの受信メールにラベルを付与する設定は説明を省略します。 スプレッドシート作成 スプレッドシートを作成して、A列~F列の1行目に以下を設定します。 A~F列 date,from,subject,message,id,result GASでスプレッドシートを指定する方法は...

Google Apps Scriptを使ってメールの自動送付を設定してみた

イメージ
些細なこと、面倒なこと、忘れることは自動化だ!  はじめに 毎月のタフス会の後に開催される社内業務委員会では、各チームが順番に司会を担当しています。5か月に一度、チームに当番が回ってくるのですが、毎度、当番を忘れそうになります。都合により順番が変わることもあるので、毎度、確認するのも覚えておくのも面倒です。そこで、Google App Scriptsを利用して毎月1日に司会当番のお知らせをメールを自動送付するスクリプトを作成しました。 司会がやること 司会の当番が開催前にやることは、以下の2つです。 アジェンダ表の作成 開催の周知と事前起案の依頼 担当の当番表とアジェンダ表は、異なるスプレッドシートを使用しています。 開催前の周知は、Google Chatスペースに投稿していました。 いざ、自動化 Google App Scriptsを利用して自動化してみました。 スクリプトの動作は以下の通りです。 日付の特定 スクリプト実行時の日付から年・月を抽出 司会当番の特定 司会当番表のスプレッドシートで該当行を特定 特定した行から担当名を取得 担当名が”開催なし”になっている場合は、処理を中断 アジェンダ用スプレッドシートの作成 アジェンダ用スプレッドシートのテンプレートシートをコピー コピーしたスプレッドシートのシート名を変更 コピーしたスプレッドシートを一番左から2番目に移動 メール送信 Google Docsのメールひな形を置換してメールを送信 自動実行の設定 毎月1日に動作するようにトリガーをセット 使用するスプレッドシート 以下2つのスプレッドシートを使用します。 毎月の司会当番が記載されている担当が記載されているスプレッドシート 毎月の社内業務委員会のアジェンダ&議事メモのスプレッドシート 担当を特定するのに使うスプレッドシート Google Apps ScriptsでA列の日付をからB列の担当名を特定します。 毎月のアジェンダで使用するスプレッドシート シート名”Template”をコピーしてシート名をMM_YYYYへ名前変更、そのあとシートを左から2番目に移動します。 メールで利用したGoogle Docs 以下のファイルを用意しておき、変数で置換してメール送信しています。 ファイル名:{開催月} 月度 社内業務委員会開催のお知らせ ファイル本文:...