Issue a new customer a free item, how to collect shipping info?

I want to provide new customers of my software company one free item from our one item shopify store. How can I collect their info in Shopify without requiring them to provide a payment?

Currently, I issue a unique gift card code to each customer.

My concern with a promo code is one customer could use it multiple times from different email or mailing addresses.

Any recommendations on how to provide a free item through the shopify store?

Make two unique, one-time use promo codes. Make one for the free item, and one for the free shipping. Set them to be combinable, and instruct the customer to enter both at checkout. This will create an order in the Shopify system, but with free shipping and a free item.