For Contact records I currently address this using a workflow triggered by a filter:
Workflows have their limitations (initialization is not immediate) but they are better than nothing.
For deals I also use a workflow triggered by a filter based on an editable field. It invokes a Create record action that creates and initializes a deal record:



