AskMyBank.ai surfaces a case instantly — but then what? This layer adds durable, auditable orchestration: auto-assign, escalate, resolve, and close — all trackable, all retryable.
| Platform | Model | Human Tasks | Python SDK | Free Tier | Best For |
|---|---|---|---|---|---|
| Orkes Cloud Recommended | Hosted Conductor (Netflix OSS) | ✓ Built-in | ✓ | ✓ Developer tier | Visual editor + quick start |
| Temporal Cloud | Hosted Temporal OSS | ~ Via UI only | ✓ | ✓ 5M actions/mo | Code-first, high volume |
| Appian | Low-code BPM platform | ✓ Native forms | ✗ | ~ Community (3 users) | Business users, regulated workflows |
| Temporal OSS | Self-hosted Docker | ✗ | ✓ | ✓ Free | Dev/test, full control |
No changes needed — workflow calls existing RAG API
app.pyWhen a banker finds a dispute in AskMyBank.ai, a single call starts the full workflow:
# In app.py — after RAG returns a dispute result from workflow.orkes_client import start_dispute_workflow # Banker clicks "Raise Workflow" button in Streamlit UI if st.button("🚀 Start Resolution Workflow"): result = start_dispute_workflow( doc_id = "DSP00042", customer_id = "CUST00012", rm_email = "sarah.chen@securebank.com", case_summary = rag_response["answer"], dispute_amount = 4250.00, priority = "High", ) st.success(f"✅ Workflow started — ID: {result['workflowId']}") st.markdown(f"[Track in Orkes →]({result['trackingUrl']})") # workflow/orkes_client.py import requests, os ORKES_URL = os.getenv("ORKES_SERVER_URL") ORKES_TOKEN = os.getenv("ORKES_ACCESS_TOKEN") def start_dispute_workflow(**payload) -> dict: resp = requests.post( f"{ORKES_URL}/api/workflow/dispute_resolution", json = payload, headers = {"X-Authorization": ORKES_TOKEN}, timeout = 10, ) resp.raise_for_status() wf_id = resp.json()["workflowId"] return { "workflowId" : wf_id, "trackingUrl" : f"{ORKES_URL}/execution/{wf_id}" }
Sign up for Orkes Cloud dev tier · Define workflow JSON · Deploy Python workers locally · Test trigger from app.py with mock tasks
Wire Nova Lite as a Bedrock HTTP task · Auto-assign RM from ClickHouse metadata · Add "Start Workflow" button to Streamlit UI
Implement WAIT_FOR_SIGNAL with 24h timer · Build RM acknowledgement endpoint · Wire escalation branch · Test end-to-end timeout path
Update case_status/resolution in ClickHouse on completion · Build Orkes Human Task form for RM resolution · Demo end-to-end with real dispute data
Replace Orkes Human Tasks with Appian forms for richer UI · Target if buyer is already an Appian shop (common in ANZ banking)
Automated escalation ensures no case exceeds regulatory SLA. Timer survives server restarts — no cron jobs, no polling.
Every step, decision, and timestamp is persisted durably. FCA/APRA audit-ready with zero extra effort from the RM.
Orkes retries failed tasks automatically. Network blip mid-workflow? Resumes from the last checkpoint — no duplicate actions.