How it works
Automatic moderation, step by step
Every check before anything is spent
It looks only at testimonials written through your collection or interview form, from a page that told the writer it could be approved by an automatic check, with permission for a public place. They must have been read for risk on arrival with nothing flagged and no reply owed, and be typed words only: no video, voice recording, photo or picture. No reward may be attached, the writer's address must have been checked and not flagged, and it must not be a repeat or rated 3 stars or fewer. One that fails a check is left for you at no cost.
A second reading, made only for this
One that passes is read once more, by a model asked a single question: may these exact words, with this name, be published as written without a person reading them first? It answers publish, or hold with reasons from a fixed list: a complaint, a promised result, a regulated claim, another person or company named, a private detail, not genuine, offensive, off topic, unclear, a name that is not the writer's own.
Read strictly, so a doubt is a hold
Only one finished answer in exactly the agreed shape, with the model's usage reported, can approve. A cut-off, wrapped, partial or unknown answer leaves the testimonial in Pending, and so does a model that did not answer.
Applied only to what it read
The approval is written in one step that first checks nothing changed: not the words, the name, the permission, the status, nor your setting. If a person acted, the writer withdrew permission or you switched it off while it was reading, nothing is applied.
A log of what it decided
The Automatic moderation panel in your dashboard lists each decision, newest first, with its reasons and a button to open the testimonial. Each card says what it decided, and the testimonial's history records it. Return any of them to Pending or reject it as you would any approval.
With approval by two people
On Pro, with approval by two people on, it counts as one person. It proposes, and an administrator or the owner signs. The record page never says a second person reviewed one it proposed.
The writer is told
With it on, your collection page and your invitation email say a testimonial may be approved by an automatic check, instead of saying a person reads every one first.
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 is off until the owner switches it on, and only the owner can.
- It will not approve an import, a pasted review, a feed entry or one added through the API.
- It will not approve anything the risk reading flagged, or one that was not read.
- It will not approve a video, a voice recording, a photo or a picture: the AI does not watch, hear or look at them.
- It will not approve one written for a reward. A reward is still disclosed wherever a testimonial is published.
- It will not approve one whose writer may be owed a reply, one rated 3 stars or fewer, or a repeat.
- It will not reject, delete, edit or shorten a testimonial.
- It will not try again after a reading that did not answer: that testimonial waits for you, and the reading is given back.
- It does not make you compliant with anything, and a testimonial it approved is still yours to check and take down.
Where it lives in the code: lib/automatic-moderation-rules.ts · lib/automatic-moderation.ts · app/api/automatic-moderation/route.ts · components/AutomaticModeration.tsx · lib/ai.ts · lib/testimonials.ts · scripts/automatic-moderation-check.mjs
This is running now
Open a project and use it. Nothing on this page is a roadmap.