Your existing systems stay your existing systems.

Portenia pulls data live from your tools — through the connect agent inside your own network or through the public API. Your clients see everything in one place without you maintaining it twice.

Three routes, one portal

Your systems
  • Connect agent

    Data from your own network

  • Public API

    REST + outbound events

  • Directly in Portenia

    maintain, CSV, forms

Portenia

Data sources · Contracts · documents · appointments

clients.example.com

Your overview

Car insuranceActive
Q3 documentsIn review
Advice meetingOct 14

● everything in one place

Your tools stay the sourceNothing maintained twice

The centrepiece: connect agent

Data from your own premises — without a VPN.

Behind most connections sits a lean container inside your network. It runs named queries and calls and returns results only — the cloud never sees SQL, credentials or internal addresses. Write-back actions travel the same path.

Your network

Core system

e.g. a database

↕

Connect agent

container inside your network

Named queries (examples)

  • new_policies
  • document_status
  • change_address

SQL, credentials, internal addresses stay here

Cloud → Agent · Query

new_policies · client_no

Agent → Cloud · Result

3 rows

Cloud → Agent · Action

change_address · client_no

Agent → Cloud · Reply

done

Portenia cloud

never sees:

  • SQL
  • credentials
  • internal addresses
No VPNWrite-back travels the same path

Public API

For everything coming in or going out.

A documented REST interface and outbound events — for any system that speaks HTTP.

REST interface with an OpenAPI description

Fully described; the machine-readable description lives at /api/docs/openapi.json and loads straight into tooling or a code generator.

Keys per tenant, with scopes

Every key belongs to one tenant and only to the scopes you grant it: read, data (maintain clients, records, documents, appointments), design (portals, layout, workflows, webhooks) and communicate (messages, announcements, requests). Plus a rate limit per key and cursor-based paging instead of page numbers.

Outbound events

Form submitted, record created, changed or deleted, message received, invoice created, appointment created, changed or cancelled, appointment request received — as a call into your system, with an HMAC signature, up to three attempts and a delivery log. On request the call goes through your agent, keeping the destination inside your own network.

MCP server for AI assistants

Claude and ChatGPT connect to your Portenia through a connector URL. The assistant can build portals, maintain records and set up clients — with the same scopes, limits and logs as any other call. The URL expires after 90 days.

API key

Accounting connection

pk_••••••••3f9a

valid for
your tenant
Scopes
readdatadesigncommunicate
Rate limit
per key
REST · /api/v1

Request

GET /api/v1/collections/{sourceKey}/entries?cursor=…
Authorization: Bearer pk_…

Response, shortened

next page: ID of the last row as cursor

/api/docs/openapi.json· description to load into tooling

Only the scopes you grantCursor-based paging

Event

  • Form submitted
  • Record created
  • Message received
  • Appointment created
Call into your system
POST https://your-system.example/inbound
X-Portenia-Signature: sha256=9c1e…

{ "event": "form.submitted", … }
Delivery log
  • form.submitted200delivered
  • entry.created503retrying
  • entry.created200delivered

On request through your agent — the destination stays inside your network

HMAC-signedwith retries

If none of that fits

Data sources directly in Portenia.

No core system? No problem. Maintain data here or let your clients deliver it through forms.

Enter it yourself or import a spreadsheet

Maintain data in the admin area or import a CSV — with column mapping and a preview before anything is written.

Forms write into the data source

A form in the portal files its answers as a new record. The client delivers, you have it structured — with a signature on the record if you want.

Fields by drag and drop

Assemble the structure visually — text, number, date, choice, references to other data sources. Validation and display rules included.

Import CSV · records.csv
Column in fileField
Cust-No→Client number
Company→Company
Start→Contract start

Preview · before anything is written

Import
clients.example.com/forms

Damage report

Date of damage

What happened?

Submit

New record

in “Claims”

filed
No core system neededThe client delivers, you have it structured

Two routes from practice

What connecting looks like day to day.

Example: insurance broker

The connect agent reads new policies from the broker management system through a named query and makes them available in the client’s portal — with a push notification if you want. Nobody resends policies; clients see the current state themselves.

Example: tax practice

The agent queries documents from the internal database on a schedule. Clients see the processing state in the portal and upload corrections directly. An outbound event carries them into the downstream system — no email ping-pong.

Sounds like your case?

Let us talk about your actual systems — which queries it takes and what should be written back.

Personal, at a time that suits you

Request demo