概要
はじめに
「Email To Workflow」プラグインを使用すると、ワークフロー間で連携する高度な
ワークフローを構築できます。ワークフローは以前から
メールを送信することができましたが、この新しいプラグインにより、ワークフローから
ワークフローを起動したり、ワークフローから更新したりすることも可能になりました。
最初のユースケースでは、受信メールが
新しいワークフローを開始するように設定できます。これにより、送信者、件名、
メッセージ本文などの情報が引き継がれます。ワークフローはこの情報を受け取り、
組織のニーズに応じて処理を行います。
2つ目のユースケースは少し異なります。既存のワークフローを更新するために、
新しいメールを設定することも可能です。「アクティブなワークフローの照合を有効にする」
機能が有効になっている場合、プラグインは件名(先頭に#記号が付いたもの)から
ワークフローIDを検索します。 見つかった場合、プラグインは
そのワークフロー内の「Incoming Message」という名前のアクティビティ(名前が完全に一致していないと
新しいワークフローが作成されます)を呼び出し、定義された属性が
アクティビティ属性として追加されます。また、その特定のワークフローがすでに
完了している場合は、そのワークフローを再度有効にします。件名にワークフローIDが
見つからない場合は、新しいワークフローが作成されます。
警告
このプラグインを実装するには、DNSに関する知識と
メール設定の基本知識が必要です。
使用方法
Rockが再起動すると、「管理ツール > 一般設定 > 定義済み
タイプ」の下に、「Email To Workflow」という新しい定義済みタイプが
表示されます。この定義済みタイプを使用すると、
ワークフローを起動するためのルールを作成できます。この定義済みタイプの
値設定には、以下のものが含まれます:
| 名前 | 説明 |
| 値 | これは、マッチングの際に考慮すべき宛先です。一般的には、ワークフローの種類ごとに新しい宛先を作成することをお勧めしますが、後述するように、必要に応じて1つの宛先を共有することも可能です。 |
| 説明 | このルールの目的と、このワークフローがどのような動作を行うように設定されているかについての簡単な説明。 |
| 主題の表現 | 件名の値に一致させるために使用する正規表現。たとえば、キーワード「Welcome …」に一致させるには、「welcom.*」(引用符は含めない)という正規表現を使用できます。検索文字列は大文字と小文字を区別しない点に注意してください。このフィールドを空白のままにすると、件名の任意の値に一致することになります。 |
| 身体表現 | 件名に一致するものがなかった場合、メッセージ本文の内容を検索するための正規表現を指定することもできます。 |
| ワークフローの種類 | 起動するワークフローの種類。 |
| ワークフロー名のテンプレート | A Lava formatted string to use as the workflow name. See the listing below of available Lava merge fields.Example:Request From {{ FromPerson.FullName }} ({{ Email.Subject }}) |
| ワークフロー属性 | 指定されたLavaマージテンプレートで設定するワークフロー属性のキー/値リストです。利用可能なオプションについては、定義されたタイプのヘルプテキストをご参照ください。また、以下にもその一覧を記載しています。 |
利用可能なLavaマージフィールド
電子メール [オブジェクト]- 電子メールメッセージの構成要素を表すオブジェクトです。このオブジェクトに関するドキュメントについては、以下をご覧ください。
差出人 [テキスト]- また、このプラグインは「送信元メールアドレス」を用いて照合を行い、そのメールアドレスが割り当てられている最初の人物を検索します(検索順は、家族内の役割(大人→子供)で並べ替え、次に性別(男性→女性)で並べ替えます)。この属性を使用する必要はありませんが、同様の検索作業を省くことができます。
受信日 [テキスト]
受信時刻 [テキスト]
MessageBody [テキストまたはメモ]
電子メールオブジェクトへの参照
- 件名
- 差出人:
- これは、以下のプロパティを持つ MailAddress オブジェクトです:
- 宛先:
- このプロパティは、メッセージを受信したメールアドレスです。通常、これはMailgun/SendGridで、メッセージをWebhookに中継するために設定したメールアドレスとなります。これは、以下のプロパティを持つMailAddressオブジェクトです。
- MessageTo
- これは、前述の「To」プロパティとは少し異なります。このプロパティは、元のメッセージの「To」受信者を表します。たとえば、そのメッセージの宛先が 3 人で、Mailgun/SendGrid のアドレスが CC に指定されていた場合などです。元の受信者リストに誰が含まれていたかを確認したい場合、このプロパティが役立ちます。これは MailAdress オブジェクトのリストです。各オブジェクトには、以下のプロパティがあります:
- 本文(プレーンテキスト)
- BodyPlainTextStripped
- これはメッセージのプレーンテキスト本文であり、署名行や過去のやり取りを削除しようと試みたものです。署名や過去のやり取りの削除処理は可能な限り行われますが、多くの場合、完全に削除できないことがあります。
- BodyHtml
- BodyHtmlStripped
- 署名とこれまでの会話が削除されたHTMLのbody部分。
添付ファイル
このプラグインでは、ワークフローへのメール添付ファイルの追加も
サポートしています。これを行うには、フィールドタイプを「ファイル」、属性キーを
「Attachment1」、「Attachment2」などとしたワークフロー属性(または、
「Active Workflow Matching」の場合はアクティビティ属性)を追加してください。属性は
いくつでも設定可能です。 なお、メール内のほとんどの要素(署名を構成する要素でさえも)は
添付ファイルとみなされる点にご注意ください。添付ファイルを追加する際、
ファイルサイズが最も大きい添付ファイルが最初に追加されます。

ワークフローの設定
ワークフローが開始されたら、あとはあなた次第です。
以下に、ワークフローの設定に関して知っておくべき点をいくつか紹介します。
返信
「メールを送信」
ワークフローアクションを使用して返信を送るかどうかは、あなた次第です。
送信者をワークフローに取り込む
「SQLの実行」アクションを使って、メッセージを送信したメール
アドレスの所有者を照会することも可能ですが、当社ではその手間を省き、
代わりにその処理を代行することで、操作を簡略化しました。{{
FromPerson }} マージフィールドも使いたくなるかもしれませんが、ワークフローのテキスト属性に
その名前だけを格納したいだけなら、それで問題ありません。本格的な Person
属性として設定したい場合は、「属性を開始者に設定」アクションを使用して、
ワークフローの開始者をワークフロー属性に読み込む必要があります。
以下に、このアクションの設定例を示します。

Mailgun の使用方法
「Email To Workflow」プラグインでMailgunを使用できるように設定するには、
以下の手順に従ってください:
- 受信メールに使用する新しいドメインを設定します。
- 必ずDNSで適切なMXレコードを設定してください。Mailgunの画面上の指示に従えば、必要な情報はすべて確認でき、設定完了後には設定内容のテストも行うことができます。
- 次に、Mailgunで新しい「ルート」を作成する必要があります。これは基本的に、メールをRockの受信Webhookに送信(または「ルーティング」)するものです。このルートの設定は以下の通りです:
- 優先度:0
- 式の種類:キャッチオール
- 操作:転送 → http://your.publicaddress.com/webhooks/EmailToWorkflowMailgun.ashx
Mailgunは、メールメッセージ内の添付ファイルや
過去のやり取りを削除する機能をサポートしています。高度な機械
学習アルゴリズムを採用していますが、必ずしもこの情報を
完全に削除できるとは限りません。スカイネットもここまでか……
SendGrid の使用方法
「Email To Workflow」プラグインでSendGridを使用できるように設定するには、
以下の手順に従ってください:
- 受信メールに使用する新しいドメインを設定します。
- 必ずDNSで適切なMXレコードを設定してください。SendGridの画面上の手順には必要な情報がすべて記載されており、設定完了後にテストを行うこともできます。
- 次に、メールをRockのWebhookに転送するための「Inbound Parse」ルールを設定します。このルールの設定は以下の通りです:
- サブドメインとドメイン – これらは受信メールに使用するホスト情報であり、先ほど設定した新しいドメインと一致している必要があります(例:サブドメイン:workflow、ドメイン:mydomain.com)。
- リンク先URL:http://your.publicaddress.com/webhooks/EmailToWorkflowMailgun.ashx
- 「生の完全なMIMEメッセージをPOSTする」を有効にしないでください。
注:SendGridでは、署名や過去のやり取りの削除は一切サポートされていません。
CloudMailin の使用方法
すでにメール送信にMailgunやSendGridを利用しているなら、
受信メールのWebhook対応にもこれらを活用するのが
自然な流れでしょう。ただし、これらのサービスをまだ利用していない場合は、
CloudMailinを候補の一つとして検討してみてはいかがでしょうか。 このサービスの優れた点は、
メールアカウントが自動的に用意されるため、DNSのMXレコードを
すべて設定する手間が省けることです。現在のメールシステムから
提供されたアドレスへ転送設定を行うだけで、あっという間に完了です!また、
月額200通まで利用できる無料プランもあり(1通あたりの最大サイズも100Kです)。
サービスの設定は、以下の簡単な手順に従ってください:
- URLを http://your.publicaddress.com/webhooks/EmailToWorkflowCloudMailin.ashx に設定してください
- POST 形式を「Multipart(推奨)」に設定してください。
- さあ、これで完成です!
メールアドレスの活用戦略
メールを処理するには、
新しいメールドメイン(@workflows.mydomain.com のようなもの)を設定する必要があります。その後、
このドメインの MX レコードを、ご利用のメールサービス(Mailgun または
SendGrid)の受信 Webhook に向けるように設定します。
このアドレスを一般に公開する場合は、いつでも
ご自身のパブリックドメイン上に新しいメールアドレスを設定し、そのアドレス宛てのメールをこの
新しいドメインに転送するようにすることができます。
it@mydomain.com→it@workflows.mydomain.com