Skip to main content

Registration, login and intake questionnaires

Before a client can pick a vet and a slot, they need an account β€” and once a slot is picked, the clinic often needs a few short answers before the visit. This page covers both pieces: how the booking portal handles registration, login, password recovery, and profile editing, and how clinic-defined intake questionnaires appear inside the booking flow. For the orientation overview see . For the visit type and slot picker that sits between login and questionnaires, see .

πŸ’‘ In short: New clients register with email + a 6-digit code, picking a password and accepting comms preferences. Existing clients sign in. Forgotten passwords reset via the same code mechanism. Once a slot is picked, any clinic-defined questionnaires for the chosen visit type appear before the confirm screen.


Why this matters

⚠️ Don't ask clients for the same thing twice. It's easy to assume online registration creates a duplicate of an existing client. It doesn't β€” Lupa detects when an email already matches a client on file and offers a "claim your existing record" path instead. Treat the portal account as the digital handle on the existing client record, not a separate parallel one.

What you get

Why it helps

Email-verified accounts

Every account is created via a one-time code sent to the client's email, so the email on file is always confirmed.

Existing-client linking

If the email matches a client already on file, registration links the new account to that record instead of creating a duplicate.

Self-serve recovery

Forgotten passwords reset via the same code mechanism β€” reception isn't pulled in to issue resets.

Up-to-date contact info

Clients edit their own name, phone, address, and comms preferences. The clinic's record stays current without manual updates.

Pre-visit context

Intake questionnaires capture symptoms, medications, fasting status, or anything else the team needs before the consult, attached to the appointment.


Account access flow

The portal recognises four distinct entry states. Which screen the client lands on depends on whether they have an account, whether their email matches an existing client, and what they're trying to do.

Client state

Wizard heading

What they do

Has a portal account

Enter your details if you already have an account

Sign in with email + password.

No account, never been to the clinic

Register

Provide email, verify with code, create full client + pet profile.

No account, but already a client of the clinic

Register β†’ We have found an account on file for you!

Provide email, verify with code, set a password to claim the existing record.

Has account, can't log in

Forgot Password

Reset password via emailed 6-digit code.


Logging in

The first screen of the portal β€” when the client isn't already signed in β€” is titled Enter your details if you already have an account. It's a simple email + password form with three actions:

  • Log In β€” primary action. Signs the client in and advances to the pet picker.

  • Register β€” secondary outline button. Routes to the registration flow described below.

  • Forgot Password β€” text link. Routes to the password recovery flow. After successful login the wizard remembers the client on the same device until they explicitly Sign Out from later screens.

πŸ”’ Lockout-free. There's no account lockout after repeated wrong-password attempts in the booking portal. Repeated failed attempts simply show the same "invalid email or password" message; the client can keep trying, or click Forgot Password.


Registering for the first time

Registration is a small state machine that the portal walks the client through. The route is /register under the clinic's booking URL.

Step 1: Email and account type

The client enters their email. If the clinic has referrals enabled, they also choose:

  • Register as an individual β€” for pet owners registering their own pets.

  • Register as part of a clinic β€” for referring vets, who go down a separate referral flow not covered here. Clicking Send Code triggers a 6-digit code by email.

Step 2: Verifying the code

The client enters the 6-digit code in a 6-slot input. From there, three branches are possible based on what Lupa finds when the code is checked:

Server response

What happens next

new_user β€” email not seen before

Goes to the full new-user profile form (Step 3a).

new_user_existing_client β€” email matches a client already on file

Goes to the abbreviated "claim existing client" form (Step 3b).

account_exists β€” there's already a portal account

Shows "An account with this email already exists. Please sign in." The client should go back and use the login form.

A Resend code button is always available; codes expire after a short window and the client gets a clear "code expired" toast if they wait too long.

Step 3a: New user, full profile

For genuinely new clients, the form captures:

  • First name, last name

  • Date of Birth β€” hidden by default; your clinic can enable it and make it required

  • Phone Number β€” shown by default; your clinic can make it required or remove it from the form entirely

  • Address (always required)

  • Billing Address β€” shown as optional by default; your clinic can make it required or remove it

  • "How did you hear about us?" β€” shown as optional by default; your clinic can make it required

  • Password and password confirmation, with strength validation

  • Communication preferences via the GDPR consent block β€” at least one channel (email / SMS / post) must be picked, plus an opt-in checkbox for marketing if the client wants it

  • Agreement to the clinic's Terms and Privacy Policy (required)

  • Optional notes β€” anything they'd like the clinic to know up front

During this step the client also adds their pet(s). The pet form includes a Colour field β€” hidden by default, but your clinic can enable it and make it required.

Submitting calls Create Account. On success, the client is automatically signed in and taken straight to the pet picker.

Step 3b: Existing client claiming the account

If the email matches a client already on file, the client sees a much shorter form:

  • First name and last name (pre-pulled where possible)

  • Password and password confirmation

  • Agreement to the clinic's Terms and Privacy Policy Submitting links the new portal account to the existing client record β€” no duplicate is created.

πŸ“ Existing clients keep their history. Linking a portal account to an existing client doesn't reset their past appointments, communications, balance, or pets. The portal simply becomes the way they sign in to the same record.


Recovering a forgotten password

The Forgot Password flow is a two-stage screen at /forgot-password under the clinic's booking URL.

Stage 1: Request a code

The client enters their email and clicks Continue. If the email exists, a 6-digit code is sent. If not, the screen shows "User not found".

Stage 2: Set a new password

The client enters the 6-digit code, a new password, and confirms it. Clicking Reset Password validates the code, sets the new password, signs the client in automatically, and routes them to the pet picker. Common toasts:

  • Invalid code β€” wrong digits. Re-enter.

  • Code expired β€” too long since the request. Click Resend code and try again.

  • Passwords must match β€” the two password fields don't agree. Re-type both.


