Suite | Team、Growth、Professional、EnterpriseまたはEnterprise Plus |
この記事では、このステップをメッセージング用AIエージェントに含めて設定する手順について説明します。
「APIコールを実行」ステップとその設定ルールの概要については、「AIエージェントのステップタイプについて:APIコールを実行」を参照してください。
この記事では、次のトピックについて説明します。
「APIコールを実行」ステップをAIエージェントに追加する
「APIコールを実行」ステップをAIエージェントに追加するには、いくつかの個別のタスクを行う必要があります。
「APIコールを実行」ステップを追加するには
- 管理センターで、サイドバーの「
AI」をクリックし、「AIエージェント」>「AIエージェント」を選択します。
- 「メッセージング用のAIエージェントの管理」をクリックします。
- 編集するAIエージェントの名前をクリックします。
- 「回答」タブをクリックし、新しい回答を作成するか、既存の回答を開きます。
- ボットビルダーで、ステップを挿入したい場所(分岐の最後、または既存の2つのステップの間)で、「ステップを追加」アイコンをクリックします。
- 「設定」パネルで「APIコールを実行」をクリックします。
- ステップの説明を入力します。
- 名前:チームが識別しやすいコールの名前。
- 説明(オプション):コールが実行するアクションの簡単な説明。
この情報はカスタマーには表示されません。
- 「APIの詳細を追加する」のセクションの手順に進みます。
APIの詳細を追加する
APIの詳細セクションを使用して、HTTPリクエストメソッド、外部リソースの場所、および必要に応じてヘッダーの追加など、実行するHTTPコールを設定します。以下の手順は、前のセクションの手順の続きです。
APIの詳細を追加するには
- 「設定」パネルで、「APIの詳細」をクリックします。
- 「リクエスト方法」を以下から選択します。
- GET:APIサービスから外部リソースを取得します。これは、最もよく使用される方法です。
- POST:外部システムでリソースを作成するためのデータを送信します。リソースがすでに存在する場合は、送信されたデータによってリソースが変更されます。
- PUT:リソースを更新するためのデータを送信します。
- PATCH:外部サイトのリソースを更新するためのデータを送信します。リソースの部分的な変更を適用するために使用されます。
- DELETE:外部サイトのリソースを削除します。
-
エンドポイントURLを入力します。
エンドポイントURLは、接続先の外部リソースの場所です。エンドポイントURLは、
https://
プロトコルをサポートしています。URLのパスやクエリ文字列の値に変数を含めることができます。詳細については、「APIコールで変数を渡す」を参照してください。 - オプションで、APIコールを認証するためのコネクションを選択します。
メモ:コネクションを「APIコールを実行」ステップで使用する前に、コネクションを作成する必要があります。
- 必要であれば、オプションのヘッダーのキーと値を入力します。重要:認証にヘッダーを使用しないでください。今後はAPIコネクションを使用してください。
認証関連のヘッダー(
authorization
やx-api-key
など)を含む「APIコールを実行」ステップは自動的に失敗します。「APIコールを実行」ステップが失敗すると、会話はそのステップの「APIコールに失敗」分岐に移動します。 - 「APIコールを実行」をクリックして、APIコールをテストします。
ステップのURLやヘッダーに変数が追加されている場合、外部サービスにオプションのテストデータを入れて、APIコールが期待通りに動作しているかどうかを確認することができます。設定されたエンドポイントURLに対してHTTPリクエストが行われることに注意してください。
APIコールで変数を渡す
APIコールのエンドポイントURLを入力する際に、URLのパスまたはクエリの文字列値に変数を含めることができます。これにより、会話から外部システムにデータを渡すことができます。
たとえば、メッセージング用AIエージェントは、「詳細を質問」ステップを使用して、注文番号を入力するようカスタマーに求めることができます。その後、AIエージェントは「APIコールを実行」ステップを使用して、オンラインストアからその注文の出荷ステータスを取得することができます。
エンドポイントURLのドメインまたはサブドメイン内で変数を使用することはできません。次の表に、有効なエンドポイントURLの値と無効なエンドポイントURLの値の例を示します。
有効なエンドポイントURLの値 | 無効なエンドポイントURLの値 |
---|---|
https://myshopify.com/admin/api/orders/order_number.json Shopifyから注文IDを指定して注文を取得する。 ![]() |
ドメイン/サブドメインに変数を追加することはできない |
Googleのplace APIからキーワード検索で場所を取得する |
クエリ文字列のキーに変数を追加することはできない |
変数が無効または空である場合、AIエージェントは会話中にその変数をスキップします。
APIレスポンスの変数を保存する
APIコールの詳細を設定し、テストした後、APIコールのJSONレスポンスの値を変数として保存することができます。「APIコールを実行」ステップでは、最大12つの変数を保存できます。変数の値の最初の280文字のみが保存されます。
レスポンスデータから変数を作成するには
- 「設定」パネルで「APIコールを実行」をクリックします。
- アコーディオンを展開し、外部システムから変数に変換するデータを見付けます。
ヒント:「レスポンス本体」タブに切り替えると、外部システムから返された未加工応答が表示されます。
- 「保存」をクリックします。
- 新しい変数に名前を付けます。
変数名に使用できる文字は、小文字、数字、アンダースコアのみです。
APIコールで配列変数を渡す
{
"info": {
"count": 50,
"pages": 2,
"next": "https://mycompany.com/api/orders?page=2",
"prev": null
},
"results": [
{
"id": 1052,
"name": "Alexander Cummings",
“address”: “123 MyStreet”,
"Item": "belt",
"price": "15.00",
"image": "https://mycompany.com/api/orders/avatar/1.jpeg",
…
id
、name
、address
、item
、price
、image
がすべて表示されます。このデータは通常カルーセルに渡されますが、カルーセルはデータを最大10個までしか表示できません。
lastname
とfirstname
は別々の配列変数として保存できます。
"name":
{
"lastname": "Cummings”,
"firstname": “Alexander"
},
配列や配列の値を管理センターのカルーセル設定内で編集することはできません。データを変更する必要がある場合は、管理センターで配列を削除し、新しい配列を作成する必要があります。
{{customer.order}}
の値が空であるとします。カード1の場合、カードには「Order number」というタイトルの一部がレンダリングされます。カード2の場合、結果のタイトルは空なので、カード2はレンダリングされません。
Card 1
Title: Order number {{customer.order}}
Description: Here's your order {{product.description}}
Card 2
Title: {{customer.order}}
Description: Here's your order {{product.description}}
例
{
"info": {
"count": 5,
"pages": 1
},
"results": [
{
"createdAt": "July 10, 2023",
"name": "Connie Stokes",
"Shippingaddress": "123 Street, City, State",
"order": {
"Status": "Ordered",
"Image": "https://images.pexels.com/photos/1484808/pexels-photo-1484808.jpeg"
},
"Quantity": 1,
"Price": 45,
"Item": "Shirt",
"id": "1"
},
…
この例を使って、「APIコールを実行」ステップを使って配列変数を作成し、動的カルーセルを使用してエンドユーザーに結果を表示します。
配列を作成するには
- 「設定」パネルで「APIコールを実行」をクリックします。
- 名前に「orders」と入力します。
- 「設定」パネルで、「APIの詳細」をクリックします。
- 「リクエスト方法」ドロップダウンをクリックし、「GET」を選択します。
- エンドポイントURLのURLを入力します。
- 「認証」で、認証方法を選択します。
詳細については、「外部サービスと統合するためのコネクションの作成」を参照してください。
- 「APIコールを実行」をクリックします。
- resultsの横にある「保存」をクリックします。
- 「値」ドロップダウンから、「Order」、「Image」の順に選択します。
デフォルトの変数名(image)を使用します。
- 「項目を追加」をクリックし、上記の手順を繰り返して、「Order Status」と「Item」の項目を作成します。
最大12個の項目(キーと値のペア)を追加できます。
- 「保存」をクリックします。
- ボットビルダーの「APIコールに成功」で「ステップを追加」をクリックし、「カルーセルを追加」を選択します。
- 「設定」パネルで、「動的メッセージに変換」をクリックします。
- 「配列」ドロップダウンで、「results」をクリックします。これは、上記で作成した配列です。
- タイトルでは、プラス記号(+)をクリックしresults.itemを選択します。
タイトルと説明には最大128文字まで入力できます。
- 「ボタンのリンク」で、プラス記号(+)をクリックし、results.imageを選択します。
- 「ボタンのテキスト」で、プラス記号(+)をクリックし、results.statusを選択します。
- 「画像のリンク」で、プラス記号(+)をクリックし、results.imageを選択します。
- 「完了」をクリックします。
動的カルーセルの例を以下に示します。
ステップの分岐について
「APIコールを実行」ステップは、分岐ステップです。このステップを追加すると、APIリクエストが正常に実行されたかどうかによって、AIエージェントの応答が分岐します。
- APIが応答コード400または500を返した。
- 保存された変数のいずれかが見つからないか、
null
値である。
それ以外の場合、AIエージェントは成功の分岐をたどります。
69件のコメント
Alex Duffey
We need the character limit to be lifted. 280 is very small. Please look at opening this in the future. We are trying to a return an accessory list of products for one of our products, but the 280 limit stops us from providing that full list.
We tried breaking it up into multiple variables, but the the system requires us to save each one for each new product, which then runs into the 50 mac variable limit.
Please either raise the character limit to at least 1000 or raise the variable limit to at least 200.
0
Jeffrey Porter
Is it possible to include the originating URL for the page on which the chat bot was accessed in an API call? Our use case is that we are installing the chat bot on a video player and each video has a distinct URL. I created a chat bot flow that creates a Zendesk ticket. We'd like to be able to include the URL for the page in the ticket so we know where to go look for a problem. Right now we'd have to ask the user for something and we're guaranteed to get vague answers.
0
Aktie Projeto
Como faço para apagar variáveis que coloquei para teste e agora estão ocupando espaço no meu bot?
0
Yiannis Lamprou
I am trying to get data from hubspot via Make API call.
I am using POST method and i get all fields i want and can turn them to variable.
However the fields ( variables) are coming as numbers. (e.g
"hs_pipeline_stage":"67655766",
)How can i say to ZD to display text according to the variable coming in?
Is there a way to create an array or so besides carousel?
0
이지훈
I have a similar question to 6336142945306
For example, I want to use users.json to allow end users to retrieve their information using an API.
If a user has a "custom_role_id" value, I can create a flow by saving that value as a variable.
However, if the flow is executed for a user who does not have a "custom_role_id" value, an API error is returned.
In conclusion, even null values should be saved as variables, and when the variable is referenced in the flow, a null value should be returned instead of an error.
Is this possible?
0
Nir Tzezana
Hi,
I have some data I want to add to the API request body, this is data that I already have when the chat window opened (no need to gather it from the user), how can I do that?
0
Fatima Sbeih
Has anyone managed to set this up with Stripe?
0
דורין אברבך
Hey, https://support.zendesk.com/hc/en-us/articles/4572971586586/comments/4614301298458 is there any updates?
about getting information from the user in order to use their input as parameters in API request
0
Javier DM
Este caso que comentas, está justamente mencionado al pie de este artículo, donde pone:
He visto este tipo de situaciones, cuando se quiere utilizar un
null
value como expresión boolean. Por eso la llamada puede ser exitosa (respuesta 200), pero el valor no corresponde a ninguna de las varlables que se han guardado para el flujo, por lo que el paso API fallará.Un ejemplo:
En este caso, cuando el valor sea
null
el paso API va a fallar, por mas que la llamada sea exitosa. Ya que la variable aquí guardada esorganization_id
ynull
no es un valor exista para ese atributo.Espero esta explicación te sea de utilidad. Si precisaras revisar tu caso en mas profundidad, te sugiero por favor dirigirte a support.zendesk.com/hc e iniciar una conversación con el bot para ponerte en contacto con nuestro equipo de soporte.
Saludos y que tengas buena semana!
0
María del Mar Beiras Neira
Buenas, he configurado la respuesta de Hacer una llamada a una API al revisar los Logs, veo que la respuesta fue “SUCCEEDED”, sin embargo entra por la rama de error de llamada API, entonces realmente no se que hacer para este caso, ya que no entiendo porque esta entrando por esa rama.
0
サインインしてコメントを残します。