SendGrid は Twilio Inc. が提供する、クラウド型メール配信サービスです。メールマガジンの配信や API 経由でのメール送信などが実現できます。
Questetra の Advanced Edition では、SendGrid と API により連携するビルトイン自動工程、[Twilio SendGrid: 宛先追加/更新][Twilio SendGrid: 宛先追加/更新(カスタムフィールド)][Twilio SendGrid: メール一斉送信]が標準で提供されています(2023-10 現在)。
[Twilio SendGrid: メール一斉送信]は、SendGrid に登録済みの の宛先リストなどの情報を使ったメール送信を行うよう指示します。
本記事では SendGrid と Questetra との連携において、[Twilio SendGrid: メール一斉送信]によるメール送信を行う設定について説明します。
- Questetra の自動工程が対象としているサービスは、SendGrid の日本における代理店(sendgrid.kke.co.jp)によって提供されているものではなく、 Twilio Inc.(sendgrid.com)によって提供されているサービスが対象です。
- 本記事では、すでに SendGrid を利用してメール配信業務を行っている(すなわち、SendGrid 環境の構築が完了している)組織にて、Questetra BPM Suite を連携させるという視点で説明を進めます。
1. SendGrid の項目と ID
SendGrid の操作画面(Dashboard)は、日本語に対応しておらず英語で表示されます。ここでは Questetra での設定に必要となる項目の簡単な説明と、項目ごとの ID の取得方法を説明します。

List
サイドメニュー Marketing > Contacts
メールの宛先(Contact:メールアドレスごとに登録されたメールの受信者)のグルーピング単位となります。[All Contacts](すべての宛先)がデフォルトとしてあります。任意の[List]を追加し個々の[Contact]を紐づけることにより、独自の送信リストが作成されます。
個別の[List]詳細ページの URL に ID が含まれています。
mc.sendgrid.com/contacts/lists/{リスト ID}

Segment
サイドメニュー Marketing > Contacts
[All Contacts]や個別の List に含まれる[Contact]が、条件によって絞り込まれた送信リストです。絞り込み条件は、個々の[Contact]に付与されているメタデータが利用されます。メタデータには[Reserved Fields](標準の項目)と[Custom Fields](任意に追加できる項目)があります。
個別の[Segment]詳細ページの URL に ID が含まれています。
mc.sendgrid.com/contacts/segments/{セグメント ID}

Sender
サイドメニュー Marketing > Senders
送信元の情報が From アドレス、 Reply To アドレスと所在地住所とともに[Sender](送信者)として登録されています。例えば「複数のブランドを展開している企業」であれば、ブランドごとに[Sender]が登録されている場合があります。
個別の[Sender]の編集画面を開くとその URL に ID が含まれています。
app.sendgrid.com/settings/sender_auth/senders/{送信者 ID}/edit

Design
サイドメニュー Design Library
SendGrid に登録されている HTML メールのテンプレートは[Design]と呼ばれます。[Design]には[Contact]に付与されているメタデータが差し込まれる Handlebars タグが記述されている場合もあります。
個別の[Design]の Preview 画面を開くとその URL に ID が含まれています。
mc.sendgrid.com/design-library/your-designs/{デザイン ID}/preview
Handlebars とは主に JavaScriptで使用されるテンプレートエンジンです。Handlebars が記述されている位置には指定されたデータの値が挿入されます。例えば、送信される個々のメールに、「○○様」のように受信者の氏名を表示させたりできます。
SendGrid ドキュメント:How to insert a recipient’s First Name in your emails

Unsubscribe Groups
サイドメニュー Suppressions > Unsubscribe Groups
SendGrid から送信されるメールには、受信者がメール配信を望まない場合の配信停止用リンクの記載が必須とされています。受信者が配信停止リンクをクリックすると、指定されている[Unsubscribe Group](配信停止グループ)に追加され、以降のメールは送信されなくなります。配信停止グループが複数登録されている場合、1つの配信停止グループに登録されている[Contact]であっても、他の(登録されていない)配信停止グループが指定されたメールは送信されます。
ID は[Unsubscribe Groups]の一覧の Group ID の欄に数字として表示されています。

2. [Twilio SendGrid: メール一斉送信]の設定
[Twilio SendGrid: メール一斉送信]は、ワークフローのトークンが到達した際に自動工程に指定された SendGrid の情報(ID など)に基づいて HTTP リクエストを構成し、SendGrid のAPI に送信します。SendGrid は、受信したリクエストに基づいてメールを送信し、付与された送信 IDを返します。
自動工程の設定画面は、目的別のタブに分かれています。多くの設定項目では「固定値」「文字型データ項目」「選択型データ項目」のいずれかを指定できます。「固定値」で設定すれば、ワークフローアプリ固有の設定となります。文字型/選択型で設定すると、プロセスごとに異なる設定値を指定できます。複数指定できる項目は文字型複数行か選択型チェックボックスで指定します。文字型での複数指定は1行1つで入力します。
[API キーと送信設定]
[C1: API キーをトークンとして設定した認証設定 *]
この工程で利用する HTTP 認証設定をリストから選択します。適切な認証設定が登録されていない場合、新しい HTTP 認証設定を[追加]し、SendGrid にて発行された API key を[トークン]に登録します。

