ステート登録

以下のJSON形式のリストにてステートを受け取り、{unique_id}で指定したアプリケーションへステートの登録または更新を行います。

リクエスト

■ リクエストメソッド

POST

■ リクエストボディ

以下の値を持つJSONオブジェクトのリスト

パラメータ 必須 説明
update_type   更新タイプ
1:新規追加(既にステート名が存在する場合はスキップ)
3:置き換え(既にステート名が存在する場合は置き換え、存在しない場合は追加)
4:削除(ステート名を指定して削除する)
*何も指定しない場合は"3:置き換え"となる
state   ステート名
指定されない場合は自動でステート名が採番される
in_condition_key   当ステートに入る為の条件(キー)
(指定なし/action/postback)
in_condition_value   当ステートに入る為の条件(値)
(例:キーに"action"を指定した場合はアクション名を設定する)
in_condition_state   当ステートに入ることができるステート
(sys_any_state/sys_no_state/[作成したステート名])
何も指定しない場合はsys_any_stateが設定される
out_state   当ステート完了時、次に遷移するステート名
(sys_no_state/[作成したステート名])
何も指定しない場合はsys_no_stateが設定される
state_type ステートタイプ
(form_filling(フォーム穴埋めタイプ)/api_call(API呼び出しタイプ)/mail_send(メール送信タイプ)/rtchat(有人チャット切替えタイプ))
responses   当ステートに関連する応答文のリスト
  type

応答文のタイプ

【ステートタイプがフォーム穴埋めタイプの場合】
in:このステートに入った時の応答文
out:このステートから出る時の応答文
cancel:このステートがキャンセルされた時の応答文
unk:このステート内で理解できない発言がされた場合の応答文
confirm:必要なフォームの入力が全て完了した際の確認メッセージ
modify:確認メッセージに対して「いいえ」と入力された場合の応答文

【ステートタイプがAPI呼び出しタイプの場合】
in:API呼び出し成功時の応答文
error:API呼び出し失敗時の応答文

【ステートタイプがメール送信タイプの場合】
in:このステートに入った時の応答文

【ステートタイプが有人チャット切替えタイプの場合】
in:このステートに入った時の応答文
cancel:対応時間外等により有人チャットに切替わらなかった場合の応答文

  response_text 応答文
  replies   応答文に返答用ボタンを表示する場合のボタン名のリスト

以下の項目は"state_type"がform_fillingの場合のみ

項目 必須 説明
is_confirm   フォーム完了時、確認メッセージを表示するかどうか
(0(確認しない)/1(確認する))
何も指定しない場合は、1が設定される
forms   入力フォームのリスト
  form_name フォーム項目名
  form_value   当項目に設定するエンティティの名
(どのような値でも良い時は"sys_any"を設定)
何も指定しない場合は、sys_anyが設定される
  form_value_condition   当項目に設定するエンティティの条件
  validations   当項目の入力チェックのリスト
    validation_type   "regex"(正規表現)固定
    validation_value   チェックする正規表現
  responses   入力フォームに関連する応答文のリスト
    type   応答文のタイプ
form:当項目を聞き出す為の応答文
formerror:入力内容にエラーがある場合の応答文
    response_text   応答文
    replies   応答文に返答用ボタンを表示する場合のボタン名のリスト

以下の項目は"state_type"がapi_callの場合のみ

項目 必須 説明
url API呼び出しするURL
method   API呼び出しするメソッド
get/post
何も指定しない場合は、getが設定される
content_type   API呼び出し時のCONTENT TYPE
何も指定しない場合は、application/jsonが設定される
headers   API呼び出し時のリクエストヘッダ
("key1=val1;key2=val2;"の形式で作成)
payload_type   API呼び出しに設定するパラメータのタイプ
1: Key/Valueパラメータ形式
2: JSON形式
3: Rawデータ形式
payload   API呼び出しに設定するパラメータ
【パラメータタイプが1もしくは3の場合】
'param_key1=param_val1&param_key2=param_val2'の形式
【パラメータタイプが2の場合】
'{"param_key1":"param_val1","param_key2":"param_val2"}'のようなJSON形式

以下の項目は"state_type"がmail_sendの場合のみ

項目 必須 説明
subject   メールタイトル
body   メール本文
to 送信先アドレス
cc   CCアドレス
bcc   BCCドレス

■ リクエストボディの例

[
  {
    "update_type":"1", "state":"state1", "in_condition_key":"action","in_condition_value":"action1","state_type":"form_filling",
    "responses":[
      {"type":"in","response_text":"ステートに入りました"},
      {"type":"out","response_text":"ステートを出ました","replies":["メニューに戻る"]},
      {"type":"cancel","response_text":"ステートがキャンセルされました","replies":["メニューに戻る"]},
      {"type":"unk","response_text":"理解できませんでした"},
      {"type":"confirm","response_text":"この内容でよろしいでしょうか?","replies":["はい","いいえ"]},
      {"type":"modify","response_text":"了解しました"}
      ],
    "forms":[
      {"form_name":"name","validations":[{"validation_type":"regex","validation_value":"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"}],"responses":[{"type":"form","response_text":"名前を教えてください。"},{"type":"formerror","response_text":"入力内容に誤りがあります。"}]},
      {"form_name":"product","form_value":"product","responses":[{"type":"form","response_text":"商品を選択してください。"}]}
    ]
  },
  {"update_type":"1", "state":"state2","state_type":"api_call","url":"http://google.com","method":"post","content_type":"application/json","headers":"key1=val1;key2=val2;","payload_type":"1","payload":"param_key1=param_val1&param_key2=param_val2",
  "responses":[
      {"type":"in","response_text":"ステートに入りました"},
      {"type":"error","response_text":"エラーがありました","replies":["メニューに戻る"]}
      ]
  },
  {"update_type":"1", "state":"state3","state_type":"mail_send","subject":"タイトル","body":"本文","to":"info@resola.ai",
  "responses":[
      {"type":"in","response_text":"ステートに入りました"}
      ]
  },
  {"update_type":"3", "state_type":"rtchat",
  "responses":[
      {"type":"in","response_text":"オペレータにおつなぎします"},
      {"type":"cancel","response_text":"時間外です"}
      ]
  },
  {"update_type":"4", "state":"state5"}
]

 

レスポンス

項目 説明
updated 更新されたステートのリスト
["state2", "state3", "state4"]
deleted 削除されたステートのリスト
["state5"]
skipped スキップされたステートのリスト
["state1"]