Whenever a member's phase has been changed in echo, the phase property of the HubSpot contact for that member should be updated as well.
This update should happen in the background (e.g. in a worker) and should not block the return of a response to any API requests.
If the HubSpot contact ID is missing or the update attempt fails, an error with a useful message including the member's ID and new phase number must be captured by Sentry.
Whenever a member's phase has been changed in echo, the phase property of the HubSpot contact for that member should be updated as well.
This update should happen in the background (e.g. in a worker) and should not block the return of a response to any API requests.
If the HubSpot contact ID is missing or the update attempt fails, an error with a useful message including the member's ID and new phase number must be captured by Sentry.