This commit is contained in:
2026-06-13 10:12:53 -03:00
parent a3f5e9966f
commit 42c167212a
5 changed files with 80 additions and 10 deletions

View File

@@ -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 {}

View File

@@ -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)

View File

@@ -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"}}}

View File

@@ -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": []

View File

@@ -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: