Zum Inhalt springen
  • Blog
  • Cookie Policy (EU)
  • Datenschutzerklärung
  • EBF Docs
  • EBF Onboarder 3.0
  • Onboarder Source and Target
  • Test
  • Diese Website durchsuchen

    EBF product documentation

    Find help using and administering EBF applications

    EBF Contacts

    • Release Notes
    • 01. What is EBF Contacts
    • 02. Requirements and Configuration
    • 03. Get EBF Contacts up and running in few steps
    • 04. App usage by end user
    • 05. Contact
    View Categories
    • Home
    • EBF Docs
    • EBF Contacts

    02. Requirements and Configuration

    11 min read

    02.1. Minimum system version

    EBF Contacts supports the following operating systems:

    • iPhone and iPad: iOS / iPadOS 18 or later
    • Android devices: Android 13 or later
      • Starting with EBF Contacts version 3.2.0, the app requires iOS 26.

    Recommended Setup

    • Keep devices updated to the latest supported OS version.
    • Use a supported UEM (Unified Endpoint Management) solution such as:
      • Microsoft Intune
      • Ivanti / MobileIron
      • Jamf
      • Blackberry
      • Workspace One

    02.2. Caller Identification

    EBF Contacts can identify incoming callers on:

    • iPhones
    • Android phones
    • Android tablets

    Important Requirements

    To make caller identification work correctly:

    • Store all phone numbers in international format.
    • Include the country code.

    Example Germany: +49 221 474550

    Best Practices

    • Avoid local-only numbers such as 0221 474550.
    • Use one consistent number format across all data sources.
    • Verify imported contacts before large deployments.

    02.3. AppConfig

    It is mandatory for EBF Contacts to receive an AppConfig or a Managed-AppConfig from an UEM System (e.g. MobileIron/Ivanti, Microsoft Intune, Jamf). The AppConfig can/must contain the following key/value pairs, where all values are of type „string“:

    Required parameters

    Showing 6 parameters

    Defines the customer or company name displayed in the app configuration.

    Type
    String
    Example
    EBF GmbH
    Notes
    Mandatory for all deployments.

    Defines the customer license key.

    Type
    String
    Example
    97MtLkThSDF…
    Notes
    Contains an expiration date. The app displays an error after expiration. Contact the EBF Sales team for valid keys.

    Defines how many devices may use the app.

    Type
    Enum
    Example
    150
    Notes
    Match this value to the licensed device count.

    Defines the Exchange On-Premise server URL or Microsoft 365 Azure Application ID.

    Type
    URL String
    Example
    https://my-exchange-server.com
    610fc6a9-2659-842e-8733-5ceb3aeda4ac
    Notes
    Exchange requires a full HTTPS URL including protocol. Microsoft 365 requires an Azure Application ID.

    Defines the HubSpot private application token.

    Type
    String
    Example
    pat-eu1-xxxxxxxx
    Notes
    Create a private HubSpot app with the permission crm.objects.contacts.read.

    Defines the downloadable ZIP archive containing CSV or JSON files.

    Type
    URL
    Example
    https://my-server.com/ContactsExport.zip
    Notes
    ZIP files must use HTTPS and contain valid CSV or JSON files.

    No parameters match your search.

    Microsoft 365 Authentication Methods

    Showing 2 authentication methods

    User Login AuthenticationDelegated

    Users sign in with Azure AD username and password.

    Best Use Case
    Use when users need personal contacts synchronization.
    Permissions
    Delegated: Contacts.Read, User.Read, User.ReadBasic.All, User.Read.All
    Limitations
    Users must authenticate manually.
    Anonymous AuthenticationApplication

    The app authenticates with an Azure Application ID and secret. Users do not sign in manually.

    Best Use Case
    Use for easier onboarding, kiosk devices, or users without Azure AD accounts.
    Permissions
    Application: Contacts.Read, User.Read.All
    Limitations
    Cannot combine with readPersonalContacts. Secrets require regular renewal.

    Azure App Registration Requirements

    Showing 4 requirements

    Tenant Type

    Depends on deployment type and tenant parameter usage.

    Required Value
    Multitenant or Single Tenant
    iOS Redirect URL

    Configure as Public / Native Client redirect URI.

    Required Value
    msauth.de.ebf.contacts://auth
    Android Redirect URL

    Configure as Public / Native Client redirect URI.

    Special characters like "+", "/" or "=" may show encoded (e.g. "%2B") in the Azure UI. This is by design.

    Required Value
    msauth://de.ebf.contacts/bX7u+szRPaxp7M/Ux+hz8esKB7I=
    ADFS Requirement

    Required for successful Azure authentication on devices using ADFS.

    Required Value
    Forms-Based Authentication enabled

    Common Optional Parameters

    Showing 39 parameters

    Reads specific Exchange address lists instead of the default GAL.

    Type
    JSON
    Default
    N/A
    Notes
    Requires useFindPeople=true.

    Merges phone numbers from matching contacts across multiple data sources.

    Type
    Boolean
    Default
    false
    Notes
    Recommended only for environments with 5,000 contacts or fewer.

    Allows users to copy phone numbers and email addresses.

    Type
    Boolean
    Default
    true
    Notes
    Disabling this also disables exportContact.

    Allows custom SSL certificates.

    Type
    Boolean
    Default
    false
    Notes
    Use only with trusted certificates.

    Changes the displayed app title.

    Type
    String
    Default
    EBF Contacts
    Example
    Acme Directory
    Notes
    Useful for company branding.

    Controls which contact fields appear during incoming calls.

    Type
    JSON
    Default
    Built-in default
    Example
    {
      "givenName": -1,
      "surname": -1,
      "jobTitle": 10,
      "department": 10,
      "companyName": 18,
      "custom1": "(",
      "officeLocation": 15,
      "custom2": ")"
    }
    Notes
    Supports givenName, surname, jobTitle, department, companyName, and officeLocation.

    When changing this parameter in an existing installation all users must do a "Clear local data" or "logout" to start with a fresh caller directory.

    Disables AppConnect handling when opening the native mail client from EBF Contacts.

    Type
    Boolean
    Default
    false
    Notes
    Recommended if users experience issues or error messages when opening the native mail client from EBF Contacts while AppConnect is enabled. Often used together with the mailClient parameter for troubleshooting email integration problems.

    Allows only part of the contact fields to be synchronized to the ContactProvider Extension.

    Type
    String
    Default
    N/A
    Example
    JobTitle, MailJobTitle, CompanyName, Department, Mail
    Notes
    By default the display name and all phone numbers are always synchronized. You can decide whether the other four fields — JobTitle, CompanyName, Department, and Mail — are also moved to the ContactProvider Extension.

    Disables the requirement for users to create and enter an encryption password when starting EBF Contacts.

    Type
    Boolean
    Default
    false
    Notes
    Even when this parameter is enabled, EBF Contacts still encrypts contact data stored on the device. This setting only removes the user password prompt during app startup.

    Disables the notification feature that will notify the user when the sync interval expired. The notification allows jumping to the app to trigger the sync process.

    Type
    Boolean
    Default
    false
    Notes
    User needs to start the app regularly to get updates when notification is deactivated.

    Defines how long the app waits before sending another request to the Exchange On-Premise server after a failed request.

    Type
    String
    Default
    15000
    Example
    30000
    Notes
    Helps reduce server load and repeated failed requests in unstable network environments. Increase this value if the Exchange server rate-limits or temporarily blocks requests after failures.

    Enables Microsoft 365 delta synchronization.

    Type
    Boolean
    Default
    true
    Notes
    Downloads only changed contacts after the first sync.

    Enables the iOS ContactProvider Extension instead of the default CallKit extension. When enabled, EBF Contacts synchronizes contact data with the native iOS Contacts framework. This allows users to search contacts in the native Contacts app and CarPlay, resolve contact names in iMessage and SMS, start calls using Siri, and access contacts in the iPad Contacts app.

    Type
    Boolean
    Default
    false
    Notes
    Supports approximately 25,000 contact entries. Administrators should disable the restriction "Allow documents from managed apps to unmanaged apps" to prevent contact data leakage to unmanaged apps.

    Known issue in iOS 26.x: removing the EBF Contacts app does not automatically remove synchronized contacts from the iOS Contacts app. Users must disable the ContactProvider Extension in the app settings before uninstalling the app. Apple fixed this issue in iOS 26.4.

    Lets the admin limit which data sources are pushed to the ContactProvider Extension.

    Type
    JSON
    Default
    All data sources will be synchronized
    Example
    {
      "O365": [
        "GAL",
        "PersonalContacts",
        "OrganizationContacts"
      ],
      "HubSpot": [],
      "Zip": [],
      "ExchangeOnPremise": []
    }
    Notes
    For O365 you can remove single groups like GAL, PersonalContacts or OrganizationContacts.

    For ZIP you can put each CSV/JSON file in the list to have only single data files synchronized. Example: "Zip": ["file1.csv", "file2.json"]

    HubSpot and Exchange On-Premise sources can only be enabled or disabled completely.

    Defines the password policy for the local encryption password used in EBF Contacts. Administrators can enforce password length and complexity requirements for users.

    Type
    JSON
    Default
    No policy enforced
    Example
    {
      "MaxLength": 16,
      "MinLength": 8,
      "Complexity": 2
    }
    Notes
    Supports password complexity rules based on character classes: uppercase letters, lowercase letters, numbers, and special characters.

    Complexity values:
    0 = No complexity requirements
    1 = At least 2 character classes (uppercase, lowercase, numbers, or special characters)
    2 = At least 3 character classes (uppercase, lowercase, numbers, or special characters)
    3 = All character classes required (uppercase, lowercase, numbers, and special characters)

    Encrypts synchronized user profile images stored on the device.

    Type
    Boolean
    Default
    true
    Notes
    Recommended for environments with strict security or compliance requirements. When enabled, EBF Contacts encrypts all cached user images locally on the device.

    Allows exporting contacts to the personal address book.

    Type
    Boolean
    Default
    false
    Notes
    Requires allowCopy=true and enableContactProvider=false.

    Imports all contact entries from the ZIP archive, including entries with duplicate or missing email addresses. By default, EBF Contacts only imports ZIP entries with a unique email address.

    Type
    Boolean
    Default
    false
    Notes
    Even when enabled, Caller ID can only assign each phone number once. Use this parameter carefully — duplicate contacts may appear in the app.

    Enables additional debug logging.

    Type
    Enum
    Default
    Disabled
    Example
    debug
    Notes
    Users can export logs from the Settings screen.

    Defines which email application EBF Contacts uses when a user selects the "Send Email" action from a contact.

    Type
    Enum
    Default
    Native mail app
    Example
    MSOutlookEmailPlusBlackBerryWorkBoxerWorkspaceONE
    Notes
    If the parameter is empty or missing, EBF Contacts uses the native Mail app on iOS and Gmail on Android. In iOS environments using AppConnect, administrators may need to enable closeAppConnect=true if users experience issues opening the native mail client.

    Changes Microsoft 365 sync package size.

    Type
    String
    Default
    100
    Example
    500
    Notes
    Works only when deltaEnabled=false.

    Enables anonymous Microsoft 365 authentication.

    Type
    String
    Default
    N/A
    Notes
    Cannot be combined with readPersonalContacts.

    Defines a custom Microsoft Graph filter for synchronizing Microsoft 365 contacts. Administrators can use this parameter to override the default EBF Contacts filtering behavior.

    Type
    String
    Default
    N/A
    Example
    proxyAddresses/any(x:startswith(x,'smtp:'))
    and UserType eq 'Member'
    and AccountEnabled eq true
    and ShowInAddressList ne false
    Notes
    Requires deltaEnabled=false. If enabled, EBF Contacts downloads all contacts and applies the filter locally. Incorrect filters may exclude valid users from synchronization.

    Defines how many parallel requests EBF Contacts sends to the Exchange On-Premise server during synchronization.

    Type
    String
    Default
    20 (useFindPeople=false) / 10 (useFindPeople=true)
    Example
    15
    Notes
    Increasing this value may improve synchronization speed but can increase server load. Lower values may improve stability in restricted or slower environments.

    Defines the Exchange password used for authentication.

    Type
    String
    Default
    N/A
    Notes
    Not recommended for standard user deployments. Intended mainly for technical or shared service accounts. Store securely in the UEM configuration.

    Provides a compressed synchronization optimization string for large Exchange On-Premise environments. This parameter helps EBF Contacts retrieve all contacts more efficiently when Exchange query limits apply.

    Type
    String
    Default
    N/A
    Notes
    EBF Contacts generates this value automatically after the first full synchronization. Administrators can distribute the generated string to other users to improve initial synchronization performance.

    Defines the primary color used for buttons and UI highlights in EBF Contacts.

    Type
    Hex
    Default
    #2494C5
    Example
    #1271C5
    Notes
    Use standard hexadecimal color values (example: #FF0000 for red). Useful for company branding and custom app styling.

    Enables synchronization of Microsoft 365 organization contacts. Organization contacts usually contain externally managed company contacts maintained by administrators.

    Type
    Boolean
    Default
    false
    Notes
    Requires the Azure application permission OrgContact.Read.All. Delta synchronization is automatically disabled for organization contacts because Microsoft Graph does not return phone numbers through the delta API in this case.

    Enables synchronization of users' personal contacts stored in their Exchange or Microsoft 365 mailbox.

    Type
    Boolean
    Default
    false
    Notes
    Personal contacts are user-managed external contacts. This parameter cannot be used together with office365Secret because anonymous authentication does not support personal contacts. In Exchange On-Premise environments, this feature may fail if "Extended Protection" blocks REST API communication.

    Defines how long EBF Contacts waits for a server response before cancelling an API request.

    Type
    String
    Default
    15
    Example
    30
    Notes
    Increase this value for slow network connections or overloaded Exchange servers. Lower values may improve responsiveness but can cause synchronization failures in unstable environments.

    Defines the minimum number of characters a user must enter before the app starts searching contacts.

    Type
    String
    Default
    3
    Example
    2
    Notes
    Increasing this value can improve search performance and reduce server or device load in environments with very large contact databases. For example, a value of 3 starts searching after the user enters three characters.

    Filters synchronized contacts by Azure AD group.

    Type
    JSON
    Default
    All contacts
    Example
    {
      "values": ["HR Team", "DEV Team"]
    }
    Notes
    Maximum 15 groups. Requires Group.Read.All permission.

    Controls which settings users can view, change, or use inside EBF Contacts. Administrators can enable or disable features and decide whether users may modify those settings themselves.

    Type
    JSON
    Default
    N/A
    Example
    {
      "showUserImageAllowed": true,
      "showUserImageActivated": true,
      "showUserImageOnlyInDetailAllowed": true,
      "showUserImageOnlyInDetailActivated": false,
      "biometricsAllowed": false,
      "biometricsActivated": true,
      "synchronizationAllowed": false,
      "synchronizationActivated": true,
      "mobileDataAllowed": false,
      "mobileDataActivated": true,
      "standardCallAllowed": true,
      "faceTimeCallAllowed": true,
      "teamsCallAllowed": true,
      "teamsVideoCallAllowed": true,
      "syncIntervalAllowed": false,
      "autoSyncIntervalIndex": 3
    }
    Notes
    All JSON keys must be included in the configuration. Missing values may cause unexpected behavior. Supports settings for user images, biometrics, synchronization, mobile data usage, calling options, and synchronization intervals.

    Supported keys:
    showUserImageAllowed — Allows users to enable or disable user images
    showUserImageActivated — Enables or disables user images
    showUserImageOnlyInDetailAllowed — Allows users to show images only in detail view
    showUserImageOnlyInDetailActivated — Enables showing images only in detail view
    biometricsAllowed — Allows users to enable or disable Face ID / Touch ID
    biometricsActivated — Enables or disables biometric login
    synchronizationAllowed — Allows users to enable or disable synchronization
    synchronizationActivated — Enables or disables synchronization
    mobileDataAllowed — Allows users to enable or disable mobile data usage
    mobileDataActivated — Enables or disables mobile data synchronization
    standardCallAllowed — Allows standard phone calls
    faceTimeCallAllowed — Allows FaceTime calls
    teamsCallAllowed — Allows Microsoft Teams audio calls
    teamsVideoCallAllowed — Allows Microsoft Teams video calls
    syncIntervalAllowed — Allows users to change synchronization intervals
    autoSyncIntervalIndex — Defines the synchronization interval: 0 = every 8 hours, 1 = every 24 hours, 2 = every 48 hours, 3 = every 7 days

    Displays business address information for personal contacts in the contact details view.

    Type
    Boolean
    Default
    false
    Notes
    When enabled, EBF Contacts shows available business address information for synchronized personal contacts.

    Shows Microsoft 365 user presence information.

    Type
    Boolean
    Default
    false
    Notes
    Requires Presence.Read.All permission.

    Defines the Microsoft 365 tenant.

    Type
    String
    Default
    N/A
    Example
    ebf.de31be2ebc-ba2d-49c4-a680-ffdw30h7b5ed
    Notes
    Not required for multi-tenant deployments.

    Enables an alternative Exchange On-Premise endpoint for retrieving contact data.

    Type
    Boolean
    Default
    false
    Notes
    Required when using the addressListIds parameter to filter specific address lists. When enabled, EBF Contacts uses the Exchange "FindPeople" API, which supports up to 1,000 results per request instead of the standard 100-result EWS limit. The default onPremRequestCount also changes from 20 to 10.

    Prefills the username field for Exchange login or identifies the user when authentication does not use personal credentials.

    Type
    String
    Default
    N/A
    Example
    john.doe@company.com
    Notes
    Can simplify user onboarding by pre-filling the login screen. This parameter is also required to enable the QR code feature when using authentication methods without user credentials, such as office365Secret, HubSpot, or ZIP data sources. Use the user's email address so EBF Contacts can correctly identify the user.

    Defines the ZIP archive password.

    Type
    String
    Default
    N/A
    Notes
    Supports ZipCrypto encryption only.

    No parameters match your search.

    An example AppConfig XML file and plist is available below:

    <managedApplicationConfiguration>
    <version>1.7.0</version>
    <bundleId>de.ebf.contacts</bundleId>
    <dict>
    <string keyName="customerName">
    <defaultValue>
    <value>customer name</value>
    </defaultValue>
    </string>
    <string keyName="licenseKey">
    <defaultValue>
    <value>license keys</value>
    </defaultValue>
    </string>
    <string keyName="endpoint">
    <defaultValue>
    <value>Office 365 or url</value>
    </defaultValue>
    </string>
    <string keyName="tenant">
    <defaultValue>
    <value>tenant only for Office 365</value>
    </defaultValue>
    </string>
    <string keyName="licenseCount">
    <defaultValue>
    <value>license count</value>
    </defaultValue>
    </string>
    <string keyName="office365PageSize">
    <defaultValue>
    <value>999</value>
    </defaultValue>
    </string>
    <string keyName="selectedGroups">
    <defaultValue>
    <value>{ "values" : [ "Name of AD group 1", "Name of AD group 2"] }</value>
    </defaultValue>
    </string>
    <string keyName="callerIdStructure">
    <defaultValue>
    <value>{"givenName": -1,"surname": -1,"custom": "-","jobTitle": 10,"department": 10,"companyName": 18,"officeLocation": 15}</value>
    </defaultValue>
    </string>
    </dict>
    </managedApplicationConfiguration>
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
    
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    
    <plist version="1.0">
    <dict>
    <key>customerName</key>
    <string>EBF GmbH</string>
    <key>licenseKey</key>
    <string>97MtLkThSDFo39kmkj6pW/aTR20Rbj5nPiIa4IKYWB2YZ3orT8ms5rVkXLQHc9NcGLnv5ZiC172cJQsPx6Q4l/pLs=</string>
    <key>endpoint</key>
    <string>9f12e12e-ea6b-42db-8712-ea1040aa9999</string>
    <key>tenant</key>
    <string>ebf.de</string>
    <key>licenseCount</key>
    <string>200</string>
    <key>office365PageSize</key>
    <string>500</string>
    <key>selectedGroups</key>
    <string>{ "values" : [ "Name of AD group 1", "Name of AD group 2"] }</string>
    <key>callerIdStructure</key>
    <string>{"givenName": -1,"surname": -1,"custom": "-","jobTitle": 10,"department": 10,"companyName": 18,"officeLocation": 15}</string>
    </dict>
    </plist>

    02.4. Prefix Combination Explanation (Only Exchange On-Premise)

    Why This Configuration May Be Needed

    Exchange Web Services (EWS) limits the number of contact records returned in a single query. Organizations with large contact databases may need to adjust the EBF Contacts configuration to ensure the app synchronizes all contacts correctly.

    Without optimization:

    • Initial synchronization may take a long time
    • Some contacts may not appear immediately
    • Users may experience slower first-time setup

    EWS Query Limits

    EWS supports the following maximum results per query:

    • Standard mode:
      • Up to 100 records per query
    • When using the useFindPeople parameter:
      • Up to 1000 records per query

    EBF Contacts identifies records using the contact’s email address.

    Default Synchronization Behavior

    By default, EBF Contacts processes the contact database in multiple steps.

    This approach:

    • Helps avoid EWS query limits
    • Allows the app to eventually synchronize all contacts

    However, the first synchronization can take longer in environments with many contacts.

    Improving Synchronization Speed

    After the first full synchronization completes:

    1. Restart the app once
    2. Open the log file
    3. Locate the generated compressed string

    You can share this string with other users through the configuration parameter:

    prefixCombinations

    Using this parameter helps:

    • Reduce synchronization time
    • Improve first-time app setup
    • Speed up contact indexing for additional users

    Example Configuration

    prefixCombinations=fVvdmqO6rnyXdb2Tr8F20jzL/s4FSSD8Q2ySzMzTH6iysZiV3RctlQnIkl…

    Important

    • The app only accepts the compressed string format
    • Do not modify the generated value manually

    Best Practices

    • Use useFindPeople when your Exchange environment supports it
    • Perform the first synchronization with a stable internet connection
    • Share the generated prefixCombinations value with other users in the same environment
    • Restart the app after the initial synchronization completes

    Troubleshooting

    Synchronization Takes Too Long

    • Verify the number of contacts in the Exchange environment
    • Enable useFindPeople if available
    • Confirm network connectivity and server response times

    Some Contacts Are Missing

    • Check that contacts contain valid email addresses
    • Verify that Exchange returns the expected records
    • Review existing contact filtering rules

    prefixCombinations Does Not Work

    • Confirm that the full compressed string was copied correctly
    • Make sure the value was added exactly as generated
    • Do not add spaces or line breaks

    02.5. Default filtering behavior on synchronisation of contacts data

    EBF Contacts automatically filters contact records during synchronization.

    The app only displays contacts that match the required rules.

    Office 365 (O365) Filtering Rules

    A contact appears in EBF Contacts only if all of the following conditions are true:

    • The contact uses the user type member
    • The related user account is enabled
    • The showInAddressList attribute is:
      • empty (null), or
      • set to true
    • The contact includes at least one of these:
      • email address
      • mobile phone number
      • business phone number

    Important
    The app does not synchronize private phone numbers

    Custom Filtering

    Administrators can override the default filter by using the configuration parameter:

    office365UserFilter

    Exchange On-Premise Filtering Rules

    A contact appears in EBF Contacts only if:

    • “Hide from Address Lists” is disabled
    • The contact includes at least one of these:
      • email address
      • mobile phone number
      • business phone number

    Important
    The app does not synchronize private phone numbers

    Troubleshooting

    If contacts are missing:

    1. Verify that the user account is enabled
    2. Check the showInAddressList setting
    3. Confirm that the contact contains a supported phone number or email address
    4. Review custom filter settings
    5. Run a manual synchronization

    02.6. Filtering via selectedGroups (only O365)

    EBF Contacts can filter contacts by Azure AD groups.

    Use the selectedGroups configuration parameter to load contacts only from selected groups.

    How It Works

    • If selectedGroups is empty or missing:
      • EBF Contacts loads all contacts
    • If selectedGroups contains group names:
      • EBF Contacts only loads contacts from those groups

    Limits

    • Maximum supported groups: 50

    Example

    {
      "values": [
        "HR Team",
        "DEV Team"
      ]
    }

    Troubleshooting

    If contacts do not appear:

    1. Confirm that the group name matches Azure AD exactly
    2. Verify that the user belongs to the selected group
    3. Check that the total number of groups does not exceed 50

    02.7. AppTunnel/VPN

    EBF Contacts uses port 443 for data synchronization.

    Security Requirements

    • Always use HTTPS connections
    • The app does not support unencrypted HTTP connections

    VPN Recommendations

    If your Exchange server requires secure internal access:

    • Use a VPN solution
    • Use your UEM platform’s VPN feature when possible

    Troubleshooting

    If synchronization fails:

    1. Confirm that the server URL starts with https://
    2. Verify that port 443 is open
    3. Check that the VPN connection is active
    4. Test access to the Exchange server from the device browser

     

    02.8. Authentication and permissions

    EBF Contacts supports these authentication methods:

    • Basic Authentication
    • NTLM Authentication

    Exchange On-Premise Requirements

    Users must have permission to access Exchange Web Services (EWS)

    Optional Technical User

    You can configure a technical user account.

    This account:

    • Must have a mailbox
    • Must have standard permissions
    • Can remain hidden from address lists

    Android Requirement

    For Exchange On-Premise on Android disable “Extended Protection” on the Exchange server

    Personal Contacts Access

    If you enable:

    readPersonalContacts

    the app also needs access to Exchange REST API.

    Troubleshooting

    If login fails:

    1. Verify username and password
    2. Confirm that EWS access is enabled
    3. Check whether “Extended Protection” is disabled for Android environments
    4. Confirm that the REST API is available when using personal contacts
    5. Review server authentication settings

    02.9. Encryption password policy

    By default, EBF Contacts does not enforce password complexity rules.

    Administrators can define password requirements through configuration settings.

    Available Character Classes

    You can require these character types:

    • Uppercase letters
    • Lowercase letters
    • Numbers
    • Special characters

    Configuration Options

    MaxLength

    Maximum password length

    MinLength

    Minimum password length

    Complexity

    0 = No complexity requirements

    1 = Password must contain at least 2 of the following: uppercase letters, lowercase letters, numbers, or special characters

    2 = Password must contain at least 3 of the following: uppercase letters, lowercase letters, numbers, or special characters

    3 = Password must contain uppercase letters, lowercase letters, numbers, and special characters

    {
      "MaxLength": 16,
      "MinLength": 3,
      "Complexity": 0
    }

    Best Practices

    • Use a minimum length of at least 8 characters
    • Require multiple character types for better security
    • Avoid short passwords in production environments

    02.10. HubSpot setup

    EBF Contacts supports synchronization of contact data from HubSpot CRM application.
    For this to work you need to create a private application in the HubSpot admin portal.
    Go to “Settings” → “Account Setup” → “Integrations” → “Private Apps”

    Create a new application and enter an application name. Then select the scope (permission): crm.objects.contacts.read


    After creating the application an Access token will be shown, that needs to be provided in the EBF Contacts configuration in the “hubSpotToken” parameter.
    Example:

    hubSpotToken=pat-eu1-xxxxxxxx-xxxxxxxx-xxxxxxxx

    Important Security Note

    • Treat the token like a password
    • Do not share the token publicly
    • Rotate the token regularly based on your company security policy

    Troubleshooting

    If synchronization fails:

    1. Verify that the token is valid
    2. Confirm that the required permission is enabled
    3. Check that the token was copied correctly
    4. Test the HubSpot connection again after saving settings

    02.11. CSV and JSON data source in ZIP archive

    EBF Contacts can import contact data from CSV or JSON files.

    Requirements

    • Store the files inside a ZIP archive
    • Upload the ZIP file to a reachable web server
    • Provide the ZIP file URL in the configuration

    Supported Security

    ZIP password protection using ZipCrypto

    Required Configuration

    Set the ZIP file URL in:

    zipURL

    Required Fields

    Each CSV or JSON file must include:

    • Display Name
    • Email Address
    • Phone Number or Mobile Phone

    Example Workflow

    1. Create CSV or JSON contact files
    2. Compress the files into a ZIP archive
    3. Upload the ZIP file to a secure web server
    4. Add the ZIP URL to the EBF Contacts configuration
    5. Add the ZIP password if required
    6. Start synchronization

    Troubleshooting

    If import fails:

    1. Verify that the ZIP URL is accessible
    2. Confirm that the ZIP file is not corrupted
    3. Check that required fields exist
    4. Verify the ZIP password
    5. Confirm that the server supports HTTPS access

    Additional Support

    EBF can help customers create:

    • PowerShell scripts
    • Export scripts
    • Valid data export files

    Please find valid JSON and CSV example files below.

    JSON

    [
        {
            "DISPLAY NAME": "Adele Vance",
            "TITLE": "Retail Manager",
            "EMAIL ADDRESS": "adele.vance@ebf.com",
            "OFFICE": "18/2111",
            "FIRST NAME": "Adele",
            "LAST NAME": "Vance",
            "DEPARTMENT": "Retail",
            "COMPANY": "EBF GMBH",
            "PHONE": "+1 425 555 2222",
            "MOBILE PHONE": "+1 425 555 3333",
          "IMAGE URL": "https://picsum.photos/200/300.jpg",
        "MANAGER EMAIL": "",
        "PHONE2": "+1 425 555 1111",
        "PHONE3": "+1 425 555 6666"
        },
        {
            "DISPLAY NAME": "Grady Archie",
            "TITLE": "Designer",
            "EMAIL ADDRESS": "grady.archie@ebf.com",
            "OFFICE": "18/2111",
            "FIRST NAME": "Grady",
            "LAST NAME": "Archie",
            "DEPARTMENT": "R&D",
            "COMPANY": "EBF GMBH",
            "PHONE": "+1 425 555 4444",
            "MOBILE PHONE": "+1 425 555 5555",
          "IMAGE URL": "https://picsum.photos/200/300.jpg",
        "MANAGER EMAIL": "adele.vance@ebf.com",
        "PHONE2": "+1 425 555 8888"
        }
    ]

     

    CSV

    "DISPLAY NAME","EMAIL ADDRESS","COMPANY","DEPARTMENT","FIRST NAME","LAST NAME","OFFICE","PHONE","MOBILE PHONE","TITLE","MANAGER EMAIL","IMAGE URL","PHONE2","PHONE3"
    "Adele Vance","adele.vance@ebf.com","EBF GmbH","Retail","Adele","Vance","18/2111","+1 425 555 2222","+1 425 555 3333","Retail Manager","","https://picsum.photos/200/300.jpg","+1 425 555 1111",""
    "Grady Archie","grady.archie@ebf.com","EBF GmbH","R&D","Grady","Archie","18/2111","+1 425 555 4444","+1 425 555 5555","Designer","adele.vance@ebf.com","https://picsum.photos/200/300.jpg","+1 425 555 7777","+1 425 555 8888"

    02.12. Android specifics

    On Android devices, EBF Contacts stores synchronized contacts inside the Android system contacts database.

    This allows caller identification for incoming calls.

    Security Requirement

    Install EBF Contacts only inside an:

    • Android Enterprise Work Profile

    This helps prevent unmanaged apps from accessing company contact data.

    Browser Requirement

    Install a browser app inside the Work Profile.

    The app needs a browser to:

    • Open the Microsoft 365 login page
    • Complete authentication

    Important Uninstallation Behavior

    Android keeps synchronized contacts in the Work Profile after app removal.

    To remove all contacts completely:

    Option 1

    Remove the entire Work Profile

    Option 2

    Before uninstalling:

    1. Open EBF Contacts
    2. Select Logout
    3. Wait for contact cleanup to finish
    4. Uninstall the app

    Troubleshooting

    If contacts remain after uninstall:

    • Confirm that the user logged out before uninstalling
    • Remove the Work Profile if cleanup did not occur

    If login pages do not open:

    • Verify that a browser exists inside the Work Profile

    Was this article useful?

    Still stuck? How can we help?

    How can we help?

    Updated on 22. September 2026
    01. What is EBF Contacts03. Get EBF Contacts up and running in few steps
    Table of Contents
    • 02.1. Minimum system version
      • Recommended Setup
    • 02.2. Caller Identification
      • Important Requirements
      • Best Practices
    • 02.3. AppConfig
      • Required parameters
      • Microsoft 365 Authentication Methods
      • Azure App Registration Requirements
      • Common Optional Parameters
    • 02.4. Prefix Combination Explanation (Only Exchange On-Premise)
      • Why This Configuration May Be Needed
      • EWS Query Limits
      • Default Synchronization Behavior
      • Improving Synchronization Speed
      • Example Configuration
      • Important
      • Best Practices
      • Troubleshooting
        • Synchronization Takes Too Long
        • Some Contacts Are Missing
        • prefixCombinations Does Not Work
    • 02.5. Default filtering behavior on synchronisation of contacts data
      • Office 365 (O365) Filtering Rules
      • Custom Filtering
      • Exchange On-Premise Filtering Rules
      • Troubleshooting
    • 02.6. Filtering via selectedGroups (only O365)
      • How It Works
      • Example
      • Troubleshooting
    • 02.7. AppTunnel/VPN
      • Security Requirements
      • VPN Recommendations
      • Troubleshooting
    • 02.8. Authentication and permissions
      • Exchange On-Premise Requirements
      • Optional Technical User
      • Android Requirement
      • Personal Contacts Access
      • Troubleshooting
    • 02.9. Encryption password policy
      • Available Character Classes
      • Configuration Options
        • MaxLength
        • MinLength
        • Complexity
      • Best Practices
    • 02.10. HubSpot setup
      • Important Security Note
      • Troubleshooting
    • 02.11. CSV and JSON data source in ZIP archive
      • Requirements
      • Supported Security
      • Required Configuration
      • Required Fields
      • Example Workflow
      • Troubleshooting
      • Additional Support
    • 02.12. Android specifics
      • Security Requirement
      • Browser Requirement
      • Important Uninstallation Behavior
        • Option 1
        • Option 2
      • Troubleshooting
    Linkedin-in Phone
    Workplace Management
    • UEM Solutions
    • Migrations
    • Services
    Modern Work Tools
    • Sync Contacts
    • Hybrid Data Management
    • Secure Mobile Printing
    • eSIM Management
    • App Management
    IT Security
    • IAM
    • Modern Threat Defense
    • Cyber Risk Management
    • Secure Development
    • Zero Trust
    • Security Check
    AI Solutions
    • AI Adoption
    • Copilot Consulting
    • EBF Insight
    • EBF Flow
    Company
    • About Us
    • References
    • Partners
    • Sustainability
    • Careers
    • Trends
    © 2026 EBF-EDV Beratung Föllmer GmbH
    • Privacy Policy
    • GTC
    • EULA
    • Imprint
    EBF Status Check