{
  "id": 2117529,
  "title": "If-Else or Boundaries?",
  "url": "https://urgent.news/2026/08/20/if-else-or-boundaries",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-20T10:50:58.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/siddharthaghosh/if-else-or-boundaries-3ojf"
  },
  "original_language": "en",
  "account": "In the continuing series on conversational automation, we examine where chatbot logic should reside. The common if-else decision trees often become unwieldy as they handle too many responsibilities. While AI can interpret uncertain language, it shouldn't dictate business decisions like order status. A more useful approach is separating concerns into distinct layers:\n\nUser language\n↓ Structured input\n↓ Validation\n↓ Backend/API truth\n↓ Deterministic decision\n↓ Conversation response\n↓ Human fallback\n\nFor an order tracking bot, instead of asking AI \"Is this order shipped?\", the system should directly query the order data service. The API returns structured information, which the bot can then use to determine the appropriate conversational path. This deterministic logic lives in the backend, while natural language interactions are handled by AI. The key is owning the right responsibilities in each layer, whether that's visual automation or traditional code. The focus should be on where true decision-making belongs, not choosing between if-else and AI blindly.",
  "summary": "Series: From Visual Flows to AI-Orchestrated Automation · Part 03 A chatbot rarely becomes difficult because of its first if statement. The problem starts later. A customer wants to track an order. Another asks about a refund. Someone enters an invalid order ID. The API times out. Another user phrases the same question in a completely different way. Someone else just wants to talk to a human.…",
  "key_points": [
    "Separate concerns into distinct layers",
    "AI handles natural language interactions",
    "Backend/API provides deterministic decisions"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}