Privacy
Status: DRAFT. Not a published privacy policy. Not legal advice. Not in force.
Last drafted: October 11, 2026.
This page describes what the Portal Fixer app does today. It is not a published privacy policy. A published policy would replace it. Until then, Portal Fixer makes no changes in customer portals.
Portal Fixer is offered to businesses in the United States. It is not offered to businesses in the European Union, the European Economic Area, the United Kingdom, or elsewhere in Europe, the Middle East, or Africa.
Questions: jon@thejonmartin.com.
Who runs it
Jon Martin, a sole proprietor, at thejonmartin.com. The product name is Portal Fixer, from TheJonMartin.
What the app processes
You connect by installing the Portal Fixer HubSpot app. It uses account-level OAuth. The app stores:
- The portal ID, the HubSpot domain, and the permissions granted at install
- OAuth tokens, encrypted before they are written
- Dry-run diffs: the current value and the proposed value of each field a fix would change
- An encrypted snapshot of those values, used to read a write back and to roll it back
- Approval records: who approved a change set, when, and the hash of that diff
- A run log
- An API log that stores a hash of each request body, not the body and not a copy of the record
Public pages on this site do not set a cookie and do not use a tracker. The admin login, which is not linked from these pages, sets an HttpOnly session cookie after a successful login.
AI steps
By default the app does not call a model vendor. A step that needs a judgment or a sentence is stored as a pending task. The app can POST a notice to an https webhook when one is configured. The notice carries the portal ID, the task ID, and links an admin uses to fetch the packet and post an answer. Record values are not sent for a property-description step.
If a model key is turned on later, that provider would receive the step's packet. The sub-processor list for those providers is not final, so this draft does not name them as current processors. An unanswered step is skipped. The app does not invent the answer.
Where it is stored
Tokens and snapshots are encrypted with AES-256-GCM before they are written to the data directory. The planned host is Railway. The Railway Volume is mounted at /data, and the service must set RAILWAY_VOLUME_MOUNT_PATH to that path. The SQLite database and other persistent files are written there, or to /data when that variable is unset. This draft names Railway so the host is not a surprise. A published policy would confirm the host actually in use. No other sub-processor is established. The app does not send mail.
How long it is kept
Snapshots are kept 90 days by default, then deleted. That period is a setting.
The draft Terms mention deleting data 30 days after you disconnect. That schedule is not established, and this draft does not promise it.
Disconnecting
Uninstall the Portal Fixer app in the HubSpot account. That stops further access. Email jon@thejonmartin.com to delete the stored snapshots and tokens for that portal. That delete does not call HubSpot.