My app requires ability to subscribe and unsubscribe customers to marketing emails using SendGrid's Contacts API. Customers can also be subscribed\unsubscribed from outside the app so I need to keep track of those as well. I'm currently very confused because most of the actions are asynchronous and I don't see any kind of webhooks for this API either. Basically I don't understand what's the expected workflow when working with this API.
Example A: When I export contacts to catch up on newly subscribed\unsubscribed customers am I expected to just poll the export endpoint until I get the result?
Example B: A customer presses 'Subscribe' and naturally I want an "Unsubscribe" button to appear instead. However I can't do that because I'm still yet to get their contact_id.
Am I missing something or our approach doesn't really work with this API and we need to rethink our strategy?