TelegramでパーソナルアシスタントGenieを構築
このユースケースでは、Telegramアカウントを専用スキルで設定されたGenieに接続し、Genieをパーソナルアシスタントにします。 Genieは、受信したTelegramメッセージをインテリジェントに評価し、会議、予定、またはリマインダーのGoogle Calendarイベントをユーザーに代わって作成することで、スケジュール設定ワークフローを自動化します。 これにより、予定を記録するためにアプリ間を手動で切り替える必要がなくなります。
このGenieは何をしますか
このGenieを使用すると、TelegramをWorkatoレシピとGenieに接続して、受信メッセージをインテリジェントに処理できます。 カスタムスキルを使用して、メッセージ内のカレンダーイベントを検出し、Google Calendarイベントを自動的に作成する方法をGenieに教えます。
Telegramパーソナルアシスタントボットを構築
メッセージをインテリジェントに処理し、ユーザーに代わってGoogle Calendarイベントを作成するTelegramのパーソナルアシスタントボットを作成するには、次の手順を実行します:
ユースケースは例示のみを目的としています
ユースケースは例として使用することを目的としています。 トリガー、アクション、コネクション権限などのGenieの変更は、特定の設定に合わせて調整が必要になる場合があります。
Workatoにサインインします。
Telegramボットを設定します。
Telegramボットを設定
この手順では、新しいTelegramボットを作成し、それをWorkatoに接続するために必要なAPIトークンを取得します。
Telegramアプリにサインインし、@BotFatherアカウントを検索します。
@BotFatherとの会話を開始し、/newbotコマンドを入力します。
新しいTelegramボットを作成
プロンプトが表示されたら、ボットのわかりやすい名前を入力します。 例: Workato PA genie。
プロンプトが表示されたら、botで終わる一意のボットユーザー名を入力します。 例: workato_bot。
確認メッセージで@BotFatherから提供されたシークレットAPIトークンをコピーします。 このトークンを使用して、ボットをWorkatoに接続する必要があります。
Telegramコネクションを作成します。
Telegramコネクションを作成
この手順では、Telegramコミュニティコネクターをインストールし、WorkatoとTelegramボット間のコネクションを作成します。
Workatoアカウントにサインインします。
コミュニティライブラリ>カスタムコネクターに移動します。
Telegramを検索し、アプリとして選択します。
インストールをクリックします。
Telegramコミュニティコネクターをインストール
名前フィールドにコネクションの名前を入力します。
コネクションの保存先ドロップダウンメニューを使用して、コネクションの場所を選択します。
APIトークンフィールドに、@BotFatherから受け取ったAPIトークンを入力します。
接続をクリックします。
Google Calendarコネクションを作成します。
Google Calendarコネクションを作成
この手順では、WorkatoとGoogle Calendarアカウント間のコネクションを作成し、Genieがユーザーに代わってカレンダーイベントを作成できるようにします。
Google Calendarコネクションを設定するには、次のセクションを参照してください:
OAuth 2.0認証
OAuth 2.0を使用してGoogle Calendarコネクションを設定するには、次の手順を実行します:
OAuth 2.0認証手順を表示
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページで、コネクションとしてGoogle Calendarを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
場所ドロップダウンメニューから、コネクションを保存するプロジェクトを選択します。
Authentication typeとしてOAuth 2.0を選択します。
Googleでログインをクリックし、Googleアカウントにログインします。 Workatoで使用する予定のイベントおよびカレンダーを管理するための十分な権限がGoogleアカウントにあることを確認します。
Googleでログインをクリックします。
サービスアカウント認証
サービスアカウント認証手順を表示
Googleサービスアカウントは、Google Cloudプロジェクト(GCP)に関連付けられた専用のGoogleアカウントであり、ユーザーに代わってAPIリクエストを実行できます。
サービスアカウントには次の利点があります:
- 継続的な運用: サービスアカウントにより、個々のユーザー権限が変更された場合でも運用を継続できます。
- 専用の権限: サービスアカウントは、共有先として指定したプロジェクトにのみアクセスできます。
- 専用のAPIクォータ: GCPを通じてサービスアカウントのAPIクォータを管理し、Googleに直接クォータの引き上げをリクエストできます。
サービスアカウントの詳細については、Googleサービスアカウントのドキュメントを参照してください。
サービスアカウント認証は、次のアクションで構成されています:
サービスアカウントコネクションの最小スコープ
サービスアカウントを使用してGoogle Calendarに接続するには、次のスコープが必要です:
https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/calendar.eventshttps://www.googleapis.com/auth/admin.directory.resource.calendarhttps://www.googleapis.com/auth/taskshttps://www.googleapis.com/auth/userinfo.email
サービスアカウントでOwnerロールを使用している場合、または必要なスコープが不足している場合、401 Unauthorized errorが発生することがあります。 Google Cloud ConsoleでサービスアカウントにEditorロールを割り当て、上記の必要なスコープがすべて含まれていることを確認します。 これにより、サービスアカウントが正常に認証され、Google Calendarにアクセスできるようになります。
サポートされているスコープの完全なリストについては、Google Calendar APIスコープのドキュメントを参照してください。
Googleサービスアカウントを設定する
Googleサービスアカウントの設定手順を表示
Googleサービスアカウントを設定するには、次の手順を実行します:
GCPプロジェクトでサービスアカウントを作成します。
IAMと管理>サービスアカウントに移動します。 ダッシュボードのスコープが、サービスアカウントを含むプロジェクトに設定されていることを確認します。
ダッシュボードのスコープを確認します。
使用するサービスアカウントのメールをクリックします。
使用するサービスアカウントのメールをクリックします。
サービスアカウントのメールをコピーし、後でコネクションを設定するために保存します。
アカウントのメールをコピーします。
キータブに移動します。
秘密鍵を生成し、JSON形式でダウンロードします。 キーは1回しかダウンロードできません。
JSONファイルを開き、秘密鍵全体を-----BEGIN PRIVATE KEY-----から-----END PRIVATE KEY-----\nまで(両端を含む)コピーして、後でコネクションを設定するために保存します。
Google Calendar APIを有効化
Google Calendar APIの有効化手順を表示
コネクションの設定を完了するためにWorkatoに戻る前に、Google Calendar APIを有効にする必要があります。
GoogleのAPIライブラリにサインインします。
Google Calendar APIを検索して選択します。
有効にするをクリックしてAPIを有効にします。 
Google Calendar APIを有効にする
Workatoでセットアップを完了
Workato設定手順を表示
サービスアカウントを使用してGoogle Calendarコネクションを設定するには、Workatoで次の手順を実行します:
作成 > コネクションをクリックするか、Cを2回押します。
新規コネクションページで、コネクションとしてGoogle Calendarを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Authentication typeとしてService accountを選択します。
サービスアカウントの秘密鍵を入力します。
権限を借用する予定のアカウントのユーザーのメールアドレスを指定します。
ユーザーの権限借用により、サービスアカウントは指定したユーザーに代わって、そのユーザーのGoogle Calendarのイベントにアクセスして管理できます。 ユーザーの権限を借用すると、データの正確性が確保され、Google Calendarでそのユーザーに設定された権限とアクセス制御が適用されます。 詳細については、Googleのサービスアカウントの権限借用ガイドを参照してください。
設定を完了するには、Googleでログインをクリックします。
Google Calendarサービスアカウントコネクションの設定
受信したTelegramメッセージを処理するレシピを設定します。
受信したTelegramメッセージを処理するレシピを設定
この手順により、Telegramボットに送信されたメッセージがWorkatoに届き、正しく処理されるようになります。
レシピを保存する予定のプロジェクトに移動し、作成>レシピをクリックするか、C+Rを押します。
名前フィールドにレシピの名前を入力し、レシピの保存先ドロップダウンメニューを使用してプロジェクトの場所を選択します。
開始点を選択>アプリを選択をクリックします。
Telegramを検索し、アプリとして選択します。
新規イベントトリガーを選択し、前の手順で作成したTelegramコネクションを使用して接続します。
+ステップを追加をクリックし、Telegramを検索して選択します。
Telegramのメッセージを送信アクションを設定
メッセージを送信アクションを選択します。
Telegramメッセージ>チャットIDStep 1データピルをチャットIDフィールドにマッピングします。
送信するメッセージフィールドにMessage receivedと入力します。
任意です。 テストレシピをクリックし、Telegramボットにメッセージを送信します。 返信を受信した場合、レシピは正しく設定されています。
Genieをレシピに追加します。
Genieをレシピに追加
この手順では、受信したTelegramメッセージをインテリジェントに処理し、Google Calendarでカレンダーイベントを作成するタイミングを決定するGenieを作成します。
Genieを保存する予定のプロジェクトに移動し、作成>Genieをクリックするか、C+Gを押します。
Genieにどのような支援を求めますか?フィールドに、Genieへのリクエストまたは目標を入力します。 例:
You are a personal assistant who responds to users' messages. If the message contains
information about an upcoming event, you can create a calendar event for the user
with the given information.Genieの保存先ドロップダウンメニューを使用して、Genieの場所を選択します。
新しいGenieを作成
ビルドを開始をクリックします。 Genieのビルドページが表示され、入力内容に基づいてジョブ説明が自動生成されます。 これは要件に合わせて編集できます。
レシピエディターに戻り、Telegramのメッセージ送信アクションステップの前にある+ステップを追加をクリックします。
Telegramのメッセージ送信アクションステップの前に+ステップを追加をクリック
アプリ内のアクションを選択し、Workato Genieを検索して、アプリとして選択します。
Genieにタスクを割り当てアクションを選択します。
Genieドロップダウンメニューを使用して、前の手順で作成したGenieを選択します。
タスク説明フィールドに、Genieに受信メッセージを処理し、適切な場合にGoogle Calendarスキルを使用するよう指示する説明を入力します。
タスク説明フィールドの説明の後に、TelegramトリガーのテキストStep 1データピルをマッピングします。
タスク説明フィールドを設定
保存をクリックします。
会話IDを保存するData tableを作成します。
会話IDを保存するData tableを作成
この手順では、TelegramユーザーごとのIDに対してGenieの会話IDを保持するData tableを作成します。 これにより、Genieは同じユーザーからの複数のメッセージにわたってコンテキストを保持できます。
Data tableを保存する予定のプロジェクトに移動し、作成>Data tableをクリックするか、C+Tを押します。
Data table名フィールドにData tableの名前を入力します。
場所ドロップダウンメニューを使用して、Data tableの場所を選択します。
ビルドを開始をクリックします。
Telegramユーザーの送信者IDを保存するために、ラベルtelegram-idの列を追加します。
Genieの会話IDを保存するために、ラベルgenie-conversation-idの2つ目の列を追加します。
Data tableに列を追加
保存をクリックします。
会話IDをレシピに追加します。
会話IDをレシピに追加
この手順では、レシピがData tableを参照して、送信者のTelegram IDに対応する会話IDがData tableに存在するかどうかを確認できるようにするWorkato Data tablesのレコードを検索アクションを追加します。 既存の会話IDは、Genieが参照できる以前の会話があることを示します。
レシピエディターに戻り、Genieにタスクを割り当てアクションステップの前にある+ステップを追加をクリックします。
アプリ内のアクションを選択し、Workato Data Tablesを検索して、アプリとして選択します。
レコードを検索アクションを選択します。
Data tableドロップダウンメニューを使用して、前の手順で作成したData tableを選択します。
フィルターセクションに移動し、フィルターを追加をクリックします。
列名ドロップダウンメニューを使用して、telegram-idを選択します。
オペランドドロップダウンメニューを使用して、次の値に等しいを選択します。
TelegramのIDStep 1データピルを値フィールドにマッピングします。 このデータピルはTelegram>メッセージ>差出人の下にあります。
Telegramを検索するData tableを設定
Genieにタスクを割り当てアクションステップの後にある+ステップを追加をクリックします。
アプリ内のアクションを選択し、Workato Data Tablesを検索して、アプリとして選択します。
レコードをアップサートアクションを選択します。
Data tableドロップダウンメニューを使用して、前の手順で作成したData tableを選択します。
レコードをアップサートアクションを設定
プライマリキードロップダウンメニューを使用して、telegram-idを選択します。
レコードフィールドセクションに移動し、Telegramの差出人IDStep 1データピルをtelegram-idフィールドにマッピングします。
Workato Genieの会話IDStep 3データピルをgenie-conversation-idフィールドにマッピングします。
保存をクリックします。
メッセージをGoogle Calendarイベントに変換するスキルを作成します。
メッセージをGoogle Calendarイベントに変換するスキルを作成
この手順では、Google Calendarイベントに変換する必要があるメッセージをGenieが検出できるようにするカスタムスキルを作成します。
前の手順で作成したGenieのビルドページに移動します。
スキルセクションに移動し、+追加>スキルをクリックします。
新規スキルを選択し、新規スキルを作成をクリックします。
または、プロジェクトページで作成>スキルをクリックするか、C+Sを押してスキルを作成できます。
名前フィールドにスキルの名前を入力します。 例: Create Google Calendar event。
ロケーションドロップダウンメニューを使用して、スキルのロケーションを選択します。
ビルドを開始をクリックします。 レシピエディターが開き、ワークフローを開始トリガーと応答を返すアクションが自動的に選択されます。
ワークフローを開始トリガーを選択します。
このスキルを実行するためにGenieに必要な入力は何ですか?セクションに移動し、フィールドを手動で追加をクリックします。 次のフィールドを追加します:
| ラベル | データ型 |
|---|---|
event_title | 文字列 |
event_date | 日付 |
event_time | 文字列 |
event_description | 文字列 |
このスキルの実行後にGenieへ返す内容は何ですか?セクションに移動し、次のフィールドを追加します:
| ラベル | データ型 |
|---|---|
created_event | ブール値 |
入力と出力を設定
+ステップを追加をクリックし、Google Calendarを検索して、アプリとして選択します。
イベントを作成アクションを選択します。
イベントを作成アクションを設定
+ステップを追加をクリックし、カレンダーイベント作成の結果を処理するためにIF条件を選択します。
Google CalendarのIDStep 2データピルをデータフィールドにマッピングします。
条件ドロップダウンメニューを使用して、存在するを選択します。
はいブランチに移動し、アプリとアクションを選択をクリックします。
Workato Genieを検索し、アプリとして選択します。
アクションとしてGenieに応答を返すを選択します。
結果セクションに移動し、作成済みイベントドロップダウンメニューを使用してはいを選択します。
IF条件を設定
いいえブランチに移動します。 Genieに応答を返すアクションはすでに存在しているはずです。
Genieに応答を返すアクションをクリックして開きます。
IFブロックのはいおよびいいえパスを設定し、適切なcreated_eventブール応答をGenieに返します。
保存をクリックします。
Genieのタスク説明を更新します。
Genieのタスク説明を更新
この手順では、GenieがGoogle Calendarスキルを使用する方法に関する指示を含めるように、Genieのタスク説明を更新します。
レシピエディターでGenieにタスクを割り当てステップをクリックします。
タスク説明フィールドに移動し、次の指示を使用するように説明を更新します:
TELEGRAMデータピルを削除しないでください
前の手順でタスク説明フィールドにマッピングしたTelegramデータピルを削除しないでください。
Do the following based on the user's message and conversation history:
1. Identify if the message contains an event where you need to set up a calendar event.
2. If yes, then call the skill to create the event in Google Calendar.
3. If not, then respond normally.
4. When responding, you do not need to include your classification of whether it was a task.保存をクリックします。
タスク説明を更新
Last updated: