How your site looks
See your whole site setup, change your colors with a preview, place your photos, and arrange your homepage.
Overview
Your site's look is more than its words. It's your colors, your photos, and the order your homepage tells your story in. Your assistant can change those too. It starts by reading your whole setup at once, so it knows what's there before it touches anything.
New colors come with a preview. Ask for a color, or ask it to take your colors from your logo, and you get a link to look at first. It won't save colors that make text hard to read. It tells you which color failed and by how much, so you can pick another.
Photos go where you say. Each one is checked for size and sharpness first. An empty spot shows a plain photo of the kind of work you do, never a stock photo of somebody else's business.
You can move homepage sections around, hide one, and pick what shows next to your logo. The big photo at the top always stays first.
Your logo, services, menu, buttons, trust points and business facts stay with us. Ask, and we'll change them.
Changes here need an active account. If your account is on hold or cancelled, editing pauses until it's back.
The tools on this page
| Tool | Reads | Writes | Asks you first |
|---|---|---|---|
| See your site setup | Yes | No | No |
| Change site photos | No | Yes | Yes |
| Arrange your homepage | No | Yes | Yes |
| Change your colors | No | Yes | Yes |
See your site setup
get_site_setupReads only
What you can ask
- What does my website look like right now?
- Which photos and colors is my site using?
- Do my hours match everywhere?
What it does
Your site's setup in one read: colors, logo, photos, trust points, buttons, services and hours. Read this before changing any of them.
What it won't do
It only reads. Nothing changes until you ask for a change.
What your assistant sends
Nothing. Your assistant just runs it.
{}{
"theme": {
"preset": {
"id": "professional",
"name": "Professional"
},
"brand": {
"primary": "#1F6F3A",
"secondary": "#1F2937",
"accent": "#C2410C"
},
"tokens": [
{
"key": "brand",
"label": "Brand color",
"value": "#1F6F3A",
"source": "preset"
}
]
},
"logo": {
"primary": "https://cdn.example/logo.png",
"dark": "https://cdn.example/logo.png",
"favicon": "https://cdn.example/favicon.png"
},
"images": [
{
"slot": "hero",
"label": "Homepage hero",
"url": null,
"renders": "/floor/shared/contact.jpg",
"source": "floor",
"human_set": false
}
],
"trust_bar": {
"points": [
{
"id": "licensed",
"text": "Licensed and insured",
"subtext": null
}
],
"emergency_message": null
},
"header": {
"cta_right": {
"text": "Book online",
"action": "schedule",
"url": null,
"open_in_new_tab": null,
"enabled": null
},
"services": [],
"hidden_items": [],
"display": null
},
"hero": {
"cta_primary": null,
"scheduler_enabled": true
},
"booking": {
"vendor": null,
"enabled": false,
"embed_key": null,
"detected_vendor": null
},
"warranty": {
"enabled": false,
"program_name": null
},
"socials": {
"links": [
{
"network": "facebook",
"url": "https://facebook.com/example"
}
],
"same_as": [
"https://facebook.com/example"
]
},
"services": [
{
"slug": "brake-repair",
"name": "Brake repair",
"enabled": true,
"homepage_card": true,
"order": 0,
"card_image": null
}
],
"hours": {
"stored": {
"monday": "08:00-17:00",
"saturday": "closed"
},
"source": null,
"gbp": {
"monday": "08:00-17:00",
"saturday": "08:00-12:00"
},
"site": null,
"conflicts": [
{
"day": "saturday",
"stored": "closed",
"gbp": "08:00-12:00",
"site": null
}
]
},
"year_established": 2004,
"layout": {
"hero_variant": null,
"section_order": [],
"hidden": [],
"header_display": null
},
"human_set": []
}Change site photos
set_imagesChanges your site or sends something
What you can ask
- Put the photo of our shop on the homepage.
- Fill the empty photo spots on my site.
- Use my new photo for the about page.
What it does
Put photos from your library on your homepage, about page and service cards, or fill empty spots. Each photo is checked for size and sharpness first.
Your assistant asks you to confirm this first.
What it won't do
Photos that are small, blurry, too dark, or an odd shape aren't placed. You'll hear which one and why, and nothing else changes.
What your assistant sends
| Field | Required | Description |
|---|---|---|
slotsarray of object | No | Library photos for slots. Each must pass the photo check (size, shape, not dark or flat). |
fill_fromone of: gated_photos, floor | No | Fill the EMPTY slots: gated_photos uses the checked Google photos, floor the trade images. |
idempotency_keystring | No | Optional. Reusing a key within 24 hours returns the first result instead of writing again. |
confirmobject | No | Required to apply a change. Not needed for a preview. |
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. |
{
"fill_from": "floor",
"confirm": {
"intent": "Fill the empty photo spots"
}
}{
"written": [
{
"slot": "about",
"service_slug": null,
"url": "/floor/shared/contact.jpg",
"source": "floor"
}
],
"skipped": [],
"before": {
"assets.about.hero": null
},
"after": {
"assets.about.hero": "/floor/shared/contact.jpg"
}
}Arrange your homepage
set_layoutChanges your site or sends something
What you can ask
- Move the reviews higher on my homepage.
- Hide the questions section on my homepage.
- Show my rating next to the logo instead of my town.
What it does
Reorder or hide the sections of your homepage, pick the hero style, and choose what the header shows next to your logo. The hero always stays first.
Your assistant asks you to confirm this first.
What it won't do
The big photo at the top always stays first. A section with nothing in it stays hidden either way.
What your assistant sends
| Field | Required | Description |
|---|---|---|
hero_variantone of: photo, full_bleed, video_loop or null | No | |
section_orderarray of one of: trustBar, services, offers, whyChoose, reviews, serviceMap, faqs, finalCTA | No | |
hiddenarray of one of: trustBar, services, offers, whyChoose, reviews, serviceMap, faqs, finalCTA | No | |
header_displayone of: location, reviews or null | No | |
idempotency_keystring | No | Optional. Reusing a key within 24 hours returns the first result instead of writing again. |
confirmobject | No | Required to apply a change. Not needed for a preview. |
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. |
{
"header_display": "reviews",
"confirm": {
"intent": "Show our rating in the header"
}
}{
"before": {
"layout.header.display": null
},
"after": {
"layout.header.display": "reviews"
}
}Change your colors
set_themeChanges your site or sends something
What you can ask
- Make my site match the colors in my logo.
- Use this green for the buttons on my site.
- Show me my site in darker colors before you change it.
What it does
Change your site's colors. It checks that text stays readable. Preview first: you get a link to look at before anything is saved. It can also suggest colors from your logo.
Your assistant asks you to confirm this first.
What it won't do
It won't save colors that make text hard to read. You'll see which color failed and by how much, so you can pick another.
What your assistant sends
| Field | Required | Description |
|---|---|---|
modeone of: preview, apply | No | preview (default) returns a preview link and writes nothing; apply saves. |
paletteobject | No | The three brand colors: primary (buttons, links), secondary (dark ink), accent. |
tokensobject | No | Other theme tokens, e.g. { "radius": 8 }. Keys: brand, brandInk, accent, accentInk, ink, surface, surfaceAlt, scrim, scrimStrength, success, warning, danger and more; unknown keys are dropped and named. |
from_logoboolean | No | true proposes the palette from the stored logo; a palette sent with it wins per color. |
idempotency_keystring | No | Optional. Reusing a key within 24 hours returns the first result instead of writing again. |
confirmobject | No | Required to apply a change. Not needed for a preview. |
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. |
{
"palette": {
"primary": "#1F6F3A"
},
"mode": "apply",
"confirm": {
"intent": "Use our logo green for the buttons"
}
}{
"mode": "apply",
"applied": true,
"proposal": null,
"palette": {
"primary": "#1F6F3A",
"secondary": null,
"accent": null
},
"tokens": {},
"dropped": [],
"contrast": {
"pass": true,
"checks": [
{
"check": "brand color on a white page",
"ratio": 6.43,
"min": 3,
"pass": true
}
]
},
"before": {
"branding.primaryColor": "#0F766E",
"theme.overrides": {}
},
"after": {
"branding.primaryColor": "#1F6F3A",
"theme.overrides": {
"brand": "#1F6F3A"
}
}
}