> This page is for version 🇦🇺 AU (default).
> For other versions, use one of these documentation indexes:
> - 🇦🇺 AU (default): https://docs.humanapproved.com/au/llms.txt
> - 🇬🇧 UK: https://docs.humanapproved.com/uk/llms.txt
> - 🇺🇸 US: https://docs.humanapproved.com/us/llms.txt

> This is HumanApproved's documentation, as Markdown for AI agents. /llms.txt lists every page; /llms-full.txt has them all. If you're helping someone integrate HumanApproved, start with /guides/ai-coding-agents.

# Set up a product

> What insurers set up for a HumanApproved product in the portal, including fields, the approval page, branding, approval settings, agent detection, the pause panel, keys and allowed websites, and how to publish.

A **product** is one insurance product you sell, such as a travel policy. It holds everything a check and a review need: the fields your quote sends, the approval page the customer sees, when to ask for approval, and its keys. You set it up in the portal, under **Products**.

## Drafts and versions

You edit a product as a **draft**. Customers never see a draft. When it's ready, you **publish** it: the portal shows what changed, under **Review changes**, and publishing makes it the next numbered version. Checks always use the live version, and each review keeps the version it started with. See [Product versions](/concepts/checks-and-reviews#product-versions).

Publishing, and creating keys or allowed websites, need the admin role.

## The product's pages

Each product has these pages in the portal's sidebar.

#### Product: the approval page's content

The content of the approval page, section by section, in the order the customer sees it:

* **Price and cover summary**: the product name, price and an intro. By default the intro tells the customer their AI assistant is buying the policy for them and asks them to check its answers.
* **Variants** and **extras**, if the product has them, such as cover levels and optional add-ons.
* **Summary of what's covered** and **Key exclusions**.
* **Key information you provided**: the answers the agent gave, which the customer confirms one by one.
* **Policy documents**: the documents to show, and which the customer must open.
* **Terms and conditions** and **Buying the policy**.
* **Agree and approve**: the statements the customer must tick before approving.
* Your own text blocks, and a page footer, such as who you act for and your licence.

You can rename most section headings. Values from the quote fill the page, and **Preview** shows it as the customer will see it, with test data.

#### Fields: what your quote sends

The fields your quote sends when a review is created, each with a key, a type and a label. Types are text, number, money, date, list, yes/no, email, address, group (a repeating set, such as travellers) and extras. Mark the ones every quote must have as required.

The quote you send must match the live version's fields: dates are `YYYY-MM-DD`, money is an object with `amount` and `currency`, and lists are arrays. Fields the version doesn't define are dropped. **Preview** on this page shows the quote as JSON, exactly as the embed sends it, and lets you try your own.

#### Branding

How the approval page looks: your logo and favicon, colour, font, corners and button shape, and the approve button's colour, so the customer recognises you.

#### Approval settings

* **How long the approval link works**: 24 hours by default, from 15 minutes to 7 days.
* **When to ask for approval**: only when an agent is detected, every purchase, or never (monitor only). New products start as monitor only.
* **Method**: a one-time code by SMS.
* **Code rules**: how long a code lasts, how many wrong tries it allows, and how many codes the product can send an hour.
* **Identity check** (optional): one to three quote details the customer must answer before the page shows the quote.
* **Bot check** (optional): Cloudflare Turnstile on the approval page's actions, so a browser identified as a bot can't ask for a code or approve. Off by default.
* **Approval page address**: where customers open the product's review links. You can give the product a name of its own under `humanapproved.com`; HumanApproved hosts it, with no DNS changes needed. It's saved immediately, outside the draft. **Set this before you go live.** Changing it stops every link already sent on the old address.

See [Approval methods](/concepts/approval-methods).

#### Agent detection

Whether the product uses HumanApproved's checks or your own signal. For HumanApproved's checks, set the sensitivity and any groups of checks to omit. For your own signal, choose what counts as an agent: your verdict, a verified bot or a bot score limit. See [Agent detection](/concepts/agent-detection).

#### Agent popup

The pause panel the embed shows the agent when the checkout pauses. You can change every piece of its wording, add instructions for the agent, and set its look: accent colour, corner radius, font (or your page's own), button shape, colours and a logo. A logo must be on one of the product's allowed websites. The API returns the same wording as `review.agentPanel`, so your agent flow can say the same thing. See [The pause panel](/embed/sdk/pause-panel).

#### Versions

Every published version, who published it and when, and what changed from the one before.

#### Review packs

Packs of a version, or the draft, for your compliance team to review and sign off, with a cover sheet, and download.

You can also **export** a product's config and **import** it into another product, for example to start a new product from an existing one.

## Keys and allowed websites

The **API keys** page holds the product's keys and allowed websites, for test and live:

* **Publishable keys** for the embed and checks, and **secret keys** for your server. Copy a key when you create it: the portal shows it in full only once.
* **Allowed websites**: the origins (scheme, host and port) your pages run on. Every call from a page must come from one of them. Live websites must use https.

See [Keys and environments](/concepts/keys-and-environments).

## The embed snippet

The **Embed** page gives the script tag with the current version and its integrity hash filled in, and the code to protect your payment step, built from the product's fields. See [Add the embed](/guides/add-the-embed).

## Checklist

#### Add the fields

On **Fields**, add every field your quote sends, and mark the required ones.

#### Build the approval page

On **Product** and **Branding**, fill in the cover, exclusions, documents and statements, and add your brand. Check it with **Preview**.

#### Choose when to ask

On **Approval settings**, keep **Never — monitor only** to start, or choose **Every purchase** while you test.

#### Publish

Publish the draft. Until a version is published, checks are refused with `409 product_not_live`.

#### Create keys and allow your websites

On **API keys**, create a test publishable key and add your test website. Then follow the [Quickstart](/get-started/quickstart) or [Add the embed](/guides/add-the-embed).

When you're ready for customers, see [Test and go live](/guides/test-and-go-live).