---
id: object/page/4400
type: object
title: Page 4400 "SOA Setup"
summary: Page 4400 "SOA Setup" in SalesOrderAgent (Microsoft.Agent.SalesOrderAgent). Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - page
  - salesorderagent
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 469376be10c853130d3b43e5d7503c48c755a5e95461d2b2454d4c79593b064a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al
    title: src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-agent
    title: Expense Agent overview for Business Central
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/payables-agent
    title: Payables Agent Overview in Business Central
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-item-availability
    title: Item availability in Sales Order Agent (preview)
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-process
    title: Process sales quotes and orders with Sales Order Agent
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-setup
    title: Set up Sales Order Agent
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/sales-order-agent
    title: Sales Order Agent overview
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/supervise-agent-tasks
    title: Supervise Agent Activities in Business Central
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-agent
    - https://learn.microsoft.com/dynamics365/business-central/payables-agent
    - https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-item-availability
    - https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-process
    - https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-setup
    - https://learn.microsoft.com/dynamics365/business-central/sales-order-agent
    - https://learn.microsoft.com/dynamics365/business-central/supervise-agent-tasks
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/expense-management-preview/understand-expense-agent
    - topic/business-central/copilot-and-agent-capabilities/expense-agent-preview/expense-agent-overview
    - topic/business-central/copilot-and-agent-capabilities/payables-agent
    - topic/business-central/copilot-and-agent-capabilities/sales-order-agent
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11383
    - change/bcapps/10631
    - change/bcapps/10519
    - change/bcapps/10461
    - change/bcapps/10458
    - change/bcapps/10232
    - change/bcapps/10308
    - change/bcapps/9708
object_type: page
object_id: 4400
name: SOA Setup
caption: Configure Sales Order Agent
namespace: Microsoft.Agent.SalesOrderAgent
app: SalesOrderAgent
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/expense-management/expense-agent.md
  - docs/learn-smb-docs/business-central/payables-agent.md
  - docs/learn-smb-docs/business-central/sales-order-agent-item-availability.md
  - docs/learn-smb-docs/business-central/sales-order-agent-process.md
  - docs/learn-smb-docs/business-central/sales-order-agent-setup.md
  - docs/learn-smb-docs/business-central/sales-order-agent.md
  - docs/learn-smb-docs/business-central/supervise-agent-tasks.md
counts:
  fields: 0
  procedures: 17
  events: 0
  subscribers: 0
  controls: 24
  actions: 2
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 11
  called_by: 0
  implements: 0
---

# Page 4400 "SOA Setup"

> Page 4400 "SOA Setup" in SalesOrderAgent (Microsoft.Agent.SalesOrderAgent). Introduced in BC29, still in BC30.

