Hey @primt the “original source” is always taken from the cookie upon creation, if the cookie isn’t passed on creation and only passed after then the “original source” will still be offline sources since the creation pre-dates the cookie.
The way you’ve outlined using the forms api passing the hutk is the correct way to attribute these however. If you create a new contact from forms with the HUTK then it will pull the traffic source from the cookie. New cookies won’t update the original source if added after the contact was created and the cookie source happened after the create date since technically speaking the original source of the contact is still an offline source.
You can also update the original sources through a workflow if you wished, but I’d recomend using the form submission with a cookie to ensure you get accurate reporting and tracking info.