Legal
Privacy Policy – iPhone, iPad and Mac
Contaxo is the new name of Import & Export Contacts Excel (Contacts Excel, formerly Contacts Hero). This document applies to Contaxo. See also: Android privacy policy · Privacy overview
Import & Export Contacts Excel (Contacts Excel) — iPhone, iPad and Mac app
Effective date: November 7, 2026
Last updated: November 7, 2026
ONNEX YAZILIM ANONİM ŞİRKETİ (“ONNEX”, “we”, “us”) provides the Contacts Excel app for iPhone, iPad and Mac, including its widgets and Shortcuts actions (the “App”). This policy explains what data the App uses, what leaves your device, who processes it for us, how long it is kept and the choices you have. ONNEX is the data controller for the data described here. The Android app has its own privacy policy.
In short: Your contacts are read and processed on your device. We never receive them in readable form. The only time contacts leave your device through us is when you use Transfer to New Phone: they are end-to-end encrypted on your old phone, pass through our relay in the EU, can be decrypted only by the new phone you approve, and are deleted from the relay as soon as the transfer finishes (at the latest after 30 minutes). You don’t create an account. We use analytics and crash reports (Firebase, Mixpanel) to improve the App, RevenueCat to manage purchases, and we measure our own ads. The App shows no ads, and we do not sell your data.
1. App ID (no account)
When you first open the App, it creates a random 24-character User ID and keeps it in your device’s Keychain, so it usually survives a reinstall on the same device. It is not based on your name, email address, phone number or contacts. We use it to link your purchases and analytics to your installation.
When you contact us from the App (Settings › Help and support), the email draft includes this User ID and basic app information (app and system version, device model, contacts access status, number of visible contacts, last backup date, whether iCloud is on) so we can help you. You can edit the draft before sending. If no Mail account is set up, the App opens our support form (onnex.co/support) inside the App instead and passes it your User ID and app version, so we can match your message to your installation. We keep support messages only as long as needed to answer you and keep a record of the request.
2. Your contacts
The App asks for permission to access your contacts (iOS / macOS Contacts permission) and uses it only for the features you choose:
- Export: create Excel (.xlsx), CSV, Word (.docx), PDF or vCard (.vcf) files from your contacts.
- Import: add contacts from a file you pick (Excel, CSV, TXT or vCard).
- Backup and restore: save a vCard backup of your contacts and restore it later, also from Shortcuts if you set that up.
- Duplicates: find, merge or delete duplicate contacts. Before every merge or delete, the App saves an undo snapshot so you can take the change back.
- Transfer to New Phone: move your contacts to another iPhone or an Android phone with a QR code (see section 3).
Export, import, backup and duplicate cleanup happen entirely on your device. Contact details (names, phone numbers, email addresses, photos and other fields) are never sent to our analytics, crash reporting or purchase providers and are never used for analytics or advertising.
Backups and iCloud. Backups and undo snapshots are stored in the App’s storage on your device. If iCloud Drive is turned on, backups are saved in the App’s iCloud Drive folder so they are available on your other devices. iCloud is operated by Apple under your Apple Account; we cannot access it. You can delete backups in the App, and you can turn iCloud Drive off for the App in your device settings.
Files you share or save. A file leaves the App only when you choose to share or save it, for example through Mail, Messages, AirDrop, WhatsApp, Files or Google Drive. The app you choose then handles the file under its own terms and privacy policy.
3. Transfer to New Phone (QR code)
This optional feature is available on iPhone and iPad. It moves your contacts from your old phone to a new iPhone or Android phone. It only runs when you start it.
What happens on your old phone
- The App packages all contacts it can access as a vCard file (photos are reduced to 512 pixels), compresses it and encrypts it on your device with a new random key (AES-256-GCM). It also creates a one-time key pair for this transfer.
- Only the encrypted package is uploaded to our transfer relay. The key that unlocks it stays on your old phone.
- The QR code (and the link you can send instead) contains a transfer ID and the old phone’s public key. It contains no contacts and no secret.
Pairing and your approval
- When a new phone scans the code, both phones show the same 6-digit code. You compare them and approve the connection on your old phone. Nothing can be read until you approve.
- After you approve, the old phone sends the unlock key to the new phone, itself encrypted so that only that new phone can open it (X25519 key agreement, HKDF-SHA256, AES-GCM). If you tap “No, the code is different”, the transfer is cancelled.
- The new phone downloads the package, decrypts it on the device and shows you a preview. Saving the contacts to the new phone requires Contacts Excel Pro (see our Terms of Use).
What our relay stores and for how long
The relay runs on Google Firebase (Cloud Functions, Cloud Firestore and Cloud Storage) in the European Union. For each transfer it stores only: the encrypted package and its size, the sending platform (iOS or Android), the one-time public keys and pairing values, hashed access tokens, the model name of the new phone (for example “iPhone 16”, shown on your old phone so you know which device is connecting), and timestamps.
- Neither we nor Google can decrypt the package, because we never have the key.
- Everything is deleted as soon as the new phone confirms it received the contacts, when you cancel, or at the latest 30 minutes after the QR code is created.
- To prevent abuse, the relay counts requests per network address. It stores only a one-way hash of your IP address with the count, and deletes these counters within about two hours. Google Cloud may also keep standard technical request logs (such as IP address and time of request) for a limited period, typically up to 30 days, for security and operations. Our own logs contain only a shortened transfer ID, the package size, the platform and the transfer state — never contacts.
- To make sure requests come from a genuine copy of the App, the relay uses Firebase App Check with Apple’s App Attest. This checks the App and device integrity and does not identify you.
On the new phone
- If the App is not yet installed, the link opens a short web page on our Firebase Hosting site that sends you to the App Store. On iPhone, this page can copy the transfer link to your clipboard so the transfer can continue after installation. The App only checks whether the clipboard contains a web link without reading it, and reads the link only when you tap Paste.
- If you close the App before saving, the downloaded contacts are kept on the new phone, encrypted with a key held in the device Keychain, for up to 7 days so you can come back to them. You can delete them at any time with Delete Contacts.
- The camera is used only to scan the QR code. Camera images are processed on the device and are not stored or sent anywhere.
We record transfer analytics events (for example “QR code shown”, “transfer saved”, the number of contacts and error codes) as described in section 4. These events never contain contact details, keys or the transfer link.
Your responsibility: only show the QR code or send the link to yourself or someone you trust, and always compare the 6-digit code before you approve.
4. Analytics and crash reports
We use Firebase Analytics and Firebase Crashlytics (Google) and Mixpanel (EU data residency) to understand how the App is used and to fix problems. They receive:
- usage events, for example screens viewed, features used, the export or import format, how many contacts were exported, imported or transferred, success or failure with an error code, the type of app a file was shared to (for example “mail” or “google_drive”), permission status, your onboarding goal, and paywall and purchase events (including the product, its price and currency);
- device and app information, for example device model, system version, language, app version and launch count;
- identifiers: your User ID and the Firebase app-instance ID; and, only if you allow tracking (see section 5), the device’s advertising identifier (IDFA);
- approximate location (country, region or city) derived from your IP address;
- crash diagnostics (Crashlytics), such as stack traces and device state at the time of a crash.
These events contain counts, categories and error codes only — never contact details or file contents.
5. Measuring our ads
We advertise the App, for example with Google Ads and Apple Ads. To learn which ads lead to installs and purchases:
- Apple: the App uses Apple’s SKAdNetwork and AdServices frameworks. These report ad results to us and to ad networks without identifying you. RevenueCat receives the AdServices attribution token to attribute purchases to Apple Ads campaigns.
- Google: Firebase Analytics sends app events (for example first open, the first finished export, import or backup, and a purchase with its price and currency) to Google Ads for conversion measurement, including Google’s on-device conversion measurement, which matches ad interactions on your device without sending your personal information off the device. Google may also use this data to improve the delivery of our ads, for example to reach people likely to be interested in the App.
- Tracking permission: the App asks for permission to track (App Tracking Transparency). If you allow it, Firebase may use the IDFA for ad measurement. If you don’t, the IDFA is not used. You can change this at any time in Settings › Privacy & Security › Tracking.
In the European Economic Area, the United Kingdom and Switzerland, ad user data and ad personalization signals are turned off by default (Google consent mode), and Google’s on-device conversion measurement is not used. The App does not show ads.
6. Purchases
Subscriptions and one-time purchases are processed by Apple through the App Store. We do not receive your payment card details. RevenueCat receives your purchase history and subscription status, linked to your User ID and Firebase app-instance ID, so the App can unlock Pro features and we can understand purchases.
7. App configuration, reviews and notifications
- The App uses Firebase Remote Config to receive settings (for example free limits and which offer to show).
- It may ask you to rate the App through Apple’s review prompt, which Apple handles; we do not see who rated or what you wrote.
- If you turn on backup reminders and allow notifications, the App shows reminders that are scheduled on your device. We do not use a push notification service.
8. Why we use data (legal bases)
Where laws such as the EU/UK GDPR or Turkey’s KVKK apply, we rely on:
- performing our contract with you — to provide the features you use, including Transfer to New Phone, and to unlock purchases;
- our legitimate interests — to keep the App and the transfer relay secure and free of abuse, to fix crashes and to understand and improve the App;
- your consent — for tracking with the IDFA (App Tracking Transparency) and, where required, for ad measurement; you can withdraw consent at any time;
- legal obligations — for example keeping purchase records.
9. Who receives data
We share data only with service providers that run parts of the App for us, under their terms and only for the purposes above:
- Google — Firebase Analytics, Crashlytics, Remote Config, App Check, Cloud Functions, Cloud Firestore, Cloud Storage and Hosting (transfer relay), Google Ads
- Mixpanel — analytics (EU data residency)
- RevenueCat — purchases
- Apple — App Store, iCloud, App Attest, SKAdNetwork, AdServices
We do not sell your data for money and the App contains no ads. We share app events with Google Ads only to measure and improve our own ads, as described in section 5; under some US state privacy laws this may be considered “sharing” for advertising, and you can stop it by denying tracking or by contacting us. We may disclose data if required by law. Some providers process data outside your country, including in the United States, with safeguards such as standard contractual clauses.
- Google: policies.google.com/privacy
- Mixpanel: mixpanel.com/legal/privacy-policy
- RevenueCat: revenuecat.com/privacy
- Apple: apple.com/legal/privacy
10. Retention and your choices
- Contacts and files on your device: delete backups and undo snapshots in the App, or delete the App. Changing the Contacts permission in your device settings stops the App from reading your contacts.
- Transfers: relay data is deleted automatically as described in section 3 (at the latest 30 minutes after the QR code is created). You can cancel a transfer at any time on your old phone, and delete unsaved received contacts on your new phone with Delete Contacts.
- Analytics and purchase data: email us your User ID (it is included when you write to us from Settings › Help and support) and we will delete the analytics and purchase records linked to it, except where we must keep purchase records by law. Analytics data is otherwise kept only as long as needed to improve the App, and no longer than our providers’ configured retention periods.
- Tracking: allow or deny it in Settings › Privacy & Security › Tracking.
- Camera: you can turn camera access off for the App in your device settings; you can still receive contacts by pasting the transfer link.
- Notifications: turn backup reminders off in the App or in your device settings.
Depending on where you live (for example under the GDPR, the UK GDPR, Turkey’s KVKK or US state privacy laws), you may have the right to access, correct, delete or export your data, to object to or restrict its processing, to withdraw consent, and to lodge a complaint with your data protection authority. To use these rights, contact us at the address below. We will not treat you differently for using them.
11. Children
The App is not directed to children under 13, and we do not knowingly collect data from them. If you believe a child has sent us data, contact us and we will delete it.
12. Security
Data that leaves your device is sent over encrypted connections (HTTPS/TLS). Contacts sent with Transfer to New Phone are additionally end-to-end encrypted, so only the new phone you approve can read them. Your other contacts stay on your device and in the backups you control. No method of storage or transmission is completely secure.
13. Changes
We may update this policy. We will change the “Last updated” date above and, for significant changes, inform you in the App.
14. Contact
ONNEX YAZILIM ANONİM ŞİRKETİ
Yusuf Apartmanı D:3, No:59, Şirintepe Mahallesi, Özkurt Sokak
Tepebaşı, Eskişehir 26190, Türkiye
Email: yusuf@onnex.co
Support: onnex.co/support
Website: onnex.co