Skip to main content

Writing flow content

Not yet available

Guided selling is not yet available. This page describes it ahead of its release, so details can still change. The changelog announces when it is released.

The content of a version decides how a flow behaves. The instruction holds your selling knowledge, the catalog lists what the flow may advise and the settings hold the opening question, the languages, the question budget and the model. You send the content whole when you create a flow or a new version, and it is the only thing the flow knows. The examples come from the label printer advisor in Creating and publishing a flow, which has the complete content.

The instruction​

The instruction is markdown, written for the AI model the way you would brief a new sales rep. It works best when it covers three things:

  • How to narrow down. The questions an expert asks, starting with the one that rules out the most products.
  • Rules. What rules a product in or out, in terms of the attributes in your catalog.
  • What the advice should say. For example which needs each reason should name, or when to suggest talking to a specialist.

The instruction of the label printer advisor:

# Label printer advisor

You help warehouse managers, operations leads and office staff choose a label printer from this catalog.

## How to narrow down

1. Where the printer is used: a packing desk or office; a warehouse or production floor; on the move.
2. How many labels the customer prints on a busy day.
3. The widest label they print: 2, 4 or 6 inch.
4. How the printer connects: USB, Ethernet, Wi-Fi or Bluetooth.

Rule printers out on what the customer tells you. Do not ask a question whose answer would not change the advice.

## Rules

- On the move means battery power and a wireless connection: only mobile printers fit.
- More than 5,000 labels a day needs an industrial printer.
- Labels wider than 4 inch need a 6-inch printer.
- Thermal transfer labels last longer than direct thermal ones. Mention it when labels are stored outdoors or for months.
- When the customer already knows which model they want, ask which one and advise it.

## In the advice

In each reason, name the customer's needs that the printer meets. When no printer here meets a need, say so and suggest talking to a specialist.

What helps:

  • Describe how an expert rules products out rather than which product to pick. The flow asks whichever question best splits the products that still fit.
  • Use the attribute names and values of your catalog in your rules, so rules and products clearly match.
  • Put every fact the flow may use in the catalog or the instruction. The flow does not state facts that are in neither.
  • Leave out what every flow already does, such as limiting the number of options or never naming prices. See Rules every flow follows.

The catalog​

The catalog lists the products the flow may advise, with only what it needs to choose between them:

FieldWhat to put in it
productIdThe Propeller product id. The advice returns it and the storefront fetches the product with it.
skuOptional. For people who read the content and the conversation history. The flow does not use it to decide.
nameThe product name as the flow should know it
descriptionOne line on what the product is for, in the words a buyer would use
attributesThe attributes that tell products apart, each as a name and a text value. Join the values of a multi-valued attribute in one string.
{
"productId": 18242,
"sku": "LP-M220",
"name": "LP-M220 Mobile Label Printer",
"description": "Battery-powered printer worn on the belt for shelf and picking labels.",
"attributes": [
{ "name": "ENVIRONMENT", "value": "Warehouse aisles, customer sites" },
{ "name": "LABELS_PER_DAY", "value": "Up to 300" },
{ "name": "MAX_LABEL_WIDTH", "value": "2 inch" },
{ "name": "PRINT_METHOD", "value": "Direct thermal" },
{ "name": "CONNECTIVITY", "value": "Bluetooth, Wi-Fi" },
{ "name": "POWER_SOURCE", "value": "Battery" }
]
}

What helps:

  • Include only attributes that differ between products and matter to a buyer. An attribute that every product shares cannot help the flow choose.
  • Leave out prices, stock and images. The storefront shows them per customer.
  • List the products you want advised, typically one product range. A flow advises from the same catalog for every customer, and the storefront leaves out advised products a customer cannot buy.

Build the catalog from your product data in Propeller, for example with the products query. The catalog is a copy: when products or their data change, the flow does not change with them. Create a new version with the updated catalog and publish it.

Every step sends the instruction and the catalog to the model. The model vendor caches them, but a shorter instruction and only the attributes that matter still keep steps faster and cheaper.

The settings​

The settings of the label printer advisor:

