Add a classify node to a workflow (preview)

Note

This article reflects the new experiences for creating agents and workflows in Microsoft Copilot Studio. The new agent experience is currently available as a production-ready preview. Learn about the two agent experiences in Classic vs. new agent experience. The new workflows experience is in public preview. Learn about the two workflows experiences in Workflows overview.

  • Public preview features aren't meant for production use and might have restricted functionality.
  • Production-ready and public previews are subject to supplemental terms of use.
  • Some capabilities available in the classic experience aren't yet available in the new experience.
  • Agents and workflows created in the new experience can't be converted to the classic experience.

The classify node takes a piece of text and sorts it into one of the categories you define. You describe each category in plain language, and the node uses AI to decide which category the input best matches. Each category becomes its own branch, so the workflow can take a different action depending on the result.

Use the classify node whenever a step needs to route work based on the meaning of free-form text—an email body, a form submission, a support message—rather than on a fixed field or keyword match. A common use is email triage: read each incoming message and send it down a different path depending on what it's about.

By using the classify node, you can:

  • Sort a text input into one of several categories you describe in natural language.
  • Branch the workflow so each category runs a different set of steps.
  • Catch anything that doesn't match with an automatic Default category.
  • Improve accuracy by providing example inputs for each category.

Add a classify node

  1. In Copilot Studio, go to Flows and open an existing workflow, or create a new one.

    • New workflow: You land on the designer to configure a trigger.
    • Existing workflow: Open the workflow and go to the Build tab.
  2. Select the Classify icon on the Add panel.

  3. The configuration panel opens for the classify node.

The node on the canvas shows one connection point per category, plus an Other (Default) branch. Wire each branch to the steps that should run for that category.

Provide the input to classify

In the Input to classify field, enter the text you want the node to categorize. Use the dynamic content picker to insert a string variable from an earlier step so the node classifies real run-time data.

For example, in a workflow that triggers when a new email arrives, set the input to the Body variable from the trigger so each run classifies the actual email content.

The input is meant for free-form text. If you have several values you want considered together (for example, an email subject and body), use the dynamic content picker to combine them into the field.

Choose the model

Use the model dropdown in the Input to classify field to pick the model to power the classification. Keep in mind that there is a power vs speed tradeoff for models:

  • Select a more capable model when categories are nuanced or easy to confuse, or when the input is long and needs careful interpretation. In this case, the model needs more time to process.
  • Select a faster model when the categories are clearly distinct and the workflow runs at high volume.

Define your categories

In the Categories section, add one entry for each outcome you want to route to. For each category:

  1. Give the category a short, descriptive name. The name becomes the label on the branch leaving the node, so make it something you recognize on the canvas (for example, Product issue or Account update).

  2. In the Describe what belongs in this category box, explain in plain language what kind of input belongs here. Clear descriptions are the single biggest factor for accurate classification.

Select Add category to create more. Aim for categories that are clearly distinct from one another and that together cover the inputs you expect.

The Default category

A Default category is created automatically for inputs that don't clearly match any category you defined. It appears as the Other branch on the node. Wire this category to a sensible fallback so that nothing falls through silently. For example, route the item for manual review, log it, or notify someone.

Add examples to improve accuracy (optional)

Under Examples, you can provide sample inputs and the category each one belongs to. Examples teach the node how to handle borderline cases and the kind of language your real inputs use.

To add an example:

  1. Select Add example.

  2. In Select category, choose the category the example belongs to.

  3. In the text box, paste or type a representative input for that category.

Add examples for the categories that get confused most often, and especially for edge cases where the right answer isn't obvious from the description alone. A few well-chosen examples per ambiguous category usually do more than a long list.

Branch the workflow on the result

Each category, including Other, is a separate output branch on the node. After the node classifies an input, the workflow continues down the branch for the matching category. Add the steps you want for each branch:

  • Send the item to a different agent, mailbox, or queue depending on its category.
  • Take a terminal action on one branch (for example, delete or archive) while routing others for follow-up.
  • Set a column or status value, then continue to shared downstream steps.

Only the matching branch runs for a given input, so each path can be tailored to exactly what that category needs.

Automation scenarios

The classify node works best as a routing step: free-form text comes in, the node decides what it's about, and each branch handles that case.

Email triage

A workflow triggers on When a new email arrives. The classify node takes the email Body as its input and sorts it into Product issue, How-to question, Account update, Spam, or Other. Each branch routes the message to the right place:

  • Product issue: an Issue Triager Agent that files and prioritizes a ticket.
  • How-to question: a Docs Responder Agent that drafts an answer from the knowledge base.
  • Account update: an Account Updater Agent that applies the change.
  • Spam: a Delete email action that removes the message.
  • Other: a fallback that routes the email for manual review.

One inbox, one workflow, and every message ends up where it should, without a person reading and sorting each one.

Route incoming support requests

A workflow triggers when a request is submitted through a form or shared mailbox. The classify node reads the request text and sorts it into Billing, Technical, or Sales. Each branch assigns the request to the matching team's queue and notifies that team, so requests reach the right people without a triage step in the middle.

Prioritize feedback

A workflow triggers when a customer submits feedback. The classify node sorts the comment into Bug report, Feature request, or Praise. Bug reports open a work item, feature requests are added to a backlog list, and praise is forwarded to the account team. This branching turns a single feedback channel into three tailored follow-ups.

Frequently asked questions

When should I use the classify node vs an agent node?

Use the classify node when the only job is to sort text into one of a known set of categories and branch on the result. The classify node is purpose-built for the job, simpler to set up, and easy to read on the canvas.

Use an agent node when the step needs to do more than categorize: reason over multiple inputs, call tools, pull from knowledge, or return structured fields. An agent can classify and act in a single step, at the cost of more configuration.

What happens if an input doesn't match any category?

The input goes to the automatic Default category, shown as the Other branch. Always wire that branch to a fallback so you handle unmatched inputs.

How do I make classification more accurate?

Write clear, distinct category descriptions that spell out what belongs and what doesn't. Add examples for the categories that get confused. Choose a more capable model when the categories are subtle. Distinct categories with sharp descriptions matter more than the number of categories.