INC AI and Virtual User Configuration Scenarios

Scenario Comparison

A Virtual User is configured on three tabs: General, Behavior and Outcomes & Tools. The Bot and Profile you pick on the General tab decide which fields appear on the other tabs. Pick the scenario that matches your use case, then check the topics below it.

Route the caller

Route the caller: Intent Analyzer

Finds out what the caller wants, asks for missing details, confirms them and ends with the matching outcome. Your Workflow then routes the call. This profile does not use external tools.

Tab What to configure
General Bot: any Nimbus AI Service or Custom AI Service Bot. Profile: Intent Analyzer.
Behavior General Instructions: your company, the purpose of the call and what is out of scope. Then Messages, Timeouts (defaults: 180 s session, 45 s inactivity) and Voice & Language.
Outcomes For this profile the tab is called Outcomes. Fill in Outcomes Instructions, then add one outcome per routing target with This outcome triggers an exit enabled.

💡 The profile already confirms details with the caller and steers off-topic callers back. Don't repeat these rules in your instructions.

 
 

Self-Service

Self-Service: AI Workflow

Collects and confirms the details it needs, uses a Web Request or MCP Server to look something up or carry out an action, tells the caller the result and ends with an outcome. If a request can't be done with the tools you added, it ends with the AI Fallback.

Tab What to configure
General Bot: any Nimbus AI Service or Custom AI Service Bot. Profile: AI Workflow.
Behavior Same fields as for routing. Timeout defaults: 360 s session, 45 s inactivity.
Outcomes & Tools
  1. Outcomes & Tools Instructions: when to call each tool, in which order, what depends on what, and which outcome ends the call.
  2. Outcomes: at least one with This outcome triggers an exit enabled.
  3. Tools: enable Web Requests and/or MCP Server, add at least one, and give each its own Instructions.

💡 The profile already repeats collected values for confirmation, checks the spelling of names and emails, and takes long numbers in parts.

 
 

Flexible Setup

Flexible Setup: Open Profile

Minimal preset prompting for more flexibility: you write the persona, style and rules yourself. Use it only when Intent Analyzer or AI Workflow can't do the job.

Tab What to configure
General Bot: Custom AI Service only. Profile: Open Profile.
Behavior As for AI Workflow, plus Persona: Verbosity and Tone. Describe who the assistant is in the General Instructions rather than in the deprecated Role field.
Outcomes & Tools As for AI Workflow.

Add the rules the other profiles bring, one sentence each, if you need them:

  • Confirm: "Before calling a tool, repeat the collected values and wait for a yes."
  • Collect clearly: "Ask for one value at a time. Take long numbers in groups and confirm each group."
  • One language: "Speak only in the current language, including short acknowledgments."
  • No goodbye: "Never say goodbye or announce a transfer. A closing message plays automatically."
 
 

Copilot Studio agent

Copilot Studio agent

Your agent and its logic already live in Copilot Studio. Nimbus only connects the call to it.

Tab What to configure
General Bot: a Copilot Direct Line 3.0 Bot. Instead of a Profile, pick a Bot Response Template, which maps the agent's answer to your Workflow. Under Modalities, a Speech Recognizer is required.
Behavior Only Messages. Instructions, voice and language come from Copilot Studio and the Speech Recognizer.
Outcomes & Tools Not used. Exits come from the Copilot topics through the Bot Response Template.

☝ Speech-to-text adds noticeable delay. Prefer this option when natural conversation isn't the main requirement.

 
 

FAQ

What goes where

💡 Keep in mind: Write it once, where it belongs. When the same rule sits in two fields, the two versions can drift apart.

 
Field Put here Keep out
General Instructions
(Behavior, up to 10,000 characters)
Who the company is, what the assistant is for, which services exist, what is out of scope. Tool names and order, greetings, goodbyes.
Initial / Final Message to Customer
(Behavior, up to 500 characters each)
The exact words spoken at the start and at the end. Instructions to the model. They are spoken as written.
Outcomes & Tools Instructions
(Outcomes & Tools, up to 5,000 characters)
When to call each tool, in which order, which depends on which, what to do when one fails, and which outcome ends the call. Company background, persona.
Instructions of an outcome, Web Request or MCP Server
(up to 1,024 characters each)
When to use this one item, in one or two sentences. The order between tools.

💡 Parameters can be used as placeholders in the instructions and messages. They are filled in when the session starts.

 
 

Messages, timeouts and silence

💡 Keep in mind: 

  • Messages are spoken word for word, in the language active at that moment. The model doesn't add to them and doesn't remember them as part of the conversation.
  • Don't script a greeting or goodbye in the instructions. The caller would hear it twice.
  • Keep the Final Message neutral, e.g. "Thank you, one moment please." It plays after the outcome is chosen, so it can't know what happens next in the Workflow.
 
Timeout Default Range When reached
Max Session Duration 180 s (Intent Analyzer)
360 s (other profiles)
30–1,800 s A fixed end message plays and the Workflow continues on the Idle Timeout exit.
Inactivity Timeout 45 s 5–3,600 s

🤫 When the caller goes quiet, the Virtual User speaks up after 10 seconds and again after a further 10 seconds, e.g. by asking whether the caller is still there. If there is still no reply, the Idle Timeout exit is taken once the Inactivity Timeout has elapsed; both attempts count toward it. The 10-second interval is fixed and cannot be configured. While a tool is still running, the wait doesn't count, so a slow tool never ends the call.

 
 
 

Language and voice

💡 Keep in mind: 

  • Start language: the Language field sets the language the Virtual User starts in.
  • Switching: it changes language only when the caller explicitly asks, e.g. "Can we continue in French?". It never switches because of an accent or a foreign word.
  • No own language rules: all profiles handle switching already. Additional rules compete with them. If you want callers to choose, add one line such as "After the greeting, ask whether the caller prefers English or French."
  • Voice: stays the same for the whole call. With Azure Voice Live Bots, the voice list depends on the selected Language.
 
 
 

Outcomes and Tools

Your AI gets more effective when you expand the capabilities with external tools. When the bot's job involves calling an external system, the way you describe each tool decides whether the model uses it well, ignores it, or misuses it.

✅ Three-sentence template for the tool instructions:

  1. What it does — "Looks up an order by order number in the e-commerce backend."
  2. When to call it — "Call this whenever the caller asks about the status, delivery date, or contents of a specific order."
  3. What you'll get back — "Returns the order status, expected delivery date and line items, or an empty result if the order number is unknown."
 

💡 Keep in mind: 

  • Tools must exist first: only mention tools that are actually added. A rule about a missing tool confuses the model and may lead to failed workflow outcomes.
  • One tool, one job. A customer_lookup and a separate order_lookup are far easier for the model to reason about than one omnibus customer_or_order_lookup.
  • Exact names: the model sees names in lowercase with spaces replaced by _ and special characters removed ("Check Balance!" becomes check_balance). Use that form in your instructions.
  • Tool Instructions are what the model sees. Each Web Request and MCP Server added to a Virtual User has its own Instructions field. The model does not see the generic Description of the Web Request or MCP Server configuration item.
  • Read-only first. If a tool can both read and write, start read-only and add write capability only once the read path is validated.
  • Confirm before destructive actions. Encode "confirm with 'yes' before you make the change" rules in the Outcomes & Tools Instructions for any write-capable tool.
  • Parameters: attach up to 10, and only what the next Workflow step needs. Give each Parameter its Virtual User Instructions. A warning icon shows on outcomes where they are missing.
  • Outcome Name: a short verb phrase, e.g. route_to_billing, up to 64 characters. Names must be unique across outcomes and tools.
  • Failure handling lives in the activity, not the prompt. Tool errors take the Failed exit of the Add Virtual User activity — you don't need to write fail-safe branches into every instruction step. Reserve the prompt for graceful behavior (apologize, offer a transfer) once a tool returns an empty result.
    • Exit or not: enable This outcome triggers an exit for results that end the call. Leave it off for steps that only collect or return information.
    • AI Fallback: always added automatically. It is taken when nothing fits the request, the caller stays off topic, or data collection keeps failing.
 

☝ IMPORTANT — descriptions can leak. Anything you put into a Web Request name, its Instructions or an MCP Server name is shown to the language model — and the model can be coaxed into repeating it. Don't put secrets, internal URLs or confidential context there.

 
 
 

Chaining Virtual Users

💡 Keep in mind: 

  • When one Virtual User's exit leads to another later in the Workflow, the second one starts a brand-new conversation.
  • Good fit: clearly separate phases (identify the caller, then handle the request), or a non-AI step such as a queue in between.
  • Avoid: splitting one task just to keep instructions short. The pause and the lost context usually cost more. One Virtual User with more outcomes often does the job.
  • If you chain: save everything later steps need as Parameters, keep later greetings short, and test the whole chain end to end. Each Virtual User needs its own license.
 
Carries over Is lost or restarts
  • Parameters saved on the exit.
  • The exit that was taken.
  • Everything only spoken in the conversation.
  • A language the caller switched to.
  • Timeouts, greeting and voice.
 
 

Troubleshooting the Failed exit

💡 Keep in mind: When the Add Virtual User Conversation Handling Activity takes the Failed exit, check:

  • Data Privacy Tenant Settings : the Virtual User is allowed for the tenant and its data privacy consent is given.
  • License Management: the Virtual User has an active license assigned on its General tab.
  • Profile and Bot: the Bot supports the profile, e.g. Open Profile needs a Custom AI Service Bot.
  • Exits: every exit outcome of the Virtual User is mapped on the activity. 
    💡 Calls that end early or lose their connection to the AI service also take the Failed exit.
 
 
 

Table of Contents