Make all functions a user directly interacts with not only accept the exact primary key, but rather let the user specify any field and query by the specified fields. The user then selects one or more (Depending on function) objects to use for the function via Event::Select { .. }.