There's a number of different ways that you could approach this. You could attempt to authenticate the user in the web page, using the Salesforce APIs, then pass all of the information returned to the Chat flow using participant data on the interaction. This is going to be the most involved way forward, as it will require some development on the website to authenticate the user with Salesforce in advance, and/or create the user in your Salesforce instance if they don't already exist, but this will also likely be the most robust in terms of collecting user information.
You could use a simple form to collect as much information as possible from the user prior to initiating the chat, pass that along as participant data, then utilize whichever data you've collected to drive the data action. If you choose this route, you'll want to make sure whatever information you need to do the lookup with the data action is required in the form before allowing the user to proceed to the chat.
You'll also want to make sure that your flow is structured in a way that it can survive the user not being present in Salesforce. Even if you make something like "email address" a required field in the input form, and all of your contacts in Salesforce have an email address, you'll likely run into the scenario where someone enters a new email address, enters an incorrect email address, or simply is a new user that does not have a Salesforce record created yet (you can always use a data action to create the new user if they don't exist).
Any way it goes, the mechanism to pass data from the website to your flow is going to be participant data. In your flow, you will fetch the participant data and bind it to a variable, which you then use as the input to your data action.
If you create a Chat Widget deployment using "Version 2" (the one that supports Altocloud), then it will present a UI that will prompt the user for their name, email address, and subject. All of these will be available as participant data and accessible in the Architect flow. So you would then be able to use the email address as input to your data action.