Skip to content
The pre-discovery-call intake

The midnight message becomes a typed client brief by morning.

A prospect stuck on a decision types a message at midnight instead of finishing the intake form, because a wall of text boxes felt like a chore before anyone had even said hello. Four questions later a typed client brief is waiting for the coach: the situation in their own words, what they want different, and what they’ve already tried. Free to start, live in five minutes.
Build this agent free

You automate coaching client intake by putting a conversational agent in front of the pre-discovery-call conversation. It asks the situation, the goal, and what’s been tried one question at a time, types it into a client brief, and hands it to the coach before the call, never quoting a fee or giving advice.

01 · They talk

Your chatbotAnswering
What’s going on for you right now?
I’ve been stuck on this decision for months, going back and forth. Talked it through with friends but keep circling back to the same spot
That’s useful to know. And once this is sorted, what do you want to be different?
Honestly I just want to actually make the call and move. One-on-one feels right, not group

02 · It becomes a record

current_situation
Stuck on a decision for months, going in circles
primary_goal
Wants to actually make the call and move
what_youve_tried
Talked it through with friends, kept circling back
preferred_format
One-on-one, not group

typed · validated · deduped

03 · Your stack acts

  • Booked into your CRM
  • Zap into your intake pipeline
  • Or the same via Make
  • Signed webhook at your endpoint
The process

The process this page is about

Not "AI for coaches". One process, the one that decides whether a prospect who’s been circling a decision for months actually books the call: the pre-discovery-call intake, the conversation that happens before the coach has ever heard their voice.
  • Who starts it

    Someone who typed "I don’t really know where to start" at 11pm, before the discovery call is even booked, because a static form felt like a wall between them and getting help.

  • What it costs today

    A Typeform sent ahead of the call that more than half of prospects never finish, or a discovery call spent asking the same three questions the form should already have answered.

  • What it has to produce

    A typed client brief: the situation in their own words, the goal, what they’ve already tried, and whether this looks like a one-on-one or group fit, before the coach ever picks up the phone.

47%

of prospects who start a coaching intake form actually finish it

Typeform

The schema

What it asks, and what it never asks

You name the fields your intake already asks for. It does the asking, in whatever order the story comes out, and it keeps asking until the required ones are filled.
FieldTypeRequiredWhy it is there
full_nametextYesWhose name goes on the client brief
emailemailYesWhere the confirmation and the brief land
current_situationtextYesThe situation, in their own words, not squeezed into a text box
primary_goaltextYesWhat they want different - the line the discovery call opens with
what_youve_triedtextSo the coach doesn’t spend the call re-asking what’s already been tried
preferred_formattextRoutes the call itself: one-on-one or group
best_time_to_talktextWhen they’re actually free, not just when the form happened to be open

And what it will not do

  • It never gives the guidance, feedback or advice a paid coaching engagement is for - that happens with the coach, not in this chat.
  • It never quotes, negotiates or confirms a fee, package price or session rate, even a range.
  • It never scopes or commits to what an engagement will cover or how many sessions it includes. That’s decided on the discovery call, by a person.
  • It never diagnoses anything, and never coaches around a clinical mental health condition. If something sounds like it needs a therapist, it says so plainly.
  • The moment anything sounds like a safety crisis, it stops asking questions entirely and gives a real crisis number instead.
  • It never invents a field. If they didn’t say it, the record says "Not captured" instead of a guess.
The live run

Try the run yourself

Six situations a coaching practice actually handles, each running its own agent with its own fields. Pick one and answer it the way a real prospect or client would, vague and mid-thought, and watch it ask the follow-up instead of accepting the blank.
Open this one full screen
Where the records land

What the coach opens before the next session

Every conversation that produced something useful arrives here as a row a coach 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

141 collected18 this week3 need attention

Export CSV
  • Jordan Ames New prospect, stuck on a decisionDiscovery Call Intake · 1h ago
  • Priya Nair Urgent, escalatedImmediate Concern · 3h ago
  • Sam Okafor Asked about program fitProgram Fit · Yesterday
  • Diego Ruiz Pausing the engagementPause or Cancel · Yesterday
  • Elena Marsh Session check-inSession Check-In · Fri

Jordan Ames

Captured 1h ago · Discovery Call Intake · joina.chat

Captured data 6 of 7 fields

full_nameJordan Ames
emailjordan.ames@example.com
current_situationStuck on a decision for months, going back and forth on my own
primary_goalActually make the call and move, instead of stalling
what_youve_triedNot captured
preferred_formatOne-on-one, hasn’t done group before
best_time_to_talkWeekday evenings

From the conversation

“I’ve been going back and forth on this for months, not sure if I even need a coach or just need to make a decision , but a friend said I should at least talk to someone.”

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 CRM gets the client brief, not another login

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 coaching 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": "New prospect",
  "record_id": 1234,
  "attributes": {
    "full_name": "Jordan Ames",
    "email": "jordan.ames@example.com",
    "current_situation": "Stuck on a decision for months, going back and forth on my own",
    "primary_goal": "Actually make the call and move, instead of stalling",
    "what_youve_tried": "Talked it through with friends, kept circling back",
    "preferred_format": "One-on-one, hasn’t done group before"
  }
}
  • Two events

    data.collected fires the first time a Gnosari collects a new kind of data. data.updated fires when a prospect or client 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 opens a record.

  • Quotes are opt-in

    The provenance block, the person’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 CRM.

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

    • Calendly
    • HubSpot
    • Mailchimp
    • Notion
  • Straight to the desk

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

    No middleman. You see the brief before the discovery call does.

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

    Give us an https address, verify the signature, open 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
19:04:22data.collectedDelivered200 OK
19:04:18data.collectedFailed503, retrying in 30s
Yesterday 09:37data.updatedDelivered200 OK
Yesterday 07:52data.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. HoneyBook, Dubsado, CoachAccountable and Practice 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 brief.

Two ways it can look

On the coach’s own site, or a link texted after a missed call

Both are live right now. The widget in the corner takes the pre-call intake from someone reading the services page. The link is what gets texted back after a missed call, and it works before anyone’s back at their desk.
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 Typeform-and-Calendly stack, and the discovery call spent gathering context it should already have.
What changesTypeform + CalendlyDiscovery call, coldGnosari
Completion47% finish the formNobody drops off, but the call runs overAnswered and typed before the call
What you get backWhatever fit in the boxesWhatever they remember to say out loudThe situation in their own words
Vague answerLeft blank, or genericThe coach spends call time probingIt asks the follow-up
Program fitGuessed from a dropdownFigured out live on the callScreened before anyone books
Gets into your CRMRe-typed by handTyped into notes after the factSigned webhook, the moment it is complete
The advice lineNot applicableNot 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 intake already asks for, point the agent at your services pages, and put the link on your site. The agent runs the conversation, produces a typed client brief, and posts it to your CRM through a webhook, Zapier or Make. Setup is minutes, not an implementation project.

Five minutes from now your midnight messages could be typing themselves up.

Build the agent, put it on your services pages, and watch the first client brief arrive. Free to start, no card.