An interactive voice response (IVR) system executes a call flow that
references data objects holding information. The information within a
data object includes a variable that holds a value utilized by the call
flow, state information describing the state of the variable, and
fulfillment type information that describes how to get a value for the
variable or otherwise change the variable's state. Process and
application objects in the call flow specify desired states of variables
at given points in the call flow. A resolution module within the IVR
system determines whether the variables are in the desired states and, if
not, utilizes the fulfillment type information in the data objects to
attempt to put the variables in the desired states. This dynamic
resolution process provides a mechanism for resolving the values of
variables in data objects as the values are required and eases the burden
on the call flow developer.