diff --git a/app/agents/backoffice_agent.py b/app/agents/backoffice_agent.py index 6ce83d0..65e8465 100644 --- a/app/agents/backoffice_agent.py +++ b/app/agents/backoffice_agent.py @@ -145,12 +145,23 @@ class BackofficeAgent(AgentRuntimeMixin): {"message": "Backoffice native agent completed", "type": "INFO"}, component="agent.backoffice.native.completed", ) + siebel = self._extract_siebel_result(mcp_results) return { "answer": answer, "next_state": self._next_state(normalized_state, mcp_results), "mcp_results": mcp_results, "rag_metadata": rag_metadata, + + "crmProtocol": siebel.get("crmProtocol"), + "fieldsToUpdate": siebel.get("fieldsToUpdate"), + "transitions": siebel.get("transitions"), + + "metadata": { + **(normalized_state.get("metadata") or {}), + "siebel_response": siebel.get("siebel_response"), + }, + "framework_native": { "agent": self.name, "intent": normalized_state.get("intent"), @@ -419,3 +430,16 @@ Regras obrigatórias: if any(r.get("skipped") for r in mcp_results): return "BACKOFFICE_WAITING_ACTION_TEXT" return "BACKOFFICE_ACTIVE" + +def _extract_siebel_result(self, mcp_results: list[dict[str, Any]]) -> dict[str, Any]: + for item in mcp_results: + tool = item.get("tool_name") or item.get("tool") + if tool in {"registrar_acao_siebel", "abrir_chamado_siebel", "backOfficeSRopening"}: + result = item.get("result") or item.get("data") or item + return { + "crmProtocol": result.get("crmProtocol"), + "fieldsToUpdate": result.get("fieldsToUpdate"), + "transitions": result.get("transitions") or [], + "siebel_response": result, + } + return {} \ No newline at end of file diff --git a/app/workflows/agent_graph.py b/app/workflows/agent_graph.py index e4b597d..a753c86 100644 --- a/app/workflows/agent_graph.py +++ b/app/workflows/agent_graph.py @@ -117,7 +117,7 @@ class AgentWorkflow: self.embedding_provider = create_embedding_provider(settings) self.rag_service = RagService(settings, telemetry=telemetry) self.router = EnterpriseRouter(settings, llm=llm, telemetry=telemetry) - agent_kwargs = {"telemetry": telemetry, "tool_router": getattr(self, "tool_router", None), "rag_service": self.rag_service, "cache": self.cache, "settings": settings, "observer": self.observer} + agent_kwargs = {"telemetry": telemetry, "tool_router": self.tool_router, "rag_service": self.rag_service, "cache": self.cache, "settings": settings, "observer": self.observer} self.billing = BillingAgent(llm, **agent_kwargs) self.product = ProductAgent(llm, **agent_kwargs) self.orders = OrdersAgent(llm, **agent_kwargs) diff --git a/debug_events.jsonl b/debug_events.jsonl index e4bf4c2..73afc71 100644 --- a/debug_events.jsonl +++ b/debug_events.jsonl @@ -108,3 +108,27 @@ {"ts": "2026-06-13T12:51:59.777139Z", "key": "man-7fdc994d", "payload": {"transactionId": "man-7fdc994d", "processing": {"status": "processing", "current_step": "tim_complaint_analysis", "action": "await_response", "note": "[13/06/2026 09:51:56] Chamado recebido, iniciando processamento.\n[13/06/2026 09:51:56] Enriquecendo chamado no IMDB....\n[13/06/2026 09:51:56] Realizando verificação de CPF divergente....\n[13/06/2026 09:51:56] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:51:56] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:51:56] Realizando análise de cancelamento....\n[13/06/2026 09:51:59] Realizando análise de reencaminhamento....", "timestamp": "2026-06-13T12:51:59.777115Z"}}} {"ts": "2026-06-13T12:52:03.441060Z", "key": "man-7fdc994d", "payload": {"transactionId": "man-7fdc994d", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:51:56] Chamado recebido, iniciando processamento.\n[13/06/2026 09:51:56] Enriquecendo chamado no IMDB....\n[13/06/2026 09:51:56] Realizando verificação de CPF divergente....\n[13/06/2026 09:51:56] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:51:56] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:51:56] Realizando análise de cancelamento....\n[13/06/2026 09:51:59] Realizando análise de reencaminhamento....\n[13/06/2026 09:52:03] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:52:03.441031Z"}}} {"ts": "2026-06-13T12:52:03.445750Z", "key": "man-7fdc994d", "payload": {"transactionId": "man-7fdc994d", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:51:56] Chamado recebido, iniciando processamento.\n[13/06/2026 09:51:56] Enriquecendo chamado no IMDB....\n[13/06/2026 09:51:56] Realizando verificação de CPF divergente....\n[13/06/2026 09:51:56] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:51:56] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:51:56] Realizando análise de cancelamento....\n[13/06/2026 09:51:59] Realizando análise de reencaminhamento....\n[13/06/2026 09:52:03] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:52:03] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:52:03.445732Z"}}} +{"ts": "2026-06-13T12:53:39.256934Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "fetching_ticket", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.", "timestamp": "2026-06-13T12:53:39.256900Z"}}} +{"ts": "2026-06-13T12:53:39.262011Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "validation", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.", "timestamp": "2026-06-13T12:53:39.261996Z"}}} +{"ts": "2026-06-13T12:53:39.277106Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "imdb_enrichment", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....", "timestamp": "2026-06-13T12:53:39.277086Z"}}} +{"ts": "2026-06-13T12:53:39.998646Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "identity_verification", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....", "timestamp": "2026-06-13T12:53:39.998630Z"}}} +{"ts": "2026-06-13T12:53:40.003268Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "speech_enrichment", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.", "timestamp": "2026-06-13T12:53:40.003254Z"}}} +{"ts": "2026-06-13T12:53:40.023088Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "knowledge_base_enrichment", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....", "timestamp": "2026-06-13T12:53:40.023067Z"}}} +{"ts": "2026-06-13T12:53:40.305079Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "canceling_analysis", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....", "timestamp": "2026-06-13T12:53:40.305059Z"}}} +{"ts": "2026-06-13T12:53:43.335076Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "tim_complaint_analysis", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....\n[13/06/2026 09:53:43] Realizando análise de reencaminhamento....", "timestamp": "2026-06-13T12:53:43.335058Z"}}} +{"ts": "2026-06-13T12:53:46.052267Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....\n[13/06/2026 09:53:43] Realizando análise de reencaminhamento....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:53:46.052242Z"}}} +{"ts": "2026-06-13T12:53:46.057501Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....\n[13/06/2026 09:53:43] Realizando análise de reencaminhamento....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:53:46.057482Z"}}} +{"ts": "2026-06-13T12:53:48.686039Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "siebel_sr_opening", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....\n[13/06/2026 09:53:43] Realizando análise de reencaminhamento....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:53:48] Abrindo chamado no Siebel....", "timestamp": "2026-06-13T12:53:48.686017Z"}}} +{"ts": "2026-06-13T12:53:48.690604Z", "key": "man-6df18f27", "payload": {"transactionId": "man-6df18f27", "processing": {"status": "processing", "current_step": "siebel_sr_opened", "action": "await_response", "note": "[13/06/2026 09:53:39] Chamado recebido, iniciando processamento.\n[13/06/2026 09:53:39] Enriquecendo chamado no IMDB....\n[13/06/2026 09:53:39] Realizando verificação de CPF divergente....\n[13/06/2026 09:53:40] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:53:40] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:53:40] Realizando análise de cancelamento....\n[13/06/2026 09:53:43] Realizando análise de reencaminhamento....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:53:46] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:53:48] Abrindo chamado no Siebel....\n[13/06/2026 09:53:48] Chamado aberto no Siebel.", "timestamp": "2026-06-13T12:53:48.690592Z"}}} +{"ts": "2026-06-13T12:55:58.659321Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "fetching_ticket", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.", "timestamp": "2026-06-13T12:55:58.659304Z"}}} +{"ts": "2026-06-13T12:55:58.665285Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "validation", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.", "timestamp": "2026-06-13T12:55:58.665256Z"}}} +{"ts": "2026-06-13T12:55:58.681487Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "imdb_enrichment", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....", "timestamp": "2026-06-13T12:55:58.681466Z"}}} +{"ts": "2026-06-13T12:55:59.360464Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "identity_verification", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....", "timestamp": "2026-06-13T12:55:59.360442Z"}}} +{"ts": "2026-06-13T12:55:59.365241Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "speech_enrichment", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.", "timestamp": "2026-06-13T12:55:59.365226Z"}}} +{"ts": "2026-06-13T12:55:59.384677Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "knowledge_base_enrichment", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....", "timestamp": "2026-06-13T12:55:59.384659Z"}}} +{"ts": "2026-06-13T12:55:59.691034Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "canceling_analysis", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....", "timestamp": "2026-06-13T12:55:59.691015Z"}}} +{"ts": "2026-06-13T12:56:03.350900Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "tim_complaint_analysis", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....\n[13/06/2026 09:56:03] Realizando análise de reencaminhamento....", "timestamp": "2026-06-13T12:56:03.350879Z"}}} +{"ts": "2026-06-13T12:56:06.234659Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....\n[13/06/2026 09:56:03] Realizando análise de reencaminhamento....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:56:06.234627Z"}}} +{"ts": "2026-06-13T12:56:06.241714Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "reclassification_analysis", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....\n[13/06/2026 09:56:03] Realizando análise de reencaminhamento....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....", "timestamp": "2026-06-13T12:56:06.241691Z"}}} +{"ts": "2026-06-13T12:56:09.262874Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "siebel_sr_opening", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....\n[13/06/2026 09:56:03] Realizando análise de reencaminhamento....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:56:09] Abrindo chamado no Siebel....", "timestamp": "2026-06-13T12:56:09.262854Z"}}} +{"ts": "2026-06-13T12:56:09.267528Z", "key": "man-692f88f9", "payload": {"transactionId": "man-692f88f9", "processing": {"status": "processing", "current_step": "siebel_sr_opened", "action": "await_response", "note": "[13/06/2026 09:55:58] Chamado recebido, iniciando processamento.\n[13/06/2026 09:55:58] Enriquecendo chamado no IMDB....\n[13/06/2026 09:55:59] Realizando verificação de CPF divergente....\n[13/06/2026 09:55:59] Enriquecendo chamado via Speech Analytics.\n[13/06/2026 09:55:59] Consultando procedimentos na base de conhecimento....\n[13/06/2026 09:55:59] Realizando análise de cancelamento....\n[13/06/2026 09:56:03] Realizando análise de reencaminhamento....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:56:06] Realizando análise de reclassificação do chamado....\n[13/06/2026 09:56:09] Abrindo chamado no Siebel....\n[13/06/2026 09:56:09] Chamado aberto no Siebel.", "timestamp": "2026-06-13T12:56:09.267513Z"}}} diff --git a/legacy_backend/mock_imdb_server.py b/legacy_backend/mock_imdb_server.py index 29d0eff..f47e020 100644 --- a/legacy_backend/mock_imdb_server.py +++ b/legacy_backend/mock_imdb_server.py @@ -51,20 +51,16 @@ from uuid import uuid4 @app.post("/customers/v1/backOfficeSRopening") async def backoffice_sr_opening(payload: dict): protocol = f"SR-MOCK-{uuid4().hex[:8].upper()}" - message_id = str(uuid4()) return { - "ok": True, "status": "success", + "interactionProtocol": protocol, "crmProtocol": protocol, - "messageId": message_id, "fieldsToUpdate": { "status": "Aberto", "reason": "Mock Siebel SR Opening" }, "case_response": { - "messageId": message_id, - "crmProtocol": protocol, "message": "Chamado Siebel aberto com sucesso no mock" }, "transitions": [] diff --git a/src/agent/nodes/siebel_sr_opening_node.py b/src/agent/nodes/siebel_sr_opening_node.py index 8e6ed77..0264685 100644 --- a/src/agent/nodes/siebel_sr_opening_node.py +++ b/src/agent/nodes/siebel_sr_opening_node.py @@ -245,17 +245,43 @@ async def open_siebel_sr(state: AgentState) -> AgentState: ) # Update metadata with the SR response - sr_number = response.get("interactionProtocol") + # sr_number = response.get("interactionProtocol") + raw_response = response.get("result") or response + + sr_number = ( + raw_response.get("interactionProtocol") + or raw_response.get("crmProtocol") + or raw_response.get("protocol") + ) + + # context = dict(context) + # response["notes"] = notas + # context["siebel_sr_data"] = response + # + # state = update_state_metadata(state, request_context=context) + # await set_current_step(state, GraphStep.SIEBEL_SR_OPENED) + # + # msg = f"Siebel SR opened successfully: {sr_number}" + # logger.info(msg+'\n') + # state["final_response"] = msg context = dict(context) - response["notes"] = notas - context["siebel_sr_data"] = response + + raw_response = response.get("result") or response + raw_response["notes"] = notas + + context["siebel_sr_data"] = raw_response state = update_state_metadata(state, request_context=context) + + state["crmProtocol"] = sr_number + state["fieldsToUpdate"] = raw_response.get("fieldsToUpdate") + state["transitions"] = raw_response.get("transitions") or [] + await set_current_step(state, GraphStep.SIEBEL_SR_OPENED) msg = f"Siebel SR opened successfully: {sr_number}" - logger.info(msg+'\n') + logger.info(msg + "\n") state["final_response"] = msg if success_tag: