0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WorkatoAdvent Calendar 2022

Day 17

Workato:1つのアクティブレシピで対話型ボット(Workbot)を動かす

Last updated at Posted at 2022-12-19

はじめに

Workatoを利用して対話型のSlack Botを構築する場合、通常は3つのアクティブレシピ(課金対象レシピ)必要となります。

image.png

image.png

しかし、Recipe functionsを利用することで、1つのアクティブレシピで対話型のSlack Botを実現することが出来ます。

image.png

手順

※過去にまとめたメモからの書き下ろしであるため、一部Callable Recipeに関する内容となっている場合があります。Callable RecipeはRecipe functionsへ読み替えてご対応ください。

1.アクティブレシピの用意

以下のように、Slackコマンドをトリガーとするレシピを作成します。
image.png

ポイント

1)ボットの一連の処理で利用するパラメータを全て定義する

image.png

2)各パラメータの条件にOptionalは「Yes」、Prompt users for this input?は「No」を必ず含める

image.png

3)ボットの処理条件を定義する

3)ボットの処理条件を定義する

4)呼び出し先となるRecipe functionsに対して、条件に応じたトリガーおよびアクションの値を渡す

※Recipe functions側にはInput Schemaをあらかじめ定義しておく

image.png

呼び出し先のRecipe functionsで条件ごとに異なる処理をさせたい場合は、条件フラグとなるパラメータをCallable Recipeで定義し、本レシピで値をセットします。

image.png

ボットからチャンネル(あるいはWorkbotアプリ)に対してメッセージを送信する必要がある場合は、Callable Recipeにチャンネルをセットするためのパラメータが必要です。

Workbotアプリにメッセージを送信する場合は、トリガーの「Channel/DM」をここにセットします。

image.png

ダイアログを利用する場合は、TriggerIDとCallback IDをCallable Recipeに渡す必要があります。また、Recipe functionsにもこれらのパラメータを定義しておく必要があります。

image.png

2.Recipe functionsの作成

以下のようなRecipe functionsを作成します。

image.png

ポイント

1)レシピ内の処理で必要となるパラメータを全て定義しておく

image.png

なお、各パラメータはmodeやchannelのような条件にかかわらず共通で参照されるものを除き、Optionalは「Yes」とします。
image.png

2)1つのRecipe functionsで条件別に処理を分岐させたい場合は次のように対応する

modeの値は、上位のレシピ(アクティブレシピ)で用意しておく
image.png

3)メッセージ送信は、「Post message」を使用する

Recipe functionsではPost command reply は使用できないため、Post messageで対応します。
image.png

なお、Post messageではチャンネルを指定する必要があります。
image.png

4)Workbotコマンドの送信先は、1で作成したアクティブレシピを指定する

image.png

なお、パラメータに対して値を渡したい場合は、「Command input values」で指定します。
image.png

補足

以上の手順をご覧になった方の中には、再帰的に自分自身を呼び出せば良いのでは?と思われた方もいるかもしれませんが、Workatoでは再帰的に自分自身を呼び出すことはできません。(再帰的に自分自身を呼び出そうとすると、エラーが発生します)

しかし、Recipe functionsを介して自分自身を呼び出すことは可能なため(Recipe functionsを間に挟むことで再帰的に自分自身を呼び出すことが可能になるため)、本ページではRecipe functionsを利用した手順を紹介しました。

Workbotを活用しようとすると、レシピの消費数が多くなりがちですが、この方法を用いることでレシピを大幅に節約することができます。レシピの消費数に悩まれている方は是非この方法をお試しください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?