Skip to content
Pre-visit patient intake

The clipboard becomes a typed patient record before the visit.

Someone books a first appointment on Thursday. Instead of a portal login they will never use, they answer questions in a chat on the sofa. Your provider opens Monday to a complete registration, not two of eight pages. Free to start, live in five minutes.
Build this agent free

You collect patient information before the appointment by putting a conversational agent in front of intake. It asks what your registration form asks, one question at a time, keeps asking until the required fields are filled, and posts a typed record to your system before the patient arrives.

01 · They talk

Your chatbotAnswering
What is the main reason you are coming in?
My back, it’s been playing up for a few months now
Noted, thank you. Do you take any medicines regularly?
A small white one for blood pressure, I don’t know the name

02 · It becomes a record

reason_for_visit
Back, playing up a few months
current_medications
"Small white one for blood pressure", name unknown
insurance_plan
Aetna Choice POS II
medication_allergies
Penicillin

typed · validated · deduped

03 · Your stack acts

  • Front desk channel pinged
  • Zap into your practice system
  • Or the same via Make
  • Signed webhook at your endpoint
The process

The process this page is about

Not "AI for healthcare". One process, the one every practice already runs badly: getting a complete, accurate registration out of a patient before they are sitting in your waiting room with a pen.
  • Who starts it

    A patient at home, on a phone, usually the evening before, often having put the whole thing off for months.

  • What it costs today

    A portal login nobody completes, a clipboard filled in under time pressure, and a front desk re-typing it into the record while the waiting room backs up.

  • What it has to produce

    A complete registration: demographics, contact that reminders will actually reach, insurance as printed, medicines, allergies, and the reason for the visit in the patient’s own words.

74%

of patients would rather complete intake digitally before the visit than on arrival

Interlace Health

The schema

What it asks, and what it never asks

You name the fields your registration form already has. It does the asking, in whatever order the conversation goes, and it keeps asking until the required ones are filled.
FieldTypeRequiredWhy it is there
full_nametextYesIdentity on the record
date_of_birthdateYesMatches the patient to the right chart
phonephoneYesThe number reminders go to, which is where no-shows start
reason_for_visittextYesIn their words, so the provider reads what was actually said
how_longtextDuration as the patient describes it, never as a finding
insurance_plantextYesEligibility verified by a person, never confirmed here
member_idtextAs printed. Never a full card number
current_medicationstextRecorded as described, even "a small white one"
medication_allergiestextThe field a paper form loses most often
history_notestextOne open question, and never pushed

And what it will not do

  • It never diagnoses, never suggests what something might be, and never says whether a symptom is serious, urgent or nothing to worry about.
  • It never gives medical or self-care advice, and never tells anyone to take, stop, change or delay a medicine.
  • It never interprets a result, a scan or a reading.
  • It never confirms that a plan is accepted or that anything is covered, and never quotes a copay or an estimate.
  • It asks for the minimum the task needs. No full social security number, no full card number, and no clinical detail the question did not call for.
  • It records what a patient said as their words, never as a finding. "Says the pain is in the lower back", never "has lower back pain".
The live run

Try the run yourself

Six things a front desk actually handles, each running its own agent with its own fields. Pick one and answer it the way a real patient would, vaguely and out of order, and watch it ask the follow up instead of accepting the blank.
Open this one full screen
Where the records land

What the front desk opens in the morning

Every conversation that produced something useful arrives here as a row you can read in two seconds. Every value keeps the sentence it came from, and anything the agent itself said can never become your data.

Collected data

531 collected44 this week7 need attention

Export CSV
  • Nadia Sharif New patientNew Patient Registration · 1h ago
  • Owen Pratt Same daySame Day Request · 3h ago
  • Anonymous visitor EligibilityInsurance and Cost Check · 5h ago
  • Grace Adeyemi Repeat scriptPrescription Refill · Yesterday
  • Peter Vaughn Overdue, declinedOverdue Check Up · Mon

Nadia Sharif

Captured 1h ago · New Patient Registration · joina.chat

Captured data 7 of 8 fields

full_nameNadia Sharif
date_of_birth1984-03-17
phone+1 617 555 0139
reason_for_visitBack, playing up a few months
insurance_planAetna Choice POS II
current_medications"Small white one for blood pressure", name unknown
medication_allergiesPenicillin
history_notesNot captured

From the conversation

“My back, it has been playing up for a few months now, and I take a small white one for blood pressure but I do not know the name.”

Every value keeps the sentence it came from, and a value the visitor never said is never stored. The chatbot cannot quote itself into your data.

From here a record can go straight on to Slack, a sheet, a Zap or your own API. The inbox is where you read them, not where they get stuck.

Where it goes next

Your practice system gets the registration, not another portal

The moment the intake is complete, Gnosari posts it to whatever address you give it. Signed, versioned and retried. From there it is a webhook, which reaches almost anything a practice already runs.
POST https://hooks.zapier.com/hooks/catch/1234567/abcdef

Signed headers

webhook-id
msg_2f9a41c8
webhook-timestamp
1786518862
webhook-signature
v1,K7Qd…8xPm