SalesOrderAgent · Microsoft.Agent.SalesOrderAgent · captioned "Configure Sales Order Agent" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/SalesOrderAgent/app/src/Setup/SOASetup.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Configure Sales Order Agent |
| Extensible | false |
| SourceTable | SOA Setup |
| PageType | ConfigurationDialog |
| ApplicationArea | All |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Content | AgentSetupPart | part [Page 4310 "Agent Setup Part"](../page/4310.md) | — |
| Identity and monitoring | Display name | [Agent Name](../table/4325.md#fields) | Specifies the unique display name for this Sales Order Agent instance. |
|  | Initials | [Agent Initials](../table/4325.md#fields) | Specifies the initials for this Sales Order Agent instance. Maximum 4 characters. |
| Monitor and process emails | MailEnabled | [Email Monitoring](../table/4325.md#fields) | Specifies if the agent should monitor incoming emails and process them. |
|  | Account | `MailboxName` | Specifies the email account that the agent monitors. You need permission to the mailbox to activate the agent. |
|  | Folder | `MailboxFolder` | Specifies the email folder that the agent monitors. You need permission to the mailbox to activate the agent. |
| Try it out | SOACreateTask | `SOACreateTaskLbl` | Create a new task for the Sales Order Agent by entering the sender, message text, and any attachments. |
| Important | LearnMoreBilling | `LearnMoreTxt` | — |
|  | LearnMoreBillingSecondSetup | `LearnMoreTxt` | — |
| Messages from already registered senders | Review | [Known Sender In. Msg. Review](../table/4325.md#fields) | Specifies the type of review required for incoming messages from already registered senders. |
| Messages from unregistered senders | Review | [Unknown Sender In. Msg. Review](../table/4325.md#fields) | Specifies the type of review required for incoming messages from unregistered senders. |
| Select only available items | SearchOnlyAvailableItems | [Search Only Available Items](../table/4325.md#fields) | Specifies if the agent takes item availability into account when searching for matches to the requested items. |
|  | Include capable to promise | [Incl. Capable to Promise](../table/4325.md#fields) | Specifies whether the agent includes in the search results items that are currently unavailable but can be ordered for a later shipment date. |
| QuoteSetup | Review quotes when created and updated | [Quote Review](../table/4325.md#fields) | Specifies if the agent requests review when a quote is created and updated. |
|  | Send quotes for confirmation | [Send Sales Quote](../table/4325.md#fields) | Specifies whether the agent sends the sales quote to the customer as a PDF attachment before proceeding. When this is off and Make orders from quotes is on, the agent skips the quote stage and sends only the sales order to the customer. |
| Make orders from quotes | Make orders from quotes | [Create Order from Quote](../table/4325.md#fields) | Specifies whether the agent automatically converts sales quotes into sales orders. When Send quotes for confirmation is on, conversion happens after the customer confirms the quote by email. When Send quotes for confirmation is off, the agent converts the quote immediately without sending it to the ... |
|  | Review orders when created and updated | [Order Review](../table/4325.md#fields) | Specifies if the agent requests review when an order is created and updated. |
| Incoming mail | Start Date | [Earliest Sync At](../table/4325.md#fields) | Specifies the date from which the agent starts reading emails in the selected mailbox. |
| Analyze attachments | Analyze attachments | [Analyze Attachments](../table/4325.md#fields) | Includes attachments when analyzing intent. Supported formats: PDF, PNG, JPG. |
| Mark email as read | Mark email as read | [Mark Email As Read](../table/4325.md#fields) | Specifies whether the agent marks emails as read after processing them. |
| AnalyzeNewMessagesGrp | Last sync | `LastSync` | Specifies the date and time of the last sync with the mailbox. |
| Processing limits | Daily email limit | `DailyEmailLimit` | Specifies the maximum number of emails an agent can process per day. |
| Include a custom signature in the replies | ConfigureEmailSignature | [Configure Email Template](../table/4325.md#fields) | Specifies if the agent includes a custom mail signature below the message body when preparing outgoing mails. |
|  | EmailTemplate | `EmailSignatureModifyLbl` | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| SystemActions | Update | Apply the changes to the agent setup. |  |
|  | Cancel | Discards the changes and closes the setup page. |  |

## Procedures

17 local procedures, no public ones.

## Triggers

OnOpenPage, OnAfterGetCurrRecord, OnQueryClosePage

## Relations

- source table [Table 4325 "SOA Setup"](../table/4325.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 4400 "SOA Setup"](../codeunit/4400.md) (14 calls: `ApplySetup → CheckMailboxUnique`, `ApplySetup → GetInboxEmailCount`, `ApplySetup → UpdateAgent`, …)
- [Codeunit 4304 "SOA Session Events"](../codeunit/4304.md) (1 call: `ApplySetup → BindUserEvents`)
- [Codeunit 4317 "Agent System Permissions"](../codeunit/4317.md) (1 call: `OnOpenPage → CurrentUserCanManageAgent`)
- [Codeunit 4324 "Agent Setup"](../codeunit/4324.md) (1 call: `OnAfterGetCurrRecord → GetChangesMade`)
- [Codeunit 4413 "SOA Shipment Date Mgt."](../codeunit/4413.md) (1 call: `VerifyOrderPromisingSetupConfigured → OrderPromisingSetupConfigured`)
- [Codeunit 7771 "Azure OpenAI"](../codeunit/7771.md) (1 call: `OnOpenPage → IsEnabled`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (1 call: `OnOpenPage → LogUptake`)
- [Codeunit 8894 "Email Account"](../codeunit/8894.md) (1 call: `CheckMailboxExists → GetAllAccounts`)
- [Codeunit 8901 "Email"](../codeunit/8901.md) (1 call: `SetDefaultInboxFolder → GetMailFolders`)
- [Page 8886 "Email Account Wizard"](../page/8886.md) (1 call: `OnAssistEditMailbox → (object)`)
- [Page 99000958 "Order Promising Setup"](../page/99000958.md) (1 call: `VerifyOrderPromisingSetupConfigured → (object)`)

## Recent changes

- 2026-09-15 [#11383 [SOA] Fix "The Order Promising Setup does not exist." crash when setting quote quantity](../../changes/bcapps/11383.md) (main, BC30, fix)
- 2026-08-26 [#10631 Integration/main to releases 29.x 31a860b5](../../changes/bcapps/10631.md) (releases/29.x, BC29, feature)
- 2026-08-22 [#10519 SOA - Try it out : agent activation after closing the page](../../changes/bcapps/10519.md) (main, BC30, fix)
- 2026-08-21 [#10461 [SOA] Uptake Agent Task Message Failed status for outbound replies](../../changes/bcapps/10461.md) (main, BC30, feature)
- 2026-08-21 [#10458 SOA Setup page tooltips improvement](../../changes/bcapps/10458.md) (main, BC30, fix)
- 2026-08-21 [#10232 Block unauthorized Sales Order Agent setup access](../../changes/bcapps/10232.md) (main, BC30, fix)
- 2026-08-19 [#10308 Uptake agent archiving in Sales Order Agent (AB#644549)](../../changes/bcapps/10308.md) (main, BC30, feature)
- 2026-07-27 [#9708 Enable manual task creation for Sales Order Agent](../../changes/bcapps/9708.md) (main, BC30, feature)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

## Documented on Microsoft Learn

- [Expense Agent overview for Business Central](https://learn.microsoft.com/dynamics365/business-central/expense-management/expense-agent)
- [Payables Agent Overview in Business Central](https://learn.microsoft.com/dynamics365/business-central/payables-agent)
- [Item availability in Sales Order Agent (preview)](https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-item-availability)
- [Process sales quotes and orders with Sales Order Agent](https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-process)
- [Set up Sales Order Agent](https://learn.microsoft.com/dynamics365/business-central/sales-order-agent-setup)
- [Sales Order Agent overview](https://learn.microsoft.com/dynamics365/business-central/sales-order-agent)
- [Supervise Agent Activities in Business Central](https://learn.microsoft.com/dynamics365/business-central/supervise-agent-tasks)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "SOA Setup")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
