GmailMessage.getPlainBody活用:Gmail本文解析で顧客データを深掘り!マーケティング自動化

GmailMessage.getPlainBody活用:Gmail本文解析で顧客データを深掘り!マーケティング自動化

Gmailに届くメールの本文を解析し、顧客管理やキャンペーンの効果測定を自動化したいと思ったことはありませんか?
GmailMessage.getPlainBodyを使うことで、Gmailの本文をテキストデータとして取得し、様々なマーケティング施策に活用できます。
この記事では、GmailMessage.getPlainBodyの基本的な使い方から、具体的なマーケティングの業務課題を解決するための実装例、そしてよくある問題とその解決策までを詳しく解説します。

GmailMessage.getPlainBodyとは?

GmailMessage.getPlainBodyは、Google Apps Script(GAS)で使用できるメソッドの一つです。
このメソッドを使うことで、Gmailのメッセージオブジェクトからプレーンテキスト形式の本文を取得できます。
HTML形式のメールの場合、HTMLタグが取り除かれたテキストが取得できます。
取得したテキストは、文字列として扱うことができるため、テキスト解析やデータ抽出に利用できます。

マーケティングにおけるGmailMessage.getPlainBodyの活用

GmailMessage.getPlainBodyは、マーケティングにおいて様々な活用方法があります。
例えば、以下のような業務課題を解決できます。

  • 顧客からの問い合わせ内容を自動で分類し、対応を効率化する
  • キャンペーンへの応募状況をメール本文から自動で集計する
  • 顧客からのフィードバックを分析し、商品改善に役立てる

顧客管理

顧客からのメールに含まれる情報を自動で抽出して顧客管理システムに登録できます。
例えば、メールアドレス、氏名、問い合わせ内容などを抽出できます。

キャンペーン管理

キャンペーンへの応募や参加状況をメール本文から自動で集計できます。
これにより、キャンペーンの効果測定を効率化できます。

顧客分析

顧客からのフィードバックや問い合わせ内容を分析し、顧客のニーズや不満点を把握できます。
これにより、商品改善やサービス向上に役立てることができます。

GmailMessage.getPlainBodyの実装例

ここでは、GmailMessage.getPlainBodyを使った具体的な実装例を紹介します。

例1:特定のラベルが付いたメールから顧客情報を抽出する

function extractCustomerInfo() {
// ラベル名を設定
const labelName = "顧客情報";

// ラベルを取得
const label = GmailApp.getUserLabelByName(labelName);

// ラベルが付いたスレッドを取得
const threads = label.getThreads();

// 顧客情報を格納する配列
const customerInfo = [];

// スレッドをループ
for (let i = 0; i < threads.length; i++) {
const messages = threads[i].getMessages();

// メッセージをループ(最新のメッセージのみ処理)
const message = messages[messages.length - 1];

// 本文を取得
const body = message.getPlainBody();

// 顧客情報を抽出(簡易的な例)
const email = message.getFrom();
const name = body.match(/氏名:(.*)/)?.[1]?.trim() || "";

// 顧客情報を配列に追加
customerInfo.push({ email: email, name: name });
}

// ログに出力
Logger.log(customerInfo);
}

解説:
このコードは、指定したラベル(”顧客情報”)が付いたGmailスレッドから、最新のメッセージの本文を取得し、メールアドレスと氏名を抽出するものです。
正規表現を使って氏名を抽出しています。
取得した顧客情報は、ログに出力されます。
必要に応じて、スプレッドシートに書き出すなどの処理を追加してください。

例2:特定のキーワードを含むメールを抽出する

function findEmailsWithKeyword() {
// 検索キーワードを設定
const keyword = "キャンペーン";

// 検索クエリを作成
const query = `in:inbox ${keyword}`;

// メールを検索
const threads = GmailApp.search(query);

// メールを処理
for (let i = 0; i < threads.length; i++) {
const messages = threads[i].getMessages();
for (let j = 0; j < messages.length; j++) {
const message = messages[j];
const body = message.getPlainBody();

// キーワードが含まれているか確認
if (body.includes(keyword)) {
Logger.log(`件名: ${message.getSubject()}, 送信者: ${message.getFrom()}`);
}
}
}
}

解説:
このコードは、受信トレイから特定のキーワード(”キャンペーン”)を含むメールを検索し、件名と送信者情報をログに出力します。
GmailApp.search()メソッドを使ってメールを検索しています。
メールの件名と送信者情報を取得するだけでなく、必要に応じて、本文から必要な情報を抽出する処理を追加してください。

例3:メール本文から特定のパターンを抽出してスプレッドシートに記録する

function extractDataToSpreadsheet() {
// スプレッドシートID
const spreadsheetId = "YOUR_SPREADSHEET_ID";

// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName("シート1");

// 検索クエリ
const query = "from:example@example.com";
const threads = GmailApp.search(query);

// 抽出するデータのパターン(例:注文番号)
const orderNumberRegex = /注文番号:(\d+)/;

// ヘッダー行を書き込む
sheet.appendRow(["日付", "注文番号", "メールアドレス"]);

for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
const body = message.getPlainBody();
const date = message.getDate();
const email = message.getFrom();

// 注文番号を抽出
const match = body.match(orderNumberRegex);
const orderNumber = match ? match[1] : "";

// データをスプレッドシートに書き込む
sheet.appendRow([date, orderNumber, email]);
}
}
}

解説:
このコードは、特定の送信者からのメールを検索し、メール本文から注文番号を正規表現で抽出し、スプレッドシートに日付、注文番号、メールアドレスを記録します。
YOUR_SPREADSHEET_IDを自身のスプレッドシートIDに置き換えてください。
正規表現は、抽出したいデータのパターンに合わせて変更してください。

よくある問題とトラブルシューティング

  • 文字化けが発生する:
    メールのエンコードが正しく認識されていない可能性があります。
    Utilities.newBlob(message.getRawContent(), message.getContentType(), “email.txt”).getDataAsString(“UTF-8”)などを使用して、エンコードを指定して文字列を取得してみてください。
  • HTMLタグが残ってしまう:
    getPlainBody()は完全にHTMLタグを取り除くわけではありません。
    必要に応じて、正規表現などでHTMLタグを除去する処理を追加してください。
  • メールの取得制限に引っかかる:
    GASには実行時間制限やAPIの呼び出し制限があります。
    大量のメールを処理する場合は、処理を分割したり、Utilities.sleep()などで処理間隔を調整してください。

カスタマイズ方法と応用例

  • 抽出する情報の種類を増やす:
    正規表現を工夫することで、様々な情報をメール本文から抽出できます。
    例えば、住所、電話番号、商品名などを抽出できます。
  • 抽出した情報を他のシステムと連携する:
    抽出した情報を、Google スプレッドシートだけでなく、他のCRMシステムやデータベースと連携できます。
    これにより、より高度な顧客管理や分析が可能になります。
  • 定期的に実行する:
    トリガーを設定することで、定期的にスクリプトを実行できます。
    これにより、メールの自動処理を自動化できます。

まとめ

GmailMessage.getPlainBodyは、Gmailの本文を解析し、マーケティングを自動化するための強力なツールです。
この記事で紹介した実装例やトラブルシューティングを参考に、ぜひGmailMessage.getPlainBodyを活用して、業務効率化や顧客理解の深化に役立ててください。

PR

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。

CodeCampで理想の働き方を実現しよう