Body

{
  "type": "data.collected",
  "event_id": "1b6f9c02-4d1a-4f7e-9b3c-2a5e8d0f1c44",
  "created_at": "2026-08-11T09:14:22Z",
  "payload_version": "v1",
  "data_kind": "Patient registration",
  "record_id": 1234,
  "attributes": {
    "full_name": "Nadia Sharif",
    "date_of_birth": "1984-03-17",
    "phone": "+1 617 555 0139",
    "reason_for_visit": "Back, playing up a few months",
    "insurance_plan": "Aetna Choice POS II",
    "medication_allergies": "Penicillin"
  }
}
  • Two events

    data.collected fires the first time a Gnosari collects a new kind of data. data.updated fires when a patient corrects something.

  • Signed, so you can trust it

    Standard Webhooks HMAC-SHA256, with webhook-id, webhook-timestamp and webhook-signature on every request. Verify before it reaches a chart.

  • Quotes are opt-in

    The provenance block, the patient’s verbatim words, is absent unless you turn it on for that destination.

  • Zapier or Make

    Paste a Catch Hook URL into your Gnosari destination, then point the Zap at your practice system.

    Free tier, no app to install, and it fires the moment the registration is complete.

    • Salesforce Health
    • HubSpot
    • Calendly
    • Mailchimp
  • Straight to the desk

    Anything that accepts an incoming webhook takes the payload as it is.

    No middleman. The front desk sees the registration before the patient arrives.

    • Slack
    • Teams
    • Sheets
    • Twilio SMS
  • Your own endpoint

    Give us an https address, verify the signature, write it into the record yourself.

    A few lines of code, and the delivery log tells you when something did not land.

    • Postgres
    • Supabase
    • Retool

And you can see every attempt

WhenEventOutcomeDetail
20:12:35data.collectedDelivered200 OK
20:12:32data.collectedFailed503, retrying in 30s
Yesterday 14:07data.updatedDelivered200 OK
Yesterday 08:51data.collectedDelivered200 OK

Every attempt is kept, newest first, with the reason when there is one. Failures retry on their own, and the signing secret lives in your dashboard so you can rotate it without calling anybody.

These are examples, not a partner list. Epic, Athenahealth, eClinicalWorks, Kareo and NextGen are all reachable the same way: through a Zap, or straight to an endpoint you control. If it takes an HTTP request, it takes the registration.

Two ways it can look

On your practice site, or a link texted after booking

Both are live right now. The widget in the corner takes today’s request and routes the emergencies straight out of it. The link is what you text once an appointment exists, and it beats a portal login every time.
chat

The widget on your site

A button in the corner that opens into a conversation. Your logo, your colours, sitting on the pages you already have.

  • One line of HTML, anywhere on your site
  • Bubble, sidebar, sidebar-push or drawer
  • Opens over the page, closes again
conversation

A page of its own

No chat window and no widget. Your headline leads, the thread sits under it, and it reads like you asked rather than like software collecting.

  • Sent as a link, or scanned from a QR
  • Its own headline, caption and greeting
  • Every link counted separately
  • One responsive page: phone, tablet or desktop

Every screen on this page is a published Gnosari, embedded from the app. Type into any of them.

Put it on your site

One snippet, four ways to wear it

Paste one line of HTML anywhere on your site. How the widget sits on the page is a setting, not a rebuild, and you can change it after you ship.

Bubble

display_mode="bubble"

A floating button in the corner. Opens over your page and closes again. The default, and the one nobody has to be taught.

Four corners to choose from

Sidebar

display_mode="sidebar"

A fixed panel down one side, always open. For pages where the conversation is the point rather than an aside.

Left or right, any width

Sidebar push

display_mode="sidebar-push"

The same panel, but your content moves over to make room instead of being covered. Nothing on the page is ever hidden.

Left or right, any width

Drawer

display_mode="drawer"

Slides in over the page when it is called, then slides away. The middle ground between a bubble and a sidebar.

Left or right

Where else it lives

Not every conversation starts on a website

The same Gnosari, reached three other ways. A link, a code, or a piece of paper. All of them land in the same record.

01 · A link you send

joina.chat/l/your-slug

Put it in an email, a text, a booking confirmation or a signature. Each link carries its own opening line and headline, and counts its own visits, so you can tell which channel actually worked.

  • Its own greeting and headline
  • Optional expiry date
  • Counted separately

02 · A code they scan

The same link, printed

Every link comes with a QR. On a table card, a receipt, a delivery note, a door. Someone points a phone at it and the conversation starts, with no app and no typing.

  • PNG or SVG, print resolution
  • Points at the same slug
  • Old printed codes keep working

03 · A flyer you hand over

posters.gnosari.com

A builder for the printed thing itself. Pick a template, restyle it, edit the words on the page and export a print-ready poster or card with the QR already placed.

  • Posters, cards and flyers
  • Print or PNG export
  • No account needed
Whose brand it wears

Your brand, down to the font

