Remove an extra project or seat from the dashboard
The People and projects page now takes an extra project or seat off your subscription as well as adding one, with one more press to confirm. Paddle credits the unused part of the billing period to your account. Until now the page sent you to your receipt, where only the whole subscription could be canceled.
Your teamA prompt for your coding agent, and llms.txt
Each embed guide for a builder that runs a script, and the Walls and widgets page of your dashboard, now has a prompt to paste into Cursor, Claude Code, Lovable, Bolt or a similar agent. It says where the two lines go on that builder, tells the agent to change nothing else and to show you the diff, and can add the lift test's purchase line. The site also publishes /llms.txt, a plain-text description of every feature, what it will not do, and the plans.
WidgetsThe collection form, opened inside your own site
One script tag adds window.hazelsong.ask(), which opens your collection form in a dialog on your own page at the moment your code chooses. It never opens by itself, and it keeps one entry in the visitor's browser so the same person is not asked over and over. The permission checkbox and the promise are the same words as on the form's own page.
Collection formsThe lift test can compare two layouts
Half your readers see your embed's own layout and half see a second layout you pick, and the page says which one sold more. Hazelsong does not switch your layout for you; it shows the embed code for the other one beside the result. Every test now also checks that readers split at the share you set, and says when the figures cannot be trusted.
Lift testAsk your testimonials a question
Ask a question of your published testimonials and get back excerpts in their exact words, each linked to its record. An excerpt that differs from what was written is thrown away, and the answer says how many were.
What they keep sayingA flag for who could have written it
A testimonial written from a disposable email address, or from your own business's domain, is flagged in your dashboard beside the risk reading. The check is a rule, not a model, so it costs nothing, and the flag never leaves your dashboard. Flagged ones are left out of "Approve the N with nothing flagged".
Read for riskLabels suggested from your own list
Ask for labels on up to twenty testimonials and get suggestions taken only from labels you already use, in your spelling. Nothing is saved until you click one.
ApprovingQuestions drafted from your goal
Write one sentence about what you want to learn and get three draft questions in the form editor. A check in code drops any draft that asks for praise or for a number, whatever the model wrote. Nothing is on the form until you save it.
Collection formsThe Zapier app is called Hazelsong
The app in Zapier carries the new name and calls hazelsong.com directly. Until Zapier lists it in its public directory, it is added from the invitation on your dashboard's API page.
API and webhooks
Where your readers came from, and AI crawlers
The report counts views, plays and clicks by the site readers came from and by campaign, with readers from AI assistants as a line of their own, and says how many times named AI crawlers read your hosted walls. It shows rates and this month against last, and downloads as a CSV. Only the referring site's name leaves the reader's browser.
AnalyticsA report that says what has stopped
The report opens with a list of what has stopped and how to fix it, such as a wall no longer shown or testimonials waiting too long. A summary every Monday or on the first of the month, three alerts and a warning at 80% of any monthly allowance can go by email. A webhook endpoint that fails twenty times in a row is switched off, with one email to you.
AnalyticsAsking after a purchase, and "Not now"
Your server, store or Zap can send an order through the API, and the buyer is asked later by rules you set: a delay, a minimum amount, a gap between requests and a monthly goal. Every request and reminder carries a "Not now" link, and every way of asking checks it. The report also shows where people stop on your forms.
AskingLift test: purchases from your server, actions, and robots left out
A purchase can be reported from your server, and a refund takes it back out. A test can count an action, such as a form sent, instead of a purchase. Browsers that say they are automated are never counted, and ?hazelsong=ignore leaves your own visits out.
Lift testWhich testimonials your buyers read
The lift test notes which cards a reader had on screen and ranks each testimonial by the purchase rate of the readers who read it, once enough have. The page says this shows association, not cause.
Lift testThe lift test
A share of your website's readers is shown no testimonials, and purchases are counted in both groups, so the difference is what your testimonials did on your own customers. No verdict is printed until both groups are large enough, and nothing is projected.
Lift testAllowances belong to the account
Delivery, AI readings and emails are monthly allowances, and storage a cap, each shared by all of an account's projects and printed on the pricing page. Pictures and stills on public pages are counted with video. Your own files, through the dashboard and the export, are never counted or refused.
Every page says Hazelsong is still being built
A line across the top of every public page says so, and links to the list of what is built. It cannot be dismissed.
Starting a project needs a person's browser
Starting a project and asking for a login link now check, through the host, that a browser is asking rather than a script. A refusal says so in words and reveals nothing about any account.
The score question
A form can open with a 0-to-10 question, and the number changes only the question above the box. Everybody who answers gets the same place to write and the same permission checkbox; low scores are not sent away from public reviews.
The score questionA record for every published testimonial
Each published testimonial links to a page that says how it arrived, who gave the permission, whether it was read before publication, whether anything was removed and whether a reward was attached. It is on every plan and cannot be switched off.
The recordAn MCP server
Assistants that speak the Model Context Protocol can read your testimonials while they write, with the same key as the API. Only testimonials whose writer allowed a website are reachable, and every answer says to quote them exactly.
Your assistant reads themVideo on public pages plays through an allowance
A recorded video's address is no longer written into public pages; it is handed over when somebody presses play, and counted against the month's delivery. Past the allowance, video pauses on public pages until the next month, and nothing is ever served at a lower quality.
Video testimonials
Word of mouth
Once a testimonial written through your form is published, you can ask its writer, once, whether they would like to share it. Nothing is offered in return, nothing is tracked, and their words are not quoted into the suggested post.
Word of mouthKudobox is now Hazelsong
The product is Hazelsong, at hazelsong.com, with support at support@hazelsong.com. Links to getkudobox.com still lead to the same page here.
American English, and a full audit
Every page and every product string was proofread and written in American English. A full audit of the product fixed 78 defects.
Log in with a one-time link
There is still no password: Log in sends a one-time link to the address on the account, which works once, for fifteen minutes. The owner can replace their dashboard link, which logs every other device out.
The widget, inside other people's sites
Every layout was tested in both themes inside a page with its own styles. A brand color is lifted only as far as it needs to be readable on a dark widget, and the dots that move a carousel are 24-pixel targets.
Widgets
Every Google review at once, from Takeout
The archive Google gives a Business Profile's owner is read in your own browser, and every review in it comes across as an import into Pending. Anonymous reviews, and stars with no words, are skipped.
ImportApproving many at once
The list can be drawn compact, and in Pending you can select rows and approve or reject them together. "Approve the N with nothing flagged" leaves every flagged one for you to read.
ApprovingSave a review from any page
A bookmark saves the words you selected on any page into your dashboard, with the page they came from. It works in every browser and on every plan, and the words cannot be changed on the way.
Save from any pageA seat the plan no longer carries is paused
When a plan stops carrying a seat, the seats it still carries keep working in the order they were made, and the rest are paused and told why. They work again as soon as the owner removes one or moves to a plan that carries them.
Your team
Moving across from Senja or Testimonial.to
A CSV from either tool is read by its column names, and you see which column was read as what before anything is saved. A long file is read to its last row, and each review keeps the date it was written.
Import
The API: webhooks, search and asking by key
With an API key you can subscribe and remove webhooks, search testimonials by name, email or words, and ask one person for a testimonial. A key stops working when its plan no longer carries the API, except to switch a webhook off.
API and webhooksReels saved as MP4
A reel is saved as MP4 wherever the browser can record one. Where it cannot, as in Firefox, it is saved as WebM, and the page says which.
Reels
One reel from several testimonials
Join several video testimonials into one reel, in the order you choose, with an opening card in your own words. It is drawn and recorded in your browser, so there is no queue and no per-clip limit.
ReelsThank-you videos
Record a short video for somebody who wrote you a testimonial, and it goes out with the thank-you as a link. The page it opens shows the recording, never the testimonial.
Thank-you videos
Asking in bulk, and one reminder
Paste up to two hundred customers and each gets their own message and their own link. Three days later, whoever has not answered can be reminded once, and never somebody who already wrote.
AskingThank-yous, with something attached
Thank whoever wrote you a testimonial, in a sentence or with a gift. A gift marks the testimonial as rewarded, for good, so the disclosure goes wherever it is published.
Thank-yousA project can be ended completely
The owner can destroy a project: every record and every file, named one by one. You type the project's name to confirm, because nothing can be recovered afterward.
Ending a project
Video, recorded in the browser
A customer can record a video on the collection page, with no app and no account. One copy is stored, the original, and it comes back at full quality on every plan.
Video testimonialsThe API and signed webhooks
Keys are made and revoked from the dashboard, and the API serves only testimonials whose writer allowed a website. Webhooks are signed, so your end can check where they came from.
API and webhooksYour own mark, and your own address
Your logo, color, corner and words on the form, the walls and the widgets, with no Hazelsong credit. The form and the walls can answer at a name on hazelsong.com or on a domain you own.
Your own markHosted walls and the layout picker
Each project has a wall at its own address, readable without a script and with review markup. The dashboard shows the real widget beside the layout you are choosing.
Walls of LoveSeats, forms and feeds
A seat gets its own link, and what it may do comes from one table of roles. A project can have several forms, each with its own questions, and feeds a platform publishes for machines are read once a day into Pending.
Your teamIncentives, disclosed
A reward for writing is said on the form before a word is written, and on every copy of the testimonial that is published. The disclosure is not a setting.
IncentivesTranscription, translation and case studies
A recording can be transcribed and a testimonial translated, with the original always kept, and one testimonial can be drafted into a case study that quotes it verbatim. None of them can change the words.
TranscriptionBringing in what already exists
Paste a review from somewhere else with its source attached, or paste a whole page and have it separated into reviews. Each separated review must appear word for word in what was pasted, or it is dropped.
ImportTestimonial images
A testimonial is drawn as a picture for social media, with your color and your mark. It is made only where the writer allowed social media, and it says exactly what they wrote.
Testimonial images
Permission, asked and enforced
The form asks where the words may appear: website, social media, advertising. The widget and the walls obey the answer on every request, and the sentence the writer agreed to is written by the server and stored with the words.
PermissionRead for risk on arrival
Every testimonial is read as it arrives for what a business cannot safely publish, and flagged with the reason. It never blocks one and never writes one.
Read for riskRemoving a detail
Replace a span with [removed] and publish the rest, and the reader is told something was taken out. A proposal that changes any other word is discarded.
Removing a detailEverything out, as a CSV
Every testimonial, with its permission record, comes out as a spreadsheet. It is free on every plan, because it is your own data leaving.
Getting it all out
Try what is already here
Every capability has a page of its own, naming the files it lives in and what it will not do.