If you want to give sales reps the ability to create deals manually, this is currently not possible. The deal create form can’t made conditional neither to a value of an associated object nor to a value of a not-yet-created deal.
If deal creation via workflow is an option, you could create a “request form” on a contact record or company record (a section of properties the values of which would be carried over into the eventual deal), a workflow would pick them up and create a new deal record but only if no open deal exists. If there is already one, you could send an explanatory email notification.
As Karsten mentioned, it’s currently not possible to block manual deal creation. The deal creation form cannot be made conditional based on an associated object or on a “not-yet-created” deal.
A safe approach is to implement criteria-based workflows:
1. Define clear criteria for when a new deal should be allowed or blocked (e.g., check if an associated contact already has an open deal in the same pipeline).
2. Use a workflow to create deals automatically only when criteria are met.
3. Send notifications to the sales rep if the workflow does not create a deal because an existing one already exists.
This ensures the process flows smoothly, remains deterministic, and prevents duplicate deals without relying on guesses.