Daniel,
If you have some mechanism to collect first name, last name, and email then you can use the "Search External Contact" block to see if an external contact exists for that web visitor. If one or more external contacts are found then you'll have to figure out which one to select and use that External Contact ID. If one does not exist then you'd have to use a Genesys Cloud Data Action (https://help.mypurecloud.com/articles/about-genesys-cloud-data-actions-integration/) to call POST /api/v2/externalcontacts/contacts to create an external contact and get the returned Eternal Contact ID.
Once you have an External Contact ID that matches your web visitor then you'll need to use another Genesys Cloud Data Action to call PUT /api/v2/externalcontacts/conversations/{conversationId} to link that external contact to the messaging conversation. There should be a variable available called messaging.conversationId (or something like that) to identify the conversation and you'll have the external contact id from above.
I hope that helps.
------------------------------
Jim Crespino
Senior Director, Developer Evangelism
Genesys
https://developer.genesys.com------------------------------