# 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:
- Fetches matters from the NotarisDossier API that were created or modified since the last run.
- Applies any configured filters to limit which matters are processed.
- Maps API fields to SharePoint properties using the configured field mapping expressions.
- Writes a
MatterList_{matterCode}.jsonfile 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
- Copy
Epona.NotarisDossier.dllto the service's bin directory. - Restart the provisioning service.
- 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; |
# Related
- Configuration reference — provisioning configuration reference
- Plugins index — list of available plugins
- Matter List handler — the file handler that processes the
MatterList_*.jsonfiles written by this plugin