SimpleChatGPTCallコンポーネント・MSTeamsSQLCallコンポーネント・GmailGetコンポーネントを組み合わせて新着メールの通知・返信文を自動作成するフローを作成しました。
※このフローはメール受信を監視するため、1時間ごとに自動実行を行うことを前提とする
GmailGetコンポーネント
・未読メールのSubject、From、Content、Dateを取得 (条件:Labels = UNREAD)
Mapperコンポーネント(1つ目)
・未読メールかつ一時間以前のメールを抽出
例:一時間前の時間<受信時間<=実行時間
9:00:00<9:30:00<=10:00:00
・Subject、From、Content、Date、HasNewMailをマッピングする
BranchStartコンポーネント (画像は省略する)
・HasNewMailの値がfalseであれば、フローを終了する
・HasNewMailの値がtrueであれば、フローを続ける
例:$record.HasNewMail=false
Mapperコンポーネント(2つ目)
・フロー変数(メール着信通知、フォルダ名、ファイル名)に値を代入
例:フォルダ名:受信日付 (例:2025-01-21)
ファイル名:件名.txt
メール着信通知:${input1}から${input2}件名でメールが届いています。
・受信したメール内容と返信文作成依頼をChatGPTコンポーネントへマッピング
SimpleChatGPTCallコンポーネント
「基本」設定
・シークレットキー:OpenAI APIキーを入力
https://platform.openai.comにより取得する
・モデル:使用するモデルを選択、又は、入力
例:gpt-4を入力
・残りのプロパティはデフォルトのままでOK
FilePutコンポーネント (画像は省略する)
・返信文をファイルとして保存
・「ファイルパス」プロパティに保存先を設定
例:${flow.get("フォルダ名")}/${flow.get("ファイル名")}.txt
Mapperコンポーネント(3つ目)
・Teamsへ通知するために、必要なデータをマッピング(ChatId、通知内容等)
MSTeamsSQLCallコンポーネント
「基本」設定
・コネクション名:対象のMSTeamsコネクションを選択
・実行する処理:ストアド実行(結果なし)
・SQL文:{ call SendChatMessage(?ChatId?,?ContentType?,?Content?)}
SendChatMessageストアドプロシージャでメッセージを送信
・残りのプロパティはデフォルトのままでOK
「SQLパラメーター」設定
・ChatId:対象のChatId(直前のMapperコンポーネントからマッピングされる)
・ContentType:textを入力
・Content:Teamsへ送信メッセージ内容(直前のMapperコンポーネントからマッピングされる)
事項前
Gmailでの新着メールを以下のようになる
実行結果
当日日付はフォルダ名、メール件名はファイル名として保存される
ChatGPTが作成してくれた返信文
Teamsへメッセージ送信