github →

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.

Issue
sonarly:high

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

  1. Create a contact via a Twenty Workflow (source = WORKFLOW)
  2. Sync contacts to iPhone or macOS via CardDAV
  3. 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)
Assessmentadvisory
bug●● medium80% confidence

CardDAV phone formatting regression for workflow contacts requires reconciling storage format differences in export logic.

Likely files
  • 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
Create the request

This opens a fresh agent run and a draft PR for issue #20968.

Cancel