The question gets answered before it reaches you.

echohatch is a contact and support form for your website — plus one inbox for everything that still gets written. You answer a question once; from then on your site answers it.

One script tag, no backend. A working form in two minutes.

your-site.com/contact

Write to us

your@address.com
How long does an import take?

We have answered this before

A file with 50,000 rows is in within about two minutes. Larger ones are better cut into parts.

Read more: Help with importing ↗
That helps, thanks Not quite — I'll write anyway

Not a chatbot: what stands here was written by somebody at your desk and released by a second person. That is why it may be shown to a stranger.

1 — on your page

Somebody types a question

Your form, with one line on every page. Four languages, no cookies, 18 kB.

your-site.com/contact
How long does an import take?
2 — before they send

The answer is already there

Word for word out of what you wrote and released once. No model, nothing invented.

in the form
We have answered this before
A file with 50,000 rows is in within about two minutes.
3 — what still arrives

One inbox

Across every product you run. Similar things grouped, so thirty reports count once.

Inbox
4× “Where is the export?” · waiting 3 h

Receiving

A form you build yourself — and one that brings along what a contact form never has: the page the question came off, a picture, a recording, and the number of people who started and gave up.

Your own formsPer project and per kind, in steps. Eight field types: text, long text, email, number, select, checkbox, file and image.
Changed without a deployThe widget fetches its forms from the server. Edit one in the dashboard and it changes on your site with it.
Four languagesEnglish, German, French, Italian — you translate your labels, the widget brings its own.
Attachments up to 5 MBScreenshots, invoices, log files. On the case itself, not in a second mail thread.
“Here, let me show you”Whoever cannot put what went wrong into words records it. The DOM, not the screen — inputs masked, thrown away before sending if they change their mind.
Record it yourselfWhat somebody tells you on the phone, you enter yourself. It lands in the same stack as everything else.
Nothing from strangersA project accepts only from the addresses you listed. Whoever knocks anyway shows up with a button to let them in.
Even the ones who never sendOpened, typed, sent, gave up — and for an abandoned form the field it stopped in. Never a value from it, only the name.

Answering

One inbox for every product, in which the same question appears once rather than thirty times — and in which you can see what you already answered to it.

Grouped by meaningNot by keyword: “export is broken” and “where can I download my data” land in the same stack.
“You have answered this”With the answer from back then and a button that takes it. And with a warning when your earlier answers disagree with each other.
Everybody at onceFour people, one answer. You see who it reaches and which of them has waited longest.
A draft from your own knowledgeWritten out of released entries and nothing else. Where the shelf does not cover part of the question, the draft says so instead of inventing it.
From your own mail clientReplying to the arrival notice is enough — the mail goes to the person who wrote in.
Slack and TeamsEvery new case as a message where you already look: a summary and a link, never the whole text.
They can see where it standsA link in the confirmation mail leads to their own case. No account — they never had one. Whoever follows up lands there instead of arriving as a second case.
The recording, readYou do not have to watch it: “Clicked the same button four times, and nothing happened. At 0:03.”

Reusing

Every answer you release keeps working for you afterwards — in the form, on your own pages, and in your own inbox.

The shelfAn answered case becomes a draft: names, amounts and invoice numbers taken out, and you see what was removed. Releasing it is a second, human act.
Your website as the first shelfOn day one the shelf is empty. List your docs or FAQ pages, echohatch reads them weekly and quotes from them word for word, with a link to the spot.
The answer inside the formWhile they type, from a dozen characters on. If nothing fits, nothing happens — and they send as they always would.
An FAQ block on the pageIts own file, 2 kB. It shows exactly the answers people asked for on that page, and changes when the questions change.
Your answering time as a promiseYour own median over the last 90 days, coarsely worded and not until five enquiries have been answered. It corrects itself when you get slower.
Nothing goes stale unnoticedAn entry shown often and rarely called helpful stands out. And how much of a draft survives into what was sent is measured.

Understanding

What a thousand messages say together, and what no single one of them says: which want keeps coming back, who is behind it, which page produces the questions — and whether something is on fire right now.

Wants, groupedThirty times “dark mode” counts once, across the wording. With a map showing what sits close to what.
Who is behind itYour page hands the widget who is writing — their plan and what they are worth. Then a want does not say “17 people”, it says “at least 2,033 a month, from 17 paying people”.
A public roadmapOnly what you decided, under your name, on your domain. No script, no font, no request to anywhere.
Telling them when it landsA want gets built — and everybody who asked for it hears about it. On a button press, not as a newsletter.
Which page produces questionsA question twelve times is a statistic. Twelve times from the pricing page is an instruction — and when the answer is already released, echohatch says it only needs putting there.
Before anybody reports itSuddenly many from one page, a form abandoned far more than usual, the same button hammered across several recordings. Measured against your own habit.
The same want in two productsRun several products and you see where the same thing is asked for twice — in two vocabularies.
Where people give upPer form: opened, typed, sent, gave up. A form nobody finishes used to look exactly like a form nobody wanted.

Running it

Several products in one workspace, and the things you have to be able to promise your own visitors.

Erasure on requestReally deleted, not hidden. The receipt records which case, when and by whom — and not a word of what it said.
Retention periodsTwo numbers: one for the cases, one for the recordings alone. Every misreading means “keep”.
An export you fetch yourselfWhat you hold about one person, and the whole workspace. Not a form you have to send us.
Roles and invitationsOwner, admin, member. Whoever is invited needs no account first.
Separated in the databaseNot only in the application: every query runs inside one workspace's scope, enforced by Postgres itself.
Nothing is refused because a plan endedWhat pauses is what computes. A visitor's message is always stored.
And the one number nobody else can work out

How much your site answered by itself

61 %
61 the site answered itself
27 wrote to you
12 started and gave up

A helpdesk sees only the messages that were sent, and is blind to the ones never written. Analytics sees page views without intent. Both halves exist together only here — which is why no other tool can work this out.

firn line — below it, the site answers first message first reply on the shelf shipped, and the customer reads it 61 of 100 questions 39 reach you

The firn line is the height at which a question reaches you. The numbers are an example — echohatch works them out for your site. And it says what it cannot see: anyone who found the answer on your page and never opened the form is in none of the three parts. The real rate is higher and unmeasurable.

What goes on your page

One line, and nothing else

<script src="https://api.echohatch.com/w.js" data-echohatch-project="pub_…" data-echohatch-type="support"></script>
18 kBthe widget, gzipped
2 kBthe FAQ block on its own
4languages
0cookies
5 MBattachments per submission

No build step, no dependency. The form renders inside a shadow DOM — your CSS cannot break it and it cannot break yours.

Price

Everything inward is free

Receiving, triaging, replying and building the shelf: for ever, with no time limit. What you pay for is what appears on your own website — from CHF 29 a month. And a visitor's message is never refused because a plan ran out.