I would like Salesforce to receive updates from a webhook. I have found that I need to set up a site and build some apex code for this. Is there any way to do this through flow instead or easily get the data into flow, so I can handle the mapping in there? I have found Streamscript which I need to investigate more. Is this the best approach? Does anyone have experience with this?
That Steamscript solution looks really powerful and I believe would suit your use case based on the overview. If you have multiple integrations to setup, having a standard approach in Steamscript could be another benefit.
Or, to build everything yourself though I would recommend a new custom object (to store the input from the external service), the webhook and a small piece of code to save the incoming data into that object - I found one example here using Account -
Webhooks in Salesforce - How to Setup and Configure for Integration | LWC Stack)
When you have the data saved you can use standard flow record-triggered actions to take that data and do more useful things with it. I would recommend you split the incoming data within the webhook code - so if it is 4 pieces of information, have 4 fields on the custom/temporary object and store each part separately - as it is slightly easier to parse JSON within the Apex snippet than within Flow at present (without using something like Steamscript)
Good luck
Iain