Editing the profile later

Once signed in, the client can update their account details from the Edit Profile screen at /edit-profile. Fields that can be changed:

  • First and last name

  • Phone

  • Address

  • GDPR / communication preferences Email and password are not edited from this screen. Email changes require contacting the clinic; password changes go via the Forgot Password flow described above. Clicking Update saves the changes back to the clinic's client record immediately. Reception sees the new details next time they open the file.


Intake questionnaires

Once the client has picked a slot and clicked Next, the wizard checks whether the chosen visit type has any clinic-defined questionnaires attached. If it does, the client lands on a screen titled Additional Questions before the confirm step. If not, the questionnaire step is skipped entirely.

What the client sees

Questionnaires are made up of questions of four types:

Question type

How it renders

Short text

A single-line text field with placeholder "Type your answer here".

Long text

A multi-line text area, same placeholder, useful for symptoms or history.

Dropdown

A Select an option dropdown with clinic-defined options.

Checkboxes

A list of options the client can tick; multiple selections allowed.

Optional questions are tagged "(optional)" in their label. Mandatory questions must be answered before the Next button is enabled β€” for checkboxes, at least one option has to be ticked.

Which questionnaires apply

Lupa shows a question if either of the following is true:

  • The questionnaire is global β€” it has no specific visit types attached, so it applies to every booking

  • The questionnaire is attached to the visit type the client just picked If the client chose multiple visit types in a multi-pet booking, the union of applicable questions across all visit types is shown.

πŸ“ Set questionnaires up in the work app. Which questionnaires exist, what questions they contain, and which visit types they attach to is configured by the clinic in the work app's settings, not in the booking portal. The portal simply renders whatever the clinic has defined.

Where the answers end up

The answers are saved against the appointment record. When the clinic team opens the booking in the work app, the questionnaire responses appear inline so reception, nurses, and vets can read them at a glance before the consult.

A note on saving and re-entry

Answers persist within the wizard while the client is moving through it β€” clicking back from the confirm screen brings them back to the questionnaire with answers intact. Closing the browser before submitting loses the unsaved progress; the client would have to re-answer on the next attempt. Once the booking is submitted, the answers are visible on the appointment record.


Tips for clinics

βœ… Keep questionnaires short and visit-specific. Five focused questions for a vaccination consult beat fifteen generic ones. Long forms cause clients to drop off right before submission. Mark optional questions optional. A required question that doesn't always apply (e.g. "have they been swimming?") leads to nonsense answers. Be honest about which fields you actually need. Use checkboxes for multiple-choice symptoms. They're quicker for clients to fill out than typing, and easier for the team to scan than free text. Pre-fill what you can β€” don't re-ask known facts. The portal already knows the client's address and the pet's species. Don't add a question to the questionnaire that's already on file. Test the registration link from a fresh browser. A new device with no cookies is the experience a brand-new client has. Walk through it once a quarter to catch any rough edges. Keep your communication preferences honest. The GDPR consent block matters legally. Make sure your default opt-ins reflect what your team is actually allowed to send.


Troubleshooting

Problem

What to check

"Client says they registered, but they don't appear in our client list"

Check whether their registration email matches an existing client. If it did, the portal linked the new account to that client instead of creating a fresh one β€” they're probably already on the list under their existing record.

"Verification code never arrives"

Spam and junk folders are the first place to check. After that, the client can click Resend code on the verification screen. If it still doesn't arrive, confirm that the email address was typed correctly and that the clinic's transactional email isn't being blocked by the client's mail provider.

"An account with this email already exists" but client insists they don't have one

Either someone else registered using that email, or the client previously registered and forgot. They should use Forgot Password to recover the existing account.

"The questionnaire isn't appearing for some bookings"

Check (a) the questionnaire is attached to the visit type the client picked (or marked as global with no visit types), and (b) the questionnaire has at least one question. Empty questionnaires are skipped silently.

"Client can't get past the questionnaire screen"

A required question hasn't been answered. Optional questions are tagged (optional); everything else must be answered. For checkboxes, at least one tick is needed.

"Client wants to change their email"

Email isn't editable from the portal β€” it identifies the account. Reception should update it on the clinic's side, and the client uses the new email next time they sign in.


Frequently asked questions

Does the portal create a duplicate client if the email already exists?

No. If the email matches an existing client record at this clinic, registration goes down the new_user_existing_client path β€” the new portal account is linked to the existing record. The client keeps their history, balance, and pets.

How long is a verification code valid for?

Codes expire after a short window. If the client waits too long they see a Code expired toast message and need to request a new one with the Resend code button.

Can a client change their password from inside the portal?

Not directly from the Edit Profile screen β€” there's no "change password" field there. The supported flow is Forgot Password: it works the same way whether or not the client remembers the current password.

What's a "global" questionnaire?

A questionnaire with no specific visit types attached. Lupa shows it for every online booking, regardless of which service the client picked. Useful for catch-all pre-visit info; use sparingly to avoid asking the same questions every time.

Where do clients see their questionnaire answers?

They don't β€” the wizard moves on to the confirm screen after the questionnaire, and the answers aren't echoed back to the client. They appear on the appointment in the work app, where reception and clinical staff can review them before the visit.

Can a client save a partial registration and finish later?

No. Registration must be completed in one session β€” close the browser before submitting and the form data is lost. The verification code, however, can be re-issued on the next attempt with a new email submission.

What happens to comms preferences if the client unticks them later?

The clinic's record updates immediately. Marketing comms stop on the next send. Transactional messages (booking confirmations, reminders) still go through because they're not marketing.


Related articles

Did this answer your question?