It appears that the intent of Activiti's "business key" is that of an external ID for a given process instance. This works well in the case where you need to uniquely identify a process instance without needing to know its internal ID. The current functionality is that of an external reference ID and not as what most users think of as a business key. We are currently using process variables to store a business key for our domain with a processes - this allows us to identify all processes associated with a given key. This breaks down when we need to query all historic processes for a given key (which is in a process variable). Take this use case for example - We wish to store the VIN number of a car as the business key, but since you cannot run two processes with the same business key, we store the VIN as a process variable. After we start multiple processes (repair, cleaning, etc.), we need to see a list of all processes associated with a given VIN. This seems like a typical use case for storing a business key with a process instance. Is it possible that we extend the process instance to include an "external reference id" which could be used in queries (historic or otherwise)?