私は、私たちの会社と電話会社(顧客から電話を受け取り、入力(キー、ボイスメッセージなど)をキャプチャする会社)との間のコミュニケーションに役立つAPIを行っています。電話ワークフローをデータベースに格納する方法、またはそれを実行するより良い方法はありますか?
ワークフローをデータベースに保存するにはどうすればよいですか?私は次の要求でそれを識別し、プロンプトを尋ね、データ/音声をキャプチャし、N番目の間違った試行の後にワークフローの特定の位置に戻るために使用する各呼び出しに固有のIDを提供できるようにしたい(可能な複数の一品だけでなく、Y/N場合は、だけでなく、 -
:
- WHILE(N番目の試み)
- GOTO(別のステップへのジャンプ - 次のではない)
私は私の説明があまりにも曖昧であることを知っている、と私それについて申し訳ありません。あなたはすべて、自動電話が何であり、その間に何が起こるかを知っています。
私は、新しい電話キャプチャプロジェクトごとに別のワークフロー処理クラスを用意していました。このようにして、ある人がプロジェクト1のステップ1をAPIに尋ねると、コードは要求をプロジェクトクラスに渡す必要があることを知ります。 APIには、ワークフローテーブルを読み込んで、要求を目的のプロジェクトクラスに配信する処理を行うメインクラス(ディスパッチャ)があります。
私は柔軟でシンプルなものを作りたいと思っています。誰かがアイデア、例、提案を持っていますか?
ここまでは私の考えです。 、ワークフロー内のノードの名前(プロジェクトIDと名前が一意のキーを作る) - 表にワークフローを保存
CREATE TABLE `projects_workflow` (
`flow_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`project_id` INT NOT NULL ,
`name` VARCHAR(20) NOT NULL ,
`prompt` VARCHAR(20) NOT NULL ,
`capture` VARCHAR(20) NOT NULL ,
`attempts` INT NOT NULL ,
`success` VARCHAR(20) NOT NULL ,
`error` VARCHAR(20) NOT NULL
);
flow_id - プライマリID、PROJECT_ID - プロジェクトID、我々はさまざまなプロジェクトを持っています原因、名前(6,6、)、VOICE、NONE)、試み - 自宅で何度もこれを繰り返すことができますが、エラー、成功、失敗としてカウントされます。エラーが次のノードにつながります。
可能なワークフローは次のようになります。
flow_id project_id name prompt capture attempts sccess error
1 1 capture1 01 6,6 1 endcall error1
2 1 error1 02 NONE 4 capture1 capture2
3 1 capture2 03 VOICE 1 endcall
4 1 endcall 04 ENDCALL 1
エラーとワークフローのイベント/ノードがエラーcouterがリセットされます成功裏に合格した場合。
エラーメッセージが誤って応答された場合(4回)、発信者の音声メッセージをキャプチャするように指示された場合、6番の番号を尋ねられます。成功した場合、コールは終了します。私はデータベース内のすべてのステップのログを保持するつもりです。
私がすることができ、おそらく代わりに、自分の名前
P.S.のノードのIDを持つ成功事例のとエラー列をexcangeます問題の悪い説明を申し訳ありません。
あなたの質問は答えが広すぎます。絞り込み、件名ごとの質問をして具体的にしてみてください。「私はこのユースケースを持っています......これはデータベース構造の私の考えです。私のデータベースをレイアウトする良い方法はありますか? '次に、データベースを作成してコードを書いてみると、あなたが立ち往生している場合は、あなたが抱えている問題に関する特定の質問をしてください。 –
Johan
私はこれまでより良い説明と投稿をしようとしました。希望が役立ちます。 –