Messages sent to the email preferences queue in T268510 may have a different format from current opt-in / unsubscribe messages. Create a job to pull these messages from the queue, validate them, and update the contact record in CiviCRM.
|Open||None||T125272 Epic: Create Preference Center for donors to manage email subscription preferences|
|Open||AndyRussG||T268511 Consume new messages from Email Preferences form|
Just to note: currently not ingressing country since, if I understand correctly, it remains to be determined if a new country selection by the user should cause a new address (empty, except for country ) to be created.
Regarding country, I think the Civi way to store an additional address would be to add a new 'location type' along with the existing Home, Billing, etc, then store the prefs center country there.
I think you can use a .mgd file to create the new location type when your civi extension is installed.
The syntax would look something like this: https://phabricator.wikimedia.org/diffusion/WFCG/browse/master/drupal/sites/default/civicrm/extensions/org.wikimedia.omnimail/activitytypes.mgd.php
only instead of the entity being 'option_value' it would be 'location_type'