This is also an issues for us - we do a lot of events and often need to associate offline contacts with a campaign, which also contains e.g. social media posts.
I saw there are some ways to get around (e.g. importing contacts via a form), which are rather cumbersome.
After an event, we usually do not send generic email but rather personalised ones directly throught the contact field and there cannot be attached to a campaign.
Please, HubSpot, solve this issue.