Reports Parsing

Overview

The finance team wanted to bridge reporting@hvcapital.com and Applicata. Since Applicata exposes no API endpoints for upload, the solution is the Applicata Data Gateway SharePoint site with folders dedicated to different purposes, where the Applicata team can pull the data instead of HV pushing it.

Access

User interface and impact surface

Consists of:

Credentials

The credentials are not managed on the n8n GUI side. They are included via environment variables and baked into docker-compose.yaml on the n8n-1 VPS.

Warning

For any updated environment variables to be applied, such as a new client secret, docker compose down and docker compose up -d --force-recreate are necessary. Something like docker compose restart n8n does not suffice.

Common Tasks

N/A

Troubleshooting

Expired IAM credentials

The application-level credentials are set via Entra/Enterprise to expire after a period of time. When refreshed, a new client secret must be added to docker-compose.yaml on the n8n-1 VPS. Kilian has confirmed that the current ones should be good through September 2, 2026.

Unique Custom Node Implementation

This is the sole n8n project written as a custom node in TypeScript that has reached production maturity.

The n8n workflow

The n8n workflow is minimal. Any inbound emails are passed from a default n8n Outlook trigger to the custom node.

Future development

As discussed during ITxAutomation meeting on March 30th 2026, a zip of the source files has been shared with Alec via Teams.

When engaging in further local development, keep track of the env vars in the file .env.n8n.dev, and note that for them to be applied in localhost:5678 n8n, the dev must start via npm run dev:env. By contrast the env.n8n.placeholder was just for secure storage in Milos’s private repo, without the client secret, but blurs the source of knowledge and is safe to delete.

The private (and manual) deployment procedure is documented below.

Readability vars

These are just examples and are only intended to increase the readability of the steps below.

Step 1: In the n8n dev source files

Step 2: Secure copy the tarball onto the VPS, then into the container

Step 3: npm install

docker compose exec -u node n8n sh -lc '
  cd /home/node/.n8n/nodes &&
  [ -f package.json ] || npm init -y >/dev/null 2>&1 &&
  npm install --omit=dev /tmp/<tarball name>
'

(Optional) Step 4: Apply any new or updated env vars