Today's business process orchestration languages such as WS-BPEL and BPML have high-level constructs for specifying flow of control and data, but facilities for allocating tasks to humans are largely missing. This paper presents SOFTALLOC, a work allocation language with soft constraints, and explains the requirements and trade-offs that led to its design, in particular, what soft constraints are, and how they enable business process definitions to capture allocation rules, best practices, and organizational goals without rendering the business processes too strict.SOFTALLOC combines with virtually any business process language and any conceivable legacy system, while guaranteeing polynomial performance. We present the design, the formal definition, and an evaluation of SOFT-ALLOC.