(Awaiting Approval) Configuring Nextcloud

This guide covers all the necessary configurations you must perform within your Nextcloud environment before you deploy the connector application.

Note:

The Nextcloud Exchange Connector operates as an external microservice (daemon). To successfully synchronize calendars, contacts, and tasks, the connector must securely authenticate and communicate with your Nextcloud instance via its APIs.

Step 1. Create a Nextcloud Service Account

Warning:

While you could use your primary Nextcloud administrator account, it is a strong security best practice to create a dedicated service account specifically for the connector.

  1. Log in to Nextcloud with an administrator account.

  2. Click on your profile picture in the top right corner and select Accounts.

image.png
  1. Select New account.

image.png
  1. Create a dedicated account (e.g., sync-admin) and ensure you assign it to the admin group as a member.

image.png
  1. Log in as this new sync-admin user.

  2. Navigate to Personal Settings.

image.png
  1. Navigate to Security.

  2. Under Devices & sessions, enter an app name (e.g., Exchange Connector) and click Create new app password.

image.png
  1. Securely copy the generated credentials. You will use this instead of the standard login password.

image.png

Step 2. Install the Sendent Sync App

This Nextcloud application exposes the specific API endpoints the external connector needs to communicate with Nextcloud. It also provides the User Consent UI, allowing individual Nextcloud users to opt-in or opt-out of synchronization.

  1. Log in to your Nextcloud instance as an administrator.

  2. Click on your profile picture in the top right corner and select Apps.

image.png
  1. Navigate to the Office & Text category or use the search bar to find the Sendent Exchange Sync app.

  2. Click Download and enable.

image.png

Step 3. Configure the Shared Secret

  1. Navigate to your Nextcloud Administration settings.

image.png
  1. Locate the Sendent Sync configuration section in the left sidebar.

  2. Find the Shared Secret field.

  3. Generate or input a strong, random cryptographic string (e.g., a 32-character alphanumeric string).

  4. Securely copy the Shared Secret. You will use it later on.

  5. Changes will be applied automatically.

image.png

Warning: Shared Secret Mismatch

A mismatched shared secret is the most common cause of authentication errors and failed deployments. The exact string you enter in this Nextcloud UI field must perfectly match the SharedSecret value you will configure later in your .env file.

If your generated secret contains a dollar sign ($), remember to escape it as $$ when copying it into your Docker .env file later.

If there is even a single character difference, the connector will reject all traffic from Nextcloud.

Step 4. Ensure Email Address Consistency

When the connector synchronizes data, the Microsoft Exchange Impersonation mechanism locates a user's mailbox strictly based on their email address.

You must ensure that user identities align across both platforms:

  • Verify that the email address associated with a user's Nextcloud account perfectly matches their primary SMTP email address in Microsoft Exchange.

  • If a user's Nextcloud email address differs from their Exchange address, the synchronization process for that specific user will immediately fail with an impersonation error.

Step 5. Save Credentials for Installation

You have successfully prepared your Nextcloud environment. Keep these credentials secure. Later, when you reach the Installation Guide, you will use these values to build your .env configuration file.

Configuration mapping cheat sheet

When configuring your .env file, map your Nextcloud Base URL, your service account credentials, and your Shared Secret exactly as configured below:

# The URL to your Nextcloud instance (Must include the protocol (http/https) and trailing slash)
Service__NextcloudConfiguration__NextcloudBaseUrl=https://cloud.example.com/
 
# The dedicated service account username you created in Step 1
Service__NextcloudConfiguration__NextcloudServiceUsername=sync-admin
 
# The generated App Password from Step 1
Service__NextcloudConfiguration__NextcloudServicePassword=your_generated_app_password
 
# The exact secret string configured in the Nextcloud Admin UI in Step 3
Service__NextcloudConfiguration__SharedSecret="your_secure_shared_secret_string"

Step 6. Configure Your License

The Sendent Exchange Connector requires a valid license key to activate its features and define your user synchronization limits. Without a valid license, the background worker will reject synchronization requests.

First Time License Configuration

  1. Log in to your Nextcloud instance as an administrator.

  2. Navigate to your Administration settings.

image.png
  1. In the left-hand sidebar, locate and click on the Sendent Sync section.

  2. Scroll down to find the License Information section.

  3. Paste the License key provided to your License email address by Sendent.

  4. Click Activate License.

image.png

Update License Key

You will need to perform this action when renewing your annual subscription, upgrading your tier to support more users, or applying a new key after a trial period expires.

  1. Navigate to the Sendent Sync section in your Nextcloud Administration settings.

  2. Locate the License Key field containing your expiring or current key.

  3. Clear the field and paste your newly issued license key.

  4. Click Activate License to instantly apply the new limits. You do not need to restart the external Docker containers or .NET binaries when updating the license in the Nextcloud UI.

Nextcloud app settings

Beyond the core security configurations, the Sendent Sync app provides several UI parameters that dictate how your users interact with the consent flow and whether IMAP synchronization is offered.

While still in the Sendent Sync section of your Nextcloud Administration settings, you can fine-tune the behavior of the application.

Configuration parameters

Setting

Description

Enable IMAP synchronization

If enabled, triggers an additional step in the consent flow to configure Nextcloud Mail. If Autodiscover is set up on your Exchange server, Nextcloud Mail configures automatically.

Email domain

If your users have multiple email aliases, define your primary domain here (e.g., example.com) to ensure the connector resolves the correct routing address.

Reminder Type

Determines how the system prompts users to enable synchronization. Supported values: Modal Dialog (popup overlay), Standard notifications (Nextcloud bell icon), or both.

Application to show modal dialog on

Scopes the Modal Dialog visibility. You can restrict the popup to specific apps (e.g., Calendar or Contacts) or display it globally across the platform.

Notifications interval in days

Defines the cooldown period. If a user dismisses the prompt, the system will wait this number of days before triggering the reminder again.

Next Step

Managing Exchange Service Accounts (admins.json)


Was this article helpful?