---
title: "Web page built by OpenAI from a request in the web address"
kind: "Kit"
category: "Developer"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/a98f2544-132f-4dc7-b50f-862a12d9cf78"
updated: "2026-11-12"
---

# Web page built by OpenAI from a request in the web address

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that answers a web address with a page. The address carries a request such as a signup form, OpenAI designs it as structured data, a second step writes the HTML, and the browser gets the page.

Web page built by OpenAI from a request in the web address is an n8n workflow in the Developer category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns a sentence in a link into a web page. Someone opens the workflow’s address with a `query` such as `a signup form`. OpenAI first returns the page as a tree of elements that follows a strict schema. A second OpenAI step turns the tree into a title and HTML. A last node wraps them in a full page that loads Tailwind, and the workflow sends it to the browser. Five nodes do the work, beside two sticky notes.

### Who it suits

Developers and designers who want to try structured output, and anyone who wants a quick mock-up from a plain request. Skip it for a page you will publish as it is. The results are rough drafts, and they differ from one run to the next.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Software | Developers | Try OpenAI’s structured output on a task with a visible result | A developer changes the element list in the schema and sees the pages change. |
| Design | Designers | Get a first layout idea from one line of text | A designer asks for a pricing page for a bakery and takes the layout ideas. |
| Education | Teachers | Show how a strict schema shapes a model’s answer | A teacher compares the tree with the page it becomes. |
| Agencies | Prototype builders | Show a client a rough page before any design work | A builder opens a link for a landing page and shares the draft. |

You need a little n8n: import a file, add one OpenAI credential in two nodes and open a link.

### Where to use it

Any n8n that can reach OpenAI and that a browser can reach will run it. The page appears in the browser that opened the link.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- A browser: open the production address with a \`query\` added
- A test address: open it while the \`Webhook\` node waits for a test event

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. One OpenAI key covers both model calls.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own, reachable from a browser |
| OpenAI | An API key with access to \`gpt-6-luna\` |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Open `OpenAI Structured Output` and `OpenAI JSON to HTML`. Add an OpenAI credential with your key and select it in both.
3. Save, open `Webhook`, copy its test address and add `?query=a%20signup%20form` to the end. Open it in a browser while the node waits for a test event.
4. When the page looks right, press Publish and use the production address the same way.

### How to use it

Open the address with `?query=` and your request after it, written with `%20` for spaces. The browser shows the finished page after both model calls end.

What to change for a different result

| To change | Where |
| --- | --- |
| The models | \`model\` in the first node’s request body, and Model in the second node |
| The designer’s brief | The system message in the first node’s request body |
| The elements the model may use | The \`enum\` list in the schema, in the same body |
| The page frame | The HTML in \`Format the HTML result\` |
| Who may ask | The authentication options of \`Webhook\` |

### Example

Someone opens the address with `?query=a%20pricing%20page%20for%20a%20bakery`.

OpenAI returns a tree of headings, sections and buttons with Tailwind classes. The second step writes the HTML and a title, and the browser shows a styled page for that bakery.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one is a straight line from the link to the page. Open the link once, then open the run and read the tree that the first model call returned.

**For experts.** The first call forces `response_format` to a strict JSON schema named `ui`, and the second asks for a JSON object with `html` and `title`.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Webhook\` | Version 2, answering through a Respond to Webhook node | It takes GET and allows any origin, with no authentication |
| \`OpenAI Structured Output\` | HTTP Request 4.2, POST to \`https://api.openai.com/v1/chat/completions\` | The \`query\` goes in as the user message, escaped for JSON |
| \`OpenAI JSON to HTML\` | OpenAI 1.3, message a model, with JSON output on | Its output is read as \`message.content.html\` and \`message.content.title\` |
| \`Format the HTML result\` | HTML 1.2, a full page around the title and markup | The page loads Tailwind from \`https://cdn.tailwindcss.com\` |
| \`Respond to Webhook\` | Version 1.1, answering with text | It sets the content type to HTML with the UTF-8 character set |

### Good to know

Anyone with the address can start a run on your key, and the page the model writes runs in the visitor’s browser.

- Models: OpenAI’s deprecations page, read on 12 November 2026, lists the dated snapshots of \`gpt-4o\` and \`gpt-4o-mini\` as shut down on 14 January 2027, with \`gpt-6-luna\` as the replacement. Mindket’s copy uses \`gpt-6-luna\` in both steps, and its model page lists Chat Completions and structured outputs
- Temperature: the original set 0.2 in the second step. The model page says nothing about temperature, so Mindket’s copy leaves it out
- Speed: OpenAI’s page gives medium as the default reasoning effort for \`gpt-6-luna\`, so a page can take a little longer
- Repair: the original put the query between quotes without escaping it, so a quote or a line break broke the request. Mindket’s copy escapes it
- Open address: the webhook has no authentication, so anyone with the address can start a run on your key. Turn on one of its authentication options before you share it
- Script risk: a link whose \`query\` was written with bad intent can make the model write script that runs on your n8n’s address, so share it only with people you trust
- Billing: each page is two model calls
- Your data: the query goes to OpenAI
- Credentials: the JSON holds none

## README

```markdown
# Web page built by OpenAI from a request in the web address

An n8n workflow that answers a web address with a page. The address carries a `query` such as `a signup form`. OpenAI first
returns the page as a structured tree of elements, a second OpenAI step turns the tree into HTML, and the workflow sends that
HTML to the browser.

## What is inside

- `workflow.json`: the workflow as n8n exports it, five working nodes and two sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The first request named `gpt-4o-2024-08-06` and the second step `gpt-4o-mini`. OpenAI's deprecations page, read on 12 November
  2026, lists their dated snapshots as shut down on 14 January 2027, with `gpt-6-luna` as the replacement. Both now use
  `gpt-6-luna`. Its model page lists Chat Completions and structured outputs as supported.
- The second step set a temperature of 0.2. The model page for `gpt-6-luna` says nothing about temperature, so the option is
  gone. Add it back under Options if your account accepts it.
- The request body placed the visitor's query between quotes without escaping it, so a quote or a line break in the query made
  the request invalid. The query now goes through `JSON.stringify(...).slice(1, -1)`.
- Two nodes had names with a spaced hyphen. They are now `OpenAI Structured Output` and `OpenAI JSON to HTML`.
- The credential links and the webhook ID are gone, and the workflow is saved as not active.
- Nothing else.

## Before you start

- An n8n instance reachable from the browsers that will use it, on n8n Cloud or your own server.
- An OpenAI API key with access to `gpt-6-luna`.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Open `OpenAI Structured Output` and `OpenAI JSON to HTML`. Add an OpenAI credential with your key and select it in
   both.
3. Save, open `Webhook` and copy its test address. Add `?query=a%20signup%20form` to the end and open it in a browser while the
   node waits for a test event.
4. When the page looks right, press Publish and use the production address the same way.

## How a run goes

1. `Webhook` (version 2) takes the GET request. It answers through a Respond to Webhook node, and its allowed origins are `*`.
2. `OpenAI Structured Output` (HTTP Request 4.2) posts to `https://api.openai.com/v1/chat/completions` with the
   visitor's `query`. A system message casts the model as an interface designer and copywriter who uses Tailwind. The reply
   must follow a strict JSON schema named `ui`: an element `type` from a fixed list of HTML and SVG names, a `label`, a list of
   `children` of the same shape and a list of `attributes`.
3. `OpenAI JSON to HTML` (OpenAI 1.3, message a model, JSON output on) turns that tree into a JSON object with `html` and
   `title`.
4. `Format the HTML result` (HTML 1.2) puts the title and the markup into a full page that loads Tailwind's script from
   `https://cdn.tailwindcss.com`.
5. `Respond to Webhook` (version 1.1) sends the page as text with the header `Content-Type: text/html; charset=UTF-8`.

## Change the look

- The models: `model` in the request body of the first node, and Model in the second.
- The designer's brief: the system message in the first node's request body.
- The elements the model may use: the `enum` list in the schema, in the same body.
- The page frame: the HTML in `Format the HTML result`.
- Who may ask: the authentication options of `Webhook`.

## Good to know

- Each page costs two model calls. Pages differ from one run to the next, and the results are rough drafts.
- `gpt-6-luna` reasons before it answers (OpenAI's page gives medium as the default effort), so it can be slower than the models
  it replaces.
- The webhook has no authentication. Anyone with the address can start a run on your key.
- What the model writes goes to the browser as a page. A link whose `query` was written with bad intent can make it write script that runs
  on your n8n's address, so turn on authentication or share the address only with people you trust.
- The page loads Tailwind from a public address each time it is opened.
- The query goes to OpenAI.
```

## What is in it

3 files, 13 KB, downloaded as a zip.

```text
NOTICE.md  696 B
README.md  4 KB
workflow.json  8 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 5 steps, starting when its webhook is called
- AI: 1 step calls an AI model: OpenAI JSON to HTML
- Sign-ins: Signs in to: OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 5 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/a98f2544-132f-4dc7-b50f-862a12d9cf78)
- [Its page on Mindket](https://mindket.com/p/a98f2544-132f-4dc7-b50f-862a12d9cf78)
