Recommendations¶
Create a recommendation from one of Hello Retail's best-practice algorithms, list the recommendations on a website, read and change the algorithm that decides which products they show, along with their settings, placement, Google Analytics events and context crawl config, edit the designs they render with, copy a design as a starting point, and point recommendations at a different design.
Tips & tricks¶
Pick the card that matches what you're doing. Each prompt is ready to paste into your assistant.
List first, then read one
recoms_list gives you the key, name, type, state and design of every recommendation. Everything else sits behind a read tool per section: recoms_getGeneralSettings, recoms_getGoogleAnalyticsSettings, recoms_getPlacement and recoms_getContextCrawlConfig.
Change one field at a time
The update tools are partial: pass only the fields you want to change and the rest stays as it was. recoms_updateGeneralSettings covers name, type, product count, devices and load order; recoms_updateGoogleAnalyticsSettings covers the events the recommendation sends.
Read the defaults, then move it
recoms_getPlacement returns the current selector, selectorMode and insertMode, plus the default selector and the <div> to paste into your page for the default placement. Change the three fields with recoms_updatePlacement.
Placement only applies when Hello Retail renders the recommendation on your page with a managed template. If you fetch recommendations through the API and render them yourself, these fields do nothing.
Read the syntax before you write it
A context crawl config extracts values from the page the recommendation renders on, and every field it defines can filter the strategy as $input.<field>. It is written in crawl strings, one field per line. recoms_updateContextCrawlConfig names docs://crawl-strings/syntax; ask for it first and the assistant writes a config that parses the first time.
Read and edit HTML and CSS
Use recoms_getDesign and recoms_updateDesign to read and edit a design's HTML and CSS directly. A recommendation's designKey in recoms_list tells you which design to open.
Copy, edit, then point recommendations at it
For a design rollout, combine recoms_copyDesign and recoms_updateSelectedDesign: copy the current design, edit the copy, then point the recommendations you want at it, all in one conversation.
Read the format before you write steps
An algorithm is an ordered list of steps. Each one adds products until the recommendation is full, so a precise first step followed by broader fallbacks is the usual shape. recoms_updateAlgorithm names docs://product-algorithms/format, which holds every step type, the filter expressions and the run conditions. Ask for it first and the assistant writes steps the engine accepts instead of guessing at field names.
Start from a proven algorithm
recoms_listBestPracticeAlgorithms returns the algorithms Hello Retail recommends for a kind of page, each with its steps. recoms_create starts a new recommendation from one, and recoms_applyBestPracticeAlgorithm puts one on a recommendation that already exists, keeping its own global filters. Adapt the result afterwards with recoms_updateAlgorithm.
recoms_list¶
List the recommendations of a customer website using Hello Retail. Returns LIVE and DRAFT recommendations by default; pass includeArchived=true to also include archived ones. Each row carries the key, name, type, state, whether it is a draft, the key of the design it renders with and when it last changed. Type and state are the enum names the update tools take, such as FRONT_PAGE and LIVE. Read the rest with recoms_getAlgorithm, recoms_getGeneralSettings, recoms_getGoogleAnalyticsSettings, recoms_getPlacement and recoms_getContextCrawlConfig.
| 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 recommendations. Defaults to false. |
Example request & response
recoms_create¶
Create a recommendation, the same way the dashboard's Create new menu does: pick the page it is for and one of Hello Retail's best-practice algorithms, and the recommendation starts with that algorithm's steps. Use recoms_listBestPracticeAlgorithms to see which algorithms a page type offers and what each one does.
The new recommendation is a DRAFT and shows nothing until it is published. It is named after the algorithm it started from, Retargeted - Box 1, and renaming it is recoms_updateGeneralSettings, the same second step as in the dashboard. It renders with the website's default design and attaches at its own default selector; placementDivExample is the element the shop pastes into the page where the recommendation should appear.
Write operation
This tool creates a recommendation in 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. |
type | string | Yes | The page the recommendation is for: FRONT_PAGE, CATEGORY_PAGE, PRODUCT_PAGE, CART_PAGE, E404_PAGE, UPSELL_STEP, SEARCH_PAGE or OTHER. |
algorithmName | string | Yes | The best-practice algorithm to start from, as recoms_listBestPracticeAlgorithms reports it for this type, such as Related products. |
Example request & response
recoms_getGeneralSettings¶
Read the general settings of a recommendation: name, type, number of products, the devices it shows on, load order, Retail Media mode, whether the template renders when no products are found, and whether it is locked. The values come back exactly as recoms_updateGeneralSettings accepts them.
| 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 recommendation. Use recoms_list to find available keys. |
Example request & response
recoms_updateGeneralSettings¶
Update the general settings of a recommendation, the fields of the General section in the editor. Updates are partial: omitted fields are left unchanged, but at least one must be provided. Editing a LIVE recommendation 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_getGeneralSettings first to read the current values. Publishing is not possible through this tool.
A few values are checked before anything is saved. The name must not be blank. The retired LEGACY type cannot be selected. You can show up to 20 products, or keep a higher count the recommendation already has. retailMediaInjectionMode requires Retail Media on your agreement; without it the call is refused and your assistant can ask Hello Retail to get in touch.
Write operation
This tool edits the recommendation and moves a LIVE recommendation 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 recommendation. Use recoms_list to find available keys. |
name | string | No | Name of the recommendation as shown in the dashboard. Must not be blank. |
type | string | No | The page the recommendation is for. One of: FRONT_PAGE, CATEGORY_PAGE, PRODUCT_PAGE, CART_PAGE, E404_PAGE, UPSELL_STEP, SEARCH_PAGE, OTHER. |
productCount | integer | No | Number of products the recommendation shows, at least 1. |
responsiveMode | string | No | Devices the recommendation shows on. One of: MOBILE, DESKTOP, BOTH. |
priority | integer | No | Load order among the page's recommendations, from 1 (loads first) to 10 (loads last). |
retailMediaInjectionMode | string | No | Retail Media content injected into the recommendation. One of: ALL (products and banners), PRODUCTS_ONLY, BANNERS_ONLY, NONE. |
renderIfEmpty | boolean | No | Whether the template renders even when no products are found. |
locked | boolean | No | Hello Retail staff only: lock the recommendation and hide it from the customer. Other callers get an error. |
Example request & response
recoms_getAlgorithm¶
Read the algorithm of a recommendation: the ordered steps that fill it, the global filters every step draws through, and whether product variants count as one product. This is the Strategy section of the recommendation editor. productCount is the number of slots the steps fill, and filterableFields lists the product fields a filter or condition on this recommendation may name, which is the website's own filterable fields plus every field its context crawl config defines. matchesBestPractice names the best-practice algorithm the steps are still running unchanged, and is null once they have been tuned. Each step carries all of its possible fields, with the ones its productType does not use set to null. The format is documented in docs://product-algorithms/format; read it before making sense of what comes back. Edit with recoms_updateAlgorithm, or replace the steps wholesale with recoms_applyBestPracticeAlgorithm.
| 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 recommendation. Use recoms_list to find available keys. |
Example request & response
{
"key": "<string>",
"state": "LIVE",
"type": "PRODUCT_PAGE",
"productCount": 6,
"filterByGroupingKey": true,
"filters": [
{ "field": "inStock", "operator": "EQUALS", "value": "true" }
],
"steps": [
{
"productType": "BOUGHT_TOGETHER",
"productLimit": 0,
"onlyOffers": false,
"excludeProducts": false,
"useAsContext": false,
"filters": [],
"condition": null,
"skipDaysAgo": null,
"numberDaysAgo": null,
"numberReceipts": null,
"skipReceipts": null,
"productIds": null,
"relatedTo": null,
"searchTerm": null,
"priceInfluence": 0.25
},
{
"productType": "TOP",
"productLimit": 0,
"onlyOffers": false,
"excludeProducts": false,
"useAsContext": false,
"filters": [
{ "field": "hierarchies", "operator": "IN", "value": "$hierarchies" }
],
"condition": null,
"skipDaysAgo": null,
"numberDaysAgo": null,
"numberReceipts": null,
"skipReceipts": null,
"productIds": null,
"relatedTo": null,
"searchTerm": null,
"priceInfluence": null
}
],
"matchesBestPractice": "Related products",
"filterableFields": ["pi.productCluster", "pi.budgetZone", "price", "inStock", "brand", "hierarchies"],
"lastModified": "<string>"
}
recoms_updateAlgorithm¶
Change the algorithm of a recommendation. Read docs://product-algorithms/format first: it holds every step type with the extra fields it carries, the filter operators and $context expressions, the run conditions and worked examples. To start from a proven setup instead of writing steps by hand, use recoms_listBestPracticeAlgorithms and recoms_applyBestPracticeAlgorithm.
Updates are partial, and each argument replaces its part whole. Omitted arguments are left unchanged, but at least one must be given. Passing steps replaces every step, so read the current ones with recoms_getAlgorithm and send them back with your edits; a recommendation must keep at least one step, since one saved with none is read back as a default Top products box. An input the engine cannot run is refused with the path of the offending step, such as steps[1].searchTerm is not a field of a TOP step, and nothing is saved. Input that is storable but probably not what you meant, such as a filter on a field the website cannot filter on, is saved and reported in warnings.
Write operation
This tool replaces the recommendation's algorithm and moves a LIVE recommendation 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 recommendation. Use recoms_list to find available keys. |
steps | array | No | The whole ordered step list, replacing the current one. Steps run from the top, each filling the remaining slots. Fields per entry are described below. |
filters | array | No | The whole global filter list, replacing the current one. These apply to every step except MANUAL; [] removes them all. Same fields as a step's own filters, described below. |
filterByGroupingKey | boolean | No | Whether variants the catalogue groups together count as one product, so five colours of the same shirt cannot take five slots. |
Each step has these fields. Only the extras belonging to its own productType may be set; another type's extra is refused rather than ignored.
| Name | Type | Required | Description |
|---|---|---|---|
productType | string | Yes | What the step contributes, such as RETARGETED, BOUGHT_TOGETHER, TOP or MANUAL. The catalogue is the one the dashboard's editor offers, listed in docs://product-algorithms/format; a type outside it is refused, except on an algorithm that already uses it. |
productLimit | integer | No | At most this many products from this step. 0, the default, means no limit: it fills whatever is left. |
onlyOffers | boolean | No | Only products currently on sale. |
filters | array | No | Filters applied to this step alone, on top of the global ones. |
condition | object | No | When the step runs at all. Omit it and the step always runs. Fields described below. |
excludeProducts | boolean | No | Inverts the step: instead of contributing products, it removes them from what the later steps may return. Only some step types support it. |
useAsContext | boolean | No | Its products are not shown; they become the products in context for the later steps, as if the page were about them. Only some step types support it. |
skipDaysAgo, numberDaysAgo | integer | No | The look-back window of a RETARGETED or RECENTLY_BOUGHT step: skip the most recent skipDaysAgo days, then look back numberDaysAgo further. RECENTLY_CREATED takes numberDaysAgo alone. |
numberReceipts, skipReceipts | integer | No | How many of the visitor's receipts a RECENTLY_BOUGHT step reads, and how many recent ones it skips. The dashboard does not show these: send back what recoms_getAlgorithm returned rather than setting them, or they reset to 100 and 0. |
relatedTo | string | No | The step type whose products a VIEWED_WITH or BOUGHT_WITH step starts from. RETARGETED or RECENTLY_BOUGHT, the two the editor offers. |
searchTerm | string | No | What a SEARCH step searches for. $title searches for the title of the product in context. |
productIds | string[] | No | The products a MANUAL step returns, in the order given. |
priceInfluence | number | No | How strongly an ALTERNATIVES or BOUGHT_TOGETHER step prefers similarly priced products. One of 0, 0.25, 0.5 or 0.75 and nothing between them, the notches the editor offers. Omit it and a new ALTERNATIVES step starts at 0.25, a new BOUGHT_TOGETHER step at 0. |
Each filter, global or per step, has these fields:
| Name | Type | Required | Description |
|---|---|---|---|
field | string | Yes | A product field from filterableFields in recoms_getAlgorithm. |
operator | string | Yes | EQUALS, NOT_EQUALS, GREATER_THAN or LESS_THAN for a single-valued field; IN, NOT_IN or ALL for a list-valued one (hierarchies, category, extraDataList.*). |
value | string | Yes | A literal, a JSON list for a list-valued field, or a $context expression such as $user.avgPrice * 1.2 or $hierarchies|trimToLevel:2. A filter whose expression resolves to nothing aborts that step, and the next one runs. |
A literal has to match the catalogue exactly, and guessing it is the usual reason a filter matches nothing. productData_getFieldValues lists the values a field actually has — the only practical way to get a hierarchy right, since they are $-separated (kids$shoes is Kids > Shoes). It reads the search index, so it answers only for fields indexed for search and not at all for range fields like price.
A condition is one of five shapes:
| Name | Type | Required | Description |
|---|---|---|---|
type | string | Yes | ALWAYS (same as no condition), COMPARE, ALL_OF, ANY_OF or NEVER. ALWAYS cannot be a rule inside a group. |
field | string | For COMPARE | A filterable field or a context path written without the leading $, such as user.bias.brand. |
operator | string | For COMPARE | EQ, NE, LT, LTE, GT or GTE for single values; ANY, ALL or NONE for lists. |
value | string | No | Compared as written. "null" tests for a missing value, and an empty string matches products that have none. |
rules | array | For ALL_OF and ANY_OF | The nested conditions, which may be groups themselves. An empty ALL_OF holds for everyone; an empty ANY_OF holds for nobody. |
Example request & response
Retarget what the visitor viewed, treat those products as the subject, offer alternatives near their usual spend, then fall back to the catalogue for visitors with a known brand.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "recoms_updateAlgorithm",
"arguments": {
"websiteUuid": "<string>",
"key": "<string>",
"steps": [
{
"productType": "RETARGETED",
"productLimit": 3,
"useAsContext": true,
"skipDaysAgo": 1,
"numberDaysAgo": 30
},
{
"productType": "ALTERNATIVES",
"priceInfluence": 0.5,
"filters": [
{ "field": "price", "operator": "LESS_THAN", "value": "$user.avgPrice * 1.2" }
]
},
{
"productType": "TOP",
"filters": [
{ "field": "brand", "operator": "EQUALS", "value": "$user.bias.brand" }
],
"condition": {
"type": "COMPARE",
"field": "user.bias.brand",
"operator": "NE",
"value": ""
}
}
],
"filters": [
{ "field": "inStock", "operator": "EQUALS", "value": "true" }
]
}
}
}
{
"key": "<string>",
"state": "DRAFT",
"filterByGroupingKey": true,
"filters": [
{ "field": "inStock", "operator": "EQUALS", "value": "true" }
],
"steps": [
{ "productType": "RETARGETED", "productLimit": 3, "useAsContext": true, "skipDaysAgo": 1, "numberDaysAgo": 30 },
{ "productType": "ALTERNATIVES", "priceInfluence": 0.5 },
{ "productType": "TOP" }
],
"warnings": [],
"draftCreated": true,
"lastModified": "<string>"
}
Each returned step carries all of its fields, with the unused ones null; they are left out here for brevity.
recoms_listBestPracticeAlgorithms¶
List the algorithms Hello Retail recommends for a kind of recommendation: the step sequences the dashboard offers when a recommendation is created or its type is changed. Each entry carries a name, one line on which products it puts in the recommendation, and its steps, so you can apply it as it stands with recoms_applyBestPracticeAlgorithm or adapt it and write it back with recoms_updateAlgorithm. Which ones exist depends on the type: a product page can use the ones about the product on the page, a front page cannot.
| 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. |
type | string | Yes | The page the recommendation is for: FRONT_PAGE, CATEGORY_PAGE, PRODUCT_PAGE, CART_PAGE, E404_PAGE, UPSELL_STEP, SEARCH_PAGE or OTHER. Read a recommendation's type from recoms_list. |
Example request & response
{
"type": "PRODUCT_PAGE",
"typeTitle": "Product page",
"algorithms": [
{
"name": "Retargeted",
"description": "Products this visitor has looked at, topped up with related picks",
"steps": [
{ "productType": "RETARGETED" },
{ "productType": "BOUGHT_WITH", "relatedTo": "RETARGETED" },
{ "productType": "VIEWED_WITH", "relatedTo": "RETARGETED" },
{ "productType": "TOP" }
]
},
{
"name": "Related products",
"description": "Bought and viewed together with the product on the page",
"steps": [
{ "productType": "BOUGHT_TOGETHER" },
{ "productType": "RELATED", "filters": [{ "field": "hierarchies", "operator": "NOT_IN", "value": "$hierarchies" }] },
{ "productType": "RELATED" }
]
}
]
}
Each step carries all of its fields, with the unused ones null; they are left out here for brevity.
recoms_applyBestPracticeAlgorithm¶
Replace the steps of a recommendation with one of Hello Retail's best practice algorithms for its type, by name. Use recoms_listBestPracticeAlgorithms to see the names and what each one does; an unknown name is refused and the available ones are listed back.
Only the steps are replaced. The recommendation's global filters and filterByGroupingKey are kept, since they are the shop's own rules rather than part of what the algorithm recommends. Adapt the result afterwards with recoms_updateAlgorithm if it needs the recommendation's own filters or limits.
Write operation
This tool replaces the recommendation's steps and moves a LIVE recommendation 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 recommendation. Use recoms_list to find available keys. |
algorithmName | string | Yes | The name of the best practice algorithm, as recoms_listBestPracticeAlgorithms reports it, such as Related products. |
Example request & response
{
"key": "<string>",
"state": "DRAFT",
"name": "Related products",
"steps": [
{ "productType": "BOUGHT_TOGETHER" },
{ "productType": "RELATED", "filters": [{ "field": "hierarchies", "operator": "NOT_IN", "value": "$hierarchies" }] },
{ "productType": "RELATED" }
],
"warnings": [],
"draftCreated": true,
"lastModified": "<string>"
}
recoms_getGoogleAnalyticsSettings¶
Read the Google Analytics settings of a recommendation: whether it sends events, the category, action and label of the click event and of the view event, and the extra query parameters appended to product links. The values come back exactly as recoms_updateGoogleAnalyticsSettings accepts them.
| 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 recommendation. Use recoms_list to find available keys. |
Example request & response
{
"key": "<string>",
"state": "LIVE",
"gaEventEnabled": true,
"gaEventCategory": "helloretail",
"gaEventAction": "Recom click",
"gaEventLabel": "<string>",
"gaViewEventCategory": "helloretail",
"gaViewEventAction": "Recom view",
"gaViewEventLabel": "<string>",
"extraLinkParams": "",
"lastModified": "<string>"
}
recoms_updateGoogleAnalyticsSettings¶
Update the Google Analytics settings of a recommendation, the fields of the Google Analytics section in the editor. Updates are partial: omitted fields are left unchanged, but at least one must be provided; pass an empty string to clear a text field. Labels are sent prefixed with the recommendation type's title, for example Product page - <label>. A new recommendation starts with category helloretail, actions Recom click and Recom view, and its name as both labels; the dashboard's UTM suggestion for extraLinkParams is utm_source=helloretail&utm_medium=productbox&utm_campaign=<url-encoded name>. Editing a LIVE recommendation automatically creates a draft and leaves it in DRAFT state for review. Use recoms_getGoogleAnalyticsSettings first to read the current values. Publishing is not possible through this tool.
Write operation
This tool edits the recommendation and moves a LIVE recommendation 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 recommendation. Use recoms_list to find available keys. |
gaEventEnabled | boolean | No | Whether the recommendation sends Google Analytics events at all. |
gaEventCategory | string | No | Category of the event sent when a recommended product is clicked. |
gaEventAction | string | No | Action of the click event. |
gaEventLabel | string | No | Label of the click event. |
gaViewEventCategory | string | No | Category of the event sent when the recommendation is viewed. |
gaViewEventAction | string | No | Action of the view event. |
gaViewEventLabel | string | No | Label of the view event. |
extraLinkParams | string | No | Query parameters appended to every product link in the recommendation, without a leading ?, e.g. utm_source=helloretail&utm_medium=productbox. |
Example request & response
{
"key": "<string>",
"state": "DRAFT",
"gaEventEnabled": true,
"gaEventCategory": "helloretail",
"gaEventAction": "Recom click",
"gaEventLabel": "<string>",
"gaViewEventCategory": "helloretail",
"gaViewEventAction": "Recom view",
"gaViewEventLabel": "<string>",
"extraLinkParams": "utm_source=helloretail&utm_medium=productbox&utm_campaign=cart-upsell",
"draftCreated": true,
"lastModified": "<string>"
}
recoms_getPlacement¶
Read where and how a recommendation is placed on the page: the CSS selector it attaches to, the selectorMode deciding when that selector is evaluated, the insertMode deciding how it is inserted relative to the matched element, whether the selector is the default one, what that default is, and placementDivExample, the <div id="hr-recom-<key>"></div> you paste into your page where the recommendation should render by default. Change the first three with recoms_updatePlacement.
| 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 recommendation. Use recoms_list to find available keys. |
Example request & response
recoms_updatePlacement¶
Update where a recommendation is placed on the page: the CSS selector it attaches to, the selectorMode deciding when that selector is evaluated, and the insertMode deciding how it is inserted relative to the matched element. These fields only matter when Hello Retail renders the recommendation 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 recommendation 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_getPlacement first to read the current placement. Publishing is not possible through this tool.
Write operation
This tool edits the recommendation's placement and moves a LIVE recommendation 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 recommendation to update. Use recoms_list to find available keys. |
selector | string | No | CSS selector for the element the recommendation attaches to, at most 2000 characters. 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 recommendation attaches when a matching element appears; LIVE_MULTI keeps observing for new matches). |
insertMode | string | No | How the recommendation is inserted relative to the matched element. One of: REPLACE, PREPEND, APPEND, BEFORE, AFTER. |
Example request & response
recoms_getContextCrawlConfig¶
Read the context crawl config of a recommendation as crawl strings. The config runs in the visitor's browser on the page the recommendation renders on and extracts values from it; every field it defines is available to the recommendation's strategy as a filter value, $input.<field>. crawlStrings is an empty string when the recommendation crawls nothing, and null when the stored config cannot be rendered as crawl strings, in which case recoms_updateContextCrawlConfig cannot edit it either. fieldNames lists the fields the config defines. The syntax is documented in docs://crawl-strings/syntax.
| 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 recommendation. Use recoms_list to find available keys. |
Example request & response
recoms_updateContextCrawlConfig¶
Replace the context crawl config of a recommendation with the given crawl strings; pass an empty string to remove it. Read docs://crawl-strings/syntax first: it holds the line shape, the field names a recommendation may define, selectors, processors and annotations. The text is parsed server-side, and the first syntax error rejects the call with its line, so nothing is saved. Deprecated field names still parse and come back in warnings. Editing a LIVE recommendation automatically creates a draft and leaves it in DRAFT state for review. Use recoms_getContextCrawlConfig first to read the current config. Publishing is not possible through this tool.
Write operation
This tool replaces the recommendation's context crawl config and moves a LIVE recommendation 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 recommendation. Use recoms_list to find available keys. |
crawlStrings | string | Yes | The whole context crawl config as crawl strings, one field per line. An empty string removes it. |
Example request & response
recoms_updateSelectedDesign¶
Assign a different design to one or more recommendations of a customer website using Hello Retail. Every listed recommendation is pointed at the design with the given key; use one call for bulk reassignments such as design rollouts, instead of calling once per recommendation. Recommendations already using the design are reported UNCHANGED and left untouched, so re-running the same call is safe. Editing a LIVE recommendation automatically creates a draft and leaves it in DRAFT state for review; the per-recommendation draftCreated field tells you when that happened. Use recoms_list to find recommendation keys and recoms_listDesigns to find design keys; copy a design first with recoms_copyDesign to point recommendations at an editable variant. Recommendations cannot be pointed at an archived design. Publishing is not possible through this tool.
All recommendations are checked before anything is written, so a bad key fails the whole call without changing anything. If a save fails midway, the error says how many recommendations earlier in the list were already updated; retry with only the remaining ones rather than the full list.
Write operation
This tool edits the listed recommendations and moves LIVE ones 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 recommendations should render with. Use recoms_listDesigns to find available keys. |
keys | array of strings | Yes | The keys of the recommendations to point at the design. Use recoms_list to find available keys. |
Example request & response
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
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
recoms_updateDesign¶
Update the design (template and styles) that recommendations render with. 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 recommendation 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 recommendations 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. |
templateStyles | string | No | CSS styles applied to the recommendation. |
Example request & response
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 recommendations at it with recoms_updateSelectedDesign.
Write operation
This tool creates a new design for the company. It does not change any recommendations 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. |