So, my client has three forms (A, B and C) (short, medium and long forms)
some fields are common to A, B and C, so we want to minimize data re-entry by the user.
The process to get user to fill out A and have fields populate B via query string is all completed. (they’re not logged in, no user account has been created yet), but once they submit B, there would be a user account tied to their email and name.
The process to populate C from B form values using defaul field value {user:fieldname} is all set and easy to do.
Now, how do I send the link to user so they can access C with some of their fields already filled out from A (or B).
Since you’re using the user resgustration add-on to create members, right?
The easier solution would be to create user meta. Then prepopulating those fields with the merge tags.
Gravity Flow also has some useful tools where you can auto login the user with the url of the form sent in an email and create conditional workflows to make sure they only access the form when both A and B forms have been completed.
I understand you already have a way of passing the field values from one form to another, however, another solution to transfer data between forms is GP Easy Passthrough.
If you’re to use GP Easy Passthrough to pass the field values from one form to another, you would be able to use the Easy Passthrough token to allow users to access Form C with the fields already populated with data from A and B. The token will be appended to the URL of the website and sent to the users via the notification email so they can use the link to access Form C.
In your scenario, having Form B create a new entry in Form C could then trigger Form C’s workflow with a User Input step to allow the user to continue with their now populated fields. The notifications to assignee can include reminders (after X days and then every Y thereafter) or options for step expiration to new steps to ensure no gaps/bottlenecks build up in the flow.