We are trying to figure out a way to offer our email list a Buy X Get Y Free, but not make it available across the entire site. Any app that we have tried, like Buy X Get One by Supple, it opens up the offer to anyone on that site that meets the criteria. We only want to offer these exclusives deals through email.
We've just recently added the orders_count and accepts_marketing? attributes to the Customer object. For further details, you can refer to the API documentation for the Customer object.