GoogleスプレッドシートでMailchimpのリストを管理できれば、メール配信の効率が大きく向上します。しかし、手動でCSVを書き出してアップロードする作業は手間がかかり、ミスも発生しやすいものです。この記事では、ファイルをダウンロードせずにスプレッドシート上で直接リストを更新できる2つの方法を解説します。連携の仕組みを理解して、日々のメール配信業務をスムーズに進められるようになります。
【要点】スプレッドシートからMailchimpリストを更新する2つの方法
- Google Apps ScriptによるAPI連携: スクリプトでMailchimp APIを呼び出し、任意のタイミングでリストを追加・更新・削除できます。
- 公式アドイン「Mailchimp for Google Sheets」: シート上のデータをボタン一つでMailchimpに同期でき、コード不要で運用したい場合に適しています。
- データ形式の事前確認が必須: メールアドレスやタグの形式が不正だとエラーになるため、バリデーションをかけてから送信します。
ADVERTISEMENT
目次
Mailchimp連携でスプレッドシートからリストを更新するメリット
Mailchimpのリストは通常、管理画面から手動で追加・編集するか、CSVファイルをインポートして更新します。しかし、取引先リストや会員データがスプレッドシートで管理されている場合、わざわざCSVに書き出すのは非効率です。スプレッドシートと直接連携すれば、データの重複登録や手入力ミスを防げます。また、Google Apps Scriptを使えば定期実行も可能で、メール配信の管理をほぼ自動化できます。このような仕組みを導入することで、リスト管理の手間が大幅に削減され、キャンペーンに集中できる時間が増えます。
スプレッドシートでMailchimpリストを更新する2つの方法
方法1: Google Apps Scriptを使用する
独自のロジックで細かく制御したい場合は、Google Apps ScriptからMailchimp APIを直接呼び出す方法が適しています。以下の手順で設定を進めます。
- Mailchimp APIキーを取得する
Mailchimpの管理画面で「アカウント」→「APIキー」から新しいキーを作成します。作成後は安全な場所に保存してください。 - スプレッドシートを開いてスクリプトエディタを起動する
メニューの「拡張機能」→「Apps Script」をクリックします。新しく開いたエディタにコードを記述します。 - サンプルコードを記述する
以下のコードをコピーして貼り付け、APIキーとサーバー(例: us12)を自身のものに書き換えます。function updateMailchimp() { var apiKey = 'YOUR_API_KEY'; var server = 'YOUR_SERVER'; var listId = 'YOUR_LIST_ID'; var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); for (var i = 1; i < data.length; i++) { var email = data[i][0]; var firstName = data[i][1]; var lastName = data[i][2]; var url = 'https://' + server + '.api.mailchimp.com/3.0/lists/' + listId + '/members/' + md5(email); var payload = { email_address: email, status: 'subscribed', merge_fields: {FNAME: firstName, LNAME: lastName} }; var options = { method: 'PUT', headers: {Authorization: 'apikey ' + apiKey}, contentType: 'application/json', payload: JSON.stringify(payload) }; UrlFetchApp.fetch(url, options); } } - スクリプトに必要な関数を追加する
上記コードで使用しているmd5関数を別途定義します。スクリプトエディタに以下の関数も追加してください。function md5(str) { return Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, str) .map(function(b) { return ('0' + (b < 0 ? b + 256 : b).toString(16)).slice(-2); }) .join(''); } - スクリプトを実行する
関数「updateMailchimp」を選択して実行ボタンを押します。初回は権限承認が求められるので、画面の指示に従って許可します。
この方法では、シートの1行目を見出し行とし、A列にメールアドレス、B列に名、C列に姓を想定しています。必要に応じてカラムを調整してください。スクリプトを毎日自動実行したい場合は、トリガー設定で時間駆動のトリガーを追加します。
方法2: Mailchimp公式アドインを使う
コードを書かずにシンプルに連携したい方には、Mailchimpが提供する公式アドイン「Mailchimp for Google Sheets」が便利です。以下の手順で導入できます。
- アドインをインストールする
スプレッドシートのメニュー「拡張機能」→「アドオン」→「アドオンを取得」を開き、「Mailchimp for Google Sheets」を検索してインストールします。 - Mailchimpアカウントと連携する
インストール後、サイドバーにアドインの画面が表示されます。Mailchimpのログイン情報かAPIキーを使って認証します。 - 同期の範囲とアクションを指定する
同期したいデータ範囲を選択し、追加・更新・削除のいずれかを選びます。ボタンをクリックするだけでMailchimpのリストに反映されます。
アドインは直感的な操作が可能で、頻繁に更新が必要ない場合や、非エンジニアの方でも簡単に使えます。ただし、カスタマイズ性は低く、大量データの同期には時間がかかることもあります。
リスト更新時に注意すべきポイントとトラブル対策
データの形式ミスでエラーが発生する場合
Mailchimpに送るデータの形式が不正だと、APIからエラーレスポンスが返ってきます。最も多いのはメールアドレスの書式ミスです。たとえば、半角スペースが含まれていたり、ドメイン部分が間違っていると登録できません。また、merge_fieldsのキー名がMailchimpで設定したフィールド名と一致しない場合もエラーになります。対策として、スクリプト内で正規表現によるバリデーションを入れるか、アドインを使う場合は事前にシートのデータを確認する習慣をつけましょう。
セキュリティ権限のエラーが表示される場合
Apps Scriptを初めて実行する際には、Googleアカウントの権限承認画面が表示されます。承認を拒否したり、途中でキャンセルするとスクリプトは動きません。また、Mailchimp APIキーの権限が不足している場合もエラーになります。APIキーは読み取り専用ではなく、書き込み権限(「フォーマンス」)が付与されているか確認してください。アドインの場合も同様に、Mailchimpアカウントの連携が正しく行われているか、サイドバーのステータス表示をチェックしてください。
ADVERTISEMENT
各方法の比較表
| 項目 | Google Apps Script | 公式アドイン |
|---|---|---|
| 設定の難易度 | 中級(コード知識不要) | 初心者でも簡単 |
| カスタマイズ性 | 高い(任意のロジック記述可) | 低い(基本操作のみ) |
| 自動実行 | トリガーで定期実行可 | 手動のみ |
| 大量データの処理 | 高速(バッチ処理可能) | やや遅い |
| 料金 | 無料(API利用はMailchimpプランに依存) | 無料 |
どちらの方法を選ぶかは、更新頻度やカスタマイズの必要性で判断します。まずはアドインで試し、要件が複雑になってきたらApps Scriptに移行するのも良いでしょう。
まとめ
スプレッドシートからMailchimpリストを直接更新できる2つの方法を紹介しました。Apps Scriptを使えばAPI経由で柔軟な操作が可能になり、アドインを使えばコードなしで手軽に同期できます。どちらもCSVファイルを経由しないため、ミスが減り作業時間が短縮されます。次は実際にスプレッドシートを開き、自社のリストを使って同期テストを行ってみてください。また、IMPORTRANGE関数を併用すれば複数シートのデータを集約し、一元管理することも可能です。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
