Hi Luke,
As you encountered, lookup field is not supported with form capture.
Because in Dynamics, lookup field will only show existing records.
Here is my workaround:
1. Still create a single line text field as temporary field to store company name for form capture purpose.(The field has existed in Lead entity.)
2. There are two options in step 2:
Opt 1(Low code):
Create a flow, add HTTP Request Trigger as the start action.
You could read my last answer in thread below for how to use it.
https://community.dynamics.com/365/marketing/f/dynamics-365-for-marketing-forum/385271/thank-you-email-after-every-form-submitted
Use the submitted company text to retrieve whether there is a matching account record:
If count is larger than 0, update form submitter company field to retrieved account.
If count is 0, create a new account record then associate the new with form submitter.
(The matching contact could be retrieved with submitted first name and last name.)
Opt 2: Create a segment to collect contacts who submitted the captured form,
run a customer journey which contains a workflow tile for segment members to update Company Name field from context(all submitted data),
but you need to build a custom workflow activity with C# code to check if matching record exists and then perform update field action.
In addition, it is recommended to use embedded marketing form on your CMS page rather than captured form, it now has supported with lookup field and will display list of records for customers to select
Regards,
Clofly