Skip to content

Recommendations

Review recommendation boxes, edit their designs, copy a design as a starting point, control where each box is placed on the page, and point boxes at a different design.

Tips & tricks

Pick the card that matches what you're doing. Each prompt is ready to paste into your assistant.

Orientation

List boxes, then designs

List the boxes first, then fetch a design by key to see its templates and styles.

List the recommendation boxes for my website, then show the design for one of them.
Design source

Read and edit HTML and CSS

Use recoms_getDesign and recoms_updateDesign to read and edit a design's HTML and CSS directly.

Show the HTML and CSS for recommendation design <KEY> on my website.
Rollout

Copy, edit, then point boxes at it

For a design rollout, combine recoms_copyDesign and recoms_updateBoxesDesign: copy the current design, edit the copy, then point the boxes you want at it, all in one conversation.

Copy the design used by recommendation box <KEY>, make the product titles larger in the copy, and point that box at it.
Placement

Three fields on the box

Placement is three fields on the box: selector (the element the box attaches to), selectorMode (when the selector is evaluated), and insertMode (how the box is inserted relative to the matched element). Read them with recoms_listBoxes, change them with recoms_updateBoxPlacement.

Placement only applies when Hello Retail renders the box on your page with a managed template. If you fetch recommendations through the API and render them yourself, these fields do nothing.

Move recommendation box <KEY> so it appears right after the element matching .product-description.

recoms_getDesign

Retrieve the design (template and styles) for a customer website using Hello Retail. Use this before recoms_updateDesign to read the current state of the design.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
key string Yes The key of the design. Use recoms_listDesigns to find available keys.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_getDesign",
    "arguments": {
      "websiteUuid": "<string>",
      "key": "<string>"
    }
  }
}
{
  "key": "<string>",
  "title": "<string>",
  "templateCode": "<string>",
  "templateStyles": "<string>"
}

recoms_updateDesign

Update the design (template and styles) of a recommendation box for a customer website using Hello Retail. Edits the design with the given key. templateCode and templateStyles are optional and updates are partial: omitted fields are left unchanged, but at least one of them must be provided. Saving a design automatically creates a draft of any LIVE boxes using it, leaving them in DRAFT state for review. Use recoms_getDesign first to read the current state before making changes. Publishing is not possible through this tool.

Write operation

This tool edits the design and moves any LIVE boxes that use it to DRAFT state. Publishing to LIVE requires My Hello Retail. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
key string Yes The key of the design to update. Use recoms_listDesigns to find available keys.
templateCode string No HTML/Liquid template for rendering the recommendation box.
templateStyles string No CSS styles applied to the recommendation box.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_updateDesign",
    "arguments": {
      "websiteUuid": "<string>",
      "key": "<string>"
    }
  }
}
{
  "key": "<string>",
  "designId": 0,
  "title": "<string>",
  "lastModified": "<string>"
}

recoms_listDesigns

List all designs available to a website: the company's custom designs (including archived ones) and the shared standard designs. Returns key, title, archived/standard flags and last-modified for each design. Use the key with recoms_getDesign or recoms_updateDesign. Archived and standard designs are read-only; copy them with recoms_copyDesign to get an editable design.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_listDesigns",
    "arguments": {
      "websiteUuid": "<string>"
    }
  }
}
{
  "designs": [
    {
      "key": "<string>",
      "title": "<string>",
      "archived": false,
      "standard": false,
      "lastModified": "<string>"
    }
  ]
}

recoms_copyDesign

Copy a recommendation design into a new, independent design for a customer website using Hello Retail. The copy starts from the source design's template and styles but gets its own key, so it can be edited without affecting the original. This is useful for customizing a standard or archived design, which cannot be edited directly. Use recoms_listDesigns to find the source key, edit the copy with recoms_updateDesign, and point boxes at it with recoms_updateBoxesDesign.

Write operation

This tool creates a new design for the company. It does not change any boxes or existing designs. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
sourceKey string Yes The key of the design to copy. Use recoms_listDesigns to find available keys.
title string No Title of the new design. Defaults to the source design's title with " (copy)" appended.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_copyDesign",
    "arguments": {
      "websiteUuid": "<string>",
      "sourceKey": "<string>",
      "title": "<string>"
    }
  }
}
{
  "key": "<string>",
  "designId": 0,
  "title": "<string>",
  "sourceKey": "<string>",
  "lastModified": "<string>"
}

recoms_listBoxes

