This post discusses building an IVR (Interactive Voice Response) system using TaskRouter as a state machine, without requiring any code. The author created an abstraction on top of TaskRouter to function as the backbone of the IVR system, utilizing TwiML Bins for hosting XML associated with each state. Each call coming in is represented as a task within TaskRouter, and the task's current attributes are used to determine which state the caller should move to next. The workflow syntax defined by TaskRouter is used to define the flow between different states, making it possible to build complex IVR workflows without writing code. This approach allows for generic, re-usable solutions, easy configuration changes, and automatic number formatting. The author provides an example of how this can be implemented using Node.js and TwiML Bins, and discusses potential applications and future development possibilities.