Skip to content
Hazelsong

Publish

For the site you built yourself

Read your testimonials out, put them in, ask somebody for one, and be told by a signed webhook when one arrives — or do all of it from the Hazelsong app in Zapier, which uses the same key.

PlanStarter and Pro.

How it works

API and webhooks, step by step

  1. A key of your own, revocable

    Per project, and revoking it is immediate.

  2. Signed webhooks out

    So your end can verify the message came from here and not from somebody who found the address.

  3. JSON, in the shape you would have designed

    The words, the person, the rating, the source, the media, the permission scopes.

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 will not put an author's email address anywhere public. Your key reads it, because it is your customer; the widget, the wall and the public endpoint never carry it.
  • It will not return testimonials that refused the website.
  • It will not let an automation rewrite the request a person is sent. Who is asked is yours to decide; what they are promised is not.
  • There is no write endpoint that can change a testimonial's text — that does not exist anywhere in this product.

Where it lives in the code: lib/api-keys.ts · lib/api-auth.ts · lib/webhooks.ts · app/api/v1/testimonials/route.ts · app/api/v1/hooks/route.ts · app/api/v1/invites/route.ts

Questions

Asked about this

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

How much code is it?

Two lines: a script tag and a div. The layout is a query string on the script tag, or a data attribute on the div — both of which live in your page, so turning a wall into a marquee later means editing those two lines where you pasted them. There is nothing to rebuild at this end.

It shows nothing on my page.

Three usual causes, in order of likelihood: nothing is published yet (Pending is not published); the builder you are using strips script tags from block content, in which case the tag goes in the theme footer; or you are looking at the editor preview rather than the live page, which is normal on Webflow, Framer, Elementor and Squarespace.

Can I embed it in Notion or a newsletter?

No, and not because of us: neither runs a third-party script. Link the hosted wall in Notion, and use a testimonial image in the newsletter. Email has not run JavaScript for twenty years.

Does the widget slow my page down?

It is one small script with no framework behind it and no font to fetch. It draws after your page has drawn.

More on putting them on your site

This is running now

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