My quote requests
A quote and proposal request portal is where customers request a quote with the details and photos a job needs, the business sends back a price, and the customer accepts or declines it on the same record.
Pattern: RequestsDescribe it to Pory
“We're a joinery workshop. Customers request a quote with photos and measurements, we send a price, and they accept or decline it online.”
My quote requests
In plain English
A quote and proposal request portal is where customers request a quote with the details and photos a job needs, the business sends back a price, and the customer accepts or declines it on the same record. It follows the Requests pattern: someone submits, someone decides, it moves through statuses. Pory generates it from a plain-English description, with a login for each role (customer and estimator) that shows only what that role should see, and flat pricing with unlimited customers.
What it does
Quote requests used to start as a phone call, carry on by text with blurry photos, and end with the estimator asking for measurements again. In Pory a customer describes the job, picks the service, gives a needed-by date and uploads photos and measurements in one request. They can see where each request stands, so "did you get my photos?" stops being a text.
Accepted quotes used to be a "yes go ahead" buried in an email chain, which made start dates guesswork. The customer opens their quote, checks the price and the attached quote document, and accepts or declines, adding a note if the price or timing doesn't work. The estimator knows which jobs are real without chasing anyone.
Pory generates a portal from these pieces and wires the permissions between them. The same parts run a grant round, a help desk, and a tenant portal — only the names on the pages change.
Collect
Signed-in or public, with typed fields and file uploads. A form files a record; it doesn't start an email thread.
An application page, a notice board, an open directory — pages and forms anyone can use without signing in, on your domain.
People create their own account and land in the role you chose for them.
Upload and view files on the record they belong to — not in a folder named FINAL v2.
Decide
Decision buttons for whoever may edit the status. Who decided, when, and why stays on the record.
“Where's my request?” answered as a progress bar on the submitter's own page.
Cards in columns. Drag a record to move it along.
Task lists ticked off per record, in its detail view, with progress — onboarding runs, inspections, opening duties.
Name who a record is for and it lands on their list, and nobody else's.
A reviewer's score, a coach's feedback, a clinician's note — kept on the record it belongs to, never lost in a thread.
Renewals, expiries and overdue work, in an in-app inbox and by email.
Share
Search, filters, sorting, inline add and edit — the spreadsheet, minus the sharing accident.
Portraits, names, and roles from a table, shown only to the roles allowed to see them.
Records on a month or week view, by date.
Records as cards or photos.
Open a unit, a pet or a listing to see its details and everything tied to it — requests, visits, offers. Share it by link; edit, change the status or add a related item from there.
Check-in details, benefits, updates — a page for a role to read.
Live figures over the records a viewer is allowed to see.
Control
Each person sees their own records, the ones assigned to them, their team's or the ones they manage. Fields can be hidden per role. Generated from your description, not set up field by field.
A sign-in link by email, by default. Password sign-in if you'd rather.
Your domain, your colours, your logo. Members see you.
Describe it in a sentence and send the invite. Unlimited customers, flat price.