GPTsで実現!Gmailの下書きを自動で作成する方法
はじめに
こんにちは! 前回は、Google Apps Script(GAS)との連携で、GPTsを使ってカレンダーイベントを管理する方法や、Google Formを自動作成するテクニックを紹介しました。
今回は、自動化の範囲をさらに拡大し、GASとGPTsを組み合わせてGmailの下書きを自動で作成する方法についてお話します。具体的には、「MTGのリマインダーメールをGmailに下書きを作って。」のような指示を出すだけで、Gmailに下書きを保存する方法を紹介します。
この記事の対象者:
GPTsのCustom Actionsを自作したい方
GASとGPTsの基本的な連携方法を学びたい方
必要な準備:
Googleアカウント:GASスクリプトを作成・実行するために必要です。
ChatGPTの課金アカウント:GPTsを作成するために必要です。
手順① GASを準備する
まず、GASを利用して、指示に応じたGmailの下書きを自動作成するスクリプトを作成します。
GASプロジェクトの作成:
Google Apps Scriptのホームページにアクセスし、「新しいプロジェクト」をクリックして開始します。
スクリプトのコーディング:
新しいプロジェクトが開いたら、下記のコードをエディタにコピー&ペーストします。このコードは、具体的なフォーム作成のリクエストを受け取り、指定された質問項目を含むGoogle Formを生成します。
function doPost(e) {
try {
var payload = JSON.parse(e.postData.contents);
switch (payload.operation) {
case 'createDraft':
var response = createDraft(payload);
return ContentService.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
}
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({'status': 'error', 'message': error.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}
function createDraft(details) {
try {
var recipient = details.recipient || ""; // recipient が未指定の場合は空文字列を使用
var draft = GmailApp.createDraft(recipient, details.subject, details.body);
return ContentService.createTextOutput(JSON.stringify({
'status': 'success',
'message': 'Draft created',
'draftId': draft.getId()
})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({'status': 'error', 'message': error.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}
手順② 作成したGASをWebアプリとしてデプロイする
作成したGASスクリプトを外部からアクセス可能にするため、Webアプリとしてデプロイします。
デプロイの準備:
GASエディタの上部にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。
デプロイ設定:
「⚙️設定」アイコンを選択し、「ウェブアプリ」を選びます。
以下の情報を設定欄に入れます。
新しい説明文:適切な文章
次のユーザとして実行:自分
アクセスできるユーザー:全員
デプロイの実行:
全ての設定が完了したら、「デプロイ」をクリックします。Googleによるアクセス承認が求められる場合がありますので、指示に従って承認してください。
WebアプリケーションのURLを取得:
デプロイが完了すると、生成されたWebアプリケーションのURLが表示されます。このURLは、GPTsからのリクエストを受け付けるために使用しますので、メモしておいてください。
手順③ GPTsを作成する。
次に、GASと連携するGPTsを設定します。
GPTsの設定:
以下のページに移動し、新しいGPTsを作成します。
設定リンク:https://chat.openai.com/gpts/editor
基本情報の入力:
名前と説明:GPTsの目的を簡潔に説明する名前と詳細な説明を入力します。
Instructions:
あなたは、ユーザーの要望に応じてGmailのメールドラフトを作成する専門家です。
ビジネスメールからカジュアルなメッセージまで、様々なスタイルのメールを提案できます。ユーザーが提供するキーワードやコンテキストに基づいて、受信者の関心を引き、メッセージの目的を明確に伝えるための内容を構築します。また、文法や表現にも注意を払い、読み手にとって理解しやすい、心地よい文章作成を目指します。よりパーソナライズされたメールを作成するために、必要に応じてユーザーから追加情報を求めることができます。しかし、ユーザーからの明示的な依頼がない限り、自動的にメールの下書きを作成することはありません。
Capabilities:このGPTでは特に設定は不要です。
Actionsの定義:
「Actions」セクションに移動し、「Scheme」を選択して、上記で作成したGASのWebアプリケーションと通信するための設定を記入します。
{
"openapi": "3.0.0",
"info": {
"title": "Gmail Draft Creator API",
"version": "1.0.0",
"description": "API to create drafts in Gmail."
},
"servers": [
{
"url": "https://script.google.com/macros/s/AKfycbzte4Y61ByjKuqwBSlGCuiiOIyCiLyPUMpo3TVH83YT0RtZ0oJkr7ZeKfjs8Am26rbN/exec"
}
],
"paths": {
"/exec": {
"post": {
"summary": "Create a Gmail draft",
"operationId": "createDraft",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": ["createDraft"],
"default": "createDraft",
"description": "Operation to perform."
},
"recipient": {
"type": "string",
"description": "Email address of the recipient. Optional."
},
"subject": {
"type": "string",
"description": "Subject of the email"
},
"body": {
"type": "string",
"description": "Body of the email"
}
},
"required": ["operation", "subject", "body"]
}
}
}
},
"responses": {
"200": {
"description": "Draft created successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"message": {
"type": "string"
},
"draftId": {
"type": "string",
"description": "ID of the created draft"
}
}
}
}
}
}
}
}
}
}
}
スクリプトIDの置き換え:Scheme内の10行目のYOUR_SCRIPT_IDを、手順②で得たWebアプリケーションのURL内のスクリプトIDに置き換えます。
コードの解説
GASスクリプト解説
doPost(e) 関数
パラメータ e: HTTP POSTリクエストから受け取るイベントオブジェクト。このオブジェクトには、リクエストの内容が含まれています。
doPost関数は、リクエストボディ(e.postData.contents)からJSON形式のペイロードを解析し、そのペイロードに基づいて異なる操作を行います。
この例では、payload.operationの値に基づいてcreateDraft関数を呼び出します。現時点では、createDraftオペレーションのみがサポートされています。
オペレーションを正常に実行できた場合、関数はJSON形式の成功レスポンスを返します。エラーが発生した場合、エラーメッセージを含むJSONレスポンスを返します。
createDraft(details) 関数
パラメータ details: メールドラフトの作成に必要な情報を含むオブジェクト。recipient(受信者)、subject(件名)、body(本文)を含むことが期待されます。
createDraft関数は、指定された詳細を使用してGmailの下書きを作成します。この下書きは、GmailApp.createDraftメソッドによって作成されます。
下書きが正常に作成された場合、関数は下書きのIDを含む成功レスポンスを返します。エラーが発生した場合は、エラーメッセージを含むレスポンスを返します。
終わりに
GASとGPTsを使ってGmailの下書きを自動作成する方法をご紹介しました。この自動化プロセスを活用すれば、日常のメール作成作業を効率化できます。
この記事を参考にご自身でパーソナライズされたGPTの開発する際の一助になれば、幸いです。
最後までご精読いただき、ありがとうございました。
私のX(Twitter)のアカウント:
https://twitter.com/junichikawaAI
Image Credit: Open AI Inc. and Google LLC
この記事が気に入ったらサポートをしてみませんか?