Contactzilla
Android MDM Guide

Push Company Contacts to Every Android — Zero Setup Required

Use Hexnode MDM to silently deploy Contactzilla shared address books to Android devices. Contacts appear in the native contacts app with no end-user action needed.

Silent install via Managed Google Play Contacts appear in native Android app Read-only or selective label-based rollouts

How Android Deployment Differs from iOS

If you've deployed Contactzilla address books to iPhones before, the Android flow is slightly different. On iOS, contacts are pushed directly using a CardDAV configuration profile — the protocol is built into the operating system. Android doesn't include native CardDAV support, so Contactzilla uses a lightweight sync connector app that runs in the background and delivers contacts into the device's native contacts app.

The overall deployment flow has four steps: first, you generate an Android configuration file inside Contactzilla for the address book you want to deploy. Then in Hexnode, you add the Contactzilla Sync connector app from Managed Google Play, apply the address book configuration to that connector using a policy, and assign the policy to a device group. From the end user's perspective, the contacts simply appear in their native Android contacts app — no manual setup required.

This guide assumes you already use Hexnode with Android Enterprise, that Managed Google Play is configured, and that your Android devices are enrolled in a device group. The example in this walkthrough uses a device group called "Android Skyline Field Group" to control which phones receive the address book.

Create an MDM User in Contactzilla

Before generating the Android configuration file, you need to create a special MDM user in Contactzilla. In your Contactzilla dashboard, open the address book you want to deploy and click Device Connections.

Select Android from the Connection Type dropdown. The next step is to assign the connection to a team member. Contactzilla lets you assign a connection directly to any individual team member — useful for one-off setups where someone scans a QR code. But for MDM rollouts, you need a device-only account called an MDM User.

Navigate to Team Members and click Add an MDM user — device-only access. The email address field is arbitrary — you can enter anything (e.g. mdm-android@yourcompany.com). Click Add and the MDM user appears under your team members list. Head back to Device Connections and select the MDM user you just created from the dropdown.

  • Open your address book → Device Connections
  • Set Connection Type to Android
  • Go to Team MembersAdd MDM user (device-only access)
  • Enter any email address — it's arbitrary for MDM rollouts
  • Return to Device Connections and select the new MDM user

MDM users are device-only accounts specifically designed for managed rollouts. They don't consume a regular team member seat and can't log in to the Contactzilla dashboard.

Choose Access Level and Label Sync Settings

With the MDM user selected, configure the access level for end users. Leave Label Sync at the default setting. For the access level, you have three options that control what end users can do with the synced contacts.

Full Read-Only is the most popular choice for managed rollouts because it prevents any accidental changes to your master contact list. Full Read-Write gives end users the ability to edit contacts on their device, with changes syncing back. If you choose read-write, there's a handy sub-option to give editing capability while still preventing users from deleting any contacts.

Selective Read-Only is a particularly powerful option. Instead of sending the entire address book to every device, you can choose one or more labels and only contacts tagged with those labels are deployed. This lets you segment which contacts different device groups receive — for example, sending only "Field Technicians" contacts to field devices.

  • Full Read-Only — prevents accidental edits to master contacts (most common for MDM)
  • Full Read-Write — users can edit contacts; optional toggle to prevent deletions
  • Selective Read-Only — deploy only contacts matching specific labels
  • Set the number of device connections to match your rollout size
  • Click Create to generate the connection

Selective Read-Only is ideal when different teams need different subsets of your address book. Create separate device connections with different label filters for each device group.

Download the Android Configuration File

After creating the device connection, click Setup under the new connection entry. Then click Download the Android profile. This downloads a JSON configuration file that contains all the credentials and settings the Contactzilla Sync app needs to connect to your address book.

The JSON file contains several key fields you'll need later when configuring the managed app in Hexnode: the Organization name (your Contactzilla team name), an Email Address, a Password, and an Account Name (which corresponds to your address book name). Keep this file open — you'll copy values from it into Hexnode's managed configuration screen in a later step.

  • Click Setup under the device connection
  • Click Download the Android profile to get the JSON file
  • The JSON contains: Organization, Email, Password, and Account Name
  • Keep the JSON file accessible — you'll paste values into Hexnode shortly

