How to request a private preview
Use this guide when your organisation wants to talk about a private preview for design partners. You start on the public site; you end with a confirmation page and, later, an e-mail from a named person. No console account or permission is needed: the contact page is public and posts to an unauthenticated API route.
A pilot is positioned as “non-GxP decision support with a light validation package”. Every product is
designed today; the contact page and its API route ship with the site
release described in PRODUCT-CONTRACT.md section 11. Every decision stays human and recorded. Timing claims
wait for measured data.
Prerequisites
- A work e-mail address you can be reached at.
- The persona you would hold on the program (one of the ten personas) and, if you know it, the stage your program is in.
Open the contact page
Go to https://trovensa.com/contact (the header link is “Talk to us”). Links from the platform overview add
a stage or a topic to the address, for example ?stage=preclinical or ?topic=validation, which pre-fill the
form; you can change them.
Fill in the form
Name (2 to 120 characters), work e-mail, organisation (2 to 200 characters), your role (a select of the ten personas by plain label), the stage (optional), and a message of 10 to 2,000 characters with at most two web addresses. Tick the consent box, which reads “Trovensa may store these details and use them only to reply.” and links to the privacy page. Every control is at least 44 px high and errors are announced inline.
Send
Choose Send. The page posts to POST /api/v1/public/inquiries and, on 202, shows “Received.” with the
sentence “We reply by e-mail from a named person. Nothing else happens with your details.” Without script,
the same form posts form-encoded and the API answers 303 to /contact/sent, a static page with the same text.
What happens next
The API writes one public_inquiries row and one audit row (inquiry.create, actor_kind = system) and
sends one e-mail to the Trovensa inbox configured in Settings with your fields and the persona label. A person
reads it and replies by e-mail. There is no third-party form, no tracking cookie and no widget on the page.
What the pilot involves
One program; program-scoped connections; roles: a program lead, the scientists on the program and a quality reviewer who reads threads for review. What Trovensa hands over: the light validation package (URS, risk assessment, traceability, test evidence, release notes, change control), the audit export with sequence number and row hash, and the record shapes. Nothing else is promised (ADR 0017).
Your details
| Data | Where it goes | How long |
|---|---|---|
| Name, e-mail, organisation, role, stage, topic, message | public_inquiries; one e-mail to Trovensa | 24 months, then deleted by the worker job purge_inquiries |
| A salted hash of your network address (never the address) | public_rate_events, for the rate limit only | 30 days |
| Page path, referrer host, viewport class (from the site’s analytics beacon) | site_event_counts, aggregate daily counts, no identifier, no cookie | counts only; nothing per person |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
“Consent is required” (422 consent_required) | The consent box is not ticked | Tick it; the form cannot be sent without it |
The form refuses immediately (422 too_fast) | It was submitted less than 3 s after the page loaded | Wait a moment and send again |
429 with a Retry-After header (rate_limited_public) | More than 5 requests in an hour or 20 in a day from one network hash, or 3 in a day from one e-mail | Wait for the time in the header |
| “At most two links” | The message holds more than two web addresses | Keep two links; put the rest in the reply thread |
Related
- About personas and twins for who would decide what on a program.
- ADR 0026 for the public endpoints and the site’s posture.
Source: PRODUCT-PLAN.md Part 6 sections A1 and A2 (/contact, the two public API routes); PRODUCT-CONTRACT.md sections 11.1, 11.2 and 11.3; api/scripts/designed-routes.json (157 routes including POST /public/inquiries and POST /public/events); decisions/0017-pilot-scope-validation-and-status-transitions.md; decisions/0026-site-posture-and-public-endpoints.md