# NotarisDossier plugin

Integrates NotarisDossier with the Epona provisioning service. The plugin periodically reads matters from the NotarisDossier REST API and creates or updates the corresponding matter list record in SharePoint on a configurable schedule.

DLL: Epona.NotarisDossier.dll

# What it does

Matters are created in SharePoint upfront as folders within a single document library — the plugin does not provision new SharePoint sites. On each run it:

  1. Fetches matters from the NotarisDossier API that were created or modified since the last run.
  2. Applies any configured filters to limit which matters are processed.
  3. Maps API fields to SharePoint properties using the configured field mapping expressions.
  4. Writes a MatterList_{matterCode}.json file per matter to the site's monitor directory. The provisioning service picks this up and creates or updates the matter list record. Files that are unchanged since the previous run are skipped.

# Deployment

  1. Copy Epona.NotarisDossier.dll to the service's bin directory.
  2. Restart the provisioning service.
  3. Open the Configurator, select the relevant SharepointCfg, and configure the NotarisDossier section that now appears in the property grid.

# Configuration reference

# Connection settings

Property Configurator label Type Default Description
Url Url string Base URL of the NotarisDossier instance (e.g. https://tenant.notarisdossier.nl/). HTTP URLs are automatically upgraded to HTTPS.
ClientId ClientId string OAuth client ID. Stored encrypted. Manage via the Secrets manager in the Configurator.
ClientSecret ClientSecret string OAuth client secret. Stored encrypted. Manage via the Secrets manager in the Configurator.

Authentication uses OAuth 2.0 client credentials posted to {Url}v3/rest/application/authenticate. A Bearer token is attached to all subsequent API requests.

# Scheduling

Property Configurator label Type Default Description
IntervalScheduleCfg NotarisDossier Schedule IntervalScheduleCfg Interval-based schedule controlling when the sync job runs. Expand in the Configurator to set the interval, start/end time window, and enabled state.

The plugin does not run if Url is empty or the schedule is disabled.

# Client mapping

Property Configurator label Type Default Description
ClientCode Client Code string Expression or API field name used to populate the SharePoint client code. Supports pipe \| for fallback fields.
ClientName Client Name string Expression or API field name used to populate the SharePoint client name.
DefaultClientCode Default Client Code string Fallback value for ClientCode when the field expression resolves to empty.
DefaultClientName Default Client Name string Fallback value for ClientName when the field expression resolves to empty.
ClientFieldMapping Client Field Mapping string Maps NotarisDossier API fields to SharePoint client properties. See Field mapping syntax.

# Matter mapping

Property Configurator label Type Default Description
MatterId Matter Id string Expression or API field name used to populate the SharePoint matter ID.
MatterCode Matter Code string Expression or API field name used to populate the SharePoint matter code. Required — the plugin throws if this resolves to empty.
MatterName Matter Name string Expression or API field name used to populate the SharePoint matter name.
MatterFieldMapping Matter Field Mapping string Maps NotarisDossier API fields to SharePoint matter properties. See Field mapping syntax.
SharepointSiteUrl SharePoint Site URL string URL of the SharePoint site, written to the SiteURL matter property. Supports {field} tokens resolved from the API response (e.g. https://tenant.sharepoint.com/sites/notarisdossier).
SharepointMatterUrl SharePoint Matter URL string URL to the matter folder in SharePoint, written to the URL matter property. Supports {field} tokens resolved from the API response (e.g. https://tenant.sharepoint.com/sites/notarisdossier/Documents/{reference}).

Because matters already exist as folders in SharePoint, SharepointSiteUrl and SharepointMatterUrl must be configured manually — the API does not return SharePoint URLs.

# Filter

Property Configurator label Type Default Description
MatterFilter MatterFilter string Optional filter to limit which matters are processed. Syntax: <ApiField>=<value>;. Multiple filters are separated by semicolons.

# Date conversion

Property Configurator label Type Default Description
DateFields Date Fields string createdAt;modifiedAt;executionDate Semicolon-separated list of API field names (case-insensitive) whose values are unix timestamps (seconds since epoch). The plugin converts them to yyyy-MM-ddTHH:mm:ssZ before writing the matter list file. The defaults match the date fields the API currently always returns. Fields not present in the API response are silently skipped, so the list is safe to extend. Remove a field name to leave its value unconverted.

# Debug / test

Property Configurator label Type Default Description
TestMapping TestMapping boolean false When enabled, writes exported JSON to a Test subdirectory inside the monitor directory and skips updating the last-run timestamp. Use to validate field mappings without advancing sync state.

# Field mapping syntax

MatterFieldMapping and ClientFieldMapping use a semicolon-separated key=value syntax:

SharepointField=apiField;SharepointField2=apiField2

Supported value expressions:

Expression Example Result
API field name (flat) MatterCode=reference Value of matter.reference
Nested path (dot-separated) Location=officeLocation.name Value of matter.officeLocation.name
Pipe fallback MatterCode=refNumber\|reference First non-empty of refNumber or reference
Fixed literal MatterType="Notarisdossier" The literal string Notarisdossier
Leading zero padding MatterCode=0:4{id} id left-padded to 4 chars with 0 (e.g. 0042)
Dynamic name token Label={reference} Resolved via the SharePoint dynamic name engine

# Extension point

The plugin supports a custom mapping hook that is called after the standard field mapping and before the matter list file is written. This allows customer-specific field transformations without modifying the core plugin. Implementing this extension point requires a custom build — contact Epona for details.

# Example configuration

Property Example value
Url https://tenant.notarisdossier.nl/
IntervalScheduleCfg.Enabled true
IntervalScheduleCfg.IntervalInMinutes 60
MatterCode reference
MatterName description
ClientName opdrachtgever
SharepointSiteUrl https://tenant.sharepoint.com/sites/notarisdossier
SharepointMatterUrl https://tenant.sharepoint.com/sites/notarisdossier/Documents/{reference}
MatterFieldMapping Location=officeLocation.name;MatterStage=status.label
MatterFilter status=active;
Last Updated: 7/7/2026, 1:48:24 PM