Decide with AI asks an AI model one or more multiple-choice questions about a text and stores a structured answer to each. You define the possible answers up front: yes or no, one of your options, or a level on your scale. Use it to classify, route, or rate: is this request urgent, which team should handle it, how frustrated is the customer. Later steps and If / else conditions can use the answers directly.
Decide with AI or Generate with AI? When the answer comes from a fixed set, such as yes or no, one label from a list, or a level on a scale, use Decide with AI. It usually answers in under a second, much faster than Generate with AI. Every answer also has the structure you defined: the decision is always one of your options, so later steps never receive a misspelled label, extra text, or invalid JSON. Use Generate with AI when you need text written, summarized, or extracted, or when the possible answers are not known in advance.
Input
The text the questions are about, such as the customer's message. Insert parameters and variables with /. To judge structured data, such as a customer record, insert it as text.
The model only sees this input and your questions. It does not see the conversation, your agent's instructions, or the rest of the tool, so put everything it needs in the input.
Questions
Add a question for each thing you want to know. Ask all questions about the same input in one step: they are answered together, in one call. Each question has:
-
Name: identifies the answer in the result, such as
team. Use lowercase letters, digits, and underscores, starting with a letter. Each question in the step needs a different name. -
Question: what you want to know, in plain words.
-
Answer type: what kind of answer you want back.
|
Answer type |
What you add |
Decision |
|---|---|---|
|
Yes/No |
Nothing else: just the question |
|
|
Choice |
2 to 255 options, each with a label and an optional description |
The label of the chosen option, exactly as written |
|
Score |
2 to 10 levels, from lowest to highest |
The nearest level, plus a |
Result
The step stores one object with an answer per question, under the question's name. Each answer has a decision and a confidence from 0 to 1: how likely the decision is to be correct, according to the model.
{
"team": {"decision": "billing", "confidence": 0.93},
"urgent": {"decision": true, "confidence": 0.88},
"frustration": {"decision": "Frustrated", "score": 1.3, "confidence": 0.71}
}
With the output variable result, later steps read an answer as result.team.decision. In an If / else branch, use conditions such as result.team.decision == 'billing' or result.urgent.decision == True and result.urgent.confidence >= 0.8.
Turn on Select part of the result to store only part of it, using a JMESPath expression such as team.decision.
Writing good questions
-
Ask one specific thing and name the subject. "Does the customer ask for money back?" works better than "Refund?".
-
Make options mutually exclusive, and add an option such as
otherwhen none may fit. Otherwise the model has to pick one that is wrong. -
Use short labels that read as values, such as
billing, and put the nuance in the description. Labels come back exactly as written, so use the same spelling in your conditions. -
Order score levels from lowest to highest, and make each level clearly different from the next.
-
A low confidence means the input or the question is ambiguous. Add a fallback path for it, such as asking the customer, instead of trusting the decision.
Examples
|
Goal |
Answer type |
Question |
Options or levels |
|---|---|---|---|
|
Route a request |
Choice |
Which team should handle this request? |
|
|
Flag urgency |
Yes/No |
Is the customer blocked from using the service right now? |
- |
|
Spot a cancellation |
Yes/No |
Does the customer want to cancel their subscription? |
- |
|
Measure frustration |
Score |
How frustrated is the customer? |
Calm, Frustrated, Angry |
Model and privacy
Decide with AI runs on Microsoft Decision-1, a model built for decisions and hosted in the EU. There is no model to pick. See AI Models in HALO.
Anonymize PII is on by default: personal details in the input, such as phone numbers, email addresses, and IBANs, are replaced before the input is sent to the model. Turning it off makes each answer about 0.2 to 0.4 seconds faster. Only do so when the input cannot contain personal data, for example when it is a label from an earlier step.
Decide with AI is available in conversational tools and automation workflows.