List recommendation boxes for a customer website using Hello Retail. Returns LIVE and DRAFT boxes by default; pass includeArchived=true to also include archived boxes. Each box's designKey identifies the design it renders with; use it with recoms_getDesign or recoms_updateDesign to inspect or edit that design, or point boxes at a different design with recoms_updateBoxesDesign. Each box also includes its placement (selector, selectorMode, insertMode, and usingDefaultSelector); change it with recoms_updateBoxPlacement.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
includeArchived boolean No Whether to include archived boxes. Defaults to false.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_listBoxes",
    "arguments": {
      "websiteUuid": "<string>"
    }
  }
}
{
  "boxes": [
    {
      "key": "<string>",
      "name": "<string>",
      "type": "<string>",
      "state": "<string>",
      "draft": false,
      "designKey": "<string>",
      "selector": "<string>",
      "selectorMode": "<string>",
      "insertMode": "<string>",
      "usingDefaultSelector": false,
      "lastModified": "<string>"
    }
  ]
}

recoms_updateBoxPlacement

Update where a recommendation box is placed on the page for a customer website using Hello Retail: the CSS selector the box attaches to, the selectorMode deciding when that selector is evaluated, and the insertMode deciding how the box is inserted relative to the matched element. These fields only matter when Hello Retail renders the box with a managed template; they have no effect if you fetch recommendations through the API and render them yourself. Updates are partial: omitted fields are left unchanged, but at least one of them must be provided. Passing an empty string as selector resets it to the default #hr-recom-<key>. Editing a LIVE box automatically creates a draft and leaves it in DRAFT state for review; if the key already has a draft, that draft is edited instead. The draftCreated field in the response tells you whether a new draft was created. Use recoms_listBoxes first to read the current placement. Publishing is not possible through this tool.

Write operation

This tool edits the box's placement and moves a LIVE box to DRAFT state. Publishing to LIVE requires My Hello Retail. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
key string Yes The key of the box to update. Use recoms_listBoxes to find available keys.
selector string No CSS selector for the element the box attaches to. Pass an empty string to reset to the default #hr-recom-<key>.
selectorMode string No When the selector is evaluated. One of: NORMAL (evaluated when the script loads), LIVE_ONCE, LIVE_MULTI (the page is observed and the box attaches when a matching element appears; LIVE_MULTI keeps observing for new matches).
insertMode string No How the box is inserted relative to the matched element. One of: REPLACE, PREPEND, APPEND, BEFORE, AFTER.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_updateBoxPlacement",
    "arguments": {
      "websiteUuid": "<string>",
      "key": "<string>",
      "selector": "<string>"
    }
  }
}
{
  "key": "<string>",
  "state": "<string>",
  "selector": "<string>",
  "selectorMode": "<string>",
  "insertMode": "<string>",
  "draftCreated": false,
  "lastModified": "<string>"
}

recoms_updateBoxesDesign

Assign a different design to one or more recommendation boxes of a customer website using Hello Retail. Every listed box is pointed at the design with the given key; use one call for bulk reassignments such as design rollouts, instead of calling once per box. Boxes already using the design are reported UNCHANGED and left untouched, so re-running the same call is safe. Editing a LIVE box automatically creates a draft and leaves it in DRAFT state for review; the per-box draftCreated field tells you when that happened. Use recoms_listBoxes to find box keys and recoms_listDesigns to find design keys; copy a design first with recoms_copyDesign to point boxes at an editable variant. Boxes cannot be pointed at an archived design. Publishing is not possible through this tool.

All boxes are checked before anything is written, so a bad key fails the whole call without changing any box. If a save fails midway, the error says how many boxes earlier in the list were already updated; retry with only the remaining boxes rather than the full list.

Write operation

This tool edits the listed boxes and moves LIVE boxes to DRAFT state. Publishing to LIVE requires My Hello Retail. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The UUID of the customer's website in Hello Retail. Use website_getInfo to look up available websites, or find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
designKey string Yes The key of the design the boxes should render with. Use recoms_listDesigns to find available keys.
boxKeys array of strings Yes The keys of the recommendation boxes to point at the design. Use recoms_listBoxes to find available keys.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "recoms_updateBoxesDesign",
    "arguments": {
      "websiteUuid": "<string>",
      "designKey": "<string>",
      "boxKeys": ["<string>", "<string>"]
    }
  }
}
{
  "designKey": "<string>",
  "boxes": [
    {
      "key": "<string>",
      "state": "<string>",
      "outcome": "UPDATED",
      "draftCreated": true,
      "lastModified": "<string>"
    },
    {
      "key": "<string>",
      "state": "<string>",
      "outcome": "UNCHANGED",
      "draftCreated": false,
      "lastModified": "<string>"
    }
  ]
}