Skip to content
Hazelsong is still being built.Skip to content
Hazelsong

Read and decide

The sentence that would have cost you

A client writes that you won them a large settlement. Published as written, that reads as a promise to the next person who finds your site. On Starter and Pro, the typed words of each testimonial that arrives are read for that, and for the other things a regulated trade cannot publish casually, while the month's AI readings last, and flagged with the reason before you decide. A recording or a picture is never read by AI, and anything not read says so on its card and waits for you.

PlanStarter and Pro, every testimonial, within the month's AI readings printed on the pricing page; the free plan carries no readings, so what arrives there is kept unread and marked so. The address check runs on what arrives through a form or the API, on every plan, and costs no readings. Whether a reply is owed and whether it is specific come from the same reading, at no extra cost.

How it works

Read for risk, step by step

  1. It reads on arrival, not on request

    There is no button to press and no queue to remember. While the month has readings, a testimonial's typed words are read as it lands and it carries its flags into Pending.

  2. Tried again when the AI is busy

    When the reading does not come back because the AI provider is busy, overloaded or slow, the testimonial is stored marked "Reading queued" and the reading is tried again automatically, waiting longer each time, up to 5 attempts within 6 hours. Testimonials from your forms go first, imports, feeds and the API after them. An attempt that got no answer gives its reading back. Its history shows "not read" on arrival, then the reading when it comes; if every attempt fails it says so and waits for you. At most as many as the month's AI readings are queued this way in a month.

  3. What is not read, and what waits for a person

    Not read: anything that arrives once the month's readings are spent, on the free plan (which carries none), or when the model does not answer — and the card says "not read" with the reason rather than showing it as read and clear. Never read by AI: a video, a voice recording, a recorded interview answer, a photo or any other picture; a transcript is not read for risk either. Every one of these waits in Pending for a person, and automatic moderation never approves one.

  4. It says what it found, and why

    A promised outcome, a figure, a claim of specialization, a named third party, somebody's private detail. The reason is written beside the flag; you are not asked to trust a score.

  5. You decide, unless you choose otherwise

    Nothing is rejected automatically, and nothing is published automatically unless you switch on automatic moderation, which never approves one with anything flagged. The flag is information for the person whose license it is.

  6. The same words are read once

    A testimonial whose words are already in the project, ignoring case, punctuation and spacing, is not read a second time: the reading of the earlier one covers the same words, and one of the month's AI readings is saved. Its card says so, and it is stored as not read — never as read and found clean.

  7. Who could have written it

    Beside the reading, a check by rule rather than by model: a testimonial written from a throwaway-mail address (Mailinator, Guerrilla Mail, YOPmail and the other common ones), or from your own business's domain — the domain of your own address or your website — says so in a sentence. A public mail provider such as Gmail or Outlook is never counted as your own domain, even if you use one.

  8. Whether they are owed a reply

    The same reading also says whether the person reported a problem, a loss or damage, or that they may leave or cancel. It says which of the three, never a quote, and the card shows "Needs a reply" with it. Pending has a filter for those, and "Tell me when one arrives" can be set to "Needs a reply". It is one reading, not two, and it costs nothing extra.

  9. Whether it says anything specific

    It also says whether the words carry a detail of the person's own experience, such as what they bought, what happened or what changed, or are general enough to be about any business. A general one written through your form can be followed by one more question to its writer.

Your dashboard · Pending
Customer name

Every word arrives as they wrote it — even the 555-0142 they meant to leave out.

Read this before publishing"555-0142" A phone number. Take it out before this goes on your site.Read automatically when it arrived. It points; you decide.
A version with parts removed is readyEvery word arrives as they wrote it — even the [removed] they meant to leave out.
ApproveRejectPublish this version instead
Drawn from the product's own markup and labels, with example words — not a real customer.

Safe by design

The rule that makes it safe to have

Clear boundaries

What it will not do

Every capability page ends with this list. It is the part that says what you are actually buying.

  • It does not make you compliant with anything, and does not claim to.
  • It does not know your regulator's rule and will not pretend to have read it.
  • It will not reword a testimonial to make it publishable — see removing a detail, which is the only kind of change allowed here.
  • It will not reject a testimonial for the address it came from, and it never shows that check anywhere but your dashboard — not on your wall, your widget, the API or a webhook.
  • It will not tell you that somebody needs a reply in their own words, in a notice or anywhere else. It names the kind, and the words stay on the card.
  • It will not change what is published, or how, because somebody complained or wrote something general. Those are notes for you and nothing reads them but you.
  • It does not watch or listen to a recording: it reads typed words only. Your dashboard lists every video, voice recording and recorded answer it did not read, under "Has a recording the AI did not read".
  • It does not look at a photo, a poster or any other picture, and it does not read a recording's transcript for risk.
  • It does not mark an unread testimonial as read and clear. One left unread says so, with the reason, and waits for you.
  • It does not take a reading from your month when no model answered: a reading that did not happen is given back.
  • It does not try again after a failure a later attempt cannot cure, such as a spent month of readings or a refused request, and it does not queue more in a month than the month's AI readings; past that, one that did not come back is stored unread and says so.
  • It does not let a testimonial that states a result be published without your line on what results customers can generally expect, which is published with it as your words.

Where it lives in the code: lib/ai.ts · lib/reading.ts · lib/ai-budget.ts · lib/authorship.ts · lib/arrivals.ts · lib/arrival-reading.ts · lib/moderation-task-rules.ts · scripts/moderation-task-check.mjs

Questions

Asked about this

From Help, where every answer is written from the product as it runs.

What does Hazelsong check before publishing, and what does it not verify?

Before anything is public, Hazelsong checks three things: that its recorded permission (the writer's own sentence, or, for an import, the API or a feed, the business's statement that it has permission) allows the place it would appear, and it is served nowhere else; the risk reading of its typed words, when the month's AI readings allow, while a recording or a picture is never read by AI and anything not read says so; and that the business approved it, in person or through the automatic moderation it chose to switch on. Nothing is published before that approval. Hazelsong does not verify that what a testimonial says is true, who wrote it, or that they bought anything, beyond what its record shows: how it arrived (the business's collection page, an import, the API or a feed), its permission and when it was given, whether a reward was attached, and whether a second person approved it. Publishing through it is not an endorsement of any testimonial.

Can I fix a typo in a testimonial?

No. There is no route in this product — no dashboard control, no API field, no administrator, no support request — that can change a testimonial's text. That is the rule the whole product is built around, and it is checked in code rather than promised in a policy.

Then what do I do about a phone number somebody left in it?

Remove that span: press Check for things to remove for a proposal, or Remove a part yourself to select the words, which uses no AI reading. The span becomes [removed], every other character stays exactly as written, and the reader is told something was taken out. If a result differs from the original by a single word anywhere else, it is discarded rather than applied.

Can I shorten a long testimonial for a widget?

Not by storing a shorter version: nothing here can keep a cut-down copy as though it were what somebody wrote. What a layout may do is show less of it — the compact, marquee, toast and sidebar layouts stop a long testimonial at six lines, and there is no control that opens the rest. Every other layout shows the whole of it, so the choice to make here is the layout.

More on the testimonials themselves

This is running now

Open a project and use it. Nothing on this page is a roadmap.