New request
#20968: Phone country code missing in CardDAV sync for contacts created via Workflow (regression of #17182)
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Bug Report
Summary
Contacts created via Workflow in Twenty are missing the country code prefix (e.g. +43, +49) when synced to iPhone and macOS Contacts via CardDAV. Contacts imported from HubSpot or created manually are not affected.
Steps to Reproduce
- Create a contact via a Twenty Workflow (source = WORKFLOW)
- Sync contacts to iPhone or macOS via CardDAV
- Observe that the phone number arrives without the country calling code
Expected Behavior
Phone number exported via CardDAV should be in E.164 format:
Actual Behavior
Phone number arrives without calling code: (or just the raw number)
Root Cause (Technical)
Twenty stores phone numbers split across two fields:
- → e.g. (digits only, no )
- → e.g.
The CardDAV export does not combine these into a single E.164 string before writing the vCard property. For contacts that were working correctly (HubSpot-imported), the number appears to be stored differently.
Environment
- Twenty version: current (self-hosted)
- Affected contacts: source = WORKFLOW only
- Unaffected: HubSpot-imported contacts
Related Issues
- Closes #14857 (marked Done, appears to have regressed)
- Closes #17182 (marked Done, appears to have regressed)
CardDAV phone formatting regression for workflow contacts requires reconciling storage format differences in export logic.
- packages/twenty-server/src/engine/core-modules/carddav
- packages/twenty-server/src/engine/core-modules/phone
- packages/twenty-server/src/engine/metadata-modules/field-metadata
- packages/twenty-shared/src/types