Contact Sync (CardDAV)
The built-in CardDAV server allows you to synchronize your contacts with your mobile device or computer (e.g. Apple Contacts in iPhone macOS Contacts or on Android with a third-party CardDAV client like DAVx⁵).
Enable CardDAV by setting the CARDDAV_ENABLED environment variable to true. Once enabled, the CardDAV server runs alongside the web interface. A standard discovery endpoint is available at /.well-known/carddav for automatic configuration.
Connecting Your Phone
iOS
- Open Settings > Contacts > Accounts > Add Account > Other.
- Select Add CardDAV Account.
- Enter the following:
- Server: Your Meerkat CRM URL (e.g.,
meerkat.example.com) - User Name: Your Meerkat CRM username or email
- Password: Your Meerkat CRM password
- Server: Your Meerkat CRM URL (e.g.,
- Tap Next. iOS will automatically discover the CardDAV endpoint.
- Your contacts will begin syncing.
Android
Android does not include a native CardDAV client. You will need a third-party app such as DAVx5 (open source):
- Install DAVx5 from F-Droid or Google Play.
- Open DAVx5 and add a new account.
- Select Login with URL and user name.
- Enter:
- Base URL: Your Meerkat CRM URL followed by
/carddav/(e.g.,https://meerkat.example.com/carddav/) - User name: Your Meerkat CRM username or email
- Password: Your Meerkat CRM password
- Base URL: Your Meerkat CRM URL followed by
- DAVx5 will detect the address book. Select it and sync.
- Your Meerkat CRM contacts will appear in your phone’s Contacts app.
Sync Behavior
- Two-way sync: Changes made in Meerkat CRM appear on your phone, and changes made on your phone are synced back to Meerkat CRM. This also applies to profile pictures.
- Conflict detection: Meerkat CRM uses ETags to detect conflicts. If a contact has been modified on both the server and the client since the last sync, the client will be notified and can resolve the conflict.
- Supported fields: Meerkat CRM syncs all fields though now all fields might be visible in your client. In case you add additional fields on your client (like a secondary address) the fields will be preserved in the Meerkat database but will not show in the Meerkat CRM frontend.
Troubleshooting
- Contacts not syncing: Verify that
CARDDAV_ENABLED=trueis set in your server environment and restart the application. - Discovery not working: Some clients require the full CardDAV URL instead of relying on auto-discovery. Try entering
https://your-server.com/carddav/directly as the server URL. - Locked out: After multiple failed login attempts, your account may be temporarily locked. Wait a few minutes and try again, or reset your password via the web interface.
Limitations
- Sync-token is not implemented since not yet supported by go-webdav. Clients therefore have to fall back to propfind with depth 1 and compare locally.