Skip to content
The quote enquiry

The 11pm quote request becomes a typed moving record by today.

A lease ends in six weeks and someone starts typing at 11pm because every "Request a Quote" form on the internet wants an address and nothing else. Six questions later a record is waiting for the estimator: the route, the rooms, the stairs, and the piano nobody mentions until move day. Free to start, live in five minutes.
Build this agent free

You automate moving company intake by putting a conversational agent in front of the quote enquiry. It asks for the route, the timing, the rooms, access and any special items one question at a time, types the answers into a structured record, and posts it to your CRM before an estimator ever calls back.

01 · They talk

Your chatbotAnswering
Let’s get your move sorted. Tell me where you’re moving from and where you’re headed, plus roughly when you need to be in.
Two-bed apartment in Denver, heading to Austin, hoping to be in by early September
Got it, Denver to Austin. How many rooms are we talking, and any stairs or a lift at either end?
It’s a third floor walk-up here, no elevator, not sure yet about the new place

02 · It becomes a record

origin_location
Denver, CO
destination_location
Austin, TX
room_count
2 bedrooms
stairs_or_elevator_access
Third floor walk-up, no elevator

typed · validated · deduped

03 · Your stack acts

  • Dispatch pinged
  • Zap into your CRM
  • Or the same via Make
  • Signed webhook at your endpoint
The process

The process this page is about

Not "AI for movers". One process, the one that decides whether a stressed-out lead calls the next company on the list: the quote enquiry, the message that arrives before an estimator has said a word.
  • Who starts it

    Someone with a lease ending, a job offer in another city, or a house that just sold, usually browsing quote sites at night and usually not sure yet on the exact date.

  • What it costs today

    A "Request a Quote" web form that asks for an address and a date and nothing about stairs, parking or the piano, or a 45 to 90 minute in-home or video survey that only happens once someone has shown serious intent.

  • What it has to produce

    A typed enquiry record: the route, the timing window, the rooms, the access constraints, and anything unusual enough that an estimator needs to know before quoting.

62%

of moving leads never convert - the bottleneck is the intake, not the lead volume

SmartMoving

The schema

What it asks, and what it never asks

You name the fields your quote form already has. 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
origin_locationtextYesWhere the truck starts
destination_locationtextYesWhere the truck ends up
move_timingtextYesThe window an estimator plans around, never a fixed date
room_counttextRoughly how much is moving
stairs_or_elevator_accesstextAccess at either end changes crew size and time
parking_availabilitytextWhere the truck can actually park
what_matters_mosttextThe detail a form never asks for and the one that predicts a repeat customer
special_itemstextThe piano, the safe, the fish tank - flagged before move day, not on it
packing_or_storagetextWhether this is a bigger job than a truck alone
full_nametextYesWho the quote goes to
emailemailYesWhere the quote gets sent
phonephoneA backup way to reach them

And what it will not do

  • It never quotes a firm price in chat. Moving prices depend on a survey, so it gives a general sense at most and offers a proper quote by email.
  • It never confirms a move date. A date is only fixed once a survey has been done and a crew is booked, so it captures the window they are aiming for and says scheduling confirms it.
  • It never invents availability, a crew size, or an insurance term to sound more certain than the company actually is.
  • It never treats an item mentioned in passing as handled. A piano or a safe gets a flag for a human to confirm, not a silent yes.
  • The moment a move-day problem looks like a safety issue, the crew agent stops collecting fields and says this needs a phone call to dispatch right now.
  • It never invents a field. If they did not say it, the record says "Not captured" instead of a guess.
The live run

Try the run yourself

Six situations a moving company’s front office actually handles, each running its own agent with its own fields. Pick one and answer it the way a real customer would, mid-panic 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 office opens in the morning

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

148 collected19 this week3 need attention

Export CSV
  • Renee Castillo 2BR, Denver to AustinNorthpoint Moving Co. · 2h ago
  • Marcus Webb Crew running late, escalatedNorthpoint Move-Day Issue · 4h ago
  • Dana Ferreira Interstate move, asked about a pianoNorthpoint Route and Access Check · Yesterday
  • Els Bakker Storage unit, quiet 8 monthsNorthpoint Storage Check-In · Yesterday
  • Tom Whitfield Dresser damaged in transitNorthpoint Damage Claim · Mon

Renee Castillo

Captured 2h ago · Northpoint Moving, Quote Enquiry · joina.chat

Captured data 7 of 8 fields

full_nameRenee Castillo
phone+1 720 555 0134
emailrenee.castillo@example.com
origin_locationDenver, CO - third floor walk-up, no elevator
destination_locationAustin, TX
room_count2 bedrooms
special_itemsA piano and a wall-mounted fish tank
packing_or_storageNot captured

From the conversation

“We’ve had this piano in the family forever, I really don’t want it scratched up , so whoever handles it needs to know that going in.”

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 enquiry, not another login

The moment the enquiry 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 moving company already runs.
POST https://hooks.zapier.com/hooks/catch/1234567/movenqr

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 move enquiry",
  "record_id": 1234,
  "attributes": {
    "full_name": "Renee Castillo",
    "phone": "+1 720 555 0134",
    "origin_location": "Denver, CO",
    "destination_location": "Austin, TX",
    "move_timing": "Early September, date not fixed",
    "special_items": "Upright piano"
  }
}
  • Two events

    data.collected fires the first time a Gnosari collects a new kind of data. data.updated fires when a customer 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 job file.

  • Quotes are opt-in

    The provenance block, the customer’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 enquiry is complete.

    • Salesforce
    • HubSpot
    • Calendly
    • Mailchimp
  • Straight to the office

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

    No middleman. The estimator sees the enquiry before dispatch does.

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

    Give us an https address, verify the signature, open the job 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. SmartMoving, Supermove, MoversTech and Elromco 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 job.

Two ways it can look

On your site, or a link you text back to a missed quote request

Both are live right now. The widget in the corner takes the quote enquiry from someone reading your services page. The link is what you text back to a missed call at midnight, and it works before the office opens.
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 voicemail and the "Request a Quote" form that only asks for an address.
What changesPhone tag and a callbackWeb quote formGnosari
After hoursRings out, or a callback promiseSits in an inbox until MondayAnswered, typed, delivered
What you get backWhatever they remember to sayWhatever fit in the boxesThe move, in their own words
Special itemsOnly if they think to mention itNo field for itAsked about directly, every time
Access and parkingFound out on move dayNot askedCaptured before the truck is booked
Half-told storyA rep calls back to askSubmitted half emptyIt asks the follow-up
Gets into your CRMRe-typed by handCSV export, maybeSigned webhook, the moment it is complete
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 quote form already has, point the agent at your services pages, and put the link on your site. The agent runs the conversation, produces a typed enquiry record, and posts it to your CRM through a webhook, Zapier or Make. Setup is minutes, not an implementation project.

Five minutes from now your late-night quote requests could be typing themselves up.

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