Uncountableでは、トリガーを使用してメールの送信やプラットフォーム内の通知を行えるようになりました。これまでは、通知のテンプレートは「フォームの管理」の[+ テンプレートを追加]ボタンで作成していました。
現在は、「テンプレートのリスト」ページ上部の[+ 通知を追加]ボタンを使用して通知テンプレートを作成できます。新しいこの方法では、値のスペックを指定せずにヘッダと本文の両方のフォーマットを指定でき、テンプレート変数も使用できるため、プロセスが簡単になっています。

テンプレート変数
メールの本文をフォーマットする場合、メッセージの変化する部分にテンプレート変数を使用できるようになりました。
テンプレート変数は標準の値のスペックに準拠せず、${ref:variable}のフォーマットを使用します。フォーマット中「variable」は、通知を開始するトリガーで構成した値のスペックに紐づいたプレースホルダです。この場合、エンティティ参照はトリガーの値のスペックに格納されるため、変数内では必要ありません。

テンプレート変数の例
メッセージ本文に処方の名前を含めるには、テンプレートで${ref:recipeName}を使用します。トリガーで「recipeName」という名前の変数を追加します。この変数が値のスペックref:recipe.nameに相当します。
なお、変数(この場合は「recipeName」)は、トリガーに追加された内容と一致する限り、任意の値に設定可能です。


通知の設定
ステップ1:通知テンプレートを作成する
最初に、次の手順で新しい通知テンプレートを作成します。
- 「フォームの管理」ページから「Templates」ページに移動します。
- [+ 通知を追加]ボタンをクリックします。
- 次の項目を入力してテンプレートを構成します。
- テンプレート参照名:テンプレートの参照名を割り当てます(Template Ref Nameなど)
- ヘッダー:メールまたは通知の件名を入力してください
- Body:メッセージ本文をフォーマットします。動的コンテンツには、${ref:variable}の形式のテンプレート変数を使用します(${ref:code}や${ref:code2}など)。

ステップ2:トリガーを作成する
次に、次の方法で通知を送信するトリガーを作成します。
- 関連するエンティティのトリガーセットに移動します。
- 新しいトリガーを追加して次の項目を設定します。
- Name:トリガーの名前を割り当てます。
- When:トリガーをいつ実行するかを指定します(Explicit、Create、Complete Draft)。
- 新しい「Trigger Action」を追加して、「TriggerActionEmail」タイプを選択します。

ステップ3:トリガーを設定する
次の項目を入力してトリガーを設定します。
- テンプレート:参照名を使用して作成したテンプレートを選択します(例:reminder_notice)。
- Recipient Users:値のスペックを使用して受信者を定義します。これは、特定のエンティティフィールドまたはユーザーIDを呼び出すことによって行えます。ユーザーのリストを宛先にするには、Recipient Specsを使用します。詳しくは、以降のセクションを参照してください。
- Skip Current User:作成者にメールを送信しない場合は、このボックスを選択します。
- Send Time:値のスペックを使用して、通知をいつ送信するかをトリガーの「When」フィールドに関連付けて定義します。たとえば、ドラフトを完了としてマークしてからただちにではなく3日後に送信するといったことができます。詳しくは、以降の例を参照してください。
- Subscriptions:サブスクリプションリストを選択すると、そのリストに参加しているすべてのユーザーに通知が送信されます。
- Display Notice:メールに加えて通知をプラットフォーム内通知として表示する場合はこのボックスを選択します。

Recipient Users
ユーザーに個別に送信する
「Recipient Users」フィールドにユーザーIDをjson:____のフォーマットで入力します。たとえば、通知をID「4502」のユーザーに送信する場合は、「json:4502」と入力します。

特定のエンティティフィールドに送信する
「Recipient Users」フィールドにフィールド参照名をref:field.____のフォーマットで入力します。たとえば、承認のため製品管理担当者に通知を送信する場合は、「ref:field.ProductSteward」とします。

Recipient Specs
ユーザーのリストに送信する
ユーザーのリストに送信するには、モーダル下部の[Recipient Specs]ボタンを選択します。user_list:____のフォーマットを使用します。たとえば、すべての配合管理者に通知を送信するには、「user_list:formulaManagers」とします。ここで、「formulaManagers」はそのユーザーグループの参照名です。

ステップ4:テンプレート変数を追加する
テンプレートに変数が含まれる場合は、トリガーアクションで追加および定義します。
- Trigger Actionで、モーダル下部の[Template Variables]ボタンを選択します。
- [Add]をクリックして追加し、メールテンプレートで使用されている全てのテンプレート変数と値のスペックを関連付けます。
この例では、変数「code」と「code2」を通知テンプレートで使用しているため、両方を追加して値のスペックを使用して定義する必要があります。

ステップ5:制約条件を追加する
最後に、次の手順で制約条件を追加します(任意)。
- Trigger Actionで、次の項目を有効にします。
- Action Constraints:トリガーの「When」条件を満たしたときに満たさなければならない制約条件です。Action Constraint条件を満たさない場合、トリガーは実行されません。
- Notification Constraints:トリガーアクションに「Send Time」条件が追加されている場合、これらの条件を満たしたときにこの制約条件がチェックされます。Notification Constraint条件を満たさない場合、トリガーは実行されません。以下の例を参照してください。
- [Add]をクリックして制約条件を追加します。


通知の制約条件の例
これは、承認用ドラフトが完了した後3日後にリマインダーメールの送信をスケジュールした場合の例です。ただし、このリマインダーは、承認がまだ「Review」フェーズの場合にのみ送信したいとします。その条件を満たさない場合、通知は送信されません。
設定:
- トリガーの「When」フィールドを「Complete Draft」に設定します。
- TriggerActionEmailの「Send Time」フィールドで、ドラフトが完了した3日後を、値のスペック
(date_add_workday (datetime) 3))を使用して設定します。 - 「Review」フェーズに「Phase Match」通知制約条件を追加します。

ステップ6:トリガーを定義に追加する
この例では、トリガータイプが「Explicit」に設定されており、ラボリクエストの定義にアクションとして追加されています。これは1つの方法にすぎず、トリガーはニーズに応じてさまざまに設定できます。
- メール通知トリガーセットを、定義の「Triggers」タブの定義に追加します。
- 「Trigger Set」ページで通知を送信するトリガーを選択し、「Advanced」タブにアクセスして次の項目を入力します。
- Reference:トリガーの参照名を追加します(例:emailReminder)。
- In Status:定義がラボリクエストまたは承認の場合、アクションに含めるステージ(Draft、Open、Terminal)を選択します。
- 定義の「Actions」タブに移動して新しいアクションを追加します。次の項目を入力します。
- Label:トリガーアクションボタンに使用するテキストを設定します(例:「メールリマインダー」)
- Trigger Reference:トリガーの参照名を追加します(例: emailReminder)。



設定が完了すると、この定義を使用して作成されたラボリクエストに操作ボタンが表示されます。このボタンをクリックするとアクションがトリガーされ、変数の値が適切に定義されたメールと通知が送信されます。