SendGrid ドキュメント:Creating an API key
[C2: 送信者 ID *]
[Sender]から取得した ID を[固定値]の入力欄に登録します。(複数の[Sender]が登録されている場合は、[Sender]ごとに別アプリ(別工程)として作成することをお勧めします。)
[C3: 送信日時]
[日時型]データ項目を選択指定します。指定がない場合は即座に送信されます。指定された[日時型]の値が過去の日時や空の場合、自動工程が実行時エラーとなります。

[送信先]
[C4-A: メールを送信する宛先リストの ID]
[List]から取得した ID を指定します。SendGrid に複数の[List] が登録されていてプロセスごとに[List] を指定する場合、[選択型(チェックボックス)]を設定(選択肢 ID:List ID、表示ラベル:リスト名など)すると、処理担当者が入力する際の操作が簡単になります。
[C4-B: メールを送信する宛先セグメントの ID]
[Segment]から取得した ID を指定します。複数の[Segment]が登録されていてプロセスごとに[Segment]を指定する場合、[選択型(チェックボックス)]を設定すると、処理担当者が入力する際の操作が簡単になります。

上図のように「男性」と「40歳以上」のセグメントを指定すると「すべての男性」と「すべての40歳以上」の宛先に送信されます。「40歳以上の男性」に送信したい場合は SendGrid 側で「40歳以上の男性セグメント」を作成します。
[C5: 配信停止グループ ID *]
[Unsubscribe Group]から取得した ID を[固定値]の入力欄に登録します。複数の[Unsubscribe Group]が登録されている場合、[Sender]も対応するように複数登録されていると考えられます。対応する[Sender]との組み合わせに注意してください。

[メール本文]
[C6-A: デザイン ID]
[Design]から取得した ID を指定します。複数の[Design]が登録されていてプロセスごとに[Design]を指定する場合、[選択型(ラジオボタン)]を設定すると、処理担当者が入力する際の操作が簡単になります。
[C6-B: デザインを使用せず、件名と本文を直接指定する]
[Design]のテンプレートを使用せず、Questetra で HTML を準備する場合[オン]にします。[オン]にすると下記の[C6-B1~3]の設定項目が表示されます。なお、[オン]にした場合は、[C6-A: デザイン ID]の設定を「タイプ:固定値/入力欄:空白」として、指定をなくします。デザインID が指定されていると自動工程が実行時エラーとなります。
[C6-B1: 件名 *#{EL}]
送信されるメールの「件名」となる文字列を指定します。
[C6-B2: HTML メールの本文 *#{EL}]
メール本文となる HTMLを登録します。EL式を記述しておくと、Questetra のワークフローのデータを挿入できます。SendGrid の Handlebars タグを記述すれば、SendGrid に登録されているデータが挿入されたメールが送信されます。
参考:ワークフローの途中でメールを自動送信しよう(HTML メール編)
[C6-B3: プレーンテキストメールの本文]
送信メールが、 HTML メールに対応していないメールサービスで受信された時に表示されるメール本文を登録します。指定がない場合、HTML メールの本文から自動生成されます。

[追加設定]
[C7: メール送信ログ検索用カテゴリ]
[カテゴリ]は SendGrid での送信メール管理用のタグとなる文字列です。入力文字には半角英数(ASCII)のみの制限があり、それ以外が指定されると自動工程が実行時エラーとなります。また、「指定なし」でも、SendGrid のデザインに設定されているカテゴリは適用されず空となります。
[C8: メール送信 ID を保存するデータ項目]
SendGrid で送信メールに付与された ID が文字型データ項目に保存されます。
[C9: メール送信ステータス確認ページの URL を保存するデータ項目]
SendGrid の送信メール詳細ページの URL が保存されます。プロセス詳細ページから SendGrid のメール詳細ページを開けます。(要ログイン)

3. [Twilio SendGrid: メール一斉送信]によるメール送信
自動工程が実行されると、 SendGrid は設定内容に基づいてメール送信を行います。SendGrid によって行われた送信は[Single Send]として SendGrid に記録されます。Questetra からのリクエストによって行われた[Single Send] には、「Questetra-{アプリ ID}-{プロセス ID}」という名前と[Single Send ID]が付与されます。
[Single Send]の個別ページでは、「送信メールの件名」「送信対象となったList/Segment」といった送信設定に加えて、「配信されたメールの総数」「開封されたメール数」「メール内のリンクがクリックされた数」といった統計が表示されます。

