Woocommerce would be a bit restrictive for this scenario. WC sells premade products, so the workflow would be: visitor requests a quote and goes to database as usual; then admin determines the price, sets up a WC product with the correct name and price, then emails the visitor a link to the product page. Finally, the visitor would open the link, add it to cart, and go through the checkout process.
I think you would have a much easier time using a form add-on that allows you to process payments through a form. Workflow would be: visitor requests a quote through form #1 and goes to database. Admin determines the price, copies and pastes form #2's URL into an email to the visitor and just changes the price portion of the URL to whatever it needs to be. Finally, the visitor would open the link which would immediately display a one-step form to fill out with payment details.
All this requires is to create a dynamically populated field on the payment form so the form knows how much to charge. This setup maximizes the chance of the visitor actually paying because it's a simple one-step deal once they receive their price, as opposed to a multi-step checkout process where they may have to create an account and enter extra details that aren't necessarily required.
It looks like it is possible to create a dynamically populated field in Contact Form 7, and to process Stripe with an add-on. I've personally only used Gravity Forms for this type of scenario and I know that both work there as well, in case you have the option to use a different form plugin.
Gravity Forms dynamically populated fields: https://docs.gravityforms.com/allow-field-to-be-populated-dynamically/
Contact Form 7 dynamically populated fields: https://wordpress.org/plugins/contact-form-7-dynamic-text-extension/