We are currently setting up our integration with episerver forms, profile store and insight. I have some logic I want to execute if the current user is no longer anonymous, having previously filled out any form with an email address.
A second question I have is how do I tell if the user has filled out a certain form previously? I can see methods on the FormDataRepository to query form responses, but no way to filter by the person who submitted it. I hope I do not have to cycle thru all entries just to see a certain identified person has already submitted it.
Any help on both of these matters would be greatly appreciated.
You could always ask the profile store API whether the email address is null. the self-documenting (swagger) API can show you how to do this through restful endpoints, or go and visit here https://world.episerver.com/documentation/developer-guides/profile-store/profile-store-api/profiles/
For form submissions (apologies for this answer - i'm not a developer)
There are visitor group criteria that exist in the Visitor Group Criteria Pack (https://world.episerver.com/add-ons/visitor-group-criteria-pack/) for assessing whether a form or specific form value has been submitted.
Try installing it and see if the implementation is visible to you. That may help you understand the form API (in lieue of someone else providing a more specific answer)
The answer to this was querying the profiles using the "ContactInformation" part of the profile, which has either "anonymous" or "known" as part of its collection of values. For example this will give me all known (identified) profiles:
ContactInformation eq 'Known'