Privacy Policy
CallMinder (Contacto)
Last Updated: October 1, 2026
Version: 5.0 (No ads from 2.2.1)
🔒 Your Privacy Matters
CallMinder is committed to transparency. Most of your data stays on your device, but we use error tracking services that collect technical information. This policy explains everything in detail.
Introduction
CallMinder ("we," "our," or "the app") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our mobile application.
By using CallMinder, you agree to the collection and use of information in accordance with this policy. If you do not agree with our policies and practices, please do not use the app.
1. Information We Collect
1.1 Call Information
When you use CallMinder, we access and process the following call-related data:
- Phone Numbers: Numbers you call, receive calls from, or have in your call history (incoming, outgoing, missed, rejected, blocked)
- Call Duration: Length of each call in seconds
- Call Timestamps: Date and time when calls occurred
- Call Type: Classification of calls (incoming, outgoing, missed, voicemail, rejected, blocked, answered externally)
- SIM Card Information: Which SIM card was used for each call (for multi-SIM devices)
⚠️ Important: Default Dialer Access
If you set CallMinder as your default phone app, the app will have access to ALL incoming and outgoing calls on your device, including calls made by other apps or the system dialer. This is necessary to provide features like custom incoming call screens and comprehensive call analytics.
💾 Data Storage: All call log data is stored locally on your device and is never transmitted to external servers.
1.2 Contact Information
To enhance your calling experience, CallMinder accesses:
- Contact Names: Display names from your device address book
- Phone Numbers: Associated phone numbers for each contact
- Contact Photos: Photo URIs (references to photos, not the actual photo data)
- Contact IDs: Internal identifiers used by Android
Scope: The app reads all device contacts and maintains an in-memory cache of up to 1,000 contacts for quick lookup.
💾 Data Storage: Contact information is cached in device memory during app use and is never transmitted to external servers.
1.3 SMS Messages
When you use the quick reply feature during calls:
- Outgoing SMS: We send SMS messages on your behalf
- Message Content: Only predefined template messages (e.g., "Can't talk right now. I'll call you back," "I'm in a meeting")
- Recipient Numbers: Phone numbers you choose to send quick replies to
User Control: You must grant SMS permission and manually select when to send messages. We do not read or access your incoming SMS messages.
1.4 Device & Technical Information
Google Advertising ID: not collected, from version 2.2.1
From version 2.2.1, Contacto shows no ads and does not collect your Google Advertising ID. The AD_ID permission, and the Android 13+ ACCESS_ADSERVICES_AD_ID and ACCESS_ADSERVICES_ATTRIBUTION permissions, are removed from the app manifest, and advertising-identifier collection is switched off in the analytics SDK. We do not collect the Android ID (SSAID).
Versions 2.1.0 to 2.2.0 showed one ad, in Recents, served by Google AdMob, and the Google Mobile Ads SDK that showed it read your advertising ID (see "Google AdMob" in section 1.5). Updating the app removes it. You can reset or delete your advertising ID at any time in Android's settings (Settings → Privacy → Ads, or Settings → Google → Ads on some phones).
Where our app-install advertising needs to know that a campaign worked, that is measured by Google Play and Google Ads on their side, using the account link between them. It requires no identifier from your device.
Audio Settings
- Device ringtone preferences
- System audio settings (to manage call audio)
- Default ringtone URI (read-only access)
Phone State
- Real-time phone call state (ringing, active, idle)
- Phone account IDs (for SIM detection)
1.5 Diagnostics & Usage Data
Two third-party services receive data from Contacto, besides the update check described below. Versions 2.1.0 to 2.2.0 added a third, Google AdMob, for the ad in Recents. None of them ever receives your calls, contacts, notes, voice notes or reminders.
Sentry — crash reporting
We use Sentry.io to learn when the app crashes or hits an error. It is crash-only: it transmits when something has gone wrong, not on a schedule.
- Device information: model, OS version, app version
- Error logs: stack traces and error messages. Messages are passed through a redaction helper that strips anything phone-number-shaped before sending, and the app’s logging rules forbid passing contact names, note text or voice-note paths into them
- Crash reports: technical details about the failure
What Sentry does not receive:
- Your IP address. The SDK option that would attach it (
sendDefaultPii) is off.
- Session recordings. Session Replay is disabled on every build — both its sampling rates are zero, so no screen content is ever captured. A previous version of this policy described 10%/100% recording; that is not what the app does.
- Console output. Console breadcrumb capture is switched off.
Google Analytics for Firebase — anonymous usage statistics
We use Google Analytics for Firebase to understand how the app is used in aggregate — for example, how many people complete setup, and how many grant the call-log permission. This tells us where the app is confusing or broken.
The payload is deliberately limited to counts, categories and yes/no answers. The events are a fixed, closed list defined in the app’s source, and no event carries free text. They are:
- Which onboarding step you reached, and which kind of work you said the app is for
- Whether you granted, declined, or blocked the call-log and contacts permissions
- Whether setup completed
- The size band of your call log on first load (for example “10–49”) — never the calls themselves
- That you created your first tag, note or voice note — never its content
- That a report was exported, and in which file format — never the report
- Whether you accepted or declined the default-phone-app prompt, and which in-app missions you completed
Alongside these, Google Analytics records an app-instance identifier (a random id that is reset if you reinstall), your device model, OS version, and approximate country.
What Google Analytics does not receive:
- Your advertising ID or Android ID. Collection of both is switched off in the analytics SDK.
- Ad personalisation, ad storage or ad user-data signals. All three are set to denied.
- Automatic screen tracking. Disabled, so the app does not report which screens you open or how often.
- Any call, contact, note, reminder or voice note.
✅ Your control: usage statistics can be switched off at any time in Settings → Privacy → Anonymous usage stats. Turning it off stops collection inside the Google Analytics SDK itself, not merely in our code, so nothing is stored up and sent later.
Google AdMob: versions 2.1.0 to 2.2.0 only
Versions 2.1.0 to 2.2.0 show one ad among your calls in Recents, marked "Ad". No other screen shows one: not the Helper, not a call screen, not a notification. The ad doesn't appear until you have written your first note or label, and never during a call. Version 2.2.1 removed the ad and the Google Mobile Ads SDK, so nothing in this part applies once you update.
In those versions, to show and measure the ad, the Google Mobile Ads SDK automatically collects and shares with Google, for advertising, analytics and fraud prevention:
- your device's IP address, which may be used to estimate its general location;
- your interactions with the ad and the app, including app launch, taps and video views;
- diagnostics, including app launch time, hang rate and energy usage;
- your advertising ID, app set ID and, if applicable, other identifiers related to signed-in accounts.
All of it is encrypted in transit.
What an ad request never carries: your calls, contacts, notes, reminders, voice notes or labels. The app sends no keywords, no content address and no custom targeting with it. Google Play's rules forbid using call-log data for advertising, and Contacto doesn't.
Ads are limited to content suitable for all audiences (Google's "G" rating).
How Google uses this information: https://policies.google.com/technologies/partner-sites
App updates
Contacto checks for over-the-air updates. That check sends a persistent per-installation identifier, your platform, and the app’s runtime version, on launch and when the app returns to the foreground. It carries none of your content.
2. How We Use Your Information
Call & Contact Management
- Display contact names with incoming and outgoing calls
- Enable T9 search functionality in the dialer
- Provide call history filtering, sorting, and search
- Generate call analytics and statistics
- Support features like call reminders, tags, and notes
Communication Features
- Send SMS quick replies during active calls
- Add new contacts to your address book
- Add phone numbers to existing contacts
- Manage incoming calls when app is set as default dialer
- Play custom ringtones for incoming calls
App Improvement & Error Tracking
- Monitor app performance and stability
- Debug technical issues using error logs
- Identify and fix crashes
- Improve user experience based on interaction patterns
- Respond to user feedback and feature requests
Note: Error tracking data sent to Sentry may contain phone numbers or contact names if they were visible on screen when an error occurred.
Voice Notes
- Record and store voice notes attached to calls (stored locally only)
- Note: We do not record phone calls. The RECORD_AUDIO permission is used exclusively for the voice notes feature.
3. Data Sharing & Third Parties
Sentry (Error Tracking Service)
We share limited technical and usage data with Sentry.io for error monitoring:
- Company: Sentry.io (Functional Software, Inc.)
- Server Location: Germany (
o4510541538066432.ingest.de.sentry.io)
- Data Sent:
- Device model, OS version and app version
- Error logs and stack traces, with phone-number-shaped text redacted before sending
- User feedback submitted through the app
- Not your IP address, and not session recordings — both are disabled
- Purpose: Error monitoring, crash reporting, app stability
- Data Retention: 90 days, then automatically deleted
- User Control: crash reporting has no in-app switch. It is limited by design instead — it sends only on failure and carries none of your content.
- Privacy Policy: https://sentry.io/privacy/
- Data Processing Agreement: GDPR-compliant DPA in place
Google Analytics for Firebase (Usage Statistics)
- Company: Google LLC
- Data Sent: the fixed list of counts, categories and yes/no events described in section 1.5, plus an app-instance identifier, device model, OS version and approximate country
- Not Sent: advertising ID, Android ID (SSAID), ad personalisation or ad-storage signals, screen-view tracking, or any call, contact, note or voice note
- Purpose: understanding in aggregate where setup fails and which features are used
- Data Retention: 14 months
- User Control: Settings → Privacy → Anonymous usage stats
- Privacy Policy: https://policies.google.com/privacy
Google AdMob (Advertising, versions 2.1.0 to 2.2.0 only)
- Company: Google LLC
- Data Sent: IP address, ad and app interactions, diagnostics, and the advertising ID and app set ID, as section 1.5 lists them
- Not Sent: any call, contact, note, reminder, voice note or label
- Purpose: showing the ad in Recents, measuring it, and preventing fraud. Version 2.2.1 has no ad and sends nothing to AdMob
- User Control: your advertising ID in Android's settings, and, where the law requires it, Google's consent form (section 5)
- Privacy Policy: https://policies.google.com/privacy
- How Google uses the data: https://policies.google.com/technologies/partner-sites
Google Play Services
- Advertising ID: not collected from version 2.2.1: the permission is removed from the app manifest and collection is disabled in the analytics SDK. Versions 2.1.0 to 2.2.0 let the Google Mobile Ads SDK read it for the ad in Recents (see Google AdMob above).
- Purpose: Play Services provides the delivery and update infrastructure the app runs on
- Data Sharing: Standard Play Services telemetry, governed by Google's own privacy policy
What We DO NOT Share
- ✅ Call Logs: Never transmitted to external servers (stored locally only)
- ✅ Contacts: Never transmitted to external servers (stored locally only)
- ✅ SMS Messages: Never transmitted to external servers (sent directly to recipients)
- ✅ Voice Notes: Never transmitted to external servers (stored locally only)
- ✅ Tags & Notes: Never transmitted to external servers (stored locally only)
- ✅ Ad requests (versions 2.1.0 to 2.2.0): carry no call, contact, note, reminder, voice note or label. Version 2.2.1 makes none
We do not sell, rent or trade your personal information. In versions 2.1.0 to 2.2.0, the ads SDK shares the device information above with Google so that the ad can be shown and measured.
4. Data Storage & Security
Local Storage
All core app data is stored locally on your device:
- Call logs, tags, notes, reminders: Stored using AsyncStorage (encrypted at Android OS level)
- Voice notes: Stored in device file system (private app directory)
- Contact cache: Maintained in device memory (up to 1,000 contacts, cleared when app closes)
External Data Transmission
Data leaves your device in three ways: crash reports to Sentry.io, anonymous usage statistics to Google Analytics for Firebase, and the update check (section 1.5). Versions 2.1.0 to 2.2.0 add a fourth, the ad requests of the Google Mobile Ads SDK. None of them carries your calls, contacts, notes, reminders or voice notes. All of them use HTTPS.
Security Measures
Technical Safeguards:
- IP Address Leak Prevention: Validates phone numbers to reject private IP address patterns (192.168.x.x, 10.x.x.x, 172.16.x.x)
- Phone Number Sanitization: Removes all special characters before initiating calls
- Emergency Call Bypass: Routes emergency numbers (911, 999, 112, etc.) directly through system dialer
- HTTPS Encryption: All external data transmission uses encrypted connections
- OS-Level Encryption: Local data storage uses Android's built-in encryption
Permission Validation:
- All sensitive permissions are requested at runtime with clear explanations
- We check permissions before accessing sensitive features
- Graceful feature degradation if permissions are denied
Read-Only Contact Access:
- We only read contact information; we never modify existing contacts
- Contact creation/editing uses Android's native contact screens (under your control)
5. Your Privacy Rights & Controls
Permission Management
You have full control over app permissions:
- Runtime Permissions: All sensitive permissions (calls, contacts, SMS, audio) are requested when first needed
- Revoke Permissions: Disable any permission in Android Settings → Apps → Contacto → Permissions
- Granular Control: Enable only the permissions needed for features you want to use
Default Dialer Role (Optional)
Setting CallMinder as your default phone app is entirely optional:
- Grants Access To: ALL incoming and outgoing calls system-wide (not just app-initiated calls)
- Enables Features: Custom incoming call screen, system-wide call analytics, quick actions during any call
- How to Enable: Settings → Default apps → Phone app → CallMinder
- How to Disable: Settings → Default apps → Phone app → Select another dialer
- No Penalty: All core features work without being the default dialer
SMS Quick Replies
- Requires
SEND_SMS permission
- Only sends messages when you explicitly tap "Send"
- Uses predefined template messages (no free-form SMS sending)
- Permission can be revoked in Android settings
Usage Statistics Opt-Out
You can switch off anonymous usage statistics at any time:
- Open Contacto
- Go to Settings → Privacy
- Toggle off "Anonymous usage stats"
When disabled, collection stops inside the Google Analytics SDK itself — events are not queued up and sent later.
An earlier version of this policy described a "Settings → Privacy → Error Reporting" switch. No such switch exists. Crash reporting is constrained by design instead: it transmits only when the app has actually failed, it carries no IP address and no screen recording, and error text is redacted before it leaves the device. If you would prefer an off switch for it as well, please write to us.
Ads and your consent (versions 2.1.0 to 2.2.0)
- Version 2.2.1 has no ads, so it shows no consent form and has no Ad privacy row. The rest of this part is about versions 2.1.0 to 2.2.0.
- In the European Economic Area, the United Kingdom and Switzerland, Google's consent form asks you once, when Contacto opens after your first note or label, how your data may be used for ads. It is Google's own form, certified for this purpose. It's in English on phones set to Arabic, because Google doesn't offer it in Arabic.
- To change your answer, open Settings → Privacy → Ad privacy in Contacto. The row appears wherever Google's form requires a way back to it.
- Everywhere, you can reset or delete your advertising ID, or opt out of ad personalisation, in Android's settings (Settings → Privacy → Ads).
- "Anonymous usage stats" governs usage statistics only. Ads have their own controls, above.
Data Deletion
- Local Data: Uninstalling the app permanently deletes all locally stored data (call logs, notes, tags, voice recordings)
- Sentry Data: Automatically deleted after 90 days of retention
- Request Deletion: Contact us at contactoapphelp@gmail.com to request immediate deletion of error tracking data
6. Children's Privacy
CallMinder is not directed to children under the age of 13. We do not knowingly collect personal information from children under 13.
- If we become aware that a child under 13 has provided us with personal information, we will delete such information immediately
- Parents or guardians who believe their child has provided information to us should contact us at contactoapphelp@gmail.com
- If you are under 13, please do not use CallMinder or provide any information through the app
7. International Data Transfers
Sentry Data (Germany)
Error tracking data is transmitted to Sentry.io servers located in Germany:
- Server Location: European Economic Area (EEA)
- Compliance: GDPR-compliant data processing agreements in place
- Data Protection: EU data protection standards apply
- Transfer Mechanism: Standard Contractual Clauses (SCCs) for international transfers
Google Play Services
Usage statistics, and in versions 2.1.0 to 2.2.0 ad data, processed by Google may be transferred internationally according to Google's privacy policies:
8. Your Legal Rights
Under GDPR (European Union / EEA Users)
If you are located in the EU or EEA, you have the following rights:
- Right to Access: Request a copy of the personal data we hold about you (Sentry data only)
- Right to Rectification: Request correction of inaccurate or incomplete data
- Right to Erasure ("Right to be Forgotten"): Request deletion of your personal data
- Right to Restrict Processing: Request that we limit how we use your data
- Right to Data Portability: Request a copy of your data in a machine-readable format
- Right to Object: Object to our processing of your personal data
- Right to Withdraw Consent: withdraw consent for usage statistics (Settings → Privacy → Anonymous usage stats) at any time, and in versions 2.1.0 to 2.2.0 for ads (Settings → Privacy → Ad privacy).
To exercise these rights, contact us at contactoapphelp@gmail.com with the subject line "GDPR Data Request."
Under CCPA (California Residents)
If you are a California resident, you have the following rights:
- Right to Know: Request information about personal data we collect, use, and disclose
- Right to Delete: Request deletion of your personal information
- Right to Opt-Out: Opt-out of the "sale" of personal information (note: we do not sell personal information)
- Right to Non-Discrimination: We will not discriminate against you for exercising your privacy rights
To exercise these rights, contact us at contactoapphelp@gmail.com with the subject line "CCPA Data Request."
For All Users
Regardless of location, you can:
- Revoke Permissions: In Android Settings → Apps → Contacto → Permissions
- Control What Is Sent: Settings → Privacy → Anonymous usage stats (crash reporting has no switch; see section 5)
- Delete Local Data: By uninstalling the app
- Turn Off Usage Statistics: In Settings → Privacy → Anonymous usage stats
- Contact Us: For any privacy concerns or questions
9. Data Retention
Local Data (On Your Device)
- Call Logs, Tags, Notes, Voice Recordings: Retained until you delete them manually or uninstall the app
- Contact Cache: Cleared when app is closed (not permanently stored)
External Data (Sentry)
- Error Logs: Retained for 90 days, then automatically deleted. There are no session recordings.
- User Feedback: Retained for 90 days, then automatically deleted
Usage Statistics (Google Analytics)
- Event data: Retained for 14 months
Advertising ID
- Not collected from version 2.2.1, so nothing is retained. In versions 2.1.0 to 2.2.0, held by Google under its privacy policy, not by us. Reset or delete it in Android's settings.
10. Changes to This Privacy Policy
We may update this Privacy Policy from time to time to reflect changes in our practices, app features, or legal requirements.
How We Notify You:
- App Update Notes: Major changes will be highlighted in Google Play Store update descriptions
- In-App Notification: Significant privacy changes may trigger an in-app notice on first launch after update
- Effective Date: Always displayed at the top of this document ("Last Updated" date)
Your Acceptance:
- Continued use of CallMinder after privacy policy changes constitutes acceptance of the updated policy
- If you do not agree with changes, you should stop using the app and uninstall it
Policy Location:
12. Technical Details & Transparency
Permissions Summary
Here's a complete list of sensitive permissions CallMinder requests and why:
| Permission |
Purpose |
When Requested |
CALL_PHONE |
Make phone calls directly from the app |
First time you tap a number to call |
ANSWER_PHONE_CALLS |
Answer incoming calls programmatically |
When you enable advanced call features |
MANAGE_OWN_CALLS |
Manage call states and display in-call UI |
First call placed through app |
READ_CALL_LOG |
Access call history for display and analytics |
App first launch |
READ_PHONE_STATE |
Monitor phone state changes |
When dialer features are used |
SEND_SMS |
Send quick reply text messages |
First time you use quick reply feature |
READ_CONTACTS |
Display contact names with phone numbers |
App first launch |
READ_EXTERNAL_STORAGE |
Access system ringtones |
First time ringtone feature is used |
WRITE_EXTERNAL_STORAGE |
Store voice notes |
First time you record a voice note |
RECORD_AUDIO |
Record voice notes (NOT for call recording) |
First time you record a voice note |
MODIFY_AUDIO_SETTINGS |
Control call audio and ringtones |
During active calls |
AD_ID (removed from version 2.2.1) |
Not declared from 2.2.1: held out of the merged manifest, together with ACCESS_ADSERVICES_AD_ID and ACCESS_ADSERVICES_ATTRIBUTION. Versions 2.1.0 to 2.2.0 declared them, and ACCESS_ADSERVICES_TOPICS, for the ad in Recents |
Never requested |
Session Recording
Contacto does not record your screen. Session Replay is disabled on every build — both of its sampling rates are zero, so no frames are ever captured, masked or uploaded. Version 2.0 of this policy described 10%/100% capture rates and listed what such recordings would contain; that did not match the app and the description has been removed rather than reworded.
Security & Compliance
- HTTPS Encryption: All external data transmission uses TLS 1.2 or higher
- GDPR Compliant: Data processing agreements in place with Sentry.io
- CCPA: We do not sell personal information. In versions 2.1.0 to 2.2.0, the ads SDK shares device information with Google to show and measure the ad in Recents (section 3).
- COPPA Compliant: No data collection from children under 13
- Android Security: Local data encrypted at OS level (Android 6.0+)
Privacy Policy Change Log
Version 5.0 - October 1, 2026 (No ads from 2.2.1)
Major Changes:
- ✅ Version 2.2.1 removes the ad in Recents and the Google Mobile Ads SDK: no ad requests, no consent form, no Ad privacy row
- ✅ The advertising ID is not collected again from 2.2.1: its permissions are removed from the manifest, as before 2.1.0
- ✅ The Google AdMob parts now apply to versions 2.1.0 to 2.2.0 only, for anyone who hasn't updated yet
Version 4.0 - September 28, 2026 (Ads in Recents)
Major Changes:
- ✅ Disclosed Google AdMob: one ad in Recents from version 2.1.0, what the Google Mobile Ads SDK collects and shares, and that ad requests carry none of your calls, contacts or notes
- ✅ The advertising ID is now read by the ads SDK, and its permissions are declared. Version 3.0's "not collected" described the app before 2.1.0
- ✅ Added the ad controls: Google's consent form where the law requires it, Settings → Privacy → Ad privacy, and resetting the advertising ID in Android
Version 3.0 - August 30, 2026 (Usage Statistics & Disclosure Correction)
Major Changes:
- ✅ Disclosed Google Analytics for Firebase, the closed list of events it sends, and the Settings → Privacy opt-out
- ✅ Corrected: we do not collect the Google Advertising ID. The v2.0 claim that we did was wrong; the permissions are removed from the manifest and collection is disabled in the SDK
- ✅ Corrected: Sentry does not receive your IP address. The option that would attach it is off
- ✅ Corrected: there are no session recordings. The v2.0 claim of 10%/100% capture rates does not match the app, whose replay sampling is zero on every build
- ✅ Corrected: the "Settings → Privacy → Error Reporting" switch described in v2.0 does not exist. The real control is "Anonymous usage stats"
- ✅ Stated that the Android ID (SSAID), ad personalisation, ad storage and automatic screen tracking are all disabled
- ✅ Added 14-month retention for usage statistics
Version 2.0 - February 6, 2026 (Default Dialer Update)
Major Changes:
- ✅ Added default dialer role permissions and capabilities
- ✅ Disclosed Sentry error tracking with session recording (10%/100% capture rates)
- ✅ Added SMS quick reply functionality
- ✅ Disclosed Google Advertising ID collection (analytics SDK requirement)
- ✅ Added IP address leak prevention security measure
- ✅ Added user opt-out controls for error tracking
- ✅ Clarified that RECORD_AUDIO is for voice notes only (not call recording)
- ✅ Added 90-day data retention period for Sentry data
- ✅ Added SIM card information collection for multi-SIM support
- ✅ Enhanced security measures documentation
Version 1.0 - December 20, 2025
Initial Release:
- Basic call log access and display
- Contact name enrichment
- Local data storage
- Voice notes feature
📱 Where to Find This Policy:
This privacy policy was generated to comply with GDPR, CCPA, COPPA, and Google Play Store requirements.
Last reviewed and updated: October 1, 2026