{
"language": "EN",
"languages": ["EN", "NL"],
"opener": {
"questions": [
{ "language": "EN", "value": "Where will the printer be used?" },
{ "language": "NL", "value": "Waar gaat u de printer gebruiken?" }
],
"options": [
{
"labels": [
{ "language": "EN", "value": "At a packing desk or in an office" },
{ "language": "NL", "value": "Aan een inpaktafel of op kantoor" }
]
},
{
"labels": [
{ "language": "EN", "value": "In a warehouse or on the production floor" },
{ "language": "NL", "value": "In een magazijn of in de productie" }
]
},
{
"labels": [
{ "language": "EN", "value": "On the move: in the aisles or at customer sites" },
{ "language": "NL", "value": "Onderweg: tussen de stellingen of bij klanten" }
]
},
{
"labels": [
{ "language": "EN", "value": "I already know which model I want" },
{ "language": "NL", "value": "Ik weet al welk model ik wil" }
]
}
]
},
"freeText": true,
"maxQuestions": 5,
"model": { "model": "claude-sonnet-5-5", "effort": "MEDIUM" }
}
SettingWhat it doesDefault
languageThe language you wrote the content in, in Propeller format such as ENRequired
languagesThe languages the flow answers inlanguage only
openerThe opening question and its options, written per languageRequired
freeTextWhether customers may type an answer instead of picking an optiontrue
maxQuestionsThe question budget: the most answers a customer gives before the advice6
model.modelThe Anthropic model id, for example claude-sonnet-5-5The platform default
model.effortHow hard the model thinks on every step: LOW, MEDIUM or HIGHMEDIUM

The opening question​

The opening question is shown instantly and without a model call, so make it the question that splits your catalog best and that every customer can answer, such as where or for what the product is used. Give it two to six options with distinct labels.

An option for customers who already know what they want, together with a rule in the instruction, gives experienced buyers a short way through.

Languages​

You write the instruction and the catalog once, in language. The flow writes its questions and advice in the language of each request, for every language in languages. Only the opening question and its options are written per language. Write them in every language you offer: a language without its own text shows the text in language.

Typed answers​

With freeText set to true, customers can type an answer to every question. Typed answers let customers explain what the options do not cover, but every step after a typed answer is a model call for that customer and takes several seconds. Set it to false for a flow with options only.

The question budget​

maxQuestions counts every answer, picked or typed, the answer to the opening question included. The flow advises as soon as the answers identify the fit, so most conversations end before the budget is spent. When it is spent, the next step is the advice. A budget of 4 to 6 suits most catalogs.

Model and effort​

Leave model.model out to use the platform default, or name an Anthropic model to fix the flow to it. Guided selling does not check the model id when you save the version. When you test a draft with a model Anthropic does not know, the step fails with GUIDED_SELLING_MODEL_UNAVAILABLE_ERROR and the reason LLM_MODEL_NOT_FOUND. After publishing, the same reason shows in warmError.

model.effort applies to every step, questions and advice alike, so that they share the model vendor's cache. A higher effort is slower and costs more. Try a different model or effort on a draft before you publish it.

Limits​

ContentLimit
Flow name1 to 255 characters
modelApiKey8 to 512 characters
instruction1 to 200,000 characters
Catalog1 to 2,000 products, each productId once
Product name1 to 300 characters
skuUp to 100 characters
descriptionUp to 2,000 characters
attributesUp to 50 per product. Name 1 to 100 characters, value up to 500.
language and each of languages2 to 8 letters
languagesUp to 20
Opening question options2 to 6, labels distinct within a language
maxQuestions1 to 20
model.modelUp to 100 characters

Validation​

Guided selling validates the content when you create a flow or a version and reports every problem at once in extensions.problems. A field that breaks a rule, such as an empty catalog or a name that is too long, returns GUIDED_SELLING_INPUT_INVALID_ERROR. Content that does not fit together returns GUIDED_SELLING_CONTENT_INVALID_ERROR:

{
"errors": [
{
"message": "The flow content is invalid.",
"path": ["guidedSellingFlowCreate"],
"extensions": {
"code": "GUIDED_SELLING_CONTENT_INVALID_ERROR",
"problems": [
"settings.opener.questions: no question in the authored language EN",
"catalogue.products[4]: productId 18240 listed twice"
]
}
}
],
"data": null
}

Content checks include:

  • the opening question and every option have a text in language
  • option labels are distinct within a language
  • every product is listed once

See also​