Nobody should be able to tell it is us. Start from a curated look, mix your own colour and pattern, or set every design token yourself: every surface follows, from the widget to the conversation page to the link someone opens on their phone.

01 · Start from a preset

Twelve curated looks, each a colour and a background pattern chosen to go together. Pick one and you are done.

  • plainsky · noneCorporate or formal, or let the content lead
  • clean-dotssky · fine-dotsSaaS, B2B, dashboards
  • ocean-wavesocean · wavesWellness, travel, spa
  • forest-topoforest · topographyOutdoors, sustainability, eco
  • blueprintblue · blueprintEngineering, dev tools, architecture
  • graph-paperindigo · graph-paperEducation, finance, analytical
  • circuitteal · circuitTech, hardware, AI, electronics
  • soft-bubblesrose · bubblesFriendly, lifestyle, community, care
  • sunset-glowsunset · blobsCreative, marketing, bold consumer
  • emerald-gridemerald · gridHealth, growth, productivity
  • confettifuchsia · confettiEvents, kids, playful brands
  • mono-noiseviolet · noiseMedia, publishing, premium and minimal

02 · Or mix your own

22 colour themes and 44 background patterns, each drawn in code at four intensities. That is 3,872 combinations before you touch a single token.

22 colour themes

  • purple
  • blue
  • green
  • orange
  • pink
  • indigo
  • cyan
  • rose
  • amber
  • teal
  • fuchsia
  • sky
  • emerald
  • violet
  • sunset
  • ocean
  • forest
  • neon
  • gold
  • coral
  • lavender
  • mint

44 background patterns

  • dots
  • grid
  • diagonal-lines
  • zigzag
  • hexagons
  • triangles
  • diamonds
  • squares-rotated
  • cross-dots
  • plus-signs
  • waves
  • bubbles
  • clouds
  • topography
  • organic-blobs
  • flowing-curves
  • subtle-grid
  • circuit
  • blueprint
  • isometric
  • graph-paper
  • fine-dots
  • confetti
  • stars
  • hearts
  • sparkles
  • paper-texture
  • noise
  • chat-bubbles
  • speech-marks
  • conversation
  • messages
  • emoji-smileys
  • emoji-hearts
  • emoji-stars
  • emoji-thumbsup
  • social-likes
  • social-reactions
  • paint-splatter
  • brush-strokes
  • doodles
  • squiggles
  • party
  • flowers

Every pattern, four intensities

  • subtle
  • light
  • medium
  • strong

03 · Or set every design token

Exact hex values, fourteen fonts, bubble shape per side, corner radius, density, header and input. Explicit tokens always win over the preset. Two chats can share every line of markup and still wear two different brands: only the tokens differ.

A boutique hotel

fontFamily
Playfair Display
colorPrimary
#A16207
colorSurface
#FAF7F2
bubbles.user.radius
xl
radius
lg
Maison AurelOnline
Is late checkout possible on Sundays?
Until 2pm, and there will be coffee waiting downstairs.

A developer tool

fontFamily
JetBrains Mono
colorPrimary
#34D399
colorSurfaceDark
#0D1117
bubbles.user.radius
sm
radius
sm
relaydbOnline
Does the API rate limit per key?
600 requests a minute per key, with bursts to 1,000 for 30 seconds.

fontFamily accepts fourteen faces

  • Inter
  • system-ui
  • Roboto
  • Open Sans
  • Lato
  • Montserrat
  • Poppins
  • Source Sans 3
  • Nunito
  • DM Sans
  • Lora
  • Playfair Display
  • JetBrains Mono
  • Space Grotesk
  • radius: none · sm · md · lg · xl
  • density: compact · comfortable · spacious
  • intensity: subtle · light · medium · strong

Set with one call, or one click in the designer. Changing it later takes the same one call, and every published surface updates at once.

The alternative

Instead of what you do now

The comparison that matters is not against another chatbot. It is against the clipboard and the portal login.
What changesPaper clipboardPortal or PDF formGnosari
When it gets filled inIn your waiting roomIn theory, beforehandWhenever they have five minutes
What it costs the patientTen minutes and a penAn account and a passwordNothing to set up
Half-completed formsStaff chase at the deskSubmitted as-is, page 4 blankIt asks the follow-up
Vague answersLeft vagueLeft vagueRecorded verbatim, flagged as unknown
Gets into your systemRe-typed by handCSV, or an integration you pay forSigned webhook, the moment it is complete
The clinical lineDepends who is on the deskNot applicableNever crossed, and stated at the start
Common Questions

Frequently Asked Questions

Everything you need to know about getting started. Can't find the answer you're looking for? Reach out to our team.

Still have questions?

Our team is here to help you get started.

Name the fields your registration form already has, then send the patient a link after they book. The agent runs the conversation, keeps asking until the required fields are filled, and posts a typed record to your practice system through a webhook, Zapier or Make. There is no portal account for the patient to create, which is the step most pre-registration loses people at.

Five minutes from now your intake could be finishing itself.

Build the agent, text it to the next patient who books, and watch the first complete registration arrive. Free to start, no card.