メインコンテンツまでスキップ

アクションフロー

アクションフローとは、複数のアクションを連続して実行する機能のことです。
アクションの戻り値を別のアクションに渡すアクションチェイン機能も備えています。

使用場面

アクションフローは、以下の機能から呼び出されます。

  • トリガー発動時
  • アクション即時実行時
  • シナリオ実行時

アクション

以下の種類のアクションが用意されています。フィルターフックを利用して独自のアクションを追加することも可能です。

  • 情報を取得して返すアクション
  • 情報を検索して返すアクション
  • メッセージ送信などの動作を行うアクション
注記

アクションはAI応答のFunction Calling機能で使用するFunctionと共用です。

アクションの戻り値

戻り値をLINEメッセージで送信

チェックをいれると、アクションの戻り値が、Webhookイベントの送信元に応答メッセージとして送信されます。

戻り値の型によって、送信されるメッセージが異なります。

  • 文字列: LINEテキストメッセージとして送信
  • LINE\LINEBot\MessageBuilderのインスタンス: LINEメッセージオブジェクトとして送信
  • その他: ダンプしたものをLINEテキストメッセージとして送信

変数の埋め込み

アクションの引数が文字列の場合、各変数を埋め込んで使用することができます。
使用できる変数は下記が用意されています。

アクションの戻り値

順次実行されていくアクションの戻り値を、それ以降のアクションの引数内のプレースホルダーで使用することができます。
{{ return[アクション番号] }}
アクション番号は、1から始まるアクションの順番です。
対象アクションの戻り値が配列の場合、アクション番号の括弧に続けて「.キー」を追加することで、特定の値だけを取り出せます。
例) アクション-1(アクション番号1)に「現在日時取得」アクションを設定します。
アクション-2(アクション番号2)に「LINEテキストメッセージ取得」を設定します。
アクション-2のparametersのbodyに「現在時刻は{{ return[1].datetime }}です。」と入力します。
これにより、現在時刻がメッセージ内に埋め込まれて送信されます。
ex

Webhookイベントデータ

受信したWebhookイベントに含まれるデータを使用できます。
{{ webhook.イベントオブジェクトのプロパティ }}
例)公式アカウントに送信されたテキストメッセージを使用する場合
{{ webhook.message.text }}

例)ポストバックデータを使用する場合 dataをそのまま使用する場合{{ webhook.postback.data }}で使用できます。
dataがクエリストリングの場合、パースしたものがparamsに入ります。
例)ポストバックでメッセージIDを指定して返信する dataがaction=message&slc_message_id=1354の場合,slc_message_idの値である「1354」を取得するために{{ webhook.postback.params.slc_message_id }}が使用できます。
これを活用することで、action=messageeで発動する共通のトリガーを一つ作成し、アクションに「LINE Connectメッセージ取得」を設定し、アクションチェインで送信したいメッセージIDを注入すれば、一つ一つトリガーを作成する必要がなくなります。
設定例 例)ポストバックでプロフィール項目を設定する dataがaction=profile&key=valueのポストバックを作成し、トリガーでaction=profileで発動するように設定します。
アクションで「LINEユーザープロフィール更新」を選択し、keyに{{ webhook.postback.params.key }},valueに{{ webhook.postback.params.value }}を入力します。
設定例

ユーザーデータ

Webhookイベント送信元ユーザーのデータを使用できます。
{{ user.WPUserオブジェクトのプロパティ }}
例)ユーザーの表示名を使用する場合
WordPressユーザーと連携済みの場合は、WordPressユーザーの表示名が、未連携の場合はLINEユーザーの表示名が取得できます。
{{ user.data.display_name }}
LINEユーザーのプロフィール(プロフィール画像URLなど)は{{ user.profile.プロフィールプロパティ }}で使用できます。
プロフィールプロパティとして使える値はdisplayNamepictureUrllanguagestatusMessageが標準で用意されています。
加えて、プロフィール更新アクションで設定した独自の項目名も使用可能です。

アクションチェイン

アクションの引数がオブジェクトやあらかじめ決められた定数から選択する形式の場合は変数の埋め込みが行えません。
その場合、チェインルールを追加することで、任意のアクションの戻り値をそれ以降のアクションの引数に注入することができます。

注入先引数

注入先引数の指定方法: アクション番号.引数名

  • アクション番号: 1から始まるアクションの順番
  • 引数名: それぞれのアクションで必要とする引数に対応する名前 例)アクション-2のmessageを注入先引数として指定する場合: 2.message
    ({{ }}で囲む必要がないことと、ブラ-ケット記法ではなくドット記法を用いることに注意してください)

データ

注入するデータには文字列を使用したり、上記のような変数の埋め込みが可能です。

オブジェクトをそのまま注入する場合

文字列としてではなく、オブジェクトをそのまま注入する場合は、先頭に$.をつけて指定します。 例)アクション1でLINE Connectメッセージを取得し、アクション2でLINEメッセージ送信するアクションフローを作成します。
この場合、アクション1の戻り値であるLINE メッセージオブジェクトをオブジェクトととしてアクション2に渡す必要があります。
注入先引数は2.messageとし、注入するデータは{{ $.return[1] }}とします。

テンプレートエンジン

プレースホルダーを使用した変数の埋め込みは、テンプレートエンジンTwigを使用して実行されます。
Twigで使用できるタグ、関数、フィルターを使用して、条件分岐やループ処理など複雑な処理を行うことができます。 Twigの詳細については、Twig公式ドキュメントを参照してください。

Twigを使用する条件

  • PHP 8.1以上

Twigを使用しない条件

  • プレースホルダーが一つしか含まれておらず、変数が$.で始まる場合(Twigではオブジェクトを出力できないため、オブジェクトを注入する場合は、Twigではなく、LINE Connect内部で処理が行われます)

ex