HI Ben !
We had a similar use case need, and I wound up writing a plugin to provide a number of useful capabilities. Perhaps it can also solve your requirements ?
Quick initial question for you: Your clients fill out your contact form anonymously or are they logged into WP with their user account ?
Below is my description from its Readme file - note this is currently in beta testing, and not officially released yet.
Ref: Shared Fields - A WordPress / Gravity Forms Plugin
This Gravity Forms plugin provides a means to “share” field data amongst all forms on all pages within the same web site. Additionally all entered field values remain “sticky” in that each field’s entries will remain pre-populated when rendered - including fields sharing the same Admin Label name on other pages.
The Shared Fields plugin provides this capability by saving your form field data, and replacing all custom merge tags with the associated saved values.
All submitted form field data is saved via one of two possible ways:
- Directly into the logged-in user’s meta data table on the server.
- Inserted into the anonymous user’s global
This capability provides a means to pre-populate any field of any type which supports merge tag substitutions (like inserting saved field entry values into HTML blocks used to create a PDF, constructing custom messages with captured entry data, or pre-loading a hidden field’s default value to support “Conditional Logic” dynamics).