Add Contactzilla Sync from Managed Google Play

Switch to your Hexnode console. Navigate to Apps in the main menu, click the Add Apps dropdown, and select Managed Google Apps. In the search field, type contactzilla sync and find the Contactzilla Sync app in the results.

Click through to the app listing and choose Select. The app is now available in your Hexnode console but is not yet installed on any devices. Installation happens through a policy, which you'll create in the next step.

At this stage, Contactzilla Sync is simply registered in your app catalog — think of it as making the app available for deployment rather than actually deploying it.

  • Navigate to AppsAdd AppsManaged Google Apps
  • Search for contactzilla sync
  • Click through and choose Select to add it to your console
  • The app is now in your catalog but not installed on any devices yet

Create the App Installation Policy

Now create a policy to push the app to devices. Go to Policies and click New Policy. Select Create a fully custom policy and give it a descriptive name like Contactzilla install sync app.

Switch to the Android tab and scroll down to the App Management section. Click on Required Apps and then Configure. Optionally, tick the checkbox for Remove apps from device on policy removal — this ensures that if the policy is deleted or a device is removed from the group, the Contactzilla Sync app is automatically uninstalled. Then click the Add App dropdown, select Add App, search for Contactzilla, select it, and click Done. The app should now appear in the required apps list.

Next, still under App Management, open App Permissions and click Configure, then Add New App Permission. Find Contactzilla Sync in the list and click Select. On the permissions screen, leave most permissions at their default values. You only need to allow three specific permissions: set Read your contacts to Allow, Modify your contacts to Allow, and Send push notifications to Allow. Leave all other permissions on Default. Click Done and then Save.

  • PoliciesNew PolicyCreate a fully custom policy
  • Name it descriptively (e.g. Contactzilla install sync app)
  • Android tab → App ManagementRequired AppsConfigure
  • Optional: tick Remove apps from device on policy removal
  • Add App → search ContactzillaSelectDone
  • Open App PermissionsConfigureAdd New App Permission
  • Set Read your contactsAllow
  • Set Modify your contactsAllow
  • Set Send push notificationsAllow
  • Leave all other permissions on Default

Enabling "Remove apps from device on policy removal" is optional but recommended — it provides clean uninstallation if a device leaves the group or the policy is retired.

Assign the Installation Policy to a Device Group

With the app and permissions configured, assign this policy to your target device group. Switch to the Policy Targets tab at the top of the policy editor. Select Device Groups from the left sidebar and click Add Device Groups.

Find your Android device group in the list — you can browse through pages or use the search bar at the top. Tick the checkbox next to your device group and click OK. The group should now appear in the targets list.

Click Save in the top right corner and confirm the prompt that appears. At this point, the Contactzilla Sync app will automatically install on all devices in the selected group with the correct permissions applied. However, the app doesn't yet know which address book to sync — that requires a second policy.

  • Switch to the Policy Targets tab
  • Select Device Groups from the left sidebar
  • Click Add Device Groups and find your Android group
  • Tick the checkbox and click OK
  • Click Save in the top right and confirm the prompt

Create the Address Book Configuration Policy

Now create a second policy to configure which address book the sync app should connect to. Go back to Policies, click New Policy, and again select Create a fully custom policy. Name it something like Contactzilla deploy address books Android.

Switch to the Android tab, scroll down to App Management, and this time open App Configuration and click Configure. Click Add New Configuration and select Contactzilla Sync from the app list.

You'll see the managed configuration screen with several fields. Leave the proxy fields (Proxy Type, Proxy Host, Proxy Port) as they are. You can optionally change the default sync interval — for example, setting it to 30 will make Contactzilla Sync refresh every 30 minutes instead of the default interval.

