Link Builder

The link_build tool creates a link to a page in Pricefx, for example the detail page of a Quote, a filtered list of Products, or a Dashboard with its inputs filled in. Open the link to go straight to that page.

Tool Name – link_build

Title – Link Builder

Type – Private

Access Profile – Operator

Permissions

The link_build tool does not read or change any data. The tool only creates a link and does not check whether you can open the page. When you open the link, Pricefx applies your permissions as usual. If you do not have access to the page, Pricefx shows an error instead of the page.

The link_build runs as a Groovy tool on your Pricefx partition, not centrally on the Pricefx MCP Server. To make it available to your MCP clients, the tool must be deployed to your partition:

  • The Groovy logic that implements the tool must be deployed to the partition.

  • The tool must be declared in an Advanced Configuration Option named MCP_tool_link_build. For more information, see Partition Tools Declaration.

If the tool is not deployed, it does not appear in the tool list of your MCP client. The tool is planned to move to the Pricefx MCP Server in an upcoming release, after which no deployment will be needed.

Parameters

Parameter

Required

Description

pageType

Yes

Type of page, as <page>_list or <page>_detail, for example quote_detail or product_list. Without a suffix, the tool creates a list link. See Page Types.

entityId

Yes, for detail pages, extension pages, and quote_workflow.

ID of the object to open, usually its typed ID, for example 1493.Q. For Datamart and Data Source detail pages, the typed ID is required, for example 12.DM. For extension pages, the name of the extension. For condition_record, the ID of the Condition Record Set (optional).

filters

No

Filters for a list page, as a list of objects. See Filters.

Default: no filter.

dashboardName

Yes, for dashboard.

Unique name of the Dashboard.

dashboardInputs

No

Values for the Dashboard inputs, as name–value pairs, for example {"Customer": "C-1001"}. Use the exact input names. Used only with dashboard.

Page Types: Master Data and Extensions

Page

List

Detail

customer (Customers)

Yes

Yes

product (Products)

Yes

Yes

seller (Sellers)

Yes

Yes

bom (Bill of Materials)

Yes

Yes

competition (Competition Data)

Yes

Yes

product_reference (Product References)

Yes

No

dcr (Data Change Request)

Yes

Yes

company_parameter (Company Parameters)

Yes

Yes

customer_extension, product_extension, seller_extension

Yes, needs entityId.

No

condition_record (Condition Records)

Yes

No

Page Types: Pricing, Rebates, Analytics, and Other

Page

List

Detail

quote (Quotes)

Yes

Yes

quote_workflow (approval workflow of a Quote)

No

Yes, use quote_workflow without a suffix.

pricelist (Price Lists)

Yes

Yes

manual_pricelist (Manual Price Lists)

Yes

Yes

lpg (Live Price Grids)

Yes

Yes

simulation (Simulations)

Yes

Yes

rebate_agreement (Rebate Agreements)

Yes

Yes

rebate_record (Rebate Records)

Yes

Yes

payout_record (Payout Records)

Yes

No

promotion (Promotions)

Yes

Yes

agent, action_plan, action (Agents, Action Plans, Action Items)

Yes

Yes

model_object (Model Objects)

Yes

Yes

datamart (Datamarts), datasource (Data Sources)

Yes

Yes

calculated_field_set (Calculated Field Sets)

Yes

No

dashboard (Dashboards)

Use dashboard without a suffix.

-

Filters

You can write each filter in one of two forms:

  • Simple: {"fieldName": "value"}. The field must equal the value.

  • Full: {"field": "fieldName", "operator": "operator", "value": "value"}.

Operator

Meaning

equals

Equal. For text, the comparison is not case-sensitive.

notEqual

Not equal.

  • lessThan

  • lessOrEqual

  • greaterThan

  • greaterOrEqual

Comparison. For a date range, use greaterOrEqual for the start and lessThan for the end.

contains

The field contains the value.

  • inSet

  • notInSet

The field equals, or does not equal, any value in a list.

  • Several filters must all match (AND).

  • Use the technical field name, not the label.

  • The value null finds empty fields.

  • For user fields such as createdByName or lastUpdateByName, use the user's login name.

Output

Field

Description

url

Link to the page in Pricefx. The link includes your Pricefx instance and partition.

description

Short description of the link, for example Quote detail for 1493.Q or Product list filtered by 2 field(s).

Behavior and Limitations

  • The tool creates the link only. It does not check whether the object, field, or Dashboard exists. A link to an object that does not exist opens an empty or error page in Pricefx.

  • The tool does not check field names in filters or input names in dashboardInputs. A wrong name gives a link without the expected filter or input.

  • Extension pages always open the list of one extension. Extensions have no detail page.

  • filters work only on list pages. On detail pages, the tool adds them to the link, but the page ignores them.

  • dashboardInputs work only with dashboard. For other page types, the tool ignores them.

  • The link opens Pricefx in the partition that you are connected to.

Errors

Situation

Error Message

pageType is not given

Page type is required

pageType is not supported

Unknown page type 'X', supported types are: …

A detail page is requested for a page that has only a list

X does not have a detail page, only list view is available

entityId is missing for a detail page

Entity ID is required for X page type

entityId is missing for quote_workflow

Entity ID is required for quote workflow page type

entityId for a Datamart or Data Source detail page is not a typed ID

For datamart detail pages, entityId must be a typed ID in format 'number.TYPECODE'

entityId (extension name) is missing for an extension page

Entity ID (extension name) is required for X

dashboardName is missing for dashboard

Dashboard name is required for dashboard page type

A full-form filter has no field or no operator

Incorrect filter format, 'field', 'operator' and 'value' should be specified