Connected workflows
The client portal
Who can use it. Staff build and publish portals; each customer sees only their own project's portal, and only the parts you've published. Owners control which template new projects start from. On a Crew or Company plan, a staff member also needs the "Publish job portals" permission to publish or turn a project's own portal on or off, and the "Publish portal templates" permission to publish a template or update every portal built from it at once (owners and overseers always have both; ask an owner to grant them). Building and previewing a draft, or editing one project's own content, doesn't need either permission.
What it's for
The client portal gives every customer a live, branded window into their build, where the job is up to, the decisions they need to make, the documents you've shared, and a running cost picture, so they stop ringing to ask "what's happening with my job?" and your team stops fielding those calls.
Every account starts with a ready-made portal, not a blank page. From your first login there's a complete starter template already laid out with a welcome home page, a build timeline, interior-design decisions, a documents area, a notes-and-changes page, and a feedback page. It's stamped with your business name and carries no one else's details, so you can publish it as-is or reshape any part to match how you run a job. Where the richer page-building tools below are enabled for your account, the starter also shows a couple of example sub-pages and a notify button already in place, so you can see how they're meant to be used before you build your own.
Two independent switches, per client
The portal is really two halves, and each client's copy of each half starts off until you turn it on for that job:
- Financials: the money tiles, estimate breakdown, variations table, and cost graph.
- Project portal: the photos, timeline, decisions and everything else built on the page editor above.
You'll find both switches together on a "Client portal" card in the Portal tab of the deal's own page in Pipeline: no need to dig into the template editor to find them. Turn on just the half a client is ready for: a client mid-quote might get Financials only so they can watch their numbers, while a client who's started build gets the Project portal switched on too so they can see progress photos. A client with nothing switched on (where every job starts, since all of these begin off) sees a calm holding screen: an hourglass, "Nothing to see here just yet", and a line saying their builder is still getting the space ready and that updates, costs, programme and documents will appear as they're shared. No empty tabs, no error. The moment you tick anything and press Save, the tabs and their content appear in its place.
Once there's something to look at, the same Portal tab shows a prominent Edit live on page button: it takes you straight into that job's portal editor, open on the real page your client sees, ready to make changes.
Ticking a switch doesn't publish anything on its own: the card has a Save button, and only what's ticked when you press it goes live for that client. Until then the card tells you there are changes not published yet, and once the save lands it says Saved ✓. Unticking works the same way: untick, press Save, and that half goes dark for the client. If one of the two halves can't be saved, the card says which one and leaves it ready to try again; the half that did save stays saved.
If client portals are switched off for your whole account (Admin → Portal Templates), both switches on the deal are greyed out with a note explaining why: neither of them changes what a client sees while the account-wide switch is off, so there's nothing to be gained by flipping them. Turn client portals back on and they come straight back to life at the settings you left them on.
This is also how a small trial works: switch the Project portal on for one real client while every other client's stays off, see how it lands, then roll it out more broadly once you're happy.
Where enabled for your account, the same Client portal card also carries a Template picker, so you can choose which template a job's portal opens with instead of always getting your account's default (see "Choosing a template per job" below).
How to use it
Set up one deal from its Portal tab
The deal's Portal workspace has three shortcuts: Choose what to share, Welcome your clients, and (once a portal exists) Make it personal. You can jump straight to the task you need; there is no wizard to repeat for existing clients.
- Start with Create client portal if the deal has no portal yet. This creates a private draft, not an invitation or a published page.
- Select the Financials, Schedule and Project portal cards you want to share, where available for your account. Click anywhere on a card, or focus its checkbox and press Space. Press Save to apply your choices; Discard changes restores the last saved selections. If only part of a save succeeds, discarding preserves the part that succeeded.
- Each person has a separate card under Client access, with the appropriate Invite, Resend, Share or Unshare action. Saving content choices does not send an invitation. The access summary refreshes after saving.
- Use Edit live on page near the top to personalise the portal. Expand Client responses & activity when you need their answers or history.
Detailed diagnostics live under Check access requirements. Account-off and no-content notices remain visible even when those details are collapsed.
Build and manage your template
- Go to Admin → Portal Templates. Your account already has a default template, the starter portal.
- Open the template to edit it. Sections become tabs; fill each with the blocks you want: headings, photos, photo galleries, short looping videos, decisions, questions, checklists, forms, contact cards, document slots, a stage tracker, link-preview cards, and more. Drag to reorder or lay blocks side by side.
- Add pictures by dragging them straight in (or browse for a file); no image links needed, though pasting a URL still works. As you add one you can crop it to a shape (square, wide 16:9, standard 4:3), reposition it inside the crop, and pick how wide it should sit on the page. Changed your mind on the framing later? Use Edit crop on an already-uploaded photo to re-crop it without finding the original file again (the previous version stays recoverable in its version history), or just drag the reposition sliders to re-centre the crop any time, with no re-upload needed at all. Two small or medium-width photos placed one after another automatically sit side by side instead of stacking, so a quick "before/after" pair or a couple of finish samples read as a pair without needing the side-by-side row tool.
- Make any image a button. Give an image a link and an optional label and it becomes a large clickable tile, perfect for "Browse our colour range" or "View your plans" style links out to suppliers or resources. A link can point out to the web, or, where enabled for your account, straight to another page in the same portal (see "Sub-pages" below). A photo gallery card can be clickable too: add a link URL alongside its caption and the picture becomes a tap-through to a supplier page, a spec sheet, or anywhere else.
- Documents work the same way as photos: drag a file straight into a document slot (or click to browse) and it saves instantly. A document added here in the template editor is shared with every deal built from that template, so a brochure, warranty, or T&Cs only needs uploading once instead of on every job; it shows up read-only on each deal's own portal editor and in the customer's rendered portal. Remove it the same way, from the same list. Deleting only works here, in the template, since every deal is sharing that one file. A PDF your client clicks now opens, rather than downloading. It comes up in a new tab, so they keep their place in the portal. If you'd rather they didn't have to click at all, tick Show PDFs on the page on the document slot and the PDF is displayed right there in the portal, with the link still underneath it for anyone who wants the full-screen version or a copy to keep. That's off unless you turn it on: a slot holding several long documents is easier to read as a plain list. Anything that isn't a PDF (a spreadsheet, a Word file) still downloads when clicked, as before.
- Tuck bulky content behind a drop-down. The Collapsible block hides anything big (a colour reference table, a long checklist) behind a header your client taps to expand, so pages stay short and visual. While editing on the page, clicking that header simply opens or closes the drop-down, exactly as it does for your client, so you can get at the blocks inside; to change the drop-down's own settings (its title, or hiding it), click its "Collapsible (drop-down)" tag or anywhere on it outside the header.
- Drop in a short video and it just plays, no play button for your client to find. Drag a video file straight in (or browse), up to 50 MB, MP4 or WebM. It autoplays silently and loops on the page like a moving photo, perfect for a quick site walkthrough or a finished-room pan. Add a caption if you want, and turn on playback controls if you'd rather your client be able to pause or turn the sound on.
- Fill in the blank contact cards (Business Owner, Project Manager, Office Manager, and any others you add) with your real people, and adjust the timeline stages and design prompts to your process.
- Save draft as you go: drafts stay private. Publish when it's ready; every published version is kept so you can compare or restore later.
- Each project gets its own portal from the published template. Open a project's portal to tailor it for that client, override content, hide blocks, or set up per-project tables and photo galleries. A document slot on a deal's own portal also still takes its own per-deal upload alongside anything shared from the template, handy for a one-off file (a signed variation, a client-specific spec) that shouldn't go to every other deal. Use Preview as client to see exactly what they'll see before it goes out.
- Perfected a project's portal? Save it back as your template. On the project's portal editor, Save as template draft copies that project's reusable setup, table layouts you've built and gallery images you've added, into your template as a new draft, so every future job starts from it. Your client's answers, filled-in details, and uploaded documents are never copied; review and publish the draft in the template editor to roll it out.
Making a second template from one you already have
Building a near-identical template from scratch is the long way round. On Admin → Portal Templates, every template row has a Duplicate button: it makes a complete copy: every page, block and wording, plus the photos and documents you'd shared on the template, under the name *"<template> (copy)"*. Rename it, change what you need, publish, and you have two templates that started the same and now differ (a renovation version and a new-build version, say).
Worth knowing:
- The copy arrives as a draft and is never the template new jobs start from, so nothing reaches a client until you publish it and choose to use it.
- It copies what the template currently shows: the published version jobs are getting (or the version you last restored). A template you've never published copies its draft.
- The copy's photos and documents are its own copies, not shared links. Changing or deleting one in either template leaves the other untouched.
- Client answers, per-job wording and per-job uploads belong to each job, not the template, so they're never part of a copy.
- Duplicating creates a new template, so it counts towards the number of templates your plan includes. If you're at your limit you'll be told, and nothing is created.
Copying just one page within a template is a different thing, and lives elsewhere: use Duplicate on the page's own tab in the template editor.
Publishing a template doesn't change portals that already exist
This surprises everyone once, so it's worth stating plainly: when you publish a new version of a template, projects that already have a portal keep showing the version they started on. They don't quietly change under your client's feet.
That's deliberate. A live portal is something your client may be halfway through: answering decisions, reading a timeline, working from a document you uploaded for that job specifically. If every template edit rewrote every live portal, a quick wording fix on the template would reshuffle forty clients' pages at once.
So a template edit reaches an existing project only when you say so:
- One project. Open the project's portal editor. If it's behind, the toolbar shows Update to latest template (v5) with a note explaining exactly this. If it's already current, it says Up to date with template v5 instead, so you're never left guessing.
- All of them. Right after you press Publish, the template editor tells you how many portals are still on an older version and offers to update them all in one go, asking you to confirm the number first, because those clients see the change straight away. It updates exactly the projects it counted. If a colleague puts another project back on an older version while that notice is sitting open, it is not swept in by a button that never named it. Changed your mind? Undo this update puts them straight back, except any project someone else has updated in the meantime, which is left where it is and counted for you rather than quietly pulled backwards. The offer then comes back for just the projects that went back, so pressing it again can't sweep in the ones Undo left alone.
- Later. Admin → Portal Templates lists your templates, and any with projects still on an older version shows an N portals behind note with an Update all button right there on the template: it updates exactly the projects that count is taken from, so the number it asks you to confirm is the number that change. The project's own Portal tab in Pipeline says the same thing for that one job, with an Edit live on page button right there that takes you straight into that job's portal editor.
Every update is written into the project's portal activity, with the version it moved from and to, so if you ever want a project put back the way it was, that record says where it was.
If you've used Restore to put a template back on an earlier version, that restored version is the one that counts as current: projects already on it aren't flagged, and updating a project moves it onto that version rather than past it.
Updating a project to the latest template keeps everything you or your client did on that job: their answers, your per-project wording, hidden blocks, uploaded documents and photos. What changes is the shape that comes from the template: the wording, the layout, which tabs exist and what order they're in.
One knock-on worth knowing: the tab a client lands on is the first tab of the version their project is pinned to. So if you reordered tabs in the template and a client still lands somewhere unexpected, that project is almost certainly on an older version; update it and the landing tab follows.
Starting a client portal from the deal
Open a deal in the Pipeline and go to its Portal tab. If that deal doesn't have a client portal yet, the tab shows a Create client portal button. Press it and the portal is set up straight away, against your account's default template.
- It always starts on the account default. The button doesn't ask you to pick a template. Where the per-job picker is enabled, you switch this deal onto a different template *afterwards*, from the Client portal card; see Choosing a template per job below.
- It works on any deal. You no longer need the deal to already be linked to a project: if it isn't, creating the portal links it for you and the job appears under Deals & jobs as usual. Nothing else about the deal changes.
- You land back on the Portal tab, with the portal's card and an Edit live on page button ready to go. That's deliberate: the usual next step is inviting the client, which lives here rather than in the editor.
- The new portal starts private. It's a draft: your client can't see it until you tick Project portal on the Client portal card and press Save. Creating a portal never puts anything in front of a client on its own.
- Pressed it twice? No harm done: you get the one portal, not two.
- "Your account has no default portal template yet." That message means the one-time setup step is outstanding: go to Admin → Portal Templates (the message links straight there), publish a template, and press the button again. Nothing is created until a template exists, so there's nothing to tidy up.
Who can see a portal, and why
Publishing a portal and a client actually being able to see it are two different things, and it's easy to do the first and assume the second. The rule is:
A client can see a job's portal when all four are true: (1) they have a portal login: they were invited and have signed in; (2) that job has been shared with them; (3) client portals are switched on for the account; (4) the part they're looking at is switched on for that job (Project portal, Financials, Schedule).
Where enabled for your account, you don't have to hold that in your head. The deal's Portal tab carries a Client access area, below the content choices, that answers it for this job: one card per contact on the deal, and the four conditions under Check access requirements, with a ✓ or ✗ against each. Every ✗ links to the thing that fixes it: the account switch goes to Admin → Portal Templates, the per-job parts point at the Client portal card above, and "nobody's been shared this job yet" points back at the rows.
Each contact shows exactly one status, with the one thing you'd do next:
| Status | What it means | What you do | |---|---|---| | No login | They've never been invited | Invite to portal | | Invited, not signed in yet | The invite went out; they haven't used it | Resend | | Job not shared | They have a login, but this job isn't shared with them | Share this job | | Job shared | This job is shared with them | Unshare, if you need to |
Note what that last one does *not* say. Job shared means the job is shared with them (one of the four conditions, not all four). If the account switch is off, or none of this job's three parts are switched on, they still can't see it, and the checklist underneath is what tells you so. That's why the checklist is there.
The checklist's own "shared with N of M contacts" line counts the same thing the status does, and counts it for everyone the job has been shared with, including someone who's been invited but hasn't signed in yet. Inviting shares the job in the same click, so straight after an invite that line reads *1 of 1* while the sign-in line above it is still ✗. That's the honest split: the job is shared; they just haven't been in yet.
Sharing a job that hasn't been set up yet. If a client already has a login from an earlier job, Share this job works on a brand-new deal too: it creates the job behind the scenes and shares it in one go. You don't have to publish a portal first.
Inviting from the deal. One click does the lot: it saves the client's contact details if they weren't already saved, creates their portal login, shares *this* job with them, and emails them a sign-in link with your name on it. If any part of that can't be done, nothing is saved at all and the message tells you which step failed: you'll never end up with a client who has a login but can't see anything. The one exception is the email itself: if the login is created but the email won't send, the login stays and the card tells you so, with Resend ready.
Changing a client's login email. On the client's Login Details card, a new name saves straight away, but a new email doesn't. We email a confirmation link to the new address, and the change only happens once someone clicks it from that inbox. Until then the client keeps signing in with their current address, and the card shows the new one as *Waiting for confirmation*. The current address also gets an email saying a change was asked for. Once the link is clicked, the client is signed out everywhere and signs in again with the new address. The link lasts 24 hours; entering a different address sends a fresh link and cancels the old one. This stops anyone from moving a login onto an address they don't actually own.
One login per client, always. If a contact already has a portal login, the card shows it: it never offers to make a second. That's deliberate: two logins for one person is how someone ends up seeing half their jobs.
Automations never email your clients. A workflow's *Enable client portal* step can tick "Share this job with existing client logins", which lets clients who *already* have a login see the job. It never creates a login and never sends an email. Inviting someone new is always a person's click, so the email always has a real name on it. It also follows the same rule the Share this job button does: a job that explicitly belongs to a different client is never shared, whatever the deal says. If the sharing itself fails, the portal is still set up but the automation run is marked failed with the reason on it and retried: a run that says "success" always means the sharing happened.
No contacts on the deal? The card says so and stops: add a contact on the deal (or in HubSpot) first, then come back. If it instead says it *couldn't load* the contacts, that's a different thing: we couldn't reach HubSpot just then, so the list may be incomplete. Nothing has changed, and Retry is right there.
Two clients sharing one email address. If someone on the deal has an email address that's already saved against a different HubSpot contact, the card won't invite them: it tells you so instead. Tidy the duplicate up in HubSpot first. Inviting anyway would create a login this card could never show you again.
A client you already had. If someone on the deal is already saved in the client book under the same email address (from a lead form, an import, or typed in by hand), the card recognises them as the same person and shows their existing login, rather than offering an invite that would collide with it. Two people on the deal sharing one address is the exception: the card can't tell which of them the saved client is, so it leaves both alone and says No login until the duplicate is sorted out. Same story if the client book itself holds *two* people under that address: Invite says so rather than picking one, because guessing would hand the login to the wrong client.
A client who signed up by mistake. Sometimes a client tries the sign-in page before you've invited them, follows "Create an account" and ends up with an account of their own that doesn't belong to any builder. Once that account is no longer attached to a company, inviting them works as normal: the invite takes over the stray account rather than refusing the address, so nobody has to clear it up by hand. An address that belongs to a real login, in your account or anyone else's, is still refused.
What the client sees when they can't see it
The four conditions are the same four from the client's side, and the portal now says enough for them to work out which one is missing without ringing you.
They sign in and there's nothing there. The page names *you* and the address they used: *"Riverstone Homes hasn't shared a project with you yet… You're signed in as jane@personal.example. If Riverstone Homes invited a different address, sign in with that one."* That last sentence is the one that matters, because the commonest cause of "I can't see my job" isn't a setting at all: it's an invite sent to a work address and a sign-in from a personal one. If your account has no branding set, it reads "your builder" instead; everything else is the same.
If we genuinely couldn't *load* their projects, they get that as a failure message instead, never as "nothing has been shared with you": those two are never allowed to look alike.
They're in the job, but a section is blank. *"Nothing to see here just yet"* means the job is shared and they're in the right place: what they're looking for is switched off for this job, which is condition (4) and the Client portal card on the deal.
No link ever arrives. An email address that's never been invited gets nothing at all, silently and deliberately: we don't confirm or deny that an address has an account to anyone who types one in. So the "Check your email" screen says the precondition out loud: a portal link only arrives if their builder has invited *that* address. If a client tells you they never got the email, check which address you invited before anything else.
Where the invite link lands. Clicking the link in an invite goes straight to the job that was shared with them, not to a list, so the first thing they see is their build. An invite that shares several jobs at once lands on the list instead, and a client who had nothing shared yet lands on the message above.
Choosing a template per job
Where enabled for your account, the Client portal card on a deal's own Pipeline page carries a Template picker below the content choices, so a job doesn't have to use your account's default template: pick the one that fits, tick Project portal, and press Save.
- A job with no portal yet: pick a template and it provisions the portal against that template's latest published version. It stays private until you also tick Project portal and save: picking a template on its own never makes anything visible to the client.
- A job that already has a portal: picking a *different* template is a bigger change, so it asks you to confirm first. The confirmation is clear about what happens: any blocks you'd hidden just for this client are reset (they follow the new template's defaults again), but everything the client has already answered, typed or uploaded is kept: it simply won't show unless the new template has a matching block for it.
- Picking the template this job is already on does nothing: there's nothing to confirm or reset.
- An automation can also turn a job's portal on with a chosen template (or your account's default) the moment a deal reaches a stage/trigger you set up; see
docs/features/workflow-canvas.md. Automations only ever set a job's portal up for the FIRST time; they never switch an already-provisioned job onto a different template, so a live client portal is never rewritten by an automation running again.
Sub-pages, notify buttons, and link-preview cards
Where these tools are enabled for your account, a page can hold more than one screen's worth of content, and a client can raise a flag without leaving the portal.
- Sub-pages. A Pages panel next to your section tabs lets you add a page that sits *below* a tab rather than beside it, useful for a design option, a build stage, or anything with its own set of details that would otherwise clutter the main page. Give it a title, an emoji icon, and (optionally) a banner cover image, then fill it with the same blocks as any other page. A sub-page only shows up when something links to it: it never appears in the tab strip itself.
- Link to a sub-page from anywhere a link normally goes: an image button, a "View details" link on a decision option, a table cell, or a checklist item. When you're setting the link, choose Portal page instead of typing a web address, then pick the page or section from the list. (For a table cell, that choice sits right in the cell on the page itself, beside where you'd type a web address.) Your client taps through and gets a Back button to return exactly where they were.
- A notify button lets a client tell your team something's ready (for example "I've made my selections" or "I've finished my feedback") with one tap. It records the moment on the page (so the client can see they've already notified you), adds a note to that project's activity feed for your team, and sends your assigned staff (or your whole team, if no one's assigned yet) an email. Tapping it again is safe: it just re-notifies and never blocks a second nudge.
- Bookmark cards turn a plain web link into a preview card with a title, description, and thumbnail, the same kind of card you'd see pasting a link into a chat app. Paste the URL and use Fetch preview to pull in the page's title/description/image automatically, then tweak any of it by hand before saving; or skip the fetch and fill the card in yourself.
- Give a page (or a whole section) a cover image and an icon: a banner photo across the top and a small emoji beside its title, the same visual treatment Notion-style pages use. It's a nice touch for a page that deserves its own identity, like a design stage or a supplier's range.
- A checklist item can carry its own link, and a long checklist can lay out in up to four columns instead of one long list, handy for a big reference list like bathroom fixtures.
- Personalise the welcome message. Typing
{{client.name}}or{{client.firstName}}anywhere in a heading, paragraph, or callout swaps in the signed-in client's own name, so "Hi {{client.firstName}}, welcome to your portal" reads as "Hi Sarah, welcome to your portal" for each client automatically. Leave it out and the text just reads as written. - A table column can hold a picture. Set a column's type to Image on the project's portal page (where every other column is already set up) and drop a picture straight into each cell, a small thumbnail with drag/drop, browse, replace, and clear. Your client sees the picture but can never upload or change it themselves.
- Answers stay practical and safe. Client answers have sensible size limits (including roomier tables) so one response cannot slow the portal for everyone. If a save is temporarily refused after very fast repeated edits, wait a minute then try again; unchanged autosaves do not create a new response.
Where it's enabled for your account (a separate switch from the tools above), you can also add a tick-box block, a single, labelled checkbox anywhere in a page, its own block, separate from a table. Give it a label ("I've reviewed the plans") and your client ticks it; you'll see whether it's ticked in the same place you see their other answers: Checked, Unchecked if they ticked it and then changed their mind, or *No answer yet* if they haven't touched it at all, so a deliberate "no" never looks like silence. (A tick-box inside a table is unrelated and always available: set a column's type to Tick box on the deal's portal page, same as any other column type.)
Sharing a link to a portal page
Pages inside a project portal now have their own web address. Open a page and the address bar updates. Copy that link and send it to your client and it opens straight on that page. Your browser's Back button works the way you'd expect too: from inside a page it takes you back to the project's Home tab, not out of the project. (The "← Back" button on the page does the same thing.)
If a page has since been renamed away, deleted, or hidden for that client, the link quietly opens the project's Home tab instead: nobody sees a page they shouldn't, and nobody sees an error.
One caveat while you're sharing these: the link only opens straight on the page for a client who is already signed in. If they aren't, they'll be asked to sign in and land on their projects list instead. Send them the link again once they're in, and it will take them where you meant.
Edit on the page
You edit the portal directly on the page your client sees. The template editor has two views, Edit on page (where you make changes) and View (a clean preview), and it opens on Edit on page, so the preview *is* the editor. A deal's own portal editor carries a ← Back to deal link at the top that takes you straight back to that job's HubSpot deal page (or ← All portals if this job isn't linked to one).
Where enabled for your account, a deal's portal editor takes this further: the page becomes one full-width canvas, with your publish, version and "save as template" controls in a bar across the very top, above the section tabs, instead of down the left side.
For every block, there's now nothing beside the page at all. Click a heading, a paragraph or callout, a section or page, a timeline, a drop-down, a milestone, a tick box, a "notify us" button, a contact card, a link, a bookmark, a stage tracker, a divider, a decision, a question, a checklist, a rating, a form, a picture, a photo gallery, a video, a documents slot, a table, or a side-by-side row, and everything about it, its wording, its settings, its actions, appears on the block itself: the words become boxes you type straight into, right where they already sit on the page, empty ones show a faint prompt so you know what to fill in, and a small row of settings (a size, a position, a tick, a "notify staff" switch, whatever that block has) sits directly under it. A row of buttons in the block's own corner moves it up or down, duplicates it, deletes it (with Undo rather than a confirmation; see below), and, on the template editor, or for a block your own job added, shows or hides it. No panel opens beside it, nothing dims, nothing floats; the page just gets taller while that block is selected, the same way it would if you were filling in a form. Click away, press Escape, or select another block, and it settles back to exactly what your client sees.
That is every block type, in the shared template editor and on a single job's portal alike, including a photo, gallery or documents block your own job added on top of the template (a video block is a template-only block: there's no per-client video file to upload, so one can't be added to a single job), and including tables. There is no longer any block anywhere that opens a panel, a card or a pop-up: if you can see it on the page, you edit it on the page.
- Decisions, questions, checklists, ratings and forms edit right there too. Click a decision and its title, its prompt and its help text are all live boxes, and every option, its title, a short description, a picture web address, and an optional "view details" link, sits in its own tile in the option grid, with a ✕ to remove one and a + Add option tile at the end to add another. A checklist works the same way for its items (a label, an optional link, ✕ to remove, + Add item to add one), and a form for its fields (a label, a type: short answer, long answer, one choice from a list, a date, or yes/no; a Required tick, ↑ ↓ to reorder, ✕ to remove, and its own list of choices when it's a "pick one" field). A question's placeholder text, the faint hint shown in an empty answer box, is a live field too. The settings row under each of these picks up the switches that used to live in the settings panel: Allow multiple selections for a decision, Long answer for a question, Columns for a checklist, Scale max for a rating, plus Notify staff by email and the size/position/bold controls, wherever your account has them turned on.
- Click any block to select it. Everything about it is already on the page, its wording, its settings and its actions, exactly where that block sits, and the page updates live as you change it, so what you see is exactly what your client gets. Click empty space on the page, press Escape, or switch tabs to put it away again. Deleting a block never asks you to confirm: it's just gone, with Undo right there to bring it back (see "Deleting never asks you to confirm" below), so nothing you didn't mean to touch can be lost while you tidy up.
- For a heading, a title, a paragraph or a callout, just click and type. One click both selects the block and puts you straight into its text, right where it sits on the page: type the new wording, and it saves the moment you click away or press Enter (Escape leaves it as it was). A paragraph or callout opens as a multi-line box that wraps as you type, so you can read a whole paragraph back instead of dragging along one line. Enter starts a new line (leave a blank line between paragraphs, as in the client's portal). This works in the shared template editor and on a deal alike.
- …and every other wording that block has, at the same time. Selecting one of the covered blocks doesn't just open its main text: a contact card shows its role, name, email, phone and website as four more boxes underneath (blank ones show a faint "Add email…" style prompt); a milestone shows its group and caption the same way. Nothing needs a second click or a trip to a panel; it's all there, live, the moment you select the block.
- No block needs a second click any more. Every block's own text, a title, a caption, a prompt, a label, is a live box the moment the block is selected, in the template editor and on a deal alike; an empty one shows a faint prompt so there's always something to click. Two blocks work a little differently on purpose. A drop-down's title and description are edited in its own small settings row on the page instead of overlaying its title: its title doubles as the button that opens and closes it, so typing directly over it would fight the click that opens the drop-down. A table's title and description already have their own box in the table's own header on the page. A title the block *must* have (a question, a decision, a rating, a button, a milestone, a contact's role, a heading, a link's label) won't accept an empty box: clear it and it simply keeps what it had, so a required title can't be emptied by accident and block your next save.
- What you type is what your client sees. Text you type on the page keeps its formatting when you click away: extra spaces between words stay, indentation at the start of a line stays, and pressing Enter once gives you a new line rather than running the two lines together (press it twice for a new paragraph, as before). Headings are the same size while you're typing over them as they are on the finished page, so nothing jumps about as you edit.
- Pictures, galleries, videos and documents change right on the picture itself. Select an image block and click the picture (or drag a file onto it) to replace it: the file picker opens straight away, no dropzone or upload button to hunt for first. Crop it and the cropping tool opens in the exact same spot, over the picture, rather than in a panel; confirm and your crop is saved. Already cropped to a shape? Drag on the picture itself to reposition which part shows: nothing to type, no sliders, just drag until it looks right. The caption sits underneath, ready to type into, and Alt text (a short description for screen readers), an Image URL (if you'd rather point at a picture hosted elsewhere than upload one), the picture's size, shape and whether it's a clickable button all sit in the small settings row under it. A video has the same Video URL field alongside its own settings. A photo gallery works the same way: an "+ Add photos" tile sits right in the grid alongside the pictures already there, and every photo's caption and link are typed straight onto its card. Drag a new photo onto that tile, or click it to browse. A video replaces the same way: click or drop, no crop step (a video's framing can't be reshaped). A documents slot gets a drop zone right in its own list: drop a file in, and each document gets its own ✕ to remove it, no separate screen. And a section or page's cover image turns into a drop zone the moment you select that block: click or drop a picture straight onto the banner at the top. Pictures, photo galleries and documents work right on the page for a deal's own portal too, the same way (see "Pictures and files, right on the page for one client" below). Two things stay in the shared template editor on purpose: a video (there is no per-client version of a video: its file, URL, caption, size and playback controls are all set in the template) and a section or page's cover image (it's a shared banner).
- Change how text looks. Where enabled for your account, selecting a paragraph or callout gives you Text size (Small / Normal / Large / Extra large), Position (Left / Centre / Right) and a Bold tick. A heading and a stage tracker's title get Position: their size is already fixed (a heading's H1/H2/H3 level; a stage tracker's title is one size). For these now-on-the-page blocks the controls sit in the small settings row right under the block itself, the same place its other settings live; leave them alone and the text looks exactly as it always has. How text *looks* belongs to the shared template, so these live in the template editor (on a deal's portal you'll find them only on blocks you added for that job). The *wording* is still changeable per job; see "Wording just for one client" below.
- Change how a block's own title and caption look, too. The same three controls sit in the settings row under any block that has a heading or caption of its own, a decision, a question, a checklist, a rating, a form, a photo gallery, a documents slot, a table, and an image or video's caption. Each group is labelled with what it changes, so a gallery shows a Title format group and a Description format group, and a video shows a Caption format group. Set a gallery's title to Extra large and centred, or drop a long caption to Small, without touching anything else on the page.
Blocks with no heading or caption of their own don't get the controls, and that's deliberate rather than an oversight: a contact card is a stack of contact details, a link or bookmark is the button itself, and a section or page title is part of the page's own headings, sized with the tabs. Leave every one of these alone and your published portals look exactly as they do today: the controls only change what you actually set.
- Set the widths of side-by-side tiles by dragging the line between them. Select a side-by-side row and a thin handle appears between each pair of tiles, right there on the page. Drag it left or right and the tiles resize live, with the neighbour giving up (or taking back) the space, so the tiles always add up to a full row and none can shrink to nothing. Click a handle and use the ← / → arrow keys for the same adjustment a step at a time. Letting go (or releasing an arrow key) is what saves the change; Undo puts a whole drag back in one go.
- Hide a block from every client. Each block's own row of buttons has an eye you can click to hide that block from *all* your clients' portals at once (a whole section too). A hidden block stays on your editing page, dimmed, so you can always find it and switch it back on.
- Add, move and reorder blocks in place. Wherever you can insert a new block, a faint "+" line marks the spot: between each pair of blocks inside a section, timeline or similar container; a slim "+" at the end of a side-by-side row instead. Hover the block right next to one and it brightens a little; hover it directly (or tab to it) and it lights up fully; click it and the choices appear right there in the page, grouped into Layout, Content and Interactive, pushing the rest of the page down rather than popping up a menu over it; pick one, or click away or press Escape to close it without adding anything. Drag images straight onto the page, and use the block's own controls to move, duplicate or remove it.
- Drag a block into another section. In the template editor, pick a block up and drop it where you want it, including one half of a side-by-side row, so a button you've already built can be moved into the split you just made. The block you're carrying fades and the target you're over is outlined, so you can see where it will land before you let go. Dropping it *on a section, row or drop-down* puts it inside, at the end; dropping it *on an ordinary block* puts it just above that block. To reach a different section, drag onto that section's tab in the strip above the page: the page switches to it while you're still holding the block, and you can then drop it exactly where you want inside; or just let go on the tab itself to drop it in at the end. Somewhere it can't go (inside itself, or a timeline milestone dropped outside its timeline) simply won't light up; a tab that can't take it won't switch, and letting go there changes nothing. If a move can't be made after all, you get a message saying so rather than nothing happening. One ⌘Z puts a move back. Blocks are picked up by the ⠿ handle that appears at a block's top-left corner when you hover it (or select it) — press anywhere else on the block and you're selecting text, not moving anything.
- You can select and copy any text on the editing page. Drag across a heading, a paragraph, a checklist label or a table cell exactly as you would on any other page, and the words highlight so ⌘C / Ctrl+C copies them — in the template editor a block used to pick itself up the moment you dragged across its wording, which is what the ⠿ handle in the block's corner now solves: dragging *it* moves the block, dragging anywhere else selects the text under your pointer. Letting go leaves the words highlighted and the page as it was — a block only opens for editing when you *click* it, not when you finish highlighting something inside it. A deal's own portal page has no block dragging and never had the problem, so there's no handle there and text has always selected normally. Pasting into any field you're editing works as it always has.
- Tabs are moved the same way, by their own ⠿ grip. In the template editor, each tab in the strip above the page carries a small ⠿ at its left edge: drag *that* to reorder the tabs. Pressing the tab's name switches to it as it always did, and dragging across the name now highlights it so you can copy it, instead of picking the tab up — the same gesture as everywhere else in the editor, rather than a different one for the strip. Home has no grip, because it's always the first tab.
- Deleting never asks you to confirm: it just gives you Undo. Click a block's 🗑, in its own on-page corner, and it's gone straight away, no "are you sure?" in the way. A green "Deleted … Press ⌘Z to undo" bar appears with its own Undo button: click it, or press ⌘Z / Ctrl+Z, and the block comes right back where it was. The bar clears itself after a few seconds, and clicks pass straight through it while it's up, so it can't sit over the part of the page you're trying to reach. A red message, a save that was blocked, stays put until you've dealt with it. A photo or file you remove from a gallery or documents slot on a deal's portal works the same way: it's gone from the page at once, but you've got a few seconds to bring it back with Undo before it's gone for good.
- Check it on a phone. A Desktop / Phone switch above the canvas narrows the view to a phone-width column, so you can see how the portal reads on the screen most clients will actually use.
- Use the keyboard. Once a block is selected, the up/down arrow keys step through the blocks, Escape deselects (or, while you're inside a text box, leaves that box first). Enter jumps you straight into the block's first field, its heading or title. Backspace (or Delete) removes the selected block, and ⌘C / Ctrl+C then ⌘V / Ctrl+V drops a copy of it, including everything inside it, just below the original. Anything you delete or paste comes back with one ⌘Z. Backspace and the arrow keys don't fire while you're typing in a field, so Backspace still just deletes a letter. Copy and paste have a button too, since a click puts your cursor inside one of the block's fields: see Copy and paste below.
- Fill in a table where it sits. Drop a Table block onto the page and start typing: the column headings and row labels are editable straight on the canvas, with + to add a column and + Add row below. On a deal's portal you can type into the cells themselves too, and what you type saves as you move out of each cell. In the template editor the cells show a dash: a table's contents belong to each deal, so the template holds the shape (the columns and rows every deal starts from) and each deal fills it in.
- A column's settings sit right under its heading. Click a column's name and a small settings row opens directly beneath it: its type (text, date, tick box, status, number, link, or image), the status options or "show as currency" tick when they apply, and Customer can fill this in. Click a different column, or click away, and the row follows you or closes; only one column's settings are open at a time.
- Columns and rows are added with the "+" between them, and moved with the arrows. Hover the gap just before any column heading (or above any row) and a small + appears: click it to insert a new one right there, no need to add at the end and drag it into place. + Add column and + Add row are still there for adding at the very end. Click a column or row to select it and ← → (or ↑ ↓ for a row) step it left/right or up/down one place at a time.
- A column or row's own ▾ / ⋮ button is a shortcut, not the only way in. Every one of the buttons above already sits on the page: insert, move and 🗑 to remove. The small ▾ on a column and ⋮ on a row just repeat those same three actions in a drop-down, for when that's quicker to reach. Deleting a column or row never asks you to confirm: it's gone straight away, with Undo (⌘Z / Ctrl+Z) to bring it right back, the same as deleting any other block.
- Picture cells are edited by clicking the cell itself, on a deal's portal. Set a column's type to Image and drop a picture straight into each cell: no separate edit card, no Images list to find first. Small thumbnail, drag/drop, browse, replace, and clear, right there in the cell.
- The table's own settings (the client lock, row labels, starter layouts) sit in the settings row under the table, the same place every other block's settings live. Clients can edit this table and Show row labels are ticks there; Start from a layout offers a starting set of columns while the table is still empty. None of this needs a ⋯ menu any more.
- Hide the row-label column. Every portal table starts with a narrow left-hand column for naming each row ("Kitchen", "Bathroom"). If your table doesn't need it, untick Show row labels in the table's own settings row. Anything you already typed there is kept, not deleted: tick it again any time and it's back. (On a table that came from your shared template, the tick lives in the template editor, since the column is the template's to set, but a template that has already hidden the column shows it hidden on the deal's canvas too, so what you see there matches what the client gets.)
- Long notes wrap now. Text cells grow as you type instead of scrolling sideways, so you can read a whole note back without dragging through it, in the editor and in what your client sees. Press Enter inside a cell for a new line.
- Type straight into a table on a live portal. Where enabled for your account, you no longer have to open the portal editor to correct a table. On a client's project page, click any cell and type: the change saves as you go, exactly the way it does for a client, with the same *Saving… / Saved ✓* beside the table's title. This works even on tables that are locked to view-only for the client: the lock is about *them*, not you. Your clients are unaffected: what they can and can't change is still set by the Clients can edit this table tick and by which columns you've marked Customer can fill this in.
- Wording just for one client, right on the page. On the deal's page (not the shared template), select a heading, paragraph, callout, link or bookmark and its wording is already a live box, the same on-page editing described above, covering that client's own wording in place. Leave a box blank and that client goes back to seeing the template's wording. A link or bookmark's description is its own live box on the page too; its web address stays in the settings row right under it, same as on the template. A milestone's status, dates, caption and notes, a contact card's details, an image's caption and alt text, and the extra items you add to a checklist follow the same rule too; see the bullets just below. An optional section can still be hidden from just this one client with a Hide this optional section from the client tick, which sits in its own settings row the same way, but its title, and every other covered block's own settings and actions (size, position, moving, deleting), always belong to the shared template, so they're changed there, not here.
- A milestone's status, dates, caption and notes, right on the page. Select a milestone (in a Timeline section) on a deal's page and a row of status chips sits under its title: pick one to badge it on the client's page, or No status shown to clear it, and it saves the moment you click a chip. Key dates and any notes sit as their own live boxes right under the title too, same as the caption already did. All four are just for this job: a colleague's copy of the same milestone on a different deal is untouched.
- A contact card's details, right on the page. Select a contact card on a deal's page and its name, email, phone and website are each a live box, right on the card, the same "type it, or leave it blank to keep the template's" rule every other per-deal box follows. The role stays the template's to set, since it's the card's identity, not a per-client detail.
- Reword a tick box for one job. A tick-box block that came from your template says the same thing on every job. On a deal's portal you can now change just its wording for that client: select the tick box — click the space around it, not the words, because clicking the words (or the box itself) ticks it for your client — and its label is a live box, right where the words sit, the same "type it, or leave it blank to keep the template's" rule every other per-deal box follows ("Deposit received" → "Deposit received (50%)"). Ticking it still works while you're editing the wording, and the two never undo each other: your client can tick the box at the same moment you reword it and both changes stick. Every other job on the same template keeps the template's wording.
- Reword a question or a rating for one job. A question or a star-rating block that came from your template asks the same thing on every job. On a deal's portal, select one, and its title and its smaller prompt line are both live boxes, right where the words sit, so you can tighten either just for this client ("Any allergies on site?" to "Any allergies for this crew?"), leaving a box blank to keep the template's wording. Once you select a question, its answer box swaps for these two wording boxes, so you finish rewording, click away (or select the next block), and the "fill this in for the client" answer box is back, exactly where you left it. A reword never touches your client's own answer or star rating, in either order: they can answer at the same moment you reword the question and both changes stick. Every other job on the same template keeps the template's wording.
- Tick boxes and checklists, right on the page. On a deal's portal, a tick-box block and a checklist's items are real tick boxes on the canvas, tick one to mark it done on your client's behalf (say they confirmed something over the phone), and it saves straight away, exactly as if the client had ticked it themselves; tick again to undo it. The client sees the change in their portal, and their own ticks show here the same way. Ticking never selects the block: click the block's title or the space around it for that. In the template editor the ticks stay read-only, since a tick belongs to one job, not the shared template. Ticks are saved one item at a time, so if you and your client are both on the page at once, each of you keeps your own tick; neither of you undoes the other's.
- Reword or relink a checklist item for one job, and add your own. A checklist that came from your template holds the same items and wording for every client, unless you need one wording, or one link, to be different for just this job. Select the checklist on a deal's page and each of the template's own items is a live box now, the same "type it, or leave it as the template's wording to keep that" rule every other per-deal box follows, with a link box right under it and a small note showing where that link currently goes ("No link" until you set one, then either the web address or the page it points to) so you can tell what's linked without clicking through. Reworded or relinked an item by mistake? A Reset to template button appears next to it the moment either differs from the template, and one click puts both back. Underneath the template's own items sit the ones you've added just for this job, each with the same label and link boxes and its own ✕, and an "Add an item for this client…" row at the bottom; type a label and press Enter (or click + Add item) to add one, and it ticks like any other, on the canvas and in the client's own portal. None of this touches the template or any other job on it. Nothing here needs a settings card.
- A checklist item's ↗ arrow shows you where it goes, without taking you there, while you're editing. On your client's page, that little arrow beside a linked checklist item jumps straight to the page or web address it points to. On the template or deal editing page, clicking it instead just tells you where it goes (hover it, or check its label) and selects the block, the same as clicking anywhere else on it — so you can find and select a checklist without accidentally leaving the page you're editing.
- Pictures, galleries and documents, right on the page for one client. On a deal's portal, an image works exactly like the template editor's own: click the picture to replace it for this client, and its caption and alt text sit right there too. A Reset to template image button appears once you've replaced it, so you can go back to what the template shows with one click. Both replacing a picture and resetting it give you the same few seconds to change your mind with Undo before the old one is cleared out: press ⌘Z / Ctrl+Z right after, or replace it again before those few seconds are up and your later change is the one that sticks. A photo gallery shows the template's shared photos first (marked Shared from template, and not something you can remove from here: that's a template change) with an "+ Add photos" tile for this deal's own extras, each tagged Added for this deal so you can tell the two apart at a glance; remove one of your own with its ✕. A documents slot works the same way: the template's own files show a Shared from template label with no remove button, and a plain drop zone lets you add this deal's own, each with its own ✕. Removing a photo or document you added gives you a few seconds to bring it back with Undo, the same as anywhere else on the page (see "Deleting never asks you to confirm" below). A video is the one block with nothing to change for a single client: its file, URL, caption, size and playback controls all belong to the shared template, so selecting one here shows it with its usual buttons and the show/hide eye, and you change the video itself in the template editor.
- Fill in a question or a form for your client. Some answers arrive by phone or on site rather than through the portal. On a deal's portal, a question block gets a text box marked *Filling in for the client* and a Save button, and a form block becomes the real form with its Submit button, the same required-field checks your client would see. What you save is stored exactly as if they'd typed it, so it shows in their portal and in the answers you already read elsewhere; the form records the time it was submitted. Nobody is emailed for a form you filled in yourself: the notification exists to tell you when a *client* submits. Your client can still change any of it afterwards. In the template editor these stay read-only, since an answer belongs to one job.
- Switching between Edit on page and View keeps your place. Whichever page you're working on stays open when you flip to the preview and back, so you can check your work and carry on without hunting for where you were. Opening the editor fresh still starts you on Home.
Everything you change here saves, undoes and publishes the same way: it's the same portal underneath, edited on the page instead of in a list.
Adding blocks to just one job's portal
Where enabled for your account, a deal's own portal editor can go further than overriding wording and hiding blocks: you can add brand-new blocks that exist only on that one job's portal, right on the same canvas, without touching the shared template or any other deal.
- Insert. The same faint "+" lines you use in the template editor appear on a deal's canvas too: click one, pick a block from the palette, and it drops in at exactly that spot. (Video and Table aren't offered here: a video needs uploading in the shared template, so an added video block would have nowhere to put its file, and a table added this way would have no place to set up its columns and rows yet.)
- Edit. A block you've added to a deal gets its own card, "Blocks added to this deal," further down the page, with the same settings form the template editor uses: change anything about it there and press Save.
- Move and delete. An added block gets its own ↑ / ↓ to reorder it among its neighbours, and a 🗑 to remove it: removing a block you added also removes anything you'd added inside it, at once and without asking you to confirm; ⌘Z / Ctrl+Z or the top bar's Undo button brings the whole thing back, exactly as it was. A block that came from the shared template never gets the 🗑: deleting a template's own block would affect every job built from it, so it keeps the usual hide-from-this-client eye instead.
- Copy and paste. Click a block, on the shared template or already added to this deal, and press ⌘C (Ctrl+C), or click the 📋 button on the block, to copy it. Then click the block you want it to follow, on the same page or a different one, and click the 📥 button that appears on it to paste a copy right after, added to just this job like anything else in this section. You can also click any blue + and choose Paste copied block, or press ⌘V / Ctrl+V while that + has focus, to paste at that exact position. This works for empty sections, rows and pages too. If that position cannot hold the copied block, the paste option explains why and asks you to choose another position. Immediately after clicking 📋, ⌘V / Ctrl+V pastes after the block you copied, even if you had not selected it first. Clicking a block puts your cursor in one of its fields, so ⌘C copies the block only when no text is highlighted (highlight a few words and it copies just those words, as it always has), and ⌘V pastes text into the field as normal. ⌘V pastes a block only when your cursor isn't in a text field, for example after you step between blocks with the arrow keys. The copy starts fresh: none of your client's ticks, answers or typed replies come along with it, and a photo or document on the original does not carry over, so add one to the copy separately. Video can't be pasted this way either, for the same reason it isn't offered in the insert palette above. ⌘Z / Ctrl+Z undoes a paste the same as any other change.
Reordering the template's own blocks on one job
Where this is switched on for your account, the ↑ / ↓ appear on the shared template's blocks too, so you can put one job's portal in the order that job needs: move the Design section above the Timeline for a client who only cares about selections. The arrows reorder a block among the blocks it already sits with, so a block stays inside whatever section it's in. It's a per-job change only: the shared template, and every other job built from it, keep their own order. The buttons say "moved for this deal" once you've repositioned a block, so it's clear which blocks are no longer where the template puts them.
If a later template update removes the block you moved, the instruction simply stops applying and starts applying again if that block comes back. Where a block sits on one job is presentation, like hiding it, so it is never copied into the shared template.
Anything you add this way behaves exactly like a template block for that one client: it can be hidden, it keeps its own answers if it's a question or decision, and it shows up in the client-responses panel just the same. It's never copied into the shared template, never touches any other deal, and switching that deal onto a different template, or moving it to a newer version of the same one, never removes it either (though it stops showing if the block it was tucked inside is no longer there; add that block back and it reappears).
Resizing side-by-side tiles, and making one full width, on one job
The same switch also lets you change the layout of one job's portal, not just the order:
- Resize the tiles in a side-by-side row. Click the row and a thin handle appears between each pair of tiles. Drag it (or click it and use the ← / → arrow keys) to give one tile more of the row and the other less — exactly the same handle the template editor has, just saved for this one client. Undo puts a whole drag back in one go, and the shared template keeps the widths it always had.
- Make a block full width. A tile can never take the *whole* row — its neighbour always keeps a minimum — so a block that should run the full width of the page has to come out of the row. The ⤢ button on a tile does that: it lifts the block out and drops it directly below the row, full width, for this job only. The tiles left behind share the row between them. Undo puts the block back in the row, in the spot it came from.
- A link block can be made full width too, on its own, for one client. A link usually sits as a small tappable button the width of its own label, whether it's in a row or on its own; pick Full from its own Width setting and it fills whatever space it already has, on the template or a job you added it to, and, where enabled, just for one client on their live portal, the same way a milestone's status can be set for one job alone. On its own that's the whole page; inside a row it's just its own tile, since no tile can take the whole row by itself. To span the whole page from inside a row, use that row's ⤢ button first to lift the tile out.
Like the order, both are presentation for this one job: they are never copied into the shared template, and no other job built from it changes.
Turning what you added into part of the template
Save as template draft on this same page turns a deal's reusable authoring, table layouts and gallery images, into a starting point for the shared template, as a draft you review and publish yourself. Where it's switched on for your account, that now includes the blocks you added to this job: each one is copied into the draft at the same spot, so the next job built from the template starts with it already there.
Two things are deliberately left behind, because they belong to this client rather than to the pattern:
- A contact card keeps only its role. The name, email and phone you typed for this job's client are never copied to the template.
- Pictures stay with the job. An image or gallery block is copied as an empty block: each job supplies its own photos, exactly as an image column in a table does.
Nothing on the deal changes when you promote: the job keeps showing what it showed before. Once you publish the draft and update that job to the new version, the block it already had and the template's copy of it are recognised as the same block, so the client sees it exactly once, with any answers they'd already given still attached. Promoting the same deal twice in a row is a no-op ("Nothing to promote"), and a block you've since edited in the template editor is never overwritten by a later promotion.
Wording just for one client
Your template's wording is shared by every client on it, so changing a heading in the editor changes it for everyone. When you want one client to see something different (their own welcome line, their own set of plans), you fill it in on their deal, not in the template.
You do it in the live editor, on the thing itself, so you can always see what you're changing:
Straight on the page. On the deal's Client portal canvas, click a heading, paragraph, callout, link, or bookmark and its wording is already a live box (a link's label and description, and a bookmark's title and description, are each their own box now), right where they sit on the page. Type the new wording and it saves the moment you click away; leave a box empty and that client goes back to seeing the template's wording, shown greyed inside the box so you always know what they'd get. A link or bookmark's web address stays in the small settings row under it. A picture block is the same: click the picture itself to replace it for this client, with its alt text and caption as boxes right there under it.
- Type into a box and only that client sees your wording.
- Leave a box empty and they see the template's wording, shown greyed inside the box so you always know what they'd get.
- Clear a box you'd filled in and that client goes back to the template's wording.
- Only the box you actually changed is saved, so a colleague editing the same block in another tab can't undo your change, or you theirs: each box commits on its own, the moment you click away from it.
Both routes write to the same place, and they cover the fields of the exact template version that client's portal is on, so editing the template later never disturbs the values you've already typed in here.
A milestone's status/dates/notes/caption, a contact card's details, an image's caption and alt text, a photo gallery or documents slot's extras, and the extra items you add to a checklist follow the exact same rule; see "Edit on the page" above for where each one lives on its block.
*(The old Client portal fields list, a flat table of every personalisable box that sat under the Client portal switches on the deal page, has been retired: editing on the page shows you what each value changes, where the list made you remember.)*
What it affects
- Customers see their project's portal under their sign-in (the sections, decisions, documents and cost chart you publish), and nothing from other projects or other companies.
- Your branding (business name, logo, accent colour), set in Settings → Branding & email, flows into the portal and the feedback wording.
- Stage changes on your deal board flow into the portal timeline automatically; decisions a client makes land back on the deal with a timestamp, as does a notify-button tap, wherever this is enabled.
What a Timeline section shows
A Timeline section is a list of project milestones. Only milestone blocks appear in that list.
If you add another kind of block to a Timeline (a question, a rating, a table), it still shows, but it appears below the milestone list rather than among the milestones. That keeps a client's answers out of the progress list, where they read as project stages. To have a question sit alongside its milestone, put both in a normal section instead of a Timeline.
Good to know
- The starter template is a launch pad, not a lock-in: rename sections, swap prompts, and change decision options freely. Editing it never affects any portal you've already published.
- A timeline phase's caption, status, key dates and notes are each their own live box on the page for one job (see "A milestone's status, dates, caption and notes, right on the page" above). Leave a box empty and that phase keeps following the template's own wording, and the template *version* this job is pinned to: editing the template doesn't reach an already-published portal, so a later caption edit arrives on this job only when someone uses Update to latest template on it (see "Publishing a template doesn't change portals that already exist" above). The Status chip starts at No status shown, which is what it sounds like: the client's timeline carries no badge on that phase. Rewording the caption leaves it there, so a caption edit never quietly announces "Not started" to your client: pick a status only when you actually want one shown.
- A contact card works the same way, field by field (see "A contact card's details, right on the page" above). Swap a phone number on the card and only this client sees it; the other three lines keep following the template. Empty a line to put that detail back on the template's. The Role above the lines (Project Manager, Office Manager, …) is the card's label and is set on the template, so it's shown but not editable per job.
- A single-picture block can swap its picture per job too. Where enabled for your account, opening that block's settings on a deal's portal editor offers Replace for this client: pick and crop a photo the same way you always do, and only this client sees it in place of the template's picture; the alt text and caption underneath can be personalised the same way. Reset to template image puts the template's own picture (and its wording) straight back for this client. This never touches the template or any other job, and Save as template draft leaves a client's replacement picture out of what it copies, same as every other per-job wording change.
- Anywhere your client types, there's now a Save button. The notes-and-changes page, any question you ask them, and the note under a design decision each carry their own Save underneath, with "Saved ✓" beside it once the write lands. It stays greyed out until there's actually something new to keep, and if a save fails it comes back to life so they can press it again. Their answers were always saved automatically a moment after they stopped typing (that hasn't changed), but the button means they can see it happen instead of hoping.
- Your client always lands on Home. Opening their project puts them on the portal's first page every time, rather than dropping them back wherever they happened to stop last visit, so the welcome, the directory, and anything you've put on Home is what greets them. That holds for a client with more than one project too: switching straight from one to another opens the second on Home, not on the tab they were reading in the first. It also holds *within* a visit: if they step across to the Financial tab and then come back to Overview, they land on Home rather than back on whichever page, or sub-page, they had open. Anything they'd already answered, chosen or typed is still saved; only the page they're looking at goes back to the start. If a portal opens somewhere other than Home, it's because Home has been hidden for that project: check the client-visibility toggle on the Home section in the portal editor. It's no longer ever the tab *order*: see the next bullet. The starter tabs run Home → Timeline → Notes & Changes → Interior Design → Important Documents → Feedback: the page they write on sits early, before the read-only reference pages. Reorder the tabs in the template editor whenever a different order suits you better: an order you set is yours and won't be changed back.
- Home is always the first tab, and always where a portal opens. Wherever the Home section happens to sit in a template, it's shown at the front of the tab strip, for the client, in the read-only preview, in the template editor, and in a deal's own portal editor. That holds for portals you published a long time ago, too: a project still pinned to an older version of its template opens on Home next time it's loaded, with no Update to latest template step needed. Home can be renamed, duplicated or deleted like any other tab, but it can't be moved out of first place: its tab carries no ⠿ drag grip at all, and its Move up / Move down arrows are switched off, rather than the editor taking a move it can't show you. Reordering the other tabs works exactly as before. If you'd rather a portal opened on something that isn't Home, rename the Home section to whatever you like and the tab order becomes entirely yours again.
- A client with one job skips the project list entirely. Signing in used to land them on "My Projects", a page holding a single card they then had to click. Now they go straight into that job. A client with two or more jobs still gets the list to choose from, and the ← Back to My Projects link only shows when there's actually a list to go back to.
- Uploaded photos never show their filename to your client: add a caption if you want words under a picture, or leave it clean.
- Videos are capped at 50 MB and only play if they're a genuine MP4 or WebM file: renaming another file type to
.mp4won't get it past the upload check. - A drop-down block needs a title before you can save: it's the header your client taps, so the editor asks you for it rather than publishing an unnamed one. When you add one on a job's own portal page (where every change is kept the moment you make it, so there's no save step to ask you at), it arrives already called "New drop-down" and opens its settings on that title: rename it to whatever your client should read. Adding a drop-down there used to look like the + button did nothing at all.
- A block you added to a job's portal page won't let you save it half-blank. Clear a field the block can't do without (a drop-down's title, a button's label) and the editor names the missing field and greys out Save until you fill it in, rather than letting the save fail with a message no one could read.
- If a block you add to a job's portal page can't be added for some reason, the editor now says so, naming the block and the reason (in plain words, not the raw technical complaint), instead of the + quietly doing nothing.
- You can save a half-finished block and come back to it. Add a link or a bookmark card before you have the web address, and it stays put. The editor shows it as "Link URL not set" so you can find it again, and your client now sees that same grey note until you fill the address in; see the next bullet if you'd rather they saw nothing. Where a field genuinely can't be left blank (a checklist item's wording, a decision option's title), the editor now says so *before* it saves: it names the block and points at the exact field, instead of failing the save with a message no one could act on. Either way the rest of your work is never lost.
- You can have your clients see the empty fields too, rather than nothing. Normally a field you've added but not filled in yet is simply left out of what your client sees: a contact card with no details, a link with no address, a photo or video block with nothing in it, a checklist with no items, a table or form you haven't set up. That keeps their portal tidy, but it also means a field you meant to fill in later looks exactly like one that was never added, and a page you're part-way through building can read as empty to them. Your client now sees the same short grey note you see while building: "To be confirmed", "Link URL not set", "Checklist not set up yet", so the shape of the page is there and it's obvious something is still coming. Nothing you've actually filled in changes either way, and your own view of the template is the same as it's always been. This is on by default for every client portal. If you'd rather your clients saw nothing at all, that's a platform-wide setting rather than a per-account one: talk to Summit.
- New builders never inherit another company's staff, suppliers, office hours, or review links. The starter is deliberately generic; the specifics are yours to add.
- If you haven't set your business name yet, the feedback page reads with a neutral "us" until you do: set your name in Settings → Branding & email and future portals pick it up.
- The cost summary (the estimate total, variations, and project total tiles) can now appear as soon as a client has an accepted quote, even before the job is set up in your estimating tool, so a customer sees their agreed price from day one, not only once the build is underway. Only accepted quotes are ever shown; draft or unaccepted pricing stays private. If a lead has several quotes, the portal shows the single main (largest accepted) quote, the same figure your team quotes them, never a combined total. This whole cost summary only shows once the Financials switch is on for that client (see "Two independent switches, per client" above): an accepted quote alone is no longer enough.
- Turning the Financials switch on shows the client a Financial tab straight away, even before anything is costed. They see the full layout with every figure reading TBC: the estimate, variations and project totals, the cost-tracking summary, and the cost-usage table with its column headings, under a short note saying their costings aren't ready to share yet. Each box fills in on its own as the job progresses, so a client knows from day one exactly where their numbers will appear and what will be tracked. With the switch off, the tab stays greyed out exactly as before.
- Once you've built up a few templates, the Admin → Portal Templates page gives the list its own filter box: type to narrow the templates by name, with a live count, so you can jump straight to the one you want. Per-deal portal state (status, which template it's on, whether it's behind) lives on that deal's own Portal tab in Pipeline, not on this page.
- A Fetch preview on a bookmark card only pulls in details at the moment you fetch: it never keeps checking the link afterwards, so if the target page changes later you'll need to fetch again (or just edit the title/description/image by hand).
- A sub-page with nothing linking to it is invisible to your client: it's not deleted, just unreachable. Delete a link and its sub-page stays put; delete a sub-page and any link that pointed at it quietly stops navigating rather than showing a broken link.
- Availability: the portal is on every plan. Plans differ on how many portal clients and templates you can have; see the pricing page.
- Know when a client's actually looked. On a deal's own page, staff get a status-strip chip showing when the client last opened their portal and (if there's anything waiting on the client) how many items, and (if you sent a quote for e-signing) when they last opened that link, so a quiet client doesn't have to mean a forgotten one.
- "View as client" opens the actual client page, and it's genuinely look-only. Clicking View as client from a deal's portal editor opens the same page your client uses (same layout, same content, nothing simulated), so what you see there is exactly what they'll see. A banner across the top reminds you it's a read-only preview, with a link straight back to the editor. Every decision, question, checklist, rating and form shows its current answer but has no button or field to change it (a deliberate choice, so a colleague looking through a client's eyes never accidentally overwrites what the client actually chose). To try changing an answer yourself, use the editor's own preview, not this page. Table cells are the one exception, and only where "type straight into a table on a live portal" (above) is enabled for your account: there the banner says so, and those cells do save. On a Crew or Company plan, the cost figures on that page (estimates, variations, the cost graph and the Financial tab tiles) only show for staff with the "View job financials" permission, the same one the deal's own cost tabs need; without it the preview shows the Financial tab as switched off.