Now open the JSON file you downloaded from Contactzilla earlier. Map the fields as follows: paste the Organization value from the JSON into the Organization field (this is your Contactzilla team name, e.g. Skyline Development Group). Enter the same value into Managed By. Copy the Email Address from the JSON file and paste it into the email field. Copy the Password value (the text within the quote marks) into the password field. Finally, copy the Account Name from the JSON — this is the name of your address book. Leave everything else as-is, scroll to the bottom, and click Done, then Add.

  • PoliciesNew PolicyCreate a fully custom policy
  • Name: Contactzilla deploy address books Android
  • Android tab → App ManagementApp ConfigurationConfigure
  • Add New Configuration → select Contactzilla Sync
  • Leave Proxy Type, Proxy Host, Proxy Port unchanged
  • Optional: set sync interval to 30 for 30-minute refresh
  • Organization field → paste team name from JSON (e.g. Skyline Development Group)
  • Managed By → same value as Organization
  • Email Address → copy from JSON file
  • Password → copy from JSON file (within quote marks)
  • Account Name → copy from JSON file (this is your address book name)
  • Click DoneAdd

Double-check that you're copying the password value within the quote marks from the JSON file, not including the quotes themselves. A mistyped credential will cause a silent sync failure.

Assign the Configuration Policy and Verify

The final step is to assign this configuration policy to the same device group. Follow the exact same steps as with the installation policy: switch to the Policy Targets tab, select Device Groups, add your Android device group, and click Save.

Once both policies are applied, the Contactzilla Sync app installs silently on all devices in the group, connects to your address book using the managed configuration credentials, and begins syncing contacts into the native Android contacts app. End users don't need to do anything — the contacts simply appear.

To verify the deployment, open the native Contacts app on any enrolled Android device. You should see the shared contacts from your Contactzilla address book listed alongside any existing device contacts. The sync connector runs in the background and refreshes at the configured interval.

  • Switch to Policy TargetsDevice Groups → add your group → Save
  • Both policies (install + config) must target the same device group
  • Contacts appear automatically in the native Android Contacts app
  • No end-user action required — fully silent deployment
  • Verify by opening the Contacts app on an enrolled device

Frequently Asked Questions

Why does Android need a sync connector app when iOS doesn't?
iOS has native CardDAV support built into the operating system, so contacts can be deployed directly using a configuration profile. Android doesn't include CardDAV support, so Contactzilla uses a lightweight sync connector app that runs in the background and delivers contacts into the native contacts app.
What's the difference between an MDM user and a regular team member in Contactzilla?
An MDM user is a device-only account designed specifically for managed rollouts. The email address is arbitrary and the account can't log into the Contactzilla dashboard. Regular team members can scan a QR code to set up their own device individually, but for MDM deployments, MDM users provide a shared credential that works across all devices in a group.
Can I deploy different contacts to different device groups?
Yes. Use the Selective Read-Only access level when creating the device connection in Contactzilla. This lets you choose one or more labels, and only contacts tagged with those labels are deployed. Create separate device connections with different label filters and separate Hexnode policies for each device group.
Why do I need two separate Hexnode policies instead of one?
The first policy handles app installation (adding Contactzilla Sync as a required app with the correct permissions). The second policy handles app configuration (telling the sync app which address book to connect to using the credentials from the JSON file). Splitting them gives you flexibility — for example, you could apply different address book configurations to different groups while using the same installation policy.
Which app permissions are required for Contactzilla Sync?
You need to set three permissions to Allow in the Hexnode app permissions policy: Read your contacts, Modify your contacts, and Send push notifications. All other permissions should be left on their Default setting. Without these permissions, the sync connector cannot read or write to the device's native contacts database.
What happens to contacts if I remove a device from the policy group?
If you enabled the 'Remove apps from device on policy removal' option when configuring the required apps policy, the Contactzilla Sync app will be automatically uninstalled when a device is removed from the group or the policy is deleted. The synced contacts will also be removed from the device's contacts app since they were managed by the sync connector.

Ready to supercharge your contact book?

Grow sales and stay organized with better contact management for your team.

No credit card required • 14-day free trial

Contactzilla contact management dashboard on a laptop