Webhookブロックのフォーマッター(Deluge)

Webhookブロックのフォーマッター(Deluge)


APIによる出力データは、チャットの利用者にとってわかりにくい場合があります。このような場合に、Webhookブロックのフォーマッターが役立ちます。フォーマッターでは、Delugeスクリプトを通じてAPIによる出力データの形式を整えることができます。
 
たとえば、APIによって出力される日時の値が「2025-06-02T10:45:00Z」の場合に、値が「2 June 2025, 10:45 AM」となるように形式を変更することが可能です。また、APIによって出力される問い合わせの情報が「ticket_subject and ticket_id」の場合に、「問い合わせ#2034 - 支払いに失敗しました」となるように変更できます。



フォーマッターとは

フォーマッターとは、自動ガイドボットのWebhookブロックの機能のひとつです。APIによって出力されたデータを、チャット欄に表示する前に形式を整えることができます。
フォーマッターを通じて行える内容は、以下のとおりです。
  1. 項目名を変更し、値をわかりやすく表示できます
  2. 日時の値の形式を変更できます
  3. 複数の項目の値を統合できます
  4. JSONの複雑な階層の値から、特定の値を抽出できます
  5. リスト内において繰り返しの処理を行い、要約を作成したり、値をわかりやすくしたりできます
 これらの設定は、Delugeを通じて行います。簡単な操作でAPIの設定を行うことが可能です。 
 


フォーマッターのメリット  

フォーマッターを使用することで、APIによって出力されるデータの値を整理できます。
フォーマッターの主なメリットは、以下のとおりです。
  1. チャットの利用者に対して、APIの出力データをわかりやすい値に変換して表示できます
  2. 「ticket_id」や「cust_name」などの値を、他の値に変換できます
  3. チャットの表現や形式に合わせて出力値を変更できます
  4. 必要な情報のみをチャット欄に表示できます
  5. 自動ガイドボットの会話フローにおいて、他のWebhookブロックと組み合わせて使用できます 
 フォーマッターを使用することで、APIの出力データをよりわかりやすくなるように他の値に変換し、チャット欄に表示することが可能です。 
 

使用例   

日時の形式の変更

APIのレスポンス

 { 
   "order_date": "2025-06-02T10:45:00Z" 
 } 

変更後の値:2 June 2025, 10:45 AM

フォーマッターのコード

 formatted_date = order_date.toDateTime("yyyy-MM-dd'T'HH:mm:ss'Z'").toString("d MMMM yyyy, h:mm a"); 
 return {"formatted_date": formatted_date};   

ボットのレスポンス

注文日は、2 June 2025, 10:45 AMです。

この出力値を、次のブロックで使用できます。Info(情報)は、デバッグにのみ使用されます。文字列の出力値は、リストに入れられて処理されます。データ構造をより明確にするには、マップ形式で出力することをお勧めします。  
項目名の変更

APIのレスポンス

 { 
   "cust_name": "Talaash Thedal" 
 }  

変更後の値:"顧客名":"Talaash Thedal"
 

フォーマッターのコード

 customer_name = cust_name; 
 return {"customer_name": customer_name}; 

ボットのレスポンス

顧客名: Talaash Thedal
 
フォーマッターを通じて項目の名前を変更しても、他のブロックの変数名には影響ありません。会話フローにおいて、Webhookに関連付けられている変数のみが直接参照されます。 
項目の値の統合

APIのレスポンス

 { 
   "ticket_id": "2034", 
   "ticket_subject": "Payment failed" 
 } 

変更後の値:問い合わせ#2034 - 支払いに失敗しました

 

フォーマッターのコード 

 issue_summary = "Issue #" + ticket_id + " - " + ticket_subject; 
 return {"issue_summary": issue_summary}; 

  

ボットのレスポンス

問い合わせ#2034 - 支払いに失敗しました

値の抽出

APIのレスポンス 

 { 
   "user": { 
     "details": { 
       "contact": { 
         "email": "aarav@example.com
       } 
     } 
   } 
 } 

変更後の値:ユーザーのメールアドレスのみ

 

フォーマッターのコード

 email_id = user.get("details").get("contact").get("email"); 
 return {"email_id": email_id}; 

ボットのレスポンス

連絡先のメールアドレス:taro.kawane@example.com

配列のデータの抽出

APIのレスポンス 

 { 
   "recent_orders": [ 
     { "order_id": "123", "status": "Delivered" }, 
     { "order_id": "124", "status": "Processing" } 
   ] 
 } 

変更後の値:

  • 注文#123 - 配送済み

  • 注文#124 - 処理中

 

フォーマッターのコード

 orders = recent_orders; 
 summary = ""; 
 for each order in orders 
 { 
   summary += "Order #" + order.get("order_id") + " - " + order.get("status") + "\n"; 
 } 
 return {"order_summary": summary};   
 

ボットのレスポンス

  • 注文#123 - 配送済み

  • 注文#124 - 処理中

   

JSONの複雑な階層の値から特定の値を抽出   

APIによって複数の部門が出力されるのに対して、標準の部門のみを表示したいとします。

JSONの複雑な階層の値から特定の値を抽出
JSONの複雑な階層の値から特定の値を抽出
APIによって複数の部門が出力されるのに対して、標準の部門のみを表示したいとします。
 
APIのレスポンス
 { 
   "data": [ 
     { 
       "name": "Support", 
       "isDefault": false 
     }, 
     { 
       "name": "Sales", 
       "isDefault": true 
     } 
   ] 
 } 

変更後の値:標準の部門のみ("isDefault": trueとなっている部門のみ)

フォーマッターのコード
 // 値のないコレクションを作成し、条件に一致する部門を保存します 

 result = Collection();   
 // APIの出力データから、すべての部門のリストを取得します 
 allDepartments = response.get("data");   
 // リスト内の各部門を確認します 
  

 

     // 該当の部門が標準の部門か確認します 
     isDefault = department.get("isDefault");   
     // 標準の部門の場合、結果のコレクションに追加します 
     if(isDefault == true) 
     { 
         result.insert(department); 
     } 
 }  
 
 // 標準の部門の最後のリストを出力します 
 return result; 

ボットのレスポンス
標準の部門:営業

出力値を次のブロックで使用し、特定の項目の値を抽出することが可能です。
 

使用に関するヒント


  1. 対象のデータに関して、APIのJSONのレスポンスの構造を確認することをお勧めします。
  2. コードのエラーを解決したり、値のプレビューを表示したりする際には、Delugeの情報をご確認ください。
  3. Webhookブロックの直後でフォーマッターを使用することで、次のブロックで出力値を使用できます。
  4. フォーマッターを使用するにあたって、条件と変数を組み合わせることで、より動的な値を出力できます。



    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Campaigns Resources

                Zoho WorkDrive Resources




                  • Desk Community Learning Series


                  • Digest


                  • Functions


                  • Meetups


                  • Kbase


                  • Resources


                  • Glossary


                  • Desk Marketplace


                  • MVP Corner


                  • Word of the Day


                  • Ask the Experts









                                  Resources

                                  Videos

                                  Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                  eBooks

                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                  Webinars

                                  Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                  CRM Tips

                                  Make the most of Zoho CRM with these useful tips.