This paper describes a framework for flexible workflows based on events, states, and a new kind of process called a meta-workflow. Metaworkflows have five kinds of meta-activities and facilitate control over other workflows. We describe the framework and illustrate it with examples to show its features. The paper gives an architecture for incorporating it into existing workflows and also provides a formal semantics of execution. This framework can be used in web services, supply chains, and inter-organizational applications where coordination requirements are complex, and flexible and adaptable workflows are needed. It is also useful for handling, not just failure recovery, but also other kinds of exception situations, which arise frequently in webbased applications.