# Deluge -------------------------------------------------------------------------------- title: "はじめに" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.102Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/introduction/" service: "All Services" related: - Catalyst ConvoKraftアクション (/ja/convokraft/help/actions/overview/introduction) - Catalyst ConvoKraftハンドラー (/ja/convokraft/help/handlers/welcome-message-handler) - Catalyst Cloud Scale Webクライアントホスティング (/ja/cloud-scale/help/web-client-hosting/introduction/) -------------------------------------------------------------------------------- # Ecommerce Bot ### はじめに このチュートリアルでは、Catalyst ConvoKraftを使用して、ECサイト向けの効率的なセールスアシスタントとして機能するEコマースボットを構築する方法を説明します。 電子機器や家電製品をWebサイトで販売するオンラインストアを想定します。ConvoKraftボットをWebサイト向けに構築し、ユーザーがサポートチケットを発行したりカスタマーサポートに連絡したりすることなく、シンプルで分かりやすい質問やよくある質問について、いつでも1対1の対話を行えるようにします。 Eコマースボットは、ストアの在庫にある商品リストの表示、注文の発注、注文の詳細確認、配送先住所の変更、注文の配送予定日の変更が可能です。 Eコマースボットは、Webサイトに埋め込んだ後、以下のように表示されます: 動作するEコマースボットにアクセスして機能をテストできます:アプリを試す! Eコマースボットは、以下のConvoKraftの基本コンポーネントを使用します: * **Actions**:Eコマースボットに、オンラインストアの商品リストの表示、注文の発注、注文の詳細確認、配送先住所の変更、配送日の変更などの操作を設定します。 * **Bot Logic**:EコマースボットのボットロジックをDelugeで設定します。Deluge関数が、設定されたアクションのバックエンドロジック全体を処理します。 * **Handlers**:ハンドラー関数でレスポンスを設定し、ボットとの新しい会話を開始する際のユーザーへの挨拶、失敗や例外のシナリオでのユーザーへの通知、およびボットが特定のメッセージを理解できない場合のユーザーへの通知を行います。ボットのコア実行ロジックもハンドラー関数で設定します。詳細については、このセクションで説明します。 ConvoKraftボットは、以下のCatalystコンポーネントも使用します: 1. **Catalyst Cloud Scale**: - **Web Client Hosting**:クライアントアプリケーション(Webサイト)をホスティングするために、Catalyst CloudScaleサービスのこのコンポーネントを使用します。Catalystが提供するフロントエンドのJavascript SDKパッケージを使用して、ボットをWebサイトに埋め込みます。 以下のZohoサービスも設定します: * **Zoho CRM**:オンラインストアの商品と注文データを保存するために、Zoho CRMにカスタムモジュールを作成し、データソースとして使用します。カスタムモジュールの設定について詳しくは、このセクションを参照してください。 このチュートリアルでは、Deluge関数を使用してConvoKraftボットを構築するためのコードと、ECサイト用のシンプルなクライアントコードが提供されます。指示に従って、提供されたコードをコピーして適切な関数に貼り付けるだけで構築できます。ボットに必要なアクションの設定、ビジネスロジックのコーディング、ボットのトレーニングとテスト、そして最後にボットをWebサイトに埋め込む手順を説明します。 -------------------------------------------------------------------------------- title: "前提条件" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.108Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/prerequisites/" service: "All Services" related: - Zoho CRMログイン (https://www.zoho.com/en-in/crm/) - CLIコマンドリファレンス (/ja/cli/v1/cli-command-reference/) - CLIのインストール (/ja/getting-started/installing-catalyst-cli/) - CLIログイン (/ja/cli/v1/login/login-from-cli/) -------------------------------------------------------------------------------- # 前提条件 アプリケーションの構築を開始する前に、以下の前提条件をシステムにインストールしている必要があります: 1. Catalyst CLI:Catalyst CLIには、ローカルマシンからアプリケーションのコンポーネントを初期化、開発、テスト、デプロイするためのツールが含まれています。このチュートリアルでは、Catalyst CLIを使用して作業を行います。 以下の操作を実行する必要があります: 1. Catalyst CLIのインストール:Catalyst CLIはNPMを通じてインストールします。そのため、CLIをインストールする前に、NPMとNode.jsがシステムにインストールされている必要があります。前提条件とインストール手順の詳細については、**Catalyst CLIインストールヘルプページ**を参照してください。 2. Catalyst CLIへのログイン:Catalyst CLIをインストールした後、使用する前にCatalystアカウントでCLIを認証する必要があります。Catalyst CLIからのログイン手順と利用可能なオプションについては、**CLIログインヘルプページ**を参照してください。 2. クライアントコード開発用の任意のIDEツール:クライアントコードの開発には任意のIDEを使用できます。Visual Studio Code、IntelliJ IDEA、Eclipse、Sublime Textなどが一般的な選択肢です。お好みのIDEをダウンロードしてシステムにインストールしてください。 Visual Studio Code IDEをお使いの場合は、Catalyst Tools拡張機能をインストールし、CLIの代わりにIDE自体を使用できます。Catalyst VS Code拡張機能の詳細については、こちらのヘルプセクションを参照してください。 3. Zoho CRMアカウント:Eコマースストアの商品在庫と注文のデータソースとして、任意のエディションのZoho CRMアカウントを設定しておく必要があります。Zoho CRMアカウントをお持ちでない場合は、こちらからサインアップできます。 -------------------------------------------------------------------------------- title: "プロジェクトの作成" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.109Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/create-a-project/" service: "All Services" related: - Catalyst ConvoKraft (/ja/convokraft/) - Catalystプロジェクトの作成 (/ja/getting-started/catalyst-projects/#create-a-catalyst-project) -------------------------------------------------------------------------------- # プロジェクトの作成 まず、CatalystコンソールからCatalystプロジェクトを作成しましょう。 1. Catalystコンソールにログインし、Create new Projectをクリックします。 <br/> 2. 表示されるポップアップウィンドウで、プロジェクト名に「**Ecommerce**」と入力します。 <br/> 3. Createをクリックします。 プロジェクトが作成され、開きます。 <br/> このチュートリアルでは、Catalyst ConvoKraftサービスを使用します。ConvoKraftに移動し、Start Exploringをクリックしてください。 -------------------------------------------------------------------------------- title: "ボットの作成" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.109Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/create-a-bot/" service: "All Services" related: - ボットの作成 (/ja/convokraft/help/bots/create-a-bot/) -------------------------------------------------------------------------------- ### ボットの作成 ConvoKraftでボットを作成しましょう: 1. Catalystコンソールの左ペインにあるConvoKraft serviceアイコンに移動します。 <br /> 2. Create New Botをクリックします。 3. Create New Botポップアップで、ボット名に「EcommerceBot」と入力します。ボットの簡単な説明を入力し、必要に応じてアイコンも設定します。 <br /> 4. Saveをクリックし、続いて表示されるページでボットのビジネスロジックを記述する開発プラットフォームとしてDelugeを選択します。 Delugeの詳細については、このページを参照してください。 -------------------------------------------------------------------------------- title: "アクションの設定" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.110Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/configure-actions/" service: "All Services" related: - アクションの作成 (/ja/convokraft/help/actions/create-an-action/) - ボットの作成 (/ja/convokraft/help/bots/create-a-bot/) -------------------------------------------------------------------------------- # アクションの設定 ボットを作成した後、アクションを作成し、必要に応じてアクションのレスポンスを設定する必要があります。一般的に、アクションのレスポンスは、ビジネスロジックに基づくもの、または操作を伴わない静的な直接レスポンスのいずれかに設定できます。このチュートリアルでは、すべてのアクションのレスポンスをビジネスロジックの実行に基づいて設定します。 Eコマースボットには以下のアクションを作成し、ユーザーがボットと直接対話して簡単に操作を実行できるようにします。 * **Eコマースストアの商品リストを表示する** * **新規注文を行う** * **注文の詳細を確認する** * **配送先住所を変更する** * **注文を後日に変更する** アプリケーションの特定のニーズに基づいてアクションを設定するには、適切なサンプル文とパラメータを定義する必要があります。このセクションでは、Eコマースボットの上記アクションに設定するサンプル文とパラメータについて詳しく説明します。 ConvoKraftボットを作成し、ビジネスロジックを構築するための適切な開発プラットフォームを選択すると、以下のスクリーンショットのようにボットの詳細ページが表示されます。 以下の手順に従って、Eコマースボットのアクションを作成・設定してください: 1. ボットを開いた後、Create Actionをクリックして新しいアクションを追加します。 <br /> 2. Eコマースボットの最初のアクションとして、ストアで利用可能な商品を一覧表示するアクションを作成します。 表示されるポップアップウィンドウで、アクション名に「List the items available in Store」と入力します。レスポンスをBased on a business logicに選択し、Nextをクリックします。 <br /> 3. 該当するサンプル文を設定します。会話形式では、ユーザーはさまざまな方法でこのアクションを呼び出す可能性があります。例えば、「list the items available」や「what are the products available in the store?」などです。このようなサンプル文を設定し、Nextをクリックします。 <br /> 4. このアクションにはパラメータを設定しません。このステップをスキップしてSaveをクリックしてください。 <br /> 5. アクションのサンプル文とパラメータを設定すると、アクションの詳細ページが表示されます。 <br /> ConvoKraftボットのビジネスロジックをDelugeで構築することを選択したため、Execution functionがデフォルトで有効になっています。 Note : この特定のアクションでは、Execution functionのみを使用します。 Edit Functionをクリックすると、ConvoKraft Delugeエディターが自動的に開きます。 6. ビジネスロジックをコーディングするには、以下のコードをエディターにコピー&ペーストし、Save scriptをクリックします。 result = Map(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts?fields=Name,Product_image_url,Price,Inventory_Count,Product_image" type :GET headers:header_data ]; info CRMresponse; cardlist = List(); productNote = Map(); productNote.put("type","note"); productNote.put("content","List of items available are listed as follows "); cardlist.add(productNote); for each record in CRMresponse.getJSON("data") { info record; name = record.getJSON("Name"); price = record.getJSON("Price"); product_id = record.getJSON("id"); image = record.getJSON("Product_image_url"); inventory = record.getJSON("Inventory_Count"); listItem = Map(); listItem.put("type","list"); listItem.put("format","bullet"); listElements = List(); elem1 = {"label":"Name : " + name}; elem2 = {"label":"Total Price : $ " + price}; elem3 = {"label":"Product ID : " + product_id}; elem4 = {"label":"Stock : " + inventory}; listElements.add(elem1); listElements.add(elem2); listElements.add(elem3); listElements.add(elem4); listItem.put("elements",listElements); //info listItem; // 'image'カードの定義 // 'note'カードの定義 productPic = Map(); productPic.put("type","image"); productPic.put("content",record.getJSON("Product_image_url")); cardlist.add(productPic); cardlist.add(listItem); } info cardlist; result.put("card",cardlist); result.put("message","List of Objects in response"); return result; Note : Delugeエディターの詳細については、このページを参照してください。 7. ページの右下にあるTest this actionをクリックして、現在のアクションに行った設定をテストします。 ここでのアクションのテストとは、ボットと対話し、特定のアクションの設定に関連する質問を行うことを意味します。 Note : アクション用に設定したサンプル文がチャットウィンドウに候補として表示されます。リストから選択するか、お好みに応じてConvoKraftボットと独自の会話を開始できます。 例えば、チャットウィンドウに「Can you list the items with their stock」と入力します。ボットはメッセージの意図を理解し、定義されたサンプル文との一致を見つけて、ビジネスロジックを実行してレスポンスを返します。 8. アクションのテスト後、DONEをクリックして次に進みます。 同様に、Eコマースボットの残りのアクションを作成します。上記の手順はすべてのアクションに適用されますが、追加でパラメータの作成やコンテキストハンドラー関数でのロジック設定が必要になる場合があります。 ### 注文の発注 1. 前のステップで説明したように、ボットの詳細ページからビジネスロジックに基づいてレスポンスを返す新しいアクションを作成し、「Place an order」と名付けます。このアクションのサンプル文は以下のように定義できます: * "I want to place an order" * "I would like to place an order of the product id :5804508000000460006 to be delivered on 10-Jul-2023" 文を設定したらNextをクリックします。 <br /> 2. New Paramをクリックし、Stringを選択します。パラメータ名に「productid」と入力し、以下の表を参考にプロンプトメッセージを追加します。各パラメータタイプの属性の詳細については、このページを参照してください。 <br /> このアクションには以下のパラメータを作成します: <table class="content-table"> <thead> <tr> <th>パラメータタイプ</th> <th>名前</th> <th>プロンプトメッセージ</th> <th>バリデーション失敗時のプロンプトメッセージ</th> </tr> </thead> <tbody> <tr> <td>String</td> <td>productid</td> <td>Please enter the Product ID</td> <td>The entered ProductID is invalid. Please check and retry.</td> </tr> <tr> <td>Email</td> <td>cxemail</td> <td>Please enter your Email ID</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>Date</td> <td>cxdate</td> <td>Please enter the date on which you expect the delivery</td> <td>The entered date is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>cxaddr</td> <td>Please enter the address where you want the order to be delivered</td> <td>The entered address is invalid. Please check and retry.</td> </tr> </tbody> </table> 同様に、上記の表に記載されたパラメータタイプとプロンプトメッセージで、残りの3つのパラメータ「cxemail」、「cxdate」、「cxaddr」を作成します。 Note : 日付パラメータの入力モードは、お好みに応じてTextualまたはVisualを選択できます。 3. パラメータをサンプル文内の対応するテキストにマッピングし、ボットが会話中にユーザーから入力を順次取得するよう指示します。 サンプル文のテキストにカーソルを合わせ、対応するパラメータを選択して関連付けます。 ここでは、以下のスクリーンショットに示すように、「cxemail」、「productid」、「cxdate」をサンプル文内の対応する例の値に関連付けます。 4. アクションのサンプル文とパラメータを設定したら、Saveをクリックします。 5. 次に、前のアクションと同様に、Execution functionでビジネスロジックをコーディングします。 以下のコードをExecution functionページにコピー&ペーストし、Save Scriptをクリックします。 result = Map(); info productid; info cxemail; info cxdate; info cxaddr; placeorder = Map(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; //URLのorg IDをご自身のプロジェクトのものに置き換えてください info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); try { //CRMresponse = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/EcomProducts/" + productid // タイプ: GET // connection:"ecommerce" //]; CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts/" + productid type :GET headers:header_data ]; info CRMresponse; if(CRMresponse.isNull() && CRMresponse.getJSON("status") != "error") { stock_count = 0; info "Empty response. So stock count reset"; placeorder.put("Stiock","Empty"); } else { recordid = CRMresponse.getJSON("data").getJSON("id"); stock_count = CRMresponse.getJSON("data").getJSON("Inventory_Count"); imageurl = CRMresponse.getJSON("data").getJSON("Product_image_url"); productname = CRMresponse.getJSON("data").getJSON("Name"); price = CRMresponse.getJSON("data").getJSON("Price"); } } catch (e) { info e.lineNo; // エラーが発生したステートメントの行番号を表示 info e.message; // エラーメッセージを表示 info e; // 行番号とエラーメッセージの両方を表示 } if(stock_count > 0) { stock_count = stock_count - 1; reduceStock = Map(); reduceStock.put("id",recordid); reduceStock.put("Inventory_Count",stock_count); updatedata = list(); updatedata.add(reduceStock); updatedatamap = Map(); updatedatamap.put("data",updatedata); //updateResp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/EcomProducts" // タイプ:PUT // parameters:updatedatamap.toString() // connection:"ecommerce" //]; updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/EcomProducts" type :PUT parameters:updatedatamap.toString() headers:header_data ]; info updateResp; //info zoho.crm.updateRecord("EcomProducts",productid,reduceStock); placeorder.put("Name",productname + " " + cxdate); placeorder.put("Product_Name",productname); placeorder.put("Email",cxemail); placeorder.put("Delivery_Address",cxaddr); placeorder.put("Expected_Delivery_Date",cxdate.toDate("yyyy-mm-dd")); info toDate(cxdate,"yyyy-mm-dd"); info toDate(cxdate,"MM,d,yyyy"); placeorder.put("product_image_url",imageurl); placeorder.put("Price",price); placeorder.put("OrderID",productid + "_" + randomNumber(1111111,9999999)); placeorder.put("Order_Status","Reviewing the Order"); info placeorder; insertdata = list(); insertdata.add(placeorder); insertdatamap = Map(); insertdatamap.put("data",insertdata); //insertResp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v2/Orders" // タイプ:POST // parameters:insertdatamap.toString() // connection:"ecommerce" //]; insertResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :POST parameters:insertdatamap.toString() headers:header_data ]; info insertResp; //info zoho.crm.createRecord("Orders",placeorder); result.put("message","Your order for the product - " + CRMresponse.getJSON("data").getJSON("Name") + " is placed successfully. It will be tried to be delivered on " + cxdate + " to " + cxaddr + " . Our Sales team will reach out to your via email to discuss about COD or prepayment before delivery."); } else if(stock_count == 0) { info "The item is out of stock. Please retry after some days as we restock."; result.put("message","The item is out of stock. Please retry after some days as we restock."); } else { result.put("message","There was some issue during the order. Please contact support team. They shall assist in placing this order for you."); } info stock_count; //zoho.crm.updateRecord("EcomProducts",productid, <KEY-VALUE>) //result.put("message","Function executed successfully"); broadcast.put("cxemail",cxemail); result.put("broadcast",broadcast); return result; Note : 9行目のorg IDをご自身のプロジェクトのものに置き換えてから、スクリプトを保存してください。 6. 前のアクションと同様に、ConvoKraft Delugeエディターからアクションをテストし、DONEをクリックします。 ### 注文詳細の確認 1. 新しいアクションを作成し、ビジネスロジックに基づくレスポンスを設定します。「View Order Details」と名付けます。 2. アクションに以下のサンプル文を追加します: * "Where is my order?" * "I want to view my order details of email id amelia.burrows@zylker.com" * "I want to check my order details" 3. 前のセクションで説明したように、アクションに以下のパラメータを定義します。上記のスクリーンショットに示すようにパラメータをサンプル文に関連付け、Saveをクリックします。 <table class="content-table"> <thead> <tr> <th>パラメータタイプ</th> <th>名前</th> <th>プロンプトメッセージ</th> <th>バリデーション失敗時のプロンプトメッセージ</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>cxemail</td> <td>Please provide the email ID associated with your order</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> </tbody> </table> 4. アクションのサンプル文とパラメータを定義すると、アクションの詳細ページが表示されます。このアクションでは、Execution functionに加えて、Context handler functionも設定します。これは、Execution functionのbroadcast引数にユーザーのメールアドレスを保存し、チャットセッションの以降の会話でユーザーに毎回入力を求めるのではなく、メールアドレスを記憶するようConvoKraftボットに指示するために使用します。 以下のコードをExecution functionページにコピー&ペーストし、Save Scriptをクリックします。 result = Map(); // 指定されたメールIDの特定の注文詳細を検索するためのAPI呼び出し //resp = zoho.crm.searchRecords("Orders","(Email:equals:" + cxemail + ")"); // JSONレスポンスから必要な詳細を抽出 //info resp; cardlist = List(); Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); //resp = invokeurl //[ // url :"https://www.zohoapis.com/crm/v3/Orders/search?criteria=" + "((Email:equals:" + cxemail + "))" // タイプ: GET // connection:"ecommerce" //]; resp = invokeurl [ url :"https://www.zohoapis.com/crm/v4/Orders/search?criteria=" + "((Email:equals:" + cxemail + "))" type :GET headers:header_data ]; info resp; items_count = 0; if(!resp.isEmpty()) { for each order in resp.getJSON("data") { items_count = items_count + 1; info "+++++++++++"; // order情報; orderid = order.getJSON("id"); //CRMresponse = invokeurl //[ // url :"https://www.zohoapis.com/crm/v3/Orders/" + orderid // タイプ: GET // connection:"ecommerce" //]; CRMresponse = invokeurl [ url :"https://www.zohoapis.com/crm/v3/Orders/" + orderid type :GET headers:header_data ]; name = order.getJSON("Name"); contact = order.getJSON("Contact_No").toString(); email = order.getJSON("Email"); product_name = order.getJSON("Product_Name"); orderid = order.getJSON("OrderID").toString(); price = order.getJSON("Price").toString(); delivery_date = order.getJSON("Expected_Delivery_Date"); delivery_address = order.getJSON("Delivery_Address"); order_status = order.getJSON("Order_Status"); // 箇条書きリストの定義 listItem = Map(); listItem.put("type","list"); listItem.put("format","bullet"); listElements = List(); elem1 = {"label":"Name : " + name}; elem2 = {"label":"Contact No :" + contact}; elem3 = {"label":"Email ID : " + email}; elem4 = {"label":"Product Name : " + product_name}; //elem5 = {"label":"Order ID : " + orderid}; elem6 = {"label":"Total Price : $ " + price}; elem7 = {"label":"Expected Delivery Date : " + delivery_date}; elem8 = {"label":"Delivery Address : " + delivery_address}; elem9 = {"label":"Order Status : " + order_status}; listElements.add(elem1); listElements.add(elem2); listElements.add(elem3); listElements.add(elem4); //listElements.add(elem5); listElements.add(elem6); listElements.add(elem7); listElements.add(elem8); listElements.add(elem9); listItem.put("elements",listElements); //info listItem; // 'image'カードの定義 // 'note'カードの定義 productNote = Map(); productNote.put("type","note"); productNote.put("content",items_count + ") Your order details for order id : " + orderid + " are listed as follows: "); cardlist.add(productNote); productPic = Map(); productPic.put("type","image"); productPic.put("content",CRMresponse.getJSON("data").getJSON("product_image_url")); cardlist.add(productPic); cardlist.add(listItem); info "+++++++++++"; } //info cardlist; result.put("card",cardlist); } else { } // broadcastの定義 broadcast.put("cxemail",email); result.put("broadcast",broadcast); result.put("message","The Shoppers Stores. You don't have an order."); return result; Note : 9行目のorg IDをご自身のプロジェクトのものに置き換えてから、スクリプトを保存してください。 5. アクションの詳細ページに戻り、以下のスクリーンショットに示すようにContext Handler Functionを有効にします。 6. Context handler functionを有効にした後、表示されるポップアップでOKをクリックして次に進みます。 7. 以下のコードをContext handler functionエディターにコピー&ペーストし、Save Scriptをクリックします。 result = Map(); assign = Map(); if(broadcast != null) { // 'broadcast'引数にデータがあるかチェック cxemailid = broadcast.get("cxemailid"); // 'broadcast'から'cxemailid'の値を取得 assign.put("cxemailid",cxemailid); // cxemailidの値を'cxemailid'パラメータに割り当て result.put("assign",assign); result.put("todo","execute"); // Execution functionにジャンプ } result.put("todo","prompt"); return result; 8. Test this actionをクリックして、前のアクションと同様にこのアクションの更新された設定をテストします。 9. テスト後、DONEをクリックします。 ### 配送先住所の変更 1. 上記で作成したアクションと同様に、このアクションのレスポンスもビジネスロジックに基づいて設定します。アクション名に「Change Delivery Address」と入力します。このアクションには、以下のサンプル文を定義できます: * "I want my order to be delivered at a different address" * "I want to change delivery address for my order id 5804508000000460006 under the email amelia.burrows@zylker.com" アクションに以下のパラメータを追加します: <table class="content-table"> <thead> <tr> <th>パラメータタイプ</th> <th>名前</th> <th>プロンプトメッセージ</th> <th>バリデーション失敗時のプロンプトメッセージ</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>cxemail</td> <td>Please provide the email ID associated with your order.</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>cxorderid</td> <td>Please enter your Order ID.</td> <td>The entered OrderID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>cxaddr</td> <td>Please enter the address where you want the order to be delivered.</td> <td>The entered address is invalid. Please check and retry.</td> </tr> </tbody> </table> 以下のスクリーンショットに示すように、パラメータ「cxemail」をサンプル文に関連付けることができます。 2. サンプル文とパラメータを設定したら、以下のコードをExecution functionページにコピー&ペーストし、Save Scriptをクリックします。 result = Map(); // cache引数から注文の'id'を取得 Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); addrmap = Map(); //addrmap.put("Delivery_Address",cxaddr); //reduceStock = Map(); searchOrderresp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders/search?criteria=((OrderID:equals:" + cxorderid + "))" type :GET headers:header_data ]; recordid = searchOrderresp.getJSON("data").getJSON("id"); addrmap.put("id",recordid); addrmap.put("Delivery_Address",cxaddr); updatedata = list(); updatedata.add(addrmap); updatedatamap = Map(); updatedatamap.put("data",updatedata); updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :PUT parameters:updatedatamap.toString() headers:header_data ]; // 指定された日付に注文をリスケジュールするAPI呼び出し broadcast.put("cxemail",cxemail); // 'broadcast'引数の設定 result.put("broadcast",broadcast); result.put("message","Your order has been rescheduled successfully."); return result; Note : 5行目のorg IDをご自身のプロジェクトのものに置き換えてから、スクリプトを保存してください。 3. 再度、Test this Actionチャットウィンドウを使用して、このアクションに関する会話を開始してテストします。 ### 注文日のリスケジュール 1. アクション名に「Reschedule order to later date」と入力します。このアクションには、以下のサンプル文を定義できます: * "Reschedule my order to later date" * "Postpone the delivery date of my order" * "I want to change my orders delivery date as 19/07/2023 for my order id 5804508000000460006 of my email amelia.burrows@zylker.com" アクションに以下のパラメータを追加します: <table class="content-table"> <thead> <tr> <th>パラメータタイプ</th> <th>名前</th> <th>プロンプトメッセージ</th> <th>バリデーション失敗時のプロンプトメッセージ</th> </tr> </thead> <tbody> <tr> <td>Email</td> <td>cxemail</td> <td>Please provide the email ID associated with your order.</td> <td>The entered email ID is invalid. Please check and retry.</td> </tr> <tr> <td>String</td> <td>cxorderid</td> <td>Please enter your Order ID.</td> <td>The entered OrderID is invalid. Please check and retry.</td> </tr> <tr> <td>Date</td> <td>cxdate</td> <td>Mention the date you would like to reschedule your order</td> <td>The entered date is invalid. Please check and retry.</td> </tr> </tbody> </table> 以下のスクリーンショットに示すようにパラメータを関連付け、Saveをクリックします。 2. サンプル文とパラメータを設定したら、以下のコードをExecution functionページにコピー&ペーストし、Save Scriptをクリックします。 result = Map(); // cache引数から注文の'id'を取得 Accesstoken = invokeurl [ url :"https://test-773793963.development.catalystserverless.com/server/TokenGenerate/execute" type :GET ]; info Accesstoken.getJSON("output"); accesstoken = "Zoho-Oauthtoken " + Accesstoken.getJSON("output"); info accesstoken; header_data = Map(); header_data.put("Content-Type","application/json"); header_data.put("Authorization",accesstoken); searchOrderresp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders/search?criteria=((OrderID:equals:" + cxorderid + "))" type :GET headers:header_data ]; info searchOrderresp; recordid = searchOrderresp.getJSON("data").getJSON("id"); info recordid; datemap = Map(); datemap.put("id",recordid); datemap.put("Expected_Delivery_Date",cxdate.toDate()); info datemap; updatedata = list(); updatedata.add(datemap); updatedatamap = Map(); updatedatamap.put("data",updatedata); updateResp = invokeurl [ url :"https://www.zohoapis.com/crm/v2/Orders" type :PUT parameters:updatedatamap.toString() headers:header_data ]; info updateResp; // 指定された日付に注文をリスケジュールするAPI呼び出し broadcast.put("cxemail",cxemail); // 'broadcast'引数の設定 result.put("broadcast",broadcast); result.put("message","Your order has been rescheduled successfully."); return result; Note : 5行目のorg IDをご自身のプロジェクトのものに置き換えてから、スクリプトを保存してください。 3. 前のアクションと同様に、このアクションもテストしてDONEをクリックします。 これで、必要なすべてのアクションとそのビジネスロジックの設定が完了しました。 -------------------------------------------------------------------------------- title: "CRMでカスタムモジュールを作成する" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.113Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/create-custom-modules-in-crm/" service: "All Services" related: - CRMカスタムモジュール (https://help.zoho.com/portal/ja/kb/crm/customize-crm-account/customizing-modules/articles/customize-modules#Custom_Modules_or_User-Generated_Modules) -------------------------------------------------------------------------------- # CRMでカスタムモジュールを作成する Zoho CRMのモジュールを使用すると、ビジネスのさまざまな側面を分類して追跡できます。商品在庫と注文情報を保存するために、**EcomProducts**と**Orders**の2つのカスタムモジュールを作成します。カスタムモジュールの詳細については、CRMドキュメントを参照してください。 CRMでカスタムモジュールを作成するには、以下の手順に従います: 1. Zoho CRMアカウントにログインします。 2. 以下のスクリーンショットに示すように、ダッシュボードの右上にあるSetupをクリックし、CustomizationセクションのModules and Fieldsをクリックします。 <br /> 3. New Moduleをクリックします。 <br /> #### EcomProducts このモジュールは、Eコマースオンラインストアで利用可能なさまざまな商品の詳細を保存するために使用されます。EcomProductsカスタムモジュールに、以下のフィールドを追加してください。 <table class="content-table"> <thead> <tr> <th>フィールド名</th> <th>タイプ</th> </tr> </thead> <tbody> <tr> <td>EcomProductName</td> <td>Single Line</td> </tr> <tr> <td>Product_image</td> <td>URL</td> </tr> <tr> <td>Price</td> <td>Number</td> </tr> <tr> <td>Inventory Count</td> <td>Number</td> </tr> <tr> <td>EcomProduct Owner</td> <td>Lookup</td> </tr> </tbody> </table> フィールドタイプをドラッグ&ドロップするだけで新しいフィールドを追加できます。 <br /> フィールドを追加したら、Saveをクリックします。 モジュール名を「EcomProducts」と入力し、以下のスクリーンショットに示すようにモジュール権限をAdministratorに設定します。 <br /> モジュールにレコードとして追加することで、任意の数の商品を作成できます。Create EcomProductをクリックしてフィールドの詳細を入力し、Saveをクリックします。 <br /> EcomProductモジュールに作成された商品は、以下のスクリーンショットのように一覧表示されます。 <br /> #### Orders このモジュールは、Eコマースオンラインストアの注文詳細を保存するために作成します。前述の方法と同様にこの新しいモジュールを作成し、「Orders」と名付けます。このカスタムモジュールには、以下のフィールドを設定します: <table class="content-table"> <thead> <tr> <th>フィールド名</th> <th>タイプ</th> </tr> </thead> <tbody> <tr> <td>Order Name</td> <td>Single Line</td> </tr> <tr> <td>Contact_No</td> <td>Phone</td> </tr> <tr> <td>Product_Name</td> <td>Single Line</td> </tr> <tr> <td>OrderID</td> <td>Single Line</td> </tr> <tr> <td>Price</td> <td>Number</td> </tr> <tr> <td>Expected_Delivery_Date</td> <td>Single Line</td> </tr> <tr> <td>Delivery_Address</td> <td>Multi Line</td> </tr> <tr> <td>Order Owner</td> <td>Lookup</td> </tr> <tr> <td>Email Opt Out</td> <td>Checkbox</td> </tr> <tr> <td>Order_Status</td> <td>Single Line</td> </tr> <tr> <td>Product_Image</td> <td>Image Upload</td> </tr> <tr> <td>product_image_url</td> <td>URL</td> </tr> </tbody> </table> ユーザーがボットと会話して注文を行うと、このモジュールに自動的にエントリ(レコード)が作成されます。 <br /> レコードの詳細は以下のようになります: Note : ボットのビジネスロジックで使用しているフィールド名と完全に同じ名前を使用してください。 -------------------------------------------------------------------------------- title: "プロジェクトの初期化" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.113Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/initialize-project/" service: "All Services" related: - リソースの初期化 (/ja/cli/v1/initialize-resources/introduction) -------------------------------------------------------------------------------- # CLIからプロジェクトを初期化する ボットのアクションを設定し、ビジネスロジックをコーディングした後、ボットを埋め込むクライアントアプリケーションのコーディングに進みます。このチュートリアルでは、Catalyst Web Client Hostingコンポーネントを使用してクライアントアプリケーションをホスティングします。 Catalyst関数をコーディングするには、まずCatalyst CLIからプロジェクトを初期化する必要があります。最初のステップとして、CLIにログインし、空のローカルディレクトリでプロジェクトを初期化します。このディレクトリがプロジェクトのホームディレクトリとなり、すべてのプロジェクトファイルがここに保存されます。 Catalystがサポートするすべてのプログラミングスタックのプロジェクトディレクトリ構造については、このページを参照してください。Catalystプロジェクトの初期化の詳細については、CLIヘルプドキュメントを参照してください。 以下の手順に従って、プロジェクトを初期化し、必要な関数とクライアントコンポーネントを作成してください: 1. ローカルマシンにプロジェクト用のフォルダを作成し、CLIターミナルからそのフォルダに移動します。 2. プロジェクトを初期化するには、以下のコマンドを実行してください: catalyst init 3. CLIからデフォルトのCatalyst組織を選択するよう求められます。このチュートリアルの最初のステップでプロジェクトを作成した組織を選択し、**Enter**を押してください。 <br /> Note : プロジェクトがどの組織にあるかを確認するには、このページの手順を参照してください。 4. 現在のプロジェクトディレクトリを、この組織で作成したCatalystプロジェクトに関連付けることができます。**Ecommerce**を選択し、**Enter**を押してください。 <br /> 5. Catalystアプリケーションに必要なコンポーネントを選択します。矢印キーでオプションを移動し、スペースバーで選択してください。**Client**を選択し、**Enter**を押して選択を確定します。 <br /> 6. 次にCLIがクライアントのセットアップを開始します。クライアントタイプとして**Basic web app**を選択します。 <br /> 7. クライアントパッケージの名前に**ecommerceclient**と入力し、**Enter**を押してください。任意の名前を入力できます。 <br /> クライアントディレクトリが標準構造で作成され、以下のようになります: <br /> Catalystの初期化が完了しました。プロジェクトディレクトリには、クライアントとその他のプロジェクト依存ファイルが含まれます。 -------------------------------------------------------------------------------- title: "クライアントの設定" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.114Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/configure-client/" service: "All Services" related: - ConvoKraft JS SDK (/ja/convokraft/sdk/js/overview/) -------------------------------------------------------------------------------- # クライアントの設定 クライアントコンポーネントを設定しましょう。初期化したクライアントディレクトリには以下が含まれます: * フロントエンドアプリケーションのHTMLコード用のindex.htmlファイル * CSSコード用のmain.css * JavaScriptコード用のmain.jsファイル * client-package.json設定ファイル このzipをダウンロードし、中のすべてのファイルをコピーして、クライアントディレクトリに作成されたデフォルトのクライアントファイルと置き換えることができます。このgitリポジトリには、デフォルトのファイル以外の追加ファイルも含まれています。クライアントコード全体と必要な画像・アイコンファイルがすべて含まれているので、zipファイルとしてダウンロードできます。 Note : 各ファイルのコードを確認し、内容を十分に理解してください。 Catalystでは、Catalyst Web Client Hostingコンポーネントを使用して、Webアプリケーションのクライアント部分をホスティングできます。チュートリアルの次のステップで、クライアントをコンソールにデプロイします。 ### ボットをWebサイトに埋め込む ConvoKraftボットをアプリケーションに埋め込むには、クライアントディレクトリのabout.htmlファイルに以下のJavaScriptコードスニペットを追加して保存してください。また、ConvoKraftボットの外観をカスタマイズするために、クライアントアプリケーションに素早く組み込むことができる定義済みメソッドを含むConvoKraft Javascript SDKパッケージも提供しています。 &lt;script src="https://console.catalyst.zoho.com/convokraft/assets/js/convokraft-chat-sdk.js"&gt; &lt;/script&gt; &lt;style&gt; div.anchor_zia_toBottom { width: 330px; height: 450px; position: fixed; bottom: 0; right: 0; } &lt;/style&gt; &lt;div class="anchor_zia_toBottom"&gt; &lt;convokraft-chat-bot bot-name="ecommercebot_2" project-id="10644000000029001" org-id="74779991"&gt; &lt;/convokraft-chat-bot&gt; &lt;/div&gt; Note : zipファイルのファイルを置き換えると、上記のコードスニペットはabout.htmlファイルに既に含まれています。上記のコードのbot-name、project-id、org-id属性に正しい値を追加するだけで済みます。 コンソールでEcommerceBotを開き、Bots Detailsページで、ボットのnamespaceがこのbot-name属性の値になります。 https://console<span></span>.catalyst.zoho.com/baas/74779991/project/10644000000029001/Development#/convokraft/bots/50803000000018005 ここで「74779991」がorgID、「10644000000029001」がprojectIDです。 -------------------------------------------------------------------------------- title: "コンソールへのデプロイ" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.114Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/deploy-to-console/" service: "All Services" related: - Catalystプロジェクトのデプロイ (/ja/cli/v1/deploy-resources/introduction/) -------------------------------------------------------------------------------- # コンソールへのデプロイ クライアントアプリケーションをホスティングし、アプリケーションに埋め込まれたボットの動作を直接テストするには、まずプロジェクトをコンソールにデプロイする必要があります。 1. CLIからCatalystプロジェクトをデプロイするには、プロジェクトディレクトリからターミナルで以下のコマンドを実行します: catalyst deploy ホストされたURLにアクセスして、クライアントアプリケーションを表示できます。 Note : このステップでは、ボットをまだ本番環境にデプロイしていないため、Eコマースボットはクライアントアプリケーションに表示されません。 -------------------------------------------------------------------------------- title: "ボットのトレーニングとテスト" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.114Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/train-and-test-the-bot/" service: "All Services" related: - Manage Bot (/ja/convokraft/help/manage-a-bot/test-a-bot/) -------------------------------------------------------------------------------- # ボットのトレーニングとテスト 必要なアクションを作成し、ビジネスロジックを設定した後、すべてのアクションでボットをトレーニングおよびテストできます。トレーニングにより、ボットは一般的な呼び出しパターンと特定のアクションに行った設定を分析し、NLP能力を向上させます。 Bots Detailsページから**Train**をクリックしてボットをトレーニングできます。これにより、Catalystがバックグラウンドでトレーニングプロセスを開始します。ボットのトレーニングが正常に完了すると、ステータスメッセージが表示されます。 その後、下部の最小化されたウィンドウの**Test this Bot**をクリックしてボットをテストできます。 <br/> 表示されたサジェスチョンからタスクを選択するか、チャットウィンドウで新しい会話を開始できます。 <br/> 設定したアクションの1つをテストしてみましょう。**View my Order Details**を選択します。特定の注文に関連付けられたメールIDを入力すると、ボットがCRMのOrdersモジュールから関連する詳細を取得します。 <br/> 同様に、本番環境へのデプロイに進む前に、必要に応じて他のアクションもテストできます。 -------------------------------------------------------------------------------- title: "本番環境へのデプロイ" description: "Catalyst ConvoKraft、Deluge関数、およびZoho CRMを使用して、ECサイト向けの会話型セールスアシスタントボットを構築します。Webサイトのユーザーと対話し、注文を管理します。" last_updated: "2026-07-02T09:34:22.114Z" source: "https://docs.catalyst.zoho.com/ja/tutorials/ecommerce-bot/deluge/deploy-to-production/" service: "All Services" related: - Development Environment (/ja/deployment-and-billing/environments/development-environment/) - Production Environment (/ja/deployment-and-billing/environments/production-environment/) -------------------------------------------------------------------------------- # 本番環境へのデプロイ 開発環境でEコマースボットのテストが完了したら、ボットを本番環境にデプロイできます。これは、まず特定のConvoKraftボットのみをデプロイし、次に関連する関数のデプロイを有効にするためにプロジェクト全体を本番環境にデプロイすることで行います。 1. ボットを本番環境にデプロイするには、ボットの詳細ページに移動して**Deploy to Production**をクリックします。 <br/> 2. **Deploy to Production**ダイアログボックスで、更新されたすべてのアクションを選択し、リリースタイプを**Major**に設定します。必要に応じて、説明的なリリースノートを追加することもできます。 <br/> 3. 次に、Catalystプロジェクトを本番環境にデプロイする必要があります。Catalystデプロイの詳細な手順については、このページを参照してください。プロジェクトを本番環境にデプロイした後、以下のスクリーンショットに示すように、コンソールから直接本番環境に切り替えることができます。 <br/> ボットの使用を開始した後、ボットの詳細ページの**Usage stats**タブをクリックして、ボットの使用統計を確認することもできます。ConvoKraft Eコマースボットが稼働中になりました。 <br/> Note: ClientタブとUsage Statsタブは本番環境でのみ有効になります。クライアントURLにアクセスして完全なアプリケーションを表示でき、ConvoKraftボットがその中に埋め込まれています。