Your website
Change the words on any page of your site and see the before and after.
Overview
Your website should say what you do, where you do it, and why people can trust you. It usually falls out of date because changing it meant sending an email and waiting. Now you tell your assistant what's changed, and it edits the page for you.
It reads the page first, so it knows what's there now. Then it checks your change against the same rules our team writes to. It looks at the length, whether the wording is plain, and whether we can back up any claim. If your change passes, it saves your words as you wrote them and shows you the before and after. If it doesn't pass, you get the reason, not a rewrite.
Not sure where something new should go? Ask. It gives you the options and what each one takes.
Some things stay with us on purpose. Your name, address, phone number, and hours have to match your Google listing, so changes there come to us as a request. The same goes for a claim we can't back up yet, like a new warranty. Send us the proof and we'll add it.
Changes here need an active account. If your account is on hold or cancelled, editing pauses until it's back.
You can also do this in your workspace. Look in Site (/workspace).
The tools on this page
| Tool | Reads | Writes | Asks you first |
|---|---|---|---|
| List your pages | Yes | No | No |
| Read a page | Yes | No | No |
| See the writing rules | Yes | No | No |
| Ask where it goes | Yes | No | No |
| Check a change | Yes | No | No |
| Edit a page | No | Yes | Always |
List your pages
get_content_mapReads only
What you can ask
- Which pages on my site are missing FAQs?
- Show me every service page we have.
What it does
Every page on your site you can edit, and which parts are filled in.
What your assistant sends
| Field | Required | Description |
|---|---|---|
areaSlugstring | No | Narrow the service-in-city list to one city. |
include_availableboolean | No | Also list brands you could add a page for. |
{}{
"legend": {
"empty": "Shown on the page and not filled in yet.",
"populated": "Shown on the page and filled in."
},
"servicePages": [
{
"page": {
"type": "service",
"serviceSlug": "brake-repair"
},
"name": "Brake repair",
"parentSlug": null,
"renders": "service page",
"fields": {
"custom_title": "populated",
"overview": "populated",
"faqs": "empty"
}
}
],
"areaPages": [
{
"page": {
"type": "location",
"areaSlug": "haines-city-fl"
},
"city": "Haines City, FL",
"locationType": "physical_shop",
"fields": {
"description": "populated",
"faqs": "empty"
}
}
],
"areaServicePages": [
{
"page": {
"type": "area_service",
"areaSlug": "haines-city-fl",
"serviceSlug": "brake-repair"
},
"city": "Haines City, FL",
"service": "Brake repair",
"fields": {
"hero_title": "populated",
"local_faqs": "empty"
},
"summary": "partial"
}
],
"aboutPage": {
"page": {
"type": "about"
},
"fields": {
"heroHeadline": "populated",
"story": "empty"
}
},
"homePage": {
"page": {
"type": "home"
},
"fields": {
"hero.headline": "populated",
"services.headline": "empty"
}
},
"availableBrandsNote": "Catalog makes not enabled for this client. update_page_content on one of them writes its copy and enables it (pass enable: false to write copy and leave it dark).",
"brandPages": [],
"next": "get_page_content for one page, advise_content_change before adding anything new."
}Read a page
get_page_contentReads only
What you can ask
- What does my brake repair page say right now?
- Read me the about page.
What it does
What one page says now, how long each part can be, and where its photos and videos go.
What it needs
- The page you want to read.
What your assistant sends
| Field | Required | Description |
|---|---|---|
pageobject | Yes |
{
"page": {
"type": "site"
}
}{
"page": {
"type": "site"
},
"pageType": "site",
"publicPath": "/",
"preset": {
"id": "professional",
"name": "Professional"
},
"fields": {
"theme.overrides": {
"shape": "An object of theme tokens, e.g. { \"accent\": \"#ff6600\" }. Only the keys sent change.",
"state": "populated",
"fields": [
"brand",
"accent",
"radius"
]
}
},
"current": {
"theme.overrides": {
"accent": {
"value": "#f59e0b",
"source": "preset",
"label": "Highlight color: links, icons, section labels",
"accepts": "hex color like #1d4ed8"
}
}
},
"note": "The site shows the change on its next load.",
"media": []
}See the writing rules
get_content_guidanceReads only
What you can ask
- What are the rules for writing on my site?
- How should the words on my site sound?
What it does
The rules every change to your site has to pass, and what each refusal means.
What your assistant sends
Nothing. Your assistant just runs it.
{}{
"shape": [
"Read get_page_content for the page."
],
"floor": "Plain words.",
"findings": {
"reject": {},
"fix": {}
},
"rewrites": "Never rewritten.",
"look_and_feel": "Theme tokens on the site page.",
"coverage": {
"cities": [
"Winter Haven, FL"
],
"shops": []
},
"existingCopy": [
{
"where": "about page story",
"text": "We opened on Main Street."
}
]
}Ask where it goes
advise_content_changeReads only
What you can ask
- We started doing fleet maintenance. Where should that go on the site?
- Should financing get its own page?
What it does
Where something new should go on your site: the options, what each one takes, and which one we'd pick.
What it needs
- What you want on your site, in a sentence.
What your assistant sends
| Field | Required | Description |
|---|---|---|
intentstring | Yes | What the owner wants on the site, as one plain sentence. |
pageobject | No | A page the owner already named, if any. |
owner_requeststring | No | What the owner asked for, in their words, one sentence. Optional. Stored with the audit record so their team can see what owners ask for. |
{
"intent": "Add a page about fleet maintenance for local businesses"
}{
"class": "new_service",
"options": [
{
"placement": "a new service page",
"page": null,
"why": "Nothing on the site covers fleet maintenance yet. We add the service; then the page takes copy here.",
"ranking_effect": "high",
"effort": "medium"
},
{
"placement": "FAQs on Brake repair",
"page": {
"type": "service",
"serviceSlug": "brake-repair"
},
"why": "Add the questions those customers ask. AI answers often quote FAQ answers directly.",
"ranking_effect": "medium",
"effort": "small"
}
],
"recommended": 0,
"facts_needed": [],
"seo_notes": [
"Other pages link in automatically when their copy says \"fleet maintenance\"."
],
"geo_notes": [
"Open with one sentence that says what the service is and where you do it."
],
"questions": [
"Who do you do fleet maintenance for, and how often do they come in?"
]
}Check a change
validate_page_contentReads only
What you can ask
- Check this new paragraph before you save it.
- Will this FAQ pass the rules?
What it does
Check a change to a page without saving it.
What it needs
- The page you want to check.
- The words you want to check.
What your assistant sends
| Field | Required | Description |
|---|---|---|
pageobject | Yes | |
fieldsobject | Yes | Field names and values for this page. Call get_page_content first for the exact set and shapes. |
{
"page": {
"type": "about"
},
"fields": {
"story": "We opened on Main Street and still answer our own phone."
}
}{
"written": false,
"page": {
"type": "about"
},
"publicPath": "/about",
"status": "pass",
"findings": [],
"validation_id": "v1.opaque"
}Edit a page
update_page_contentChanges your site or sends something
What you can ask
- Change the headline on my brake repair page to 'Brake repair you can book today'.
- Add an FAQ about weekend hours to my brake repair page.
- Put the about page intro back the way it was.
What it does
Save changes to one page of your site, in your words.
This asks you first, every time.
What it needs
- The page you want to change.
- The new words.
What it won't do
It won't add a claim we can't back up, like a warranty or license we don't have on file. It saves your words as you wrote them, or tells you why it can't. It never rewrites them.
What your assistant sends
| Field | Required | Description |
|---|---|---|
pageobject | Yes | |
fieldsobject | Yes | Field names and values for this page. Call get_page_content first for the exact set and shapes. |
enableboolean | No | Brand pages only. Default true turns the page on; false saves the copy and leaves it off. |
validation_idstring | No | From validate_page_content for these exact fields. Skips a repeat check; changed fields are checked again. |
idempotency_keystring | No | Optional. Reusing a key within 24 hours returns the first write's result instead of writing again. |
cleararray of string | No | Optional. Field names to put back to the page default. A name also in fields is written instead. |
confirmobject | Yes | Required. One line stating the change, in the owner's words. |
owner_requeststring | No | What the owner asked for, in their words, one sentence. Optional. Stored with the audit record so their team can see what owners ask for. |
{
"page": {
"type": "site"
},
"fields": {
"theme.overrides": {
"accent": "#1f7a3a"
}
},
"confirm": {
"intent": "Make the accent our green"
},
"idempotency_key": "theme-green-0930"
}{
"updated": true,
"page": {
"type": "site"
},
"publicPath": "/",
"fields": [
"theme.overrides"
],
"before": {
"theme.overrides": {
"brand": "#123456",
"radius": 8
}
},
"after": {
"theme.overrides": {
"brand": "#123456",
"accent": "#1f7a3a",
"radius": 8
}
},
"previewNote": "The site shows the change on its next load.",
"cacheNote": "Caches for this client were invalidated. Statically generated pages can still serve their previous build for up to an hour before the change is visible on the live site."
}