---
version: "Copilot Disclaimer"
language: "en"
---
# Disclaimer

The Pricefx Copilot is an AI-assisted reference tool powered by generative artificial intelligence through a Pricefx-hosted large language model. Users are interacting with an artificial intelligence system that generates responses based on patterns in data rather than human judgment or verified knowledge. It is intended to help users navigate the Pricefx application, explore supported data, and obtain general guidance within the product. It is not designed or intended to provide definitive, authoritative, or legally binding advice, nor to replace human judgment or decision-making.

Responses generated by Pricefx Copilot may be incorrect, incomplete, misleading, inconsistent, or outdated, and identical or similar prompts may produce different results. All outputs are probabilistic in nature and should be treated as informational suggestions only. Users must not rely on Pricefx Copilot as the sole or definitive source of truth and must independently verify all important information before relying on it. Human review, critical thinking, and independent verification are required for all outputs, particularly before making any business, financial, or legal decisions.

Authorized Users and the Customer they represent remain solely responsible for assessing the accuracy, usefulness, and suitability of any output generated by Pricefx Copilot, as well as for any decisions or actions taken on the basis of such output. To the maximum extent permitted by applicable law, the relevant AI Services are provided "as is", without any warranty that outputs will be error-free, fit for a particular purpose, or achieve an intended result.

Pricefx Copilot operates within defined functional and data limitations. In its current version, it works only with supported dashboard and portlet data, primarily within the Sales Insights and Customer Insights, cannot autonomously expand its data sources, and may time out when the requested data scope is too large. Certain input methods, file types, actions, and currency representations are also not supported or are only partially supported.

Users must use Pricefx Copilot only in accordance with the applicable [Terms of Use](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/copilot/terms-of-use.md), the Customer Agreement, and all applicable laws and regulations. Pricefx Copilot must not be used for unlawful purposes, deceptive or unfair practices, or in violation of applicable regulatory requirements, or automated decision-making that produces legal effects. Pricefx Copilot is not intended for and must not be used for fully automated decision-making that produces legal or similarly significant effects on individuals or entities.

For authoritative terms governing use of the service, refer to the [Pricefx Terms and Conditions](https://www.pricefx.com/terms-conditions) and related contractual documentation.

---
version: "Latest version"
language: "en"
---
# Getting Started

## Welcome to the Pricefx Knowledge Base

Our knowledge base helps you get the most out of Pricefx. You will find step-by-step how-tos and tutorials on everyday tasks like [logging in](https://knowledge.pricefx.com/getting-started/latest-version/accessing-pricefx.md), navigating the interface and understanding [role-based access](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/entitlement-concept.md), Pricefx [terminology](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology.md), tips for [localization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md), and admin tasks such as [CRM integration](https://knowledge.pricefx.com/pricefx-unity-documentation/crm-integration-options.md). Developer? You can dig into the technical details both in the knowledge base and the [API documentation](https://api.pricefx.com/).

Returning after an upgrade? See [Pricefx Release Notes -- All Products](https://knowledge.pricefx.com/release-info/release-notes.md).

## Where to Begin

### Business Users

1. [Access Pricefx](https://knowledge.pricefx.com/getting-started/latest-version/accessing-pricefx.md). Log in and get familiar with navigation and role-based access.

2. Start with insights. Turn on [dashboards](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/dashboards.md) to spot margin opportunities quickly.

3. Quote faster. Watch how to [set up a new quote in Pricefx](https://youtu.be/C2h-eoIeCso) (video), then [create your own](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/quoting/quotes/how-to-create-a-quote.md) and check deal performance, margins, and approvals in one place.

4. Level up terminology. Align on [vocabulary](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology.md) to speed up collaboration.

**You may also be interested in:**

* [Common Functionality](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality.md) - cross-capability basics

* [Frequently Asked Questions](https://knowledge.pricefx.com/getting-started/latest-version/frequently-asked-questions.md)

### Administrators

1. Check the technical requirements (browser, sizing, supported versions) in the latest [Release Notes](https://knowledge.pricefx.com/pricefx-unity-documentation/release-notes.md).

2. Prepare your data. Clean customer, product, and transaction data is the foundation for smooth onboarding and strong analytics; see Get Your Data Ready below.

3. Configure core assets (partitions, users, data flows) in [PlatformManager](https://knowledge.pricefx.com/platformmanager-documentation/get-started-how-to.md).

4. Set up integrations (ERP/CRM, automations, schedules) in [IntegrationManager](https://knowledge.pricefx.com/integrationmanager-documentation/introduction.md).

5. Stay current with [What Is New in Latest Release](https://knowledge.pricefx.com/getting-started/latest-version/what-is-new-in-latest-release.md).

### Developers

1. Explore the [API documentation](https://api.pricefx.com/) to extend, integrate, or automate.

2. Track changes and compatibility in the [Release Notes](https://knowledge.pricefx.com/pricefx-unity-documentation/release-notes.md).

3. Coordinate with administrators on partitioning, access, connectors, and environments via [PlatformManager](https://knowledge.pricefx.com/platformmanager-documentation/get-started-how-to.md) and [IntegrationManager](https://knowledge.pricefx.com/integrationmanager-documentation/introduction.md).

## Pricefx at a Glance

✅ *Faster, smarter, more profitable pricing, right from the start.*

Pricefx is a modular, cloud-native SaaS platform helping you manage and optimize pricing across the entire lifecycle: from analytics and strategy through execution. You can expect:

* **Speed and flexibility:** Pricefx adapts to your unique needs without slowing you down, allowing you to leave behind manual spreadsheets and move toward AI-driven, insight-rich decision-making. [**Check out available Pricefx capabilities and typical use cases**](https://knowledge.pricefx.com/getting-started/latest-version/typical-pricefx-use-cases.md).

* [**Pricefx Agents**](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/agents-accelerator.md)**:** Intelligent, autonomous assistants embedded within the Pricefx platform that proactively identify, analyze, and help you act on pricing opportunities, risks, and anomalies.

* [**Accelerators**](https://knowledge.pricefx.com/accelerators-documentation-2/latest/overview-of-accelerators.md)**:** Go live faster with pre-configured, out-of-the-box solution packages with best-practice templates, dashboards, workflows, and data models.

* **Bring your own science:** Plug in your own algorithms or use our productized science bricks for [Clustering](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/clustering-accelerator.md), [Negotiation Guidance](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/negotiation-guidance-accelerator.md), and [Product Similarity](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/product-similarity-accelerator.md) analysis. Perfect for tailoring the platform to your specific business cases.

## Functional Capabilities (Out-of-the-Box)

Pricefx brings together functional capabilities that cover every aspect of price management:

* [Analytics](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics.md)**:** Spot underperformance with clear visualizations and granular root-cause analysis.

* [Optimization](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/optimization.md)**:** Use machine learning to test and refine pricing, segmentation and margins.

* [Price Setting](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/price-setting.md)**:** Calculate prices based on cost, market, competition, or attribution factors.

* [Quoting](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/quoting.md)**:** Control price and margin in negotiations, as a standalone tool or integrated into your CRM.

* [Agreements \& Promotions](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/agreements-promotions.md)**:** Create and manage discounts, promotions, and pricing offers.

* [Rebates](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/rebates.md)**:** Run complex rebate programs transparently, all in one place.

* [Sales Compensation](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/sales-compensation.md)**:** Standardize commissions and incentives for sales teams or partners.

* [Channel Management](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/channel-management.md)**:** Handle ship-and-debit claims with complete oversight.

You will also find [Dashboards](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/dashboards.md) and [Company Processes](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/company-processes.md) in the main application menu for quick navigation and control.  
Learn the basics: [Common Functionality](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality.md) and [Pricefx Terminology](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology.md).

## Get Your Data Ready

Onboarding success starts with well-structured customer, product, and transaction data. When your data is clean and organized, Pricefx [Analytics](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics.md) and automation tools can deliver instant visibility through out-of-the-box [dashboards](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/dashboards.md), highlighting margin opportunities and surfacing pricing issues before they become problems.

If your subscription includes [Pricefx Agents](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/agents-accelerator.md), turning them on early is one of the quickest ways to see value from that data.

## Keep Learning

Browse [Pricefx Training \& Certification](https://knowledge.pricefx.com/pricefx-training.md) for role-based courses and certification paths, from business user basics to configuration and integration engineering. You can also join the [Pricefx User Group](https://www.pricefx.com/resources/pricefx-user-group) to connect with other experts, or explore the [Pricefx Learning Center](https://www.pricefx.com/learning-center) for more pricing inspiration.

## Need Help?

Ask the built-in [Pricefx Copilot](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/copilot/general-functionality/pricefx-knowledge-base-in-pricefx-copilot.md) directly in the application, check the [Frequently Asked Questions](https://knowledge.pricefx.com/getting-started/latest-version/frequently-asked-questions.md), or visit [Support and Guidance](https://knowledge.pricefx.com/pricefx-unity-documentation/support-and-guidance.md) if you still need a hand.

## See Also

* [Accessing Pricefx](https://knowledge.pricefx.com/getting-started/latest-version/accessing-pricefx.md) - log in and first steps

* [Common Functionality](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality.md) - shared user interface and behavior across capabilities in Pricefx

* [Release Notes](https://knowledge.pricefx.com/pricefx-unity-documentation/release-notes.md) - detailed release information and technical requirements

* [Get Started with PlatformManager](https://knowledge.pricefx.com/platformmanager-documentation/get-started-how-to.md) - administer, integrate, and manage assets and data workflows

* [Get Started with IntegrationManager](https://knowledge.pricefx.com/integrationmanager-documentation/introduction.md) - synchronize, automate, and manage external integrations

* [Frequently Asked Questions](https://knowledge.pricefx.com/getting-started/latest-version/frequently-asked-questions.md) - common issues and answers

* [Pricefx Terminology](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology.md) and [Pricing Terms](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology/pricing-terms.md) - shared vocabulary for faster onboarding

---
version: "Latest version"
language: "en"
---
# Accessing Pricefx

Before you can start working in Pricefx, you must log in.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) It is possible to have the login screen displayed in a different language -- simply select your preferred language at the bottom of the page. See which [++languages are supported++](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/3271885048/Localization).

The selected language will be added as a parameter to the URL and the UI will be displayed in this language after login.

## How to Log in to Pricefx

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) You can log in to several partitions on different tabs of the same browser window.

⚠️ The partition is information unique to your organization and potentially your business unit or region. If you are struggling to access the system using a partition that you have been provided, chances are that your organisation has multiple partitions and you should enquire with your system administrators whether the partition you are trying to access is correct and that your profile has been set up correctly.

### Access the Login Page

1. Open your web browser.

2. Enter the Pricefx Unity URL provided by your administrator into the address bar.

   * *Example: https://\<your-company\>.pricefx.com/unity*

3. Press **Enter** to open the login page.

To successfully log in to the application, you need to enter:

1. The name of the partition that you are logging into. Provided to you by the admin.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) When the **partition** is provided in the URL parameter (`?partition=...`) or a last successfully used partition exists in browser local storage, the field is prefilled in read‑only mode; click the pencil to edit or switch, and note that only partitions you previously logged into appear in the history. If you switch the field to editable, the history dropdown hides until you refresh the page; the **2FA** flow and configuration are unchanged.

2. Your user name as provided by the administrator.

3. Your password. The initial password is provided by the admin and it is strongly recommended that you change it after the first login (go to **User Profile** \> **Change Password**).

   ![image-20251010-122723.png](https://knowledge.pricefx.com/__attachments/a_1dbe49b97810d6ae6710d7fa003f0948e706a76745b7bf3e08b75978fd9b2016/image-20251010-122723.png?cb=520f4c001409fb6967bae965ee3c8a83)

In case two-factor authentication is enabled, you are required to enter also a valid token (e.g., a code sent to your mobile phone). Your admin will provide all necessary details.  
![:note:](https://knowledge.pricefx.com/__attachments/a_ee286851accd3f566038775d252d12d0c6c61f4762e32a7a8a7e272e84791647/atlassian-note?cb=8b18e78f950443e7558a7b2e796bfe1c)  
When your system administrator sets up your account with [2 Factor Authentication](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/6581813302/Accessing+Pricefx#2-Factor-Authentication) an email will be sent to your registered email address with a QR code and a shared secret key that needs to be stored in the authentication application.

The email should also provide details on which authentication app to use and how to access it.

### 2 Factor Authentication

Two-factor authentication adds an extra layer of security to the process of logging in to the application. If this has been set-up by your organization when you attempt to log in, either through Single-Sign-On or with your User Credentials you will be asked to enter a one-time pin (OTP).

The OTP is provided by an authentication tools, such as Google Authenticator, Microsoft Authenticator, FreeOTP, etc. Download the relevant app. In the app, create a new account for Pricefx and scan the QR code or enter the secret key provided in the email. This will validate your credentials and setup your account. Once the account is set up, the app will generate a one-time pin each time you log into Pricefx.

![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) If you change devices or lose access to the authentication app, you can re-use the secret key on a new device or if it has expired, request a new QR code from your system administrators.

⚠️ You can also use single sign-on (SSO) as long as you have it configured. There is no available button out of the box.

### Security Features

To ensure maximum security and prevent unauthorized access to the application, the following rules apply:

* After five *unsuccessful login attempts*, you will be blocked for 30 minutes. The error message will never specify what exactly is wrong (invalid username, password or partition name) in order to make life for the attacker harder. You may contact the Support to have the user unbanned if waiting for 30 minutes is not acceptable.

* After a specified period of *inactivity* (30 minutes by default), you are automatically logged out.

* You are also logged out immediately after *closing the browser* (not the browser tab).

## Home Page

Once you are logged in, the home page will display. It will contain all available portlets by default. However, you can set up which portlets to be displayed according to your needs. To make sure you get the same display each time, you will have to[save your preference.](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/3754229795/View+Preferences)  
![image-20250722-114413.png](https://knowledge.pricefx.com/__attachments/a_626340918e529a7bf22fff5624b87e8a588b64609c8156cdf632383529890ece/image-20250722-114413.png?cb=062622b29a85d2a717f6465ddf5d593c)
Preferences Management menu located under the settings icon, represented by a gear (cogwheel). This menu allows you to customize your homepage preferences

### Understand the Homepage Layout

The Pricefx Unity homepage provides quick access to main features:

* **Dashboard:**Visual overview of key metrics and recent activity.

* **Navigation Bar:**Find applications, reports, and settings.

* **User Menu:**Access your profile, preferences, and sign-out options.

* **Notifications Area:**View system or workflow notifications.

### Navigate Key Homepage Areas

1. Use the Navigation Bar to move between capabilities such as Analytics, Pricing, or Configuration.

2. Click Dashboard to see actionable widgets and business summaries.

3. Open the User Menu to manage your profile or log out.

4. Check the Notifications Area to review alerts or pending actions.

![:note:](https://knowledge.pricefx.com/__attachments/a_ee286851accd3f566038775d252d12d0c6c61f4762e32a7a8a7e272e84791647/atlassian-note?cb=8b18e78f950443e7558a7b2e796bfe1c)  
The location and names of items may vary based on your permissions and administrator settings.

### Set Your Own Start Page

If you want to display some other page as your landing page, go to **Administration (wrench icon)** \> **Feature Flags** and change the value of the `rootPage` flag. For a list of possible options see the [++Access Routes++](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/2235236632/Feature+Flags) section.

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) When you change the landing page, you can still access the Home page from the [++User menu++](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/509607941/Application+Menus).

## See Also

* [Login Video Tutorial](https://youtu.be/pbCKvQaapqA) - step by step walkthrough the login process

* [Navigating the Home Page Video Tutorial](https://youtu.be/rzrMUZKIFaM) - description and explanations of the home page

* [Home Page](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/1728217543/Home+Page) - reference and explanations

* [Application Menus](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/509607941/Application+Menus) - reference and explanations

* [Customize Your Homepage](https://pricefx.atlassian.net/wiki/spaces/UDEV/pages/4788813870/Custom+Logo+and+Header+Customization) - step-by-step how to

---
version: "Latest version"
language: "en"
---
# Common Functionality

This section describes features that are common for all modules:  
* [Login Page](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/login-page.md)
* [Home Page](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/home-page.md)
* [Application Menus](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/application-menus.md)
* [Custom Logo and Header Customization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/custom-logo-and-header-customization.md)
* [Common Table Actions](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions.md)
* [Folders](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md)
* [Entitlement Concept](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/entitlement-concept.md)
* [Actions](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/actions.md)
* [Screen Resolution and Zoom](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/screen-resolution-and-zoom.md)
* [Language and Locale](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/language-and-locale.md)
* [Encoding](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/encoding.md)
* [App Notifications](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/app-notifications.md)
* [Business Keys - Recommendations](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/business-keys-recommendations.md)
* [Localization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md)
* [Translation Editor](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/translation-editor.md)
* [Pricefx Terminology](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/pricefx-terminology.md)

---
version: "Latest version"
language: "en"
---
# Actions

On the Actions page, you can directly access all the Actions created in the system.

* Actions can come from the Actions tab that can be added to Quotes, Agreements/Promotions, Rebate Agreements, Deal Plans and Custom Forms.

* Actions can be created manually from Analytics Data Table, charts or Dashboard portlets. Actions can also be created automatically by Actionable Insight Watchers.

* Actions can be grouped together by their nature/assignee under several steps/tabs. These action bundles are called Action Plans and are delivered by Actionable Insights Accelerator.

* There can also be standalone Actions, not related to any document. This type of Actions can be created manually on this page.

* The content of Actions is defined by [Action Types](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/actions-configuration/action-types.md) where you specify tabs, inputs and outputs.

* When an Action is assigned to you, you will receive a [notification](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/app-notifications.md).

## Actions List Page

![Actions01.png](https://knowledge.pricefx.com/__attachments/a_068fda84503edea237902edc6b0283cc03ca4b70130e95f48efd338e224523f1/Actions01.png?cb=423f5ef46666828d67f8fb9be02cd1d6)

On the Action list page, there are two tabs:

* **My Actions** -- All Actions assigned to you that are not done yet (with the status 'Open').

* **All Actions** -- All Actions assigned to you, including the completed ones. You will also see here all the Actions that you have created.

  Users with Manage Actions or Administer Actions user role can see all the Actions in the system. Users with module administration role can see actions related to that module (e.g., user with the Administer Quoting role can see all the Actions created in Quotes).

Open Actions whose due date has already passed, are marked by an exclamation mark icon and the date itself is displayed in red color.

The **Add Action** button on the list screen allows you to create a simple Action (but still based on an Action Type) from the list page, without a link to a parent document.

There is no approval workflow for Actions.

### Fields

* **Due Date** -- The due date will be highlighted in red at midnight on the expiry day (i.e., at the beginning of that day).

* **Parent** -- The ID of the document to which this Action belongs (e.g., Quote, Rebate Agreement or the Module Category for objects that belong to one).

* **Parent Label** -- The label of the document to which this Action belongs. This field displays the label that the document had at the time when the Action was created; if the label changes afterwards it will not get automatically updated here.

* **Parent Tab** -- Action can be tied not just to a document but also to its specific tab where it is displayed. This allows you to create groups of Actions within one document.

* **Originator** -- The ID of the object where this Action has been created (automatically by an Actionable Insight Watcher, manually in a Dashboard or Chart).

* **Originator Label** -- The label of the object where this Action has been created. This field displays the label that the object had at the time when the Action was created; if the label changes afterwards it will not get automatically updated here.

* **Source Context** -- It is used to pass data that explain why this Action was created - the provided context includes the defined data scope, triggers, etc. so that this information can be shown in the Action item and the user knows right away the reason why an action is needed.

* **Target Context** -- It is used to pass data that explain what this Action requires the user to do. It can contain anything from specific links to different documents, their data preview or a specific list of products and their prices which the user should include in a new Quote.

See also [Action Item (AI)](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/action-item-reference/action-item-ai.md) in Developer Knowledge Base.

## Action Detail

In the list page, click the **Name** or **Summary** of an Action to view its details.  
![Actions02.png](https://knowledge.pricefx.com/__attachments/a_8e0e15ab60cd518dfb07ef35151d7ec87915fcba994140a2e6d9fb724636c1cb/Actions02.png?cb=37e995c49b9f760165b9740e7bf96b48)

* The Action summary at the top of the page is editable.

* **Description** tab -- The left-hand side panel contains summary info about the Action (assignee, due date, etc.) and links to the parent document (if known, the link leads to the tab where the action was created) and the originator if they exist.

* The main panel displays the Action description and the content defined by a calculation logic associated with the respective [Action Type](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/actions-configuration/action-types.md).

* Other tabs are defined by the Action Type on which this Action is based.

## Action Status

When an Action is created, its status is 'Open'. You can use the in-line icons to mark the Action as 'Done' or 'Rejected'. You have more options in the bottom toolbar when you select an Action. Use the **Reopen** button to return the Action from any status back to the 'Open' status.  
![Actions03.png](https://knowledge.pricefx.com/__attachments/a_b3dfd5f71091e0fed3933758a15453313f4e2a3841863835bce6a1a453a7620e/Actions03.png?cb=1348ed28e350fc8cf4870272558d9dc6)

Actions can have one of the following statuses:

* **Open** -- The initial status for newly created Actions.

* **Done** -- Indicating that the Action has been completed. These Actions cannot be edited or deleted.

* **Blocked** -- Indicating that there is some outstanding issue preventing the user from completing the Action.

* **Rejected** -- Indicates the resolution of the user not to do anything with this Action. These Actions cannot be edited.

* **Postponed** -- Indicates the decision of the user to work on this Action later.

---
version: "Latest version"
language: "en"
---
# App Notifications

The application generates notification messages (info, success, warning, error), which are displayed to the user.  
![AppNotifications01.png](https://knowledge.pricefx.com/__attachments/a_ad8ec490b592d4537844927991d9f5dee67fb68c003417209f6810f1dce4298a/AppNotifications01.png?cb=ad8a281253b182f8f40ae7e498efb14d)

All the notifications can always be reviewed in the Notifications Center or on the Notifications page. Notifications are deleted after 30 days, links to downloaded files expire after 3 days.

## Notification Center

The Notification Center is displayed after clicking the **Notifications** ![IconBell.png](https://knowledge.pricefx.com/__attachments/a_98dfa7bd36da26a06f2745ab221b7489687e81320d7cf9b1dad720e22fd34970/IconBell.png?cb=1c44c916bd86cb6401d38c77c655a5ae) icon. It provides a quick overview of the latest application notifications.  
![AppNotifications03.png](https://knowledge.pricefx.com/__attachments/a_2051dc56a094a5f3e08fe5b11e7b521c552cf203c0453a7b079fa220b36389fd/AppNotifications03.png?cb=86742d5e6e523d788afb42d3e3fbb2ad)

* **Filter** -- You can select which types of notifications you want to see.

* **Actions** -- Each notification contains a link that allows you to address the issue or takes you to the page where the issue occurs.

* **Mark all as read** -- Marks all displayed (filtered) massages as read. Messages are also marked as read after an action link is clicked. Unread messages are indicated by a blue dot.

* **View all** -- Opens the Notifications page listing all messages.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) When you click a validation notification, the full text of the notification is displayed in a pop-up window. You will also be redirected to the detail page of the document where the validation problem occurs.

## Notifications Page

The Notifications page displays all your notifications in detail. You can access it from the Notifications panel or via a User menu option.  
![AppNotifications02.png](https://knowledge.pricefx.com/__attachments/a_1a1ab0af76ac5328640817ea2fef85053db546cdbb00fd3525745512ce17bfbd/AppNotifications02.png?cb=d95ec38ca5621f599b32d3ab143eae54)

You can customize the table layout and filter the content and save the customization as a [view preference](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/view-preferences.md) like in any other table.  
![AppNotifications04.png](https://knowledge.pricefx.com/__attachments/a_317e944290707772402de675db3455a3d3cdf669d7dfc31328c0ed1c082714e5/AppNotifications04.png?cb=c3444800156b60d2e5e3068ad3a7b35a)

* **Status** -- The type of the notification (Info, Success, Warning, Error).

* **Topic** -- Indicates the origin of the notification. This column can have the following values:

  * **AI Assistant**-- Notifications from the Pricefx Copilot.

  * **Calculation**

  * **Download** -- File download from the application.

  * **Groovy** -- Notifications triggered by the code in the calculation logic.

  * **Message** -- Notifications from the Messages tab in documents.

  * **Validation** -- Notifications from the validation of calculation logics in documents (Quote, Rebate Agreement, etc.). Messages generated by methods like `throwException`, `redAlert`, etc.

  * **Action** -- Notification about an [action](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/actions.md) that has been created for the user.

  * **Submit for approval** -- Notification about a successful submit of a document for approval.

  * **System Notifications** -- Special type of notifications that allow admins to display system announcements. For more details, see [Announcements](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/app-notifications/announcements.md).

* **Title** -- Short summary of the notification event.

* **Message** -- Detailed notification text describing what happened.

* **Source** -- Click the link to open the page that the message refers to.

* **Created** -- Date and time when the notification was generated.

* **Read** -- Indicates whether the notification has been read or is still unread.

---
version: "Latest version"
language: "en"
---
# Announcements

Announcements are a special type of [notification](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/app-notifications.md) that allow admins to display system messages (e.g., maintenance, updates) directly within the application. The displaying of these messages can be set and triggered via user interface or REST API.  
![Announcements01.png](https://knowledge.pricefx.com/__attachments/a_dc06e7d13467d28cacc7422823d056f9d268e43c956085c11063bc35f95dca53/Announcements01.png?cb=8273d08c11eebd5ddcc84208b3b094b5)

## Target Audience

The feature is intended for

* Administrators configuring and managing in-app notifications

* Configuration Engineers (CEs) and Solution Architects (SAs) defining notification logic

* Integration Engineers (IEs) integrating notifications via REST API.

**To configure the announcement, see the** [Set Up Announcements](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/notifications/set-up-announcements.md)**article.**

---
version: "Latest version"
language: "en"
---
# Notifications on Concurrent Editing

Unity notifies users if there are multiple editors modifying the same document (e.g., Quote, Agreement/Promotion, Rebate Agreement) at the same time. The editors are indicated by user icons in the header.  
![ConcurrentEditing01.png](https://knowledge.pricefx.com/__attachments/a_34d2a4d9d2de16639a48a8bda079f2f971b121a719d3f8bd01ce1adb5139b366/ConcurrentEditing01.png?cb=de9162af9d6664fabc9d6fa6748ae710)

To learn more, you can click the icons to view who the other editors are. The status is by default checked every 30 seconds. By editing we understand making local changes to the vital properties of the document (such as adding line items, changing calculation results or recalculating).

When you try to save a document which was edited by someone else in the meantime, the **Save** button is disabled and a warning message is displayed.

In such a case, the recommended flow is:

1. Open the latest version from the server.

2. Add the changes from your local version.

3. Save it.

---
version: "Latest version"
language: "en"
---
# Application Menus

## User Menu

![AppMenu01.png](https://knowledge.pricefx.com/__attachments/a_9687ec5bb6bbce4d0a1989edcefbe5fcd14e8c154d4a1726897741eabb07214b/AppMenu01.png?cb=ffefcf29bc809b9a27a8a0918aafa984)

The User menu offers several options:

* **My Approvals** -- Displays the list of documents that require your approval. After clicking a document, the details are displayed, where you can approve or reject the document.

* **My Workflows** -- Shows all the active workflows in which you are involved and their status. Click the document's label to display the document. After selecting a workflow, you can see its workflow steps on the right-hand side. You can approve/deny or perform other actions (withdraw, add approvers or watchers or add an extra step) directly in this panel.

  By clicking the Export button you can download the list of active workflows to Excel with an additional column displaying the current approver.

  Note that the 'Possible Approvers' column in the Workflow table displays the first and the last name of the user as they are set in the [User Management](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin.md) section. If they are not set, the Login Name is displayed.

* **My Pending Creation Workflows** -- Displays a list of documents for which your input is expected. Within the document creation workflow, several users can cooperate on creating a Quote, Agreement/Promotion, Rebate Agreement or Compensation Plan. When you create a new document and edit it, you can initialize the workflow by clicking the 'Start CW' button. Forward the document to other users in the workflow using the Back and Next Step buttons. Note that there is no change tracking, so there is no way to see what other users changed. The workflow is configured by the administrator. See the [Document Creation Workflow](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/workflows/document-creation-workflow.md) section for details.

* **My Pending Reviews** -- Displays a list of pending [collaboration workflow](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/guides/workflows/collaboration-workflow.md) reviews. A row represents a document whose line items require your review (there can be many line items for review in each document).

* **Actions** -- Displays a list of all actions from the whole application. The **My Actions** tab lists all the pending actions assigned to you. On the **All Actions** tab you can see all the actions (including the completed ones) that are either assigned to you or created by you. Admins can see all actions.

  By clicking the **Add Action** button, you create and assign a basic action without the possibility to specify the context, parent or originator.

* **User Settings** -- In this section you can make the following user preference settings:

  * **Show partition name** -- If enabled, the partition name is displayed in the application header, at the beginning of the breadcrumb navigation. The 'Default system value' option means that the setting is taken from the partition-wide [Appearance](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/appearance.md) configuration.

  * **Show partition in window title** -- If enabled, the partition name is displayed before the page name on the browser tab. The 'Default system value' option means that the setting is taken from the partition-wide [Appearance](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/appearance.md) configuration.

  * **Home Page** -- Allows you to set your home page by selecting the desired page from the drop-down list of pages available to you. This setting overrides the rootPage [feature flag](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags.md) setting.

  * **Table Pagination** -- Sets the default number of items displayed per table page (50, 300 or 500). If no value is selected, the setting in [General Settings](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/general-settings.md) is applied.

  * **Localization (display format)** -- Sets the locale (the format of dates, times and numbers) for the application. Note that if the locale URL parameter is used in the web address through which you access Pricefx, it overrides the setting made here. But by selecting a different locale here and saving it, you will remove the locale parameter from the URL and the selected locale will be applied.

  * **UI Language** -- Sets the language of the application. Note that if the uiLanguage URL parameter is used in the web address through which you access Pricefx, it overrides the setting made here. But by selecting a different language here and saving it, you will remove the uiLanguage parameter from the URL and the selected language will be applied.

  * **First day of the week** -- Sets the appearance of calendar day pickers for the user. The selected day will be displayed as the first day of the calendar week. The default value depends on the value selected in the **Localization (display format)** option. You can change it to any other value but selecting a different **Localization** will reset the value to the corresponding default.

* **Notifications** -- Lists all the application notifications. You can use filtering, layout customizations, saved view preferences as in any other table.

* **Change password** -- Allows you to update your password.

* **Help** -- Opens the application documentation. This option can be hidden by administrator.

* **Custom Help** -- Opens a page with custom help materials. The page's URL must be configured by the administrator (`customHelpUrl` feature flag). If not configured, this option is not available.

* **Send Feedback** -- Opens a side panel where you can submit your opinions or ideas about the application to Pricefx. Files (document and image type) can be attached to the written feedback.

* **Terms of Use** -- Opens a page with the legal terms of use for the Pricefx application.

* **About** -- This section contains detailed release/build information, CRM configuration file name and backend information.

* **Sign Out** -- Ends the current user session. This option is always available.

## Administration

![AppMenu02.png](https://knowledge.pricefx.com/__attachments/a_d9e793e5391f570868d9ea90cd25beb0a6398412b5865c7124d4dc182c09d230/AppMenu02.png?cb=e70a9e5795a2dc01e8d3e84a6662b4f1)

In the [Administration](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration.md) section you can manage users, groups, ToDo tasks and workflow delegation and view various logs. You will also find here the [Configuration](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration.md) section where you can make various application configuration settings, such as manage logics, CFS and dashboards and set feature flags.

When you hover over an item menu an icon ![icon_new_tab.png](https://knowledge.pricefx.com/__attachments/a_7f83bf0f19a7bcb516c5dc26941c01e96890f2378efd30d3eb0c5c6c23a4ff4a/icon_new_tab.png?cb=b730a4adba6f3b59a28ced0083e45e37) appears that allows you open the target page on a new tab.

## Master Data

![AppMenu03.png](https://knowledge.pricefx.com/__attachments/a_b46f7b3135c1c3af2aab1234945d55724d56f11fe09092727ed4a03adff5129a/AppMenu03.png?cb=a6fefaa73760bc6e58b75e57f3d7d5a4)

In the [Master Data](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/master-data.md) section you can access and manage all the non-analytics data, such as products, customers, product/customer extensions, company parameters.

## Company Parameters

![AppMenu04.png](https://knowledge.pricefx.com/__attachments/a_2e0bfcbfc88023dff7debec14097bfbbe24d07835ed3c7f27652ca5641c4eec6/AppMenu04.png?cb=92a9b54c8744308ba634302d5151d7ae)

In the Company Parameters section you can manage your custom parameters and templates.

## Help

![AppMenu05.png](https://knowledge.pricefx.com/__attachments/a_12bcc8fef0e11972c69ae81ce70e5411c2ada2eafac53f5421b78f4f368d799c/AppMenu05.png?cb=d91c1f53dc4f06bfdd840c5e3bd28e32)

Opens a panel where you can enter a query that will be searched for in Pricefx documentation.

## Notifications

![AppMenu06.png](https://knowledge.pricefx.com/__attachments/a_3e712b752a3a683ff099e612e35bab261c563c79de3c200804e5a15516a8117d/AppMenu06.png?cb=4b27fd4bd7f9ca91f2464969c9d12168)

In the Notifications section you can access messages generated by the application. The **View All** link takes you to the Notifications page (see User Menu above).

## Module Menu

![AppMenu07.png](https://knowledge.pricefx.com/__attachments/a_98c5b959c6386400ef0fe5bd95282efc0f06de73a707fb3769b9a962b7142111/AppMenu07.png?cb=78ee09346a7e60db56c318616e1a6a24)

The Module menu provides quick access to all the available modules and their functionalities. Clicking the logo takes you to the Home page.

The menu can also contain links to external applications. These links are [configured](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/miscellaneous-howto/how-to-add-a-link-to-external-app-to-the-module-me.md) by the Administrator. You can also add a link to the [Enable Rebate Management Insights](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/miscellaneous-howto/how-to-add-enable-integration-to-the-module-menu.md) in the Module menu.

When you hover over an item menu an icon ![icon_new_tab.png](https://knowledge.pricefx.com/__attachments/a_7f83bf0f19a7bcb516c5dc26941c01e96890f2378efd30d3eb0c5c6c23a4ff4a/icon_new_tab.png?cb=b730a4adba6f3b59a28ced0083e45e37) appears that allows you open the target page on a new tab.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) The item 'Model Classes' which used to be in this menu was moved to [Configuration](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/optimization-configuration.md).

---
version: "Latest version"
language: "en"
---
# Business Keys - Recommendations

A **business key** (also called a **primary key**) is a column (or a set of columns) that uniquely identifies each row in the data. For example, it can be a customer number in a CRM system or an SKU number for a product. The business key value can come from a single column or can be composed of several columns (to achieve uniqueness).

## General Requirements for a Business Key

* It is unique.

* It is always present in the data (i.e., no null values).

* It does not change over time.

## Pricefx Recommendations for Business Keys

* Do not use values with national special characters. For details, see [Encoding](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/encoding.md). Also avoid using other uncommon special characters like `%`, `$`, `"` etc.

* Do not use values with leading (or trailing) spaces or other whitespace characters like tabs.

## Handling **Date** / **DateTime** Attributes in Business Keys

When using **PX** attributes of type **Date** or **DateTime** as part of a **business key** , be aware of how values are stored and compared when data is created or modified via **calculation logics** (for example, using `api.add()`):

* `api.add()` **does not normalize values by attribute type** before storing them.

* If you pass a **String** value for a Date-typed attribute, that **exact string** is stored, even if the attribute is configured as **Date**.

* If you pass a **Date** value, it is converted to a String using the standard **ISO 8601** format: `yyyy-MM-dd`.

**Business key uniqueness** is validated on the stored String values, **logically identical dates** can be treated as **different** if they are represented by different strings.

### Example

Consider a PX attribute `attribute2` of type **Date**, which is part of the business key:

* First row is created with `attribute2` passed as a String: `"01.01.2026"`.

* Second row is created with `attribute2` passed as a Date object representing **1 January 2026**.

In this case:

* The first row stores `"01.01.2026"`.

* The second row stores `"2026-01-01"` (ISO 8601).

Although both values represent the same logical date, they are **different strings** , so the system treats them as **two distinct business key values** and allows **two separate rows**.

### Recommendations

To avoid unexpected duplicates when using **Date** or **DateTime** attributes in business keys:

* **Always use a consistent date format** for business key components.

* For logic-based inserts/updates (e.g., via `api.add()`), prefer:

  * Passing Date/DateTime values as actual **Date** objects, or

  * Passing formatted Strings that **match** the internal **ISO 8601** representation (`yyyy-MM-dd` for dates).

* **Do not mix** arbitrary date-formatted Strings with Date objects for the same business key attribute.

This behavior is **by design** and has been relied on in existing implementations. Changing it to auto-normalize values could introduce **breaking changes**. Therefore, you should handle normalization on the integration / logic side and ensure a consistent representation before writing data.

---
version: "Latest version"
language: "en"
---
# Common Table Actions

There are some common features and settings than you can use in all tables in the application.  
* [Null Values and Sorting/Filtering](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/null-values-and-sorting-filtering.md)
* [Column Menu](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/column-menu.md)
* [View Preferences](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/view-preferences.md)
* [Add or Remove Columns](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/add-or-remove-columns.md)
* [Filtering](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/filtering.md)
* [Pagination](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/pagination.md)
* [Result Matrix](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/result-matrix.md)
* [Import or Export Line Items](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/import-or-export-line-items.md)
* [Keyboard Shortcuts](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/keyboard-shortcuts.md)
* [Mass Editing](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/mass-editing.md)
* [Export Tables](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/export-tables.md)
* [Folder Tree](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/folder-tree.md)

---
version: "Latest version"
language: "en"
---
# Add or Remove Columns

You can decide which of the available columns (fields) you want to have in the table.

1. Click the **Show Table Settings** icon and select **Table Column Options**.

2. In the dialog you can:

   * Remove columns by selecting them and clicking the **Hide** icon or button.

   * Add columns by selecting them from the **Table Columns not Visible** drop-down list and clicking the **Make Visible** button.

   * Change the order of columns by dragging and dropping.

   * Freeze or unfreeze columns.

     ![AddRemoveFields01.png](/__attachments/a_553e30e9988cfdbabeea67d5e4f52f5d4e8692a31820e3ab7c697868fdde0802/AddRemoveFields01.png?cb=1e9687d667a0b077b3dd5ff48b5cb2b7)
3. Click **Apply Changes** to save your edits.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) The order of columns can also be changed directly in the table by dragging \& dropping. Freezing and unfreezing can be done also in the [column menu](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/column-menu.md).

---
version: "Latest version"
language: "en"
---
# Column Menu

Hover above the column header and click the 3 Dot icon that appears. A drop-down menu with several options appears:

## Sort

The content of all tables in the application can be sorted. There are two types of sorting available:

* **Simple sorting** -- Sort the data in the table by the values in the selected column, either in the ascending or descending order. Click the column header or use the **Sort Ascending** / **Sort Descending** column menu options to change the order. The blue color of the arrow indicates by which column you are sorting and if the data is sorted ascending or descending. Sorting is applied also to folders.

* **Multi-level sorting** -- Allows you to define multiple sorting levels and their order. The data is sorted by the values in the column selected at the first level. If there are multiple rows with the same value, then the sorting by the values in the column at the second level applies, etc.

  Hover above the column header and click the 3 Dot icon that appears. Select **Configure Sort** and make the settings in the dialog.

  ![ColumnMenu01.png](https://knowledge.pricefx.com/__attachments/a_4123bd59076a5fbf5fc4c64699c1c532b9fbaaa3a48ced6ac7a0a90061cb8cd7/ColumnMenu01.png?cb=052817a0e39bcea32f8175e9d12a6b78)

  A number in the header indicates the order of the sorting criteria (e.g., product SKU = 1 and attribute A = 2 signals that the data is first sorted by product SKU and next by attribute A).

  ![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) You can use the keyboard shortcut **Ctrl+Click** (Windows) or **Cmd+Click** (Mac) to configure multi-level sorting.

![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) If there are NULL values in your data, these fields are always put first when sorting (both ascending and descending). This is a standard behavior of the database.

## Auto Fit

These options enable you to adjust the width of columns automatically.

* **Auto Fit All Columns** -- Changes the width of all columns according to their content (as opposed to doing this manually by dragging the column width).

* **Auto Fit** -- Changes the width of a given column according to its content.

## Column Settings

You can rename or customize table columns. Click the **3 Dot** icon in the column heading and select the **Column (attributeN) Settings** option. Note that this option is available for attributes, not for system fields.

* **General**

  * **Label (technical)** -- Enter a new label for the attribute/column. As the label can be used as an identifier in calculation logics, it is advisable not to use spaces or special characters in the label. For the same reason, changing attribute labels can have an impact on calculation logics. Make sure that these are changed accordingly.

    The column label has to be unique. If you give the column an already existing label, the change will not be saved.

  * **Type** -- Change the type of the column.

    The type value *Entity Reference* allows you to create a link to another object. The object type is specified in the Entity Reference Type where you can select from: Product, Customer, Quote, Rebate Agreement, Agreement/Promotion and Data Change Request. The link usage is supported at the following pages: Customer Extensions, Customers, Price List items, Price Grid items, Price Records, Product Extensions, Products, Simulation items, Rebate Records, Company Parameters values. If you experience issues with links, see [Why Are Hyperlinks Rendered as HTML Text After Upgrading to 17.0?](/configuration-engineer-knowledge-base/questions-and-answers/why-are-hyperlinks-rendered-as-html-text-after-upgrading-to-17-0.md).

  * **Restrict Values** -- The following options are available:

    * by List -- You can manually enter the values e.g., 1, 3, 10.

    * by Filter -- You can build a filter to restrict the data, e.g., greater than 1 and less than 10. Note that regular expressions are not supported here.

    * by Data Source -- You can reference another table in the system and its field whose values will be selectable in the column's drop-down list. In addition to default system tables, you can add almost any other table to the list of data sources using the **Add columns to "Rename ... / Restrict Values list** menu option.

      ![info](/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See also [How to restrict values in drop-down in Company Parameter key column based on another Company Parameter column](/configuration-engineer-knowledge-base/how-to/master-data-howto/how-to-restrict-company-parameter-values-based-on-.md).

  * **Do not display warnings for this section** -- If enabled, user warnings are not displayed when making changes in this dialog.

  * **Attribute extension (JSON column)** -- Identifies an attribute extension that is stored in the database as a JSON column.

  * **Required** -- If enabled, users will be required to enter a value in this column.

  * **Read Only** -- If enabled, users will not be able to edit values in this column.

* **Label Translations** -- You can add a translation for the column's label by clicking the **Add Translations** button. The translated label will be displayed in the corresponding language version of the user interface. In the Locale column of the editor, use the language code that you see in the locale URL parameter, e.g., 'de' for German.

* **More**

  * **Description** -- Add or change the description of the column.

  * **Color** -- Set a color for the column.

  * **Extra Styling** -- Specify extra styling in the form of CSS declarations (e.g., *color: red; font-weight: bold*).

* **Integration**-- This tab is available for Manual Price Lists.

  * **Integration Tag** -- This tag can be used in filters that work with element names. See [Integration Tags](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/price-setting-configuration/integration-tags.md) for details.

## Reset Column Name and Type

Reverts changes made to the column name and type to the default value.

## Add Columns to 'Rename.../Restrict Values' List

Values of a selected column can be used in another table (e.g., Product, Customer, other Company Parameter) to provide options for users to choose from. So instead of typing a word, users will have a drop-down with the predefined options. For details on using this list when you set up restricted values by data source, see the Rename and Customize option above.

## Customize Attribute Extensions

This functionality is available for Quotes, Agreements/Promotions, Rebate Agreements, Compensation Plans, Custom Forms, Rebate Records (and their groups), Price Records, Actions, Company Parameters and Payout Records (but note that attribute extensions added to Product, Customer and Seller Extension tables cannot be modified this way). It allows you to add an unlimited number (in theory) of columns of any type and this way scale the project size over the time. This is done through DB native JSON columns support. Note that on Oracle DB, mass edit is supported for versions 12.2 and higher.

![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) Attribute Extensions are much slower and less efficient than native columns e.g., when filtering. Use them sparingly and cautiously!

Writes to the field in header logic are supported through the header-level processor and its `api.updateField` method. Note that there is a triple underscore delimiter before the field name.
Groovy

    quoteProcessor.updateField("ROOT", "attributeExtension___myJsonFieldName", 12345)

## Hide Column

Hides the column. This is a faster alternative to hiding an individual column in the Select Fields to Display dialog (see [Add or Remove Columns](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/add-or-remove-columns.md)).

## Group

To be able to view the data in groups of your choice, you can group the data by the column value.  
![ColumnMenu02.png](https://knowledge.pricefx.com/__attachments/a_f154526f851ab43cef5ea03515001765a08ce93c4540b743f189cd5f088f050c/ColumnMenu02.png?cb=fa6d486556e88e21e6e494a609de5f01)

Hover above the column header and click the 3 Dot icon that appears. Select **Group by \<ColumnName\>** from the drop-down list. For date and time value types, you can select the time period for grouping (week, month, quarter, etc.).

There will be a group for each value. The groups are expandable/collapsable. Grouping can be done on multiple levels: in the above screenshot, we group by Submitter on the first level and then by Status on the second level.

You can quickly change the grouping order or clear the grouping in the **Group by** row above the table header.

## Freeze Column

If you want a column to be always visible when you horizontally scroll in a table, you can pin it to the left-hand edge of the table.

Hover above the column header and click the 3 Dot icon that appears. Select **Freeze \<ColumnName\>** from the drop-down list. The column will be moved to the first position from the left (or immediately behind an already frozen column) and will remain there when you scroll. If you have more frozen columns in the table, you can reorder them by drag \& drop or by using the **Select Fields to Display** option in the Show Table Settings menu. Frozen columns are saved to view preferences.  
![ColumnMenu03.png](https://knowledge.pricefx.com/__attachments/a_a219377c32e226be9e04eabe8b372a9b9ed2b7d51325a1622c4b61deae088b4b/ColumnMenu03.png?cb=5374305fce2f529e4d356e0b09c83a21)

## Reorder Columns

If you want to change the order of table columns, you have two options:

* Drag \& drop the column to its new place.

* Go to **Show Table Settings** \> **Select Fields to Display** and reorder the columns in the dialog by drag \& drop.

---
version: "Latest version"
language: "en"
---
# Export Tables

Any document (Quote, Rebate Agreement, etc.) in Pricefx can be exported to the following formats:

* XLSX

* DOCX

* PDF

Data tables can be exported to:

* XLSX

* CSV

You can define your own [Excel or Word template](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/templates/publishing-templates.md) (with logo, brand colors, etc.). If there is more than one template for the object you are about to export, you will be prompted to select the template that you want to use.

In the Export dialog, there are several options available:

* **Exclude currently hidden Attr. xx fields** -- You can exclude all fields from the export that are currently hidden from the table (via the Select Fields to Display dialog).

* **Exclude all currently hidden fields** -- You can exclude from the export only the currently hidden attribute fields.

* **Keep all fields** -- The exported file will include all fields.

* **Async download** -- For Excel exports, you can choose [asynchronous download](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/advanced-tips-howto/when-to-use-asynchronous-download-of-excel-files.md) if the table that you want to export is very large. In Dashboard portlets, the Analytics module (charts, Rollups, Data Manager), Product master and Result Matrixes, async download is applied by default and the **Async download** checkbox is not available.

  All asynchronously downloaded files can be reviewed and downloaded again (for 3 days after the first download) on the [Notifications](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/app-notifications.md) page.

* **Include extra fields** -- You can include the matrix field columns in the export.

  ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) This option is only available when the advanced configuration option `extraExportColumnsConfig` is defined. For more information see [How to Export a Price List Containing Result Matrix](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/advanced-tips-howto/how-to-export-a-price-list-containing-result-matri.md).

**Note:** When data exported to Excel contains the characters +, -, or =, a cell style will be used that automatically prefixes these characters with an apostrophe, but the apostrophe will not be shown in the cell itself. However, this works only for the first 64,000 cells, which is a cell style limit in Excel.

---
version: "Latest version"
language: "en"
---
# Filtering

There are two types of filter available: simple and advanced.

Note that all filters in the application are case insensitive.

## Simple Filter

You can use a quick, simple filter below the table header, which will display only the items that you want to see.  
![Filtering01.png](https://knowledge.pricefx.com/__attachments/a_47943cd4993289619f80d32db1f712c98b85a0e51d8099ff2665bca1d6070211/Filtering01.png?cb=621ad95e51f32d3d7081bec3f17e95fc)

A date value is entered as a range. The end and start values can be the same if you want to filter by an exact point in time, not a range.  
![Filtering02.png](https://knowledge.pricefx.com/__attachments/a_1655fc744c67a7a4ea2e72f4c1bbcfb16552377362fa76b19f62d5f9b0493980/Filtering02.png?cb=c426a40eb6ea1754f1d0043e947ca279)

The default operator is 'contains' for strings and 'equals' for numbers. Simple filters also support the following operators:  
**Numeric values:**  

|-----|------------------|
| ==  | Equals           |
| !   | Not equal        |
| \>  | Greater than     |
| \<  | Less than        |
| \>= | Greater or equal |
| \<= | Less or equal    |
| #   | Is null          |
| !#  | Is not null      |

**String values:**  

|------|------------------------------|
| \~   | Contains                     |
| ! \~ | Does not contain             |
| _    | Matches any single character |
| ==   | Equals                       |
| !    | Not equal                    |
| \^   | Starts with                  |
| !\^  | Does not start with          |
| \|   | Ends with                    |
| !\|  | Does not end with            |
| #    | Is null                      |
| !#   | Is not null                  |

You can display a drop-down list of available operators by right-clicking into the filter field.

**Notes:**

* Simple filters are converted to advanced filters when you save a table customization as a preference.

* You can clear all simple filters at once using the **Clear Column Filters** menu option.

* Depending on your configuration, you may need to press Enter to start the search.

* If you apply a quick filter, select one or more items and then clear the filter, the items are deselected. This is to prevent any unexpected selections in the later stages of your work. (Applies to React version of the UI).

## Advanced Filter

You can create an advanced filter with a complex query.

1. Click the **Filter** icon above the table.

   ![Filtering03.png](https://knowledge.pricefx.com/__attachments/a_ded91c68b00fa5cf957e8eaa19f69a98af5c300fc6920e832b054464d7f573a5/Filtering03.png?cb=c56c05c102c5d1db099d193126c1e3a1)
2. In the Advanced Filter dialog, select a field that you want to use in your filter condition, then specify the operator and the filter value.

   You can combine multiple conditions using the AND or OR operators. You can also combine individual rules with groups of rules as clauses and subclauses.

   Change the order of conditions simply by drag and drop. You can drop a rule into a group or move a rule from a group to a different level.

   ![Filtering04.png](https://knowledge.pricefx.com/__attachments/a_08d031d1cc763d04b7dd7cb1c5912d94ca5cd11dcfb7e09b11a2521d812e73da/Filtering04.png?cb=49403413e2756be748275bf48579335e)

   **Note:** The 'contains pattern' operator allows you to search for an expression where underscore matches any character.
3. Click **Apply** .

   The filter can be saved as part of a preference. Update the current preference or create a new one in the **Show Table Settings** ![TableSettingsIcon.png](https://knowledge.pricefx.com/__attachments/a_2ea70ac2dae75057bcbc1ef6ad306d58b75d41511ae635492eff3ee7c65b6fe2/TableSettingsIcon.png?cb=695c5350a084a6e19b70f0a6c018c2e4) menu.

   If a selected field is deleted or renamed in the Datamart or the selected value is not present in the data anymore, the selection will fall back to null and a notification is displayed when you open the filter dialog.

## Setting 'Is one of' Filter

If you need to enter many values into a filter, you can make use of the following operators available in the advanced filter:

* is one of

* is not one of

Select one of these options and proceed with the following steps:

1. Click the **Paste values** ![TableSettingsIcon.png](https://knowledge.pricefx.com/__attachments/a_2ea70ac2dae75057bcbc1ef6ad306d58b75d41511ae635492eff3ee7c65b6fe2/TableSettingsIcon.png?cb=695c5350a084a6e19b70f0a6c018c2e4) icon.

2. In the pop-up window, select the correct separator that is used in your data source.

3. Optionally, enter a symbol which encloses the values.

4. Copy and paste the filter values into the text field. The values will get converted into lines in the bottom part.

   ![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) The reasonable limit of pasted items is 5,000. You can try to paste more but you are likely to experience performance issues.

5. Optionally, you can edit, delete or add values manually.

6. Click **Apply**.

The 'is not one of' operator automatically excludes null values.

To solve this, use: 'x is not one of \<list\>' OR 'x is null'.

OR \~ Match Any.

### Copy a Shareable Link Current Table View

In many tables you can use the **Copy Link** button to quickly share exactly what you see with another user, including already set filters. See [View Preferences \| Copy a Shareable Link Current Table View](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/view-preferences.md#Copy-a-Shareable-Link-Current-Table-View).

---
version: "Latest version"
language: "en"
---
# Folder Tree

Items in some tables can be hierarchically organized in a tree.

The tree structure is displayed in a left-hand side panel. The panel is resizable and collapsible.

Click the **Folder** ![Icon_Folder.png](https://knowledge.pricefx.com/__attachments/a_16d8dfb237a5b88ddc122d0b342c29971d478267be09eb8eadc13f80f760e532/Icon_Folder.png?cb=ec73762c920eddc5530c3217c037c742) icon to create a new folder. When an existing folder is selected, this action creates its subfolder. Folders can be renamed (the option is available under the 3 dots icon). The **Delete** ![Icon_Delete.png](https://knowledge.pricefx.com/__attachments/a_1f4c4e70826006379f855cb54e5e4aede392a05787f7965227a3add3e7e4989a/Icon_Delete.png?cb=3c16b59ddc71d1fc3243e65ca2f7a188) icon removes the currently selected folder. It does not delete the items in the folder.

When you select an item, you can move it to a different folder using the **Move to** button. Newly created items are placed into the currently selected folder.  
![FolderTree01.png](https://knowledge.pricefx.com/__attachments/a_2405ee22ebde156b0d9d0097ea4713c18fcadaac12ec5b71e03b126ecd8a8218/FolderTree01.png?cb=445fd7dedcfa93204aad90f4fecdd593)

---
version: "Latest version"
language: "en"
---
# Import or Export Line Items

In CLIC modules (Quoting, Agreements \& Promotions, Rebates, Sales Compensations), you can add items to the table on the Items tab in bulk.

## Import

If you need to add a large number of line items to a Quote, Agreement/Promotion, Rebate Agreement or Compensation Plan at once, you can use the Import feature.

1. Prepare a spreadsheet that will contain a list of products. The first column always has to be the the line item ID (sku). Additional columns must have the same order as in the calculation logic.

   ![ImportExportLineItems05.png](https://knowledge.pricefx.com/__attachments/a_06c41d3ea8dfc9af8657587670e21ddbfd8b828428e6f45f7045759bfa92515f/ImportExportLineItems05.png?cb=062362cac23e569732a8de22397a9788)
2. Go to the items tab and click the **Import items from clipboard** button.

   ![ImportExportLineItems01.png](https://knowledge.pricefx.com/__attachments/a_f3e0557dc99a4d809710cb89f4e0b6f66dc38907f3d3bc1c0025312630a63849/ImportExportLineItems01.png?cb=14aa86aee0a9c57d362a2e9e61c08575)
3. Copy the list of products from the spreadsheet and paste it to the import window on the Import tab.

   ![ImportExportLineItems02.png](https://knowledge.pricefx.com/__attachments/a_6189702bfee10eeee2299bf1a7a16708c3ab8575d0ba6090d0d56113d239c0fc/ImportExportLineItems02.png?cb=79328a956840b9c3478517bd2375d442)
4. Select whether you want to append the existing list of products or replace it with the imported list.

   ![ImportExportLineItems03.png](https://knowledge.pricefx.com/__attachments/a_2fb4b871bb45bd399bd0994f0e565c7f9af8d23d57bb4546215540a8308255e5/ImportExportLineItems03.png?cb=b669f3a0c4fb70d8f7e351d10d8b65ee)
5. Verify that the products have been imported correctly.

   ![ImportExportLineItems04.png](https://knowledge.pricefx.com/__attachments/a_87e910f5ee3c277fc3334e0fcb380fa96f11ccd4726a832d2ca69269e03289d0/ImportExportLineItems04.png?cb=7d98cee6105b282d56cd50c70f9155c5)

## Export

You can also export the Items table:

1. Click **Copy all items to clipboard**.

2. Paste the content to a spreadsheet.

**Note:**

* Only the following input types can be imported/exported: BOOLEAN, BOOLEANUSERENTRY, CUSTOMER, PRODUCT, DATETIMEUSERENTRY, DATEUSERENTRY, TIMEUSERENTRY, INTEGERUSERENTRY, LOOKUP, MULTITIERENTRY, OPTION, OPTIONS, RADIO, STRINGUSERENTRY, TEXTUSERENTRY, USERENTRY.

* Multi-tier entries are exported/imported into a single column in the following format: \["10":"3";"15":"5";"20":"3";"30":"5"\]

* OPTIONS are exported and imported in the format option1;option2;option3. Semicolons in the values are escaped.

* Date, Time and DateTime values are copied with enveloping double quotes ("2020-03-12"). The reason is that Pricefx is not able to recognize date and time formatting and locale settings in Excel and exporting and importing the values from and back to Pricefx could cause problems. It is up to the user to set the correct formatting in Excel and Pricefx.

* [Product and Customer Groups](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/quick-reference/user-inputs-quick-reference/product-customer-groups.md) are supported but only when the selection is done by the value of an attribute in the table. Quick or advanced filters or multi-selection of Products or Customers are not supported.

---
version: "Latest version"
language: "en"
---
# Keyboard Shortcuts

The following keyboard shortcuts are supported in data tables:  

|              **Type**              |                        **Win Shortcut**                        |                          **Mac Shortcut**                           |                                                                                                                                                              **Description**                                                                                                                                                              |
|------------------------------------|----------------------------------------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Cell / editable cell is not active | **Mouse Left Click**                                           | **Mouse Left Click**                                                | Clicking the check-box or radio button selects or deselects the row. Clicking the row does not select/deselect the row.                                                                                                                                                                                                                   |
| Cell / editable cell is not active | **Arrow Up**                                                   | **Arrow Up**                                                        | Moves the cursor to the cell one row up in the same column.                                                                                                                                                                                                                                                                               |
| Cell / editable cell is not active | **Ctrl + Arrow Up**                                            | **Command ⌘ + Arrow Up**                                            | Moves the cursor to the cell in the first row of the same column.                                                                                                                                                                                                                                                                         |
| Cell / editable cell is not active | **Arrow Down**                                                 | **Arrow Down**                                                      | Moves the cursor to the cell one row down in the same column.                                                                                                                                                                                                                                                                             |
| Cell / editable cell is not active | **Ctrl + Arrow Down**                                          | **Command ⌘ + Arrow Down**                                          | Moves the cursor to the cell in the last row of the same column.                                                                                                                                                                                                                                                                          |
| Cell / editable cell is not active | **Arrow Left**                                                 | **Arrow Left**                                                      | Moves the cursor to the cell in the same row of the previous column.                                                                                                                                                                                                                                                                      |
| Cell / editable cell is not active | **Ctrl + Arrow Left**                                          | **Command ⌘ + Arrow Left**                                          | Moves the cursor to the first cell of the same row.                                                                                                                                                                                                                                                                                       |
| Cell / editable cell is not active | **Arrow Right**                                                | **Arrow Right**                                                     | Moves the cursor to the cell in the same row of the next column.                                                                                                                                                                                                                                                                          |
| Cell / editable cell is not active | **Ctrl + Arrow Right**                                         | **Command ⌘ + Arrow Right**                                         | Moves the cursor to the last cell of the same row.                                                                                                                                                                                                                                                                                        |
| Cell / editable cell is not active | **Backspace**                                                  | **Backspace**                                                       | Clears the value of an editable cell.                                                                                                                                                                                                                                                                                                     |
| Cell / editable cell is not active | **Delete**                                                     | **Fn + Backspace**                                                  | Clears the value of an editable cell.                                                                                                                                                                                                                                                                                                     |
| Cell / editable cell is not active | **Ctrl + C**                                                   | **Command ⌘ + C**                                                   | Copies the rendered formatted value of a cell.                                                                                                                                                                                                                                                                                            |
| Cell / editable cell is not active | **End**                                                        | **Fn + Arrow Right**                                                | Moves the cursor to the last cell of the table.                                                                                                                                                                                                                                                                                           |
| Cell / editable cell is not active | **Enter**                                                      | **Enter**                                                           | Moves the cursor to the first focusable child of a cell and performs an action depending on the context. For example: If the cell is editable, it enters the editing state. If the cell has a link, it opens the link. If the cell has a button, it clicks the button. If the cell has selection enabled, the Enter selects/deselects it. |
| Cell / editable cell is not active | **Escape**                                                     | **Escape**                                                          | Moves back to the parent element -- cell or table.                                                                                                                                                                                                                                                                                        |
| Cell / editable cell is not active | **Home**                                                       | **Fn + Arrow Left**                                                 | Moves the cursor to the first cell of the table.                                                                                                                                                                                                                                                                                          |
| Cell / editable cell is not active | **Page Down**                                                  | **Fn + Arrow Down**                                                 | Scrolls one screen down and moves the cursor to the cell in the first visible row of the current column.                                                                                                                                                                                                                                  |
| Cell / editable cell is not active | **Page Up**                                                    | **Fn + Arrow Up**                                                   | Scrolls one screen up and moves the cursor to the cell in the first visible row of the current column.                                                                                                                                                                                                                                    |
| Cell / editable cell is not active | **Space**                                                      | **Space**                                                           | Selects or deselects the current row.                                                                                                                                                                                                                                                                                                     |
| Cell / editable cell is not active | **Tab**                                                        | **Tab**                                                             | Moves the cursor to the next focusable element (checkbox, cell, button, link, ...). Browser default behavior.                                                                                                                                                                                                                             |
| Cell / editable cell is not active | **Shift + Tab**                                                | **Shift + Tab**                                                     | Moves the cursor to the previous focusable element. Browser default behavior.                                                                                                                                                                                                                                                             |
| Cell / editable cell is not active | **Any printable character without pressing Ctrl or Space key** | **Any printable character without pressing Command ⌘ or Space key** | Directly starts editing the cell value.                                                                                                                                                                                                                                                                                                   |
| Editable cell is active            | **Arrow Up**                                                   | **Arrow Up**                                                        | Confirms changes and moves the cursor one row up in the same column.                                                                                                                                                                                                                                                                      |
| Editable cell is active            | **Arrow Down**                                                 | **Arrow Down**                                                      | Confirms changes and moves the cursor one row down in the same column.                                                                                                                                                                                                                                                                    |
| Editable cell is active            | **Enter**                                                      | **Enter**                                                           | Confirms changes.                                                                                                                                                                                                                                                                                                                         |
| Editable cell is active            | **Escape**                                                     | **Escape**                                                          | Reverts changes.                                                                                                                                                                                                                                                                                                                          |
| Editable cell is active            | **Tab**                                                        | **Tab**                                                             | Confirms changes and moves the cursor to the next cell.                                                                                                                                                                                                                                                                                   |
| Editable cell is active            | **Shift + Tab**                                                | **Shift + Tab**                                                     | Confirms changes and moves the cursor to the previous cell.                                                                                                                                                                                                                                                                               |
| Header Cell                        | **Arrow Up**                                                   | **Arrow Up**                                                        | Moves the cursor to the header cell when in the first row.                                                                                                                                                                                                                                                                                |
| Header Cell                        | **Arrow Down**                                                 | **Arrow Down**                                                      | Moves the cursor from the header cell to the first row.                                                                                                                                                                                                                                                                                   |
| Header Cell                        | **Arrow Left**                                                 | **Arrow Left**                                                      | Moves the cursor to the previous header cell.                                                                                                                                                                                                                                                                                             |
| Header Cell                        | **Arrow Right**                                                | **Arrow Right**                                                     | Moves the cursor to the next header cell.                                                                                                                                                                                                                                                                                                 |
| Header Cell                        | **Escape**                                                     | **Escape**                                                          | Moves the focus to the table.                                                                                                                                                                                                                                                                                                             |

---
version: "Latest version"
language: "en"
---
# Mass Editing

If you need to update many records at once, you can use the mass edit feature:

1. Prepare a list of items to be changed. You can:

   * Edit all items in the table.

   * Apply a simple or advanced filter -- for details see [Filtering](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/filtering.md).

   * Use the checkboxes to select individual items for mass edit.

2. Click the **Mass Edit** button above the table if you want to edit all or filtered items.

   ![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) Whenever you perform a Mass Edit operation in Datamart, remember to run a default Publish Data Load to make the edited data available in your queries. For more information about Data Flow, see [Data Manager](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics/data-manager.md).

   ![MassEdit01.png](https://knowledge.pricefx.com/__attachments/a_2d661c8c1f39a87b72c07c7babc0e5c34da37d24d507b7a0343fb0e3e4112626/MassEdit01.png?cb=a5ddaece3591b993aa1cc23de35f44f9)

   Or use the **Mass Edit** button below the table if you want to edit only selected items.

   ![MassEdit02.png](https://knowledge.pricefx.com/__attachments/a_5cb8111203b6579688958047ea5156509e7e88ca0e668a1485919d913214aeaa/MassEdit02.png?cb=6464341c6d675ddc5cf584cc83926945)

   The manual selection has priority over an applied filter, i.e., if you use a filter and then select several items, you will only be able to edit the selected items -- the button above the table disappears.

   ![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) Selection of items for mass delete works in the same way.

3. In the Mass Edit dialog, select the **Attribute** to edit from the drop-down list.

4. From the **Change** drop-down list, select how the value will be updated.

5. Enter the **Value** which will be used in the update.

   If you enter the value manually, Pricefx validates whether the new values correspond to the predefined options (if there are any).

   ![warning](https://knowledge.pricefx.com/__attachments/a_8989989691910c3cff9a3df712a01beedaf2c30e8e36bfdc5f518bf0c14b5e73/atlassian-warning?cb=14432459925d605e05cae2605cdfe666) All selected records will be changed. Changes cannot be undone.

6. In the **Precision** column, you can set the number of decimal places for the result. The calculation result will be rounded to the specified number of decimal places and saved in the database. Non-customizable mathematical rounding is used. If [enabled by the admin](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/general-settings.md), the default number of decimals is preselected depending on the corresponding data type.

7. If needed, you can add another column for mass edits by clicking **+ Attribute** and repeating the above steps.

8. Click **Edit** to confirm the changes.

**Note:**

* In the Company Parameters tables, the mass update is possible only for attributes (i.e., not for key columns).

* In the Price Records table, you can mass update also attribute extensions (see [Customize Columns](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/column-menu.md)).

* In Import Manager, it is not possible to mass edit new records.

* When mass editing Override fields (like Offsets, Manual Override, etc.) in LPGs, mass edit returns a String (and ignores the column formatting).

* When mass editing fields which are part of business key, make sure you do not create duplicates (as this is not checked by the system).

* When mass editing a Quote, Rebate, Contract, or Sales Compensation line item, you can also mass edit input fields within the [Configurator](https://developer.pricefx.eu/pricefx-api/groovy/master/net/pricefx/common/api/InputType.html#CONFIGURATOR). Please note that when you leave the Configurator's input field value in the Mass Edit dialog empty, it does get erased.

---
version: "Latest version"
language: "en"
---
# Null Values and Sorting/Filtering

This section summarizes NULL values behavior throughout the application. This behavior is aligned with the standard handling of null values in databases.

* Nulls are not values.

      null == null -> false

* You need to add an explicit "is null" or "is not null" where appropriate.

* If you need to work with nulls, create something like "N/A" value to replace the null.

Filtering:

* Nulls never work in the regular "compare" type filter operators. There are specific isNull and isNotNull operators.

* The operator 'is not one of' automatically excludes null values.

Sorting:

* When sorting on columns with null values, the null values will always be at the top (regardless of ascending or descending order).

See also:

* [Simple Filter](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions.md) -- special operators # (is null) and !# (is not null)

* Groovy [Filters for Data Reading](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/groovy-api-functions/filters-for-data-reading.md) -- operators NULL, NOT_NULL

* [Null values in filters and api.find/stream/findLookupTableValues](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/groovy-api-functions/filters-for-data-reading/null-values-in-filters-and-api-find-stream-findloo.md)

* [How to Set Data with Null Values in FlexCharts?](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/advanced-tips-howto/how-to-set-data-with-null-values-in-flexcharts.md)

* [How to include attributes with NULL values in Custom Events (omitNullFields = false)?](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/questions-and-answers/how-to-include-attributes-with-null-values-in-cust.md)

---
version: "Latest version"
language: "en"
---
# Pagination

In tables, you can set how many items you want to have displayed on a page. The default is 300 items, the other options are 50 and 500 items.

When suitable, you can jump right to a concrete page by entering its number into the **Go to** field.  
![Pagination01.png](https://knowledge.pricefx.com/__attachments/a_bd114665ad0b0dbc8cfce11d87544ba417b932b05f8903e5eba3db5f453c092b/Pagination01.png?cb=8f800bdde28d74087f37cf5a013780a5)

Filters, item selection (using checkboxes) and deselection and mass edit work across pages. There is an indication next to the action buttons of how many items there are selected in total.  
* When you change the pre-selected default value, you can save this setting for the current table as a [View Preference](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions/view-preferences.md).

* If you want to change the default for all tables, you can do it in **User Settings** \> **Table Pagination** . Administrators can set a default value for the [whole partition](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/general-settings.md) but table view preference and your user setting have priority.

---
version: "Latest version"
language: "en"
---
# Result Matrix

Calculation results for a line item can be displayed also as a data table (matrix). This type of result can be used in many places in the application, such as Dashboards, Quotes, Price Lists, etc.

The result matrix is defined in the calculation logic.

**Example 1**

The following example displays rows for three different customer groups and for each customer it displays the ID, name and the net margin:
Groovy

    def resultMatrix = api.newMatrix("Customer Id","Name","Net Margin %")

    resultMatrix.addRow([ "Customer Id" : "C1", "Name" : "Enduser",  "Net Margin %" : 10.4  ])
    resultMatrix.addRow([ "Customer Id" : "C2", "Name" : "Restaurant",  "Net Margin %" : 4.4  ])
    resultMatrix.addRow([ "Customer Id" : "C3", "Name" : "Industry" ,  "Net Margin %" : 1.4  ])
    resultMatrix.setPreferenceName("My Preference") //sets (creates) a view preference for this matrix

    return resultMatrix

When you run the logic in Quoting, the result matrix will appear in the Calculation Results:  
![ResultMatrix01.png](https://knowledge.pricefx.com/__attachments/a_dcd8b4bb16494a2f5652d69ba1353b98657a4493c84490744fb1dc1493ba0070/ResultMatrix01.png?cb=f23b366063915254cfd8f8f97e534292)

After clicking on the **Show** button, the complete matrix will display in a modal window:  
![ResultMatrix02.png](https://knowledge.pricefx.com/__attachments/a_3dd143ab8684e2a645a9bbc57e5421dc50b0ee74a3914de1c13fd17efc25ee92/ResultMatrix02.png?cb=8c16051c72a1a47d81bf7f05d2c36998)

**Example 2**

In this example we find first 10 products and display their Sku and price in a result matrix with two columns for which we set the data format:
Groovy

    def lines = api.find("P", 0, 10, null, ["sku", "Price"])

    return api.newMatrix()
            .withColumnFormats([
                    "sku"  : FieldFormatType.TEXT,
                    "Price": FieldFormatType.MONEY_EUR
            ]).withRows(lines)

## View Preferences

You can customize the layout and save it as a preference.

To be able to create preferences, you must set the name of the preference (and this way to create it) in the matrix element in the calculation logic. The method to be used is called [setPreferenceName](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/server/dto/calculation/ResultMatrix.html#setPreferenceName(java.lang.String)). You can set the same preference name to several matrixes if you wish them to share the same layout. Once the preference is created, you can work with it like with any other [preference](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions.md#SavingViewPreferences).

You can also purposely disable saving matrix preferences if the matrix is part of a dashboard and you do not want the matrix layout changes to be included in the dashboard preference. Use the method `setDisablePreferences` or `withDisablePreferences`.

## Action Buttons

You can display buttons (or links) in the result matrix rows which execute an action specified in the product's calculation logic. The matrix cells can also contain URL links or images.  
![ResultMatrix03.png](https://knowledge.pricefx.com/__attachments/a_0912002353467c8d7f5edda10ac6fed71be0e0ffd8009267c4c52ac850b89a91/ResultMatrix03.png?cb=27f4d1d5de8e8416f56013dad772f286)

To add actions, links or images to the result matrix, use the [ResultMatrix](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/server/dto/calculation/ResultMatrix.html) class methods. The following example includes several of them.
Groovy

    matrix.addRow([
    	          "Item": matrix.styledCell("Red bold text", "#ff0000", "transparent", "bold"),
    	          "Quantity": 1.23456,
    	          "Price": 78.9012,
    	          "Margin %": 0.3456,
    	          "Url": "<a href=\"https://www.pricefx.com">link</a>",

    	          // optionally you can add link to a Price Grid of the given ID
    	          "Pricegrid" : matrix.linkToPriceGrid("Open Pricegrid", 2147483768, Filter.equal("currency","EUR")),

    	          // or to a Price List of the given ID
    	          "Pricelist" : matrix.linkToPriceList("Open Pricelist", 13970, null),

    	          // or to a Company Parameter of the given ID
    	          "Company Parameter" : matrix.linkToPriceParameter("Open Company Parameter", 1586182204829828),

    	          // or a to custom page (result identical to the previous)
    	          "CustomerId" : matrix.linkCell("Customer Detail", "customersPage", "CD-00001"),
    	 
    	          // or add a library images, such as Traffic, BlackTraffic or Arrow
    	          "Margin Status" : matrix.libraryImage("BlackTraffic", getTrafficColor(-0.2f)),
    	 
    	          // or add a general image
    	          "Image" : matrix.imageCell("/classic/images/grid/sampleimage.png"),
    			  
                  //in-line actions
                  "Revoke": matrix.backEndAction("Revoke","/pricelistmanager.revoke/14019",null,"OK","Not OK"),
                  "Download PDF":matrix.downloadButton("Download","/pricelistmanager.fetchpdf/14019",null),
                  
                  //actions grouped under one button
                  "Actions": matrix.cells("Actions",
                                          matrix.backEndAction("Revoke","/pricelistmanager.revoke/14019",null,"OK","Not OK"),
                                          matrix.downloadButton("Download","/pricelistmanager.fetchpdf/14019",null))
    	  ])

### Action on Multiple Rows

You can enable users to select several rows and click a button that will perform some action with the values of the selected rows.

With the method [rowSelectionBackEndAction](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/server/dto/calculation/ResultMatrix.html#rowSelectionBackEndAction(java.lang.String)) you can configure the action - define its ID, the logic specifying the action and the action button label.
Groovy

    def matrix = api.newMatrix("col1", "col2", "col3")
         matrix.addRow(1, "a", "f")
         matrix.addRow(2, "b", "g")
         matrix.rowSelectionBackEndAction("actionId")
                     .withLogicName("action_handler")
                     .withColumns("col2", "col3")
                     .withButtonLabel("Click here")
    return matrix

In the referenced calculation logic, you have to define the action that will be executed. Typically, you will use the [addBackendCall](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/server/dto/calculation/DashboardController.html#addBackendCall(java.lang.String,java.lang.String)) method.  
See also an example configuration in [How to Configure Dashboards with Result Matrix Click Events](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/advanced-tips-howto/how-to-configure-dashboards-with-result-matrix-cli.md).

## Overridable Result Matrix

You can allow users to manually override the result values in the matrix. Enable the **Allow Override** option for the result matrix [calculation logic](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/logics/calculation-logics/configure-calculation-logic/add-and-define-element.md) element.  
Note that the **Allow Override**option is not supported by the Dashboards. It must be used exclusively with a Result Matrix configured as an Output Parameter, where users can save their changes.

## Create a Quote from Dashboard

You can display buttons (or links) in result matrix rows which create a new Quote with pre-filled Customer values taken from the row. This way, users can quickly create Quotes while they do analytical work in dashboards.

After the Create button or link is clicked, the application opens a new tab with the Quote detail page, where the CustomerID is pre-filled (taken form the Dashboard matrix table row context). User can finish the Quote creation process in the Quoting module as usually.

**Note:** User must have Edit or Administer Quoting roles assigned. User will also not see Quote Types they are restricted to see by User Group settings.

### Examples

Examples of Dashboard logics enabling users to create new Quotes directly from Dashboard portlets.

#### **Link to Create Quote Based on Default Quote Type**

Groovy

    def createNewQuoteLink(matrix, custId) {
      def targetPageState = [quoteType: '__DEFAULT__', Customer: custId]
      matrix.linkCell('New Quote', AppPages.QC_NEW_QUOTE, targetPageState)
    }

    def matrix = api.newMatrix('Customer','Total Value','Action')
    matrix.addRow('CD-00001', 12345, createNewQuoteLink(matrix, 'CD-00001'))
    matrix.addRow('CD-00002', 13206, createNewQuoteLink(matrix, 'CD-00002'))
    matrix.addRow('CD-00003', 23456, createNewQuoteLink(matrix, 'CD-00003'))

    matrix

![ResultMatrix05.png](https://knowledge.pricefx.com/__attachments/a_9e01a45138929cc53940bfd757884cb440c97fc37e889180d53ddc0b02fefc90/ResultMatrix05.png?cb=c4ab07984c8e449272184ce949e28af9)

##### **Button to Create Quote Based on User Selected Quote Type**

Groovy

    def createNewQuoteButton(matrix, custId) {
      def targetPageState = [Customer: custId, customerFieldName:'customerId', customerFieldValue:custId]
      def buttonState = api.inputBuilderFactory()
                            .createQuoteType('New Quote')
                            .buildContextParameter()
      matrix.linkButtonCell('New Quote', AppPages.QC_NEW_QUOTE, targetPageState, buttonState)
    }

    def matrix = api.newMatrix('Customer','Total Value','Action')
    matrix.addRow('CD-00001', 12345, createNewQuoteButton(matrix, 'CD-00001'))
    matrix.addRow('CD-00002', 13206, createNewQuoteButton(matrix, 'CD-00002'))
    matrix.addRow('CD-00003', 23456, createNewQuoteButton(matrix, 'CD-00003'))

    matrix

![ResultMatrix04.png](https://knowledge.pricefx.com/__attachments/a_1daa5c9e04a3531e38014f022d8b8b1bce3db8e48be8458f2e02ff2dfdf67852/ResultMatrix04.png?cb=e38648a142e2700fce9f87c16884e96b)  
See also the [ResultMatrix](https://developer.pricefx.eu/pricefx-api/groovy/master/net/pricefx/formulaengine/scripting/portlets/ResultMatrix.html) Groovy API documentation for a full list of available methods.

---
version: "Latest version"
language: "en"
---
# View Preferences

The whole customized layout (grouping, sorting, fields display, filters, folder selection, number of table rows displayed per page) can be saved as a preference.

1. Click the **Show Table Settings** icon.

   ![ViewPreferences01.png](https://knowledge.pricefx.com/__attachments/a_fdfe9b0d999a5a843648533f2387aef943b34d23071328a44c651a08dd449924/ViewPreferences01.png?cb=3dc1a303d524cdf680384e23c449ac1d)
2. From the drop-down menu select **Save as new preference**.

3. In the dialog, enter a name for the new preference and decide if you want to make it default and/or visible to other users.

   * **Visible to everyone** -- The view will be available from the Preferences drop-down list also to other users (you must have the Manage Global Preferences user role assigned).

     * **Set as default preference for all** -- This global view preference will be selected for all users when they open the application (you must have the Manage Global Preferences user role assigned).

   * **Set as a default preference for me** -- This view preference will be displayed when you open the application. This setting is not available for global preferences (visible to everyone).

4. Click **Apply**.

You can always edit or delete your preference and set a default preference. If you select the **Reset to saved preference** option, all changes are reverted to the saved state of the current preference.

**Note:** If there are new columns unknown to the saved preference (coming, for example, from imported data), they will be visible and displayed at the end of the table. You can hide them by updating the preference.  
See also [How to Set Table View Preferences Based on User Groups and Conditions](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/miscellaneous-howto/how-to-set-table-view-preferences-based-on-user-groups-and-conditions.md).

## Copy a Shareable Link Current Table View

In many tables you can use the **Copy Link** button to quickly share exactly what you see with another user.

When you click **Copy Link**:

* A **short shareable link** is copied to your clipboard.

* The link captures the **current page** , **filters** , and **view preference** (for example, visible columns and their order), so the recipient sees **the same table view** as you do, provided they have access to the underlying data.

The link is constructed using Context Linking elements, for more details see [Context Linking](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/internal-linking-reference/context-linking.md).

* A **notification message** confirms that the link with the current filters has been copied.

* The **Copy Link** button is available only in selected tables. Links are intended for temporary sharing and may expire after some time.

---
version: "Latest version"
language: "en"
---
# Custom Logo and Header Customization

All configuration is located on the Appearance setting page (**System Configuration** \> **Appearance** ). You must click the **Save Changes** button for the changes to take effect.

To reload the page, hit the **Refresh** button ( ![image-20250603-121956.png](https://knowledge.pricefx.com/__attachments/a_677b0b6990ead988c9b8cc56346edc099d8b736f5866d7e9d4520ec1c9546d4a/image-20250603-121956.png?cb=03ac2125409efcbb16bfee8fb06fd70b) ).  
![image-20250603-094114.png](https://knowledge.pricefx.com/__attachments/a_5b10aa946d3b87e81766a01760b0dda4f6a5be3dabe1da4b8998f2678de85944/image-20250603-094114.png?cb=f49159c56331a9273bd81a8e8041db31)

## Display Partition Name

In this section it is possible to set visibility of partition information in the window title and in the application header.  
![image-20250620-153514.png](https://knowledge.pricefx.com/__attachments/a_8817668384969316f4e8f20b97aedbf03879cc14509092109b50e493cd10587a/image-20250620-153514.png?cb=163f9555d39aae3c9f79d5bb8fb49eb9)
Visible partition name

## Custom Logo

In this section you can upload a custom logo and set up URL link which will be opened after clicking this logo. Logo section is available after uploading the logo.

For the logo we recommend a transparent PNG file. Maximum size is 0.5 MB.  
![image-20250603-093909.png](https://knowledge.pricefx.com/__attachments/a_1056b42300a1f3cbcb2dff5dd11ed11dee0d49aabc9f44a64ae02f1dcb2b3577/image-20250603-093909.png?cb=73c7b6939d535f6b514783beabe9d595)
Custom Logo

For the Custom logo URL you have to enter the whole page path including http:// or https:// to ensure correct functionality. There is a basic validation to avoid typos.

## Theme

Here you can customize the visual appearance of the application interface to match your preferences or corporate branding. You can either choose from predefined Pricefx themes or define your own custom theme.

### Pricefx Themes

Select from a set of predefined color themes designed to offer visual consistency across the platform.  
![image-20250620-152829.png](https://knowledge.pricefx.com/__attachments/a_2de5506af4dc2771317d32d474fd4c0b62344b84c481e4d67365542e6d52331c/image-20250620-152829.png?cb=30c4e1eaa1a800c87931331fd934b15a)
Pricefx theme selection

* The default selection is the **dark blue** theme.

* You can switch between two **Navigation styles**:

  * **Dark** (default)

  * **Light**

These themes apply to the navigation bar and related UI elements. You can check the preview of the color theme on the right.

#### Custom Theme

For advanced customization, use the **Custom theme** tab. This option allows you to personalize key interface elements:

##### Navigation Style

* **Background color**: Set a custom background color for the navigation bar.

* **Text \& Icons color**: Define the color of the navigation bar text and icons to ensure optimal contrast with the background.

##### Accent

* **Accent color**: Choose a highlight color used across various UI elements such as buttons or tags.

* **Link color**: Specify the color used for hyperlinks to align with your brand style or visual preferences.

Use the pencil icon to open the color picker and apply your preferred color values.

### Hide the Header (Headless Mode) - *Experimental*

In scenarios like embedding Pricefx into other apps (CRMs), you can hide the top navigation/header.  
![image-20250905-131514.png](https://knowledge.pricefx.com/__attachments/a_669b69d0fb8ddbcf330ad4314084e86048ffdb38810bbbf5c65ac12da7ed496a/image-20250905-131514.png?cb=ba1a9483dc855f517a3ef9aea582f7b7)

#### How to Enable

Append the query parameter to any app URL:

`?headless=true`

Example:

`https://mycompany.pricefx.com/app/#/qc/quotes/2147493027?headless=true`  
**Optional: hide the Back button** : Use this option when the Pricefx screen is embedded in a CRM and you want to maximize iframe space. In such cases, returning to the list view is unnecessary or even undesirable. For details, see [How to Hide Quote Buttons \| Hide 'Back To Quotes' Button](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/quoting-howto/how-to-hide-quote-buttons.md#Hide-%25E2%2580%2598Back-To-Quotes%25E2%2580%2599-Button)

#### Known Limitations (when `headless=true`)

* **No global navigation**

* **No breadcrumbs**

* **No user settings**

* **No logout** **menu**

Ensure users have a clear path to **logout** and **navigate back** when the header is hidden (handled by your host application).

---
version: "Latest version"
language: "en"
---
# Encoding

Throughout the application, the UTF-8 encoding using 1 to 3 bytes per character is used for texts.

* Basic Latin letters, numbers and punctuation use 1 byte.

* European and Middle Eastern letters mostly fit into 2 bytes.

* Korean, Chinese and Japanese ideographs use 3 bytes.

UTF-8 4-bytes (including e.g., emojis) is *not* supported.

## Special Characters

The Pricefx application uses the general collation `utf8_general_ci` to provide good support for most languages (globally). This case-insensitive collation uses a level of normalization which essentially treats special characters as their base characters (e.g., Ä = A, Ö = O, Ü = U, ß = s).

No language specific collations are used.

This affects sorting, comparisons and filtering where special characters are treated as their closest related characters (e.g., Müller is the same as Muller).  
In customer implementations, do not use national special characters in [business keys](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/business-keys-recommendations.md).

If national special characters are present in the data, it is best to replace them in the ETL phase with some other (mutually agreed) combination of characters (such as replacing Å with ?A?).

---
version: "Latest version"
language: "en"
---
# Entitlement Concept

Access to various parts of the Pricefx application is driven by the following entitlement elements:

## User Roles

* Drive access to functionalities (such as Price Lists, Rebate Agreements, Master Data or User Admin).

* The [role list](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin/user-roles.md) is given and cannot be changed.

* User roles are assigned when [creating/editing users](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin.md).

## User Groups

* Drive access to data object details (not headers).

* Groups are created by application admins.

* Can be "overridden" by some [user roles](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin/user-roles.md), e.g., General Admin or User Group Override.

  * Users with such roles will have access to records (and also calculation logic results) "protected by groups" anyway.

* Groups are assigned when [creating/editing users](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin.md).

  * Each user can be a member of one or more groups.

  * In addition, each user can have one group selected as the default group for viewing and another group as the default group for editing. These groups are then automatically pre-selected for new objects created by the user -- if this is enabled (per object type) in **Administration** \> **Configuration** \> **Entitlements**.

A user can always see the object in a list of objects, but access to a detail (either View or Edit) is driven by Groups.

Even if the user cannot see a particular object in detail (because of the group restriction), they will still be able to see the header of the object, e.g., the short Quote info in the list of Quotes.

If you want to completely hide objects from the list page for groups that are not entitled to see them, add the following [advanced configuration options](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/advanced-configuration-options.md) and set their value to *true*:  

|      **Object**       |     **Advanced Configuration Option**      |
|-----------------------|--------------------------------------------|
| Quotes                | `hideQuotesBasedOnUserGroups`              |
| Agreements/Promotions | `hideContractsBasedOnUserGroups`           |
| Rebate Agreements     | `hideRebateAgreementsBasedOnUserGroups`    |
| Rebate Records        | `hideRebateRecordsBasedOnUserGroups`       |
| Compensation Plans    | `hideCompensationsBasedOnUserGroups`       |
| Compensation Records  | `hideCompensationRecordsBasedOnUserGroups` |
| Company Parameters    | `hidePPTablesBasedOnUserGroups`            |
| Product Extensions    | `hidePXTablesBasedOnUserGroups`            |
| Customer Extensions   | `hideCXTablesBasedOnUserGroups`            |
| Seller Extensions     | `hideSXTablesBasedOnUserGroups`            |

If you need to restrict visibility of Products or Customers in the list, you can use the [Product or Customer Filter](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin.md).

### User Group (Edit) / User Group (View Details)

It is possible to restrict which user groups can edit / view details of individual objects, such as Quotes or Price Lists. These restrictions work in the following way:

1. If they are not set (which is the default state), the object can be viewed/edited by all users.

2. 'Edit' always includes 'View': if you qualify for edit, you can also view the object.

* It makes no sense to set the 'View Details' restriction and leave 'Edit' empty. As stated above, if 'Edit' is not set, the object can be viewed by all users. See the [matrix below](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/entitlement-concept.md#PossibleCombinations).

* In a duplicate, the 'Edit' group is removed if the duplicating user is not its member.

![EntitlementConcept01.png](https://knowledge.pricefx.com/__attachments/a_195b55e420db17e0dfe71cb869e8645fb36bcff9aa2e15c7f69d075265870678/EntitlementConcept01.png?cb=9ab0f2aef12f39bcdf6f86e8ed7271ff)

#### Possible Combinations

Explanation:

* "Another group" = I am not a member of the group which is defined.

* "My group" = I am a member of the group which is defined.

* "--" = No group is defined, the field is left empty.

| **User Group (Edit)** | **User Group (View)** |                  **Result**                   |                                                                   **ibComment**                                                                   |
|-----------------------|-----------------------|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| --                    | --                    | I can do all actions (duplicate, edit, view). | No Edit/View group defined = no entitlement implied.                                                                                              |
| Another group         | Another group         | I cannot do any action.                       |                                                                                                                                                   |
| Another group         | --                    | I cannot edit; I can view and duplicate.      | No View group defined = no viewing restriction implied. When I create a duplicate and I am not a member of the Edit group, this group is removed. |
| --                    | Another group         | I can do all actions (duplicate, edit, view). | No Edit group defined = no entitlement implied. Edit setting includes the View setting.                                                           |
| My group              | My group              | I can do all actions (duplicate, edit, view). |                                                                                                                                                   |
| My group              | --                    | I can do all actions (duplicate, edit, view). | Edit setting includes the View setting.                                                                                                           |
| --                    | My group              | I can do all actions (duplicate, edit, view). | No Edit/View group defined = no entitlement implied.                                                                                              |
| My group              | Another group         | I can do all actions (duplicate, edit, view). | Edit setting includes the View setting.                                                                                                           |
| Another group         | My group              | I cannot edit; I can view and duplicate.      | When I create a duplicate and I am not a member of the Edit group, this group is removed.                                                         |

## Business Roles

Business Roles allow you to create a combination of roles and groups and assign it to users.

For details see [Business Roles Admin](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin.md#BusinessRolesAdmin).

## PA Specific Settings

Access to data in Analytics can be restricted by using groups for which you create filters.

For details see [Set Data Entitlement in Data Source](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics/data-manager/data-sources/how-to-set-data-entitlement.md).

## Other Modules Specific Settings

* For each user you can define a [Product or Customer Filter](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin.md) which allows you to create an individual restriction on accessing the data in all modules except Analytics. This entitlement option can be useful for e.g., setting up sales rep user accounts in Pricefx.

* On the [Module Categories](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/module-categories.md) page, you can use user groups to control the access to elements that belong to the Module Categories.

## Troubleshooting: A User Cannot Create a Document

Pricefx runs two entitlement checks when a user creates a document: a Quote, an Agreement/Promotion, a Rebate Agreement or a Compensation Plan. The error message names the check that failed. Read the message before you change any setting.  

|                        **Message**                        |                                                                            **What it means**                                                                            |                                                                                                           **What to check**                                                                                                           |
|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Not authorized for command                                | The user does not have a User Role with the update permission for this document type. Creation checks the update permission, not a separate create permission.          | The User Roles assigned to the user. See [User Roles](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin/user-roles.md).                                                               |
| View and edit is restricted by formula entitlement filter | An Entitlement Filter logic blocked the action. The logic decides which Quotes, Agreements/Promotions, Rebate Agreements and Compensation Plans the user can work with. | The Entitlement Filter logic in **Administration** \> **Logics** . See [Add New Calculation Logic](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/logics/calculation-logics/add-new-calculation-logic.md). |

Pricefx runs the checks in this order. It checks the User Role first. It checks the Entitlement Filter logic second.  
A change of User Roles or User Groups has no effect on the Entitlement Filter logic.

User Groups do not block creation. They drive access to the details of an existing object.

---
version: "Latest version"
language: "en"
---
# Folders

Folders let you organize related items such as Dashboards and Customer records into a structured hierarchy instead of a single flat list. The same folder sidebar, sorting, and Folder column are available consistently across all supported pages, so you can sort or filter by Folder wherever it appears.  
![FoldersScreen.png](https://knowledge.pricefx.com/__attachments/a_7de17e2255b7fef302b19b7e4d11bb5fd3ec30a27cee9f1732ebb878455c0f60/FoldersScreen.png?cb=934727e60c06f97447826b9c7ed83edb)

## Folder Sidebar

The folder sidebar displays the folder structure for a listing in a left-hand panel. The folder sidebar includes an **All \[Item Type\]** section that lists all items regardless of folder, for example **All Queries** or **All Portlets**.  
The folder sidebar is labeled **Folders** in the application.

## Actions with Folders

You can perform the following actions with folders in the folder sidebar:

* **Create Folder** -- Creates a new folder to organize items.

* **Rename** -- Changes the name of an existing folder.

* **Delete** -- Removes a folder.

* **Sort** -- Changes the order in which folders appear in the folder sidebar.

* **Filter** -- Filters items based on the **Folder** column.

### Add Folder

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the **Folders** panel, click the **Create Folder** icon ![Add Folder Icon](https://knowledge.pricefx.com/__attachments/a_70034f69ac2ee0f75a38dbd7671d1a475bb055d378cce8b4ab9f81b56dadfdfe/AddFolderIcon.png?cb=3eed286002b798c5e9b09c3fe05a942d) .

3. In the **Add Folder** dialog:

   1. Enter a name for the folder in the **Enter folder name** field.

   2. Click **Add Folder**.

### Add Subfolder

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the **Folders** panel, select the folder you want to add a subfolder to.

3. Click the **Create Folder** icon ![Add Folder Icon](https://knowledge.pricefx.com/__attachments/a_70034f69ac2ee0f75a38dbd7671d1a475bb055d378cce8b4ab9f81b56dadfdfe/AddFolderIcon.png?cb=3eed286002b798c5e9b09c3fe05a942d) .

4. In the **Add Folder** dialog:

   1. Enter a name for the subfolder in the **Enter folder name** field.

   2. Click **Add Folder**.

      ![AddSubfolderSteps.png](/__attachments/a_f6d1f95d508d05604c258f7216b7f92914a9892213ea60efbe11b8235a5e8200/AddSubfolderSteps.png?cb=4c06f69b17e6d893f07415fbf5a414d9)

### Rename Folder

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the **Folders** panel, hover over the folder you want to rename.

3. Click the ⋯ icon.

   ![MoreOptionsIcon.png](https://knowledge.pricefx.com/__attachments/a_36c9b7d00107b35318bea716f57a570f3fb0919f74ac5ec4b895534bac64c83b/MoreOptionsIcon.png?cb=b6199711f772883177aff6a59af7a108)
4. Select **Rename**.

5. In the **Rename Folder** dialog:

   1. Enter the new folder name in the **Enter new folder name** field.

   2. Click **Rename Folder**.

### Delete Folder

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the **Folders** panel, hover over the folder you want to delete.

3. Click the ⋯ icon.

   ![MoreOptionsIcon.png](https://knowledge.pricefx.com/__attachments/a_36c9b7d00107b35318bea716f57a570f3fb0919f74ac5ec4b895534bac64c83b/MoreOptionsIcon.png?cb=b6199711f772883177aff6a59af7a108)
4. Select **Delete**.

5. In the confirmation dialog:

   1. Click **Delete**.

### Sort Folders

You can sort folders in the folder sidebar by Created date or alphabetically. The following table lists the available sort options. These options help you organize content and locate items faster, whether you group items by folder or search for content stored in a specific folder.  

|        **Sort Option**        |                                      **Description**                                      |
|-------------------------------|-------------------------------------------------------------------------------------------|
| **Default**                   | The default sort mode keeps the current folder order until you select a different option. |
| **Name (A-Z)**                | Sorts folders alphabetically from A to Z.                                                 |
| **Name (Z-A)**                | Sorts folders alphabetically from Z to A.                                                 |
| **Created (Newest - Oldest)** | Sorts folders by creation date, from newest to oldest.                                    |
| **Created (Oldest - Newest)** | Sorts folders by creation date, from oldest to newest.                                    |

Sort order applies to subfolders as well as top-level folders. When you select a sort option, folders at every level of the hierarchy are reordered accordingly.

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the **Folders** panel, click the sort control.

   ![SortFolderControl.png](https://knowledge.pricefx.com/__attachments/a_93200609d7ec10ca3f7badeb01e673e6a30d50f226550dd6c0354ebe295ec27f/SortFolderControl.png?cb=3782c43965c45b5d731c7bd46bc6d000)
3. Select a sort option from the list:

   * **Name (A-Z)**

   * **Name (Z-A)**

   * **Created (Newest - Oldest)**

   * **Created (Oldest - Newest)**

Your chosen sort order is stored in your browser's local cache. It persists between sessions on the same browser until you change it again or clear your browser cache. This setting is separate from your table sort preferences, so changing the folder sort in the folder sidebar does not affect how the table itself is sorted.

## Filter Folders

You can filter the table by the Folder column using the standard table filtering controls.

1. Navigate to a supported page.

   ![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) See the [list of supported pages](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/folders.md#PagesWithFolders).

2. In the table header, locate the **Folder** column.

3. Click the **Search** field under **Folder**.

4. Enter the folder name you want to filter by.

5. Press **Enter**, or click outside the field, to apply the filter.

   ![TableFilterApplied.png](https://knowledge.pricefx.com/__attachments/a_4ebb52f56665739e7475ac9d095489dd183e6bb1f734295e711eee56ae2efcde/TableFilterApplied.png?cb=01cece35dcbe33ce66f4c40842673b56)

## Reverting Filter

To return to the unfiltered view after applying a folder filter, click the **All \[Item Type\]** button (for example, **All Dashboards** on the Dashboards page, or **All Portlets** on the Portlets page). This button label changes to match the page you are on, but it always restores the view to show all items regardless of folder.

## Pages with Folders

Folders are available on the following pages:  

|          **Page**          |                             **Path**                             |
|----------------------------|------------------------------------------------------------------|
| Dashboards                 | `/dashboards`                                                    |
| Dashboards Admin           | `/administration/configuration/dashboard-configuration/dc-admin` |
| Data Analyzer (All Charts) | `/pa/data-analyzer/*`                                            |
| Portlets                   | `/pa/dashboard-manager/portlets`                                 |
| Queries                    | `/pa/dashboard-manager/queries`                                  |
| Price Lists                | `/pb/pricelists`                                                 |
| Manual Price Lists         | `/pb/manualpricelists`                                           |
| Live Price Grids           | `/pb/lpgs`                                                       |
| Customers                  | `/md/customers`                                                  |
| Compensation Plans         | `/sc/compensation-plans`                                         |
| Rebate Agreements          | `/rm/rebate-agreements`                                          |
| Agreements \& Promotions   | `/pm/contracts`                                                  |
| Custom Forms               | `/pa/custom-forms/`                                              |
| Company Parameters         | `/parameters`                                                    |
| Quotes                     | `/qc/quotes`                                                     |

## Folder Column in Tables

Listings that support folder structure include a Folder column in the table. This column shows the folder to which each item belongs.

### Subfolder Paths

If a folder contains a nested structure, the **Folder** column displays the deepest folder name, and a tooltip shows the full subfolder path when you hover over it. Individual segments of the path are not currently clickable.  
![SubfolderPath.png](https://knowledge.pricefx.com/__attachments/a_b5df5e7a29d7203ccb55bcdb16b5b7fbd84f324a735027425385653945692a7b/SubfolderPath.png?cb=95910bfa26bdada3c063a186a9f53d13)

## Related Table Actions

For general information about sorting, filtering, and other shared table controls not specific to folders, see [Common Table Actions](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions.md).

---
version: "Latest version"
language: "en"
---
# Home Page

Home page is the application's landing page which displays after login for all users. It can also be displayed after clicking the Pricefx logo in the left-hand top corner or in the module menu. You can set some other page as your homepage -- [see below](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/home-page.md#SetYourOwnStartPage).

The Home page consists of portlets that can be freely added or removed depending on what kind of information you want to see. By default, the Home page contains all the available portlets. Portlet availability depends on your entitlements.

If there are many portlets on the canvas, making the content difficult to read, you can open a portlet in a pop-up window by clicking the **Expand** ![IconExpand.png](https://knowledge.pricefx.com/__attachments/a_cfaa30719dc8f182d512bb03902430f8e5e8d8aeed9ef3d4e51c6e2782cd93fe/IconExpand.png?cb=6167abd9c79384d3352259accd50d99a) icon.

The following portlets can be displayed:

* **Product Quick Search** -- Displays documents that contain a certain [product](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/master-data/products.md). You can type part-id or label of a product for a quick search through all directly related objects (Price Lists, Live Price Grids, Quotes, Manual Price Lists -- but not Rebate Agreements or Agreements \& Promotions). You need to enter at least four characters to activate the search -- this limit helps you get a more manageable number of search results.

* **My Dashboards** -- All [dashboards](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/dashboards.md) you can access. Dashboards are organized in a folder structure based on their [Category](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/dashboards-configuration/how-to-create-a-dashboard.md). If you click the label of a dashboard, a new tab with the respective dashboard will open.

* **My Charts** -- All saved [charts](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics/data-analyzer/charts.md) that you can access. Charts are organized in folders to which they have been added on save. If you click a chart in the list, a new tab with the chart opens.

* **My Claims** -- All [claims](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/channel-management.md) that you are entitled to see or edit. Click the Name or Label to display the claim's details.

* **My ToDo List** -- All [tasks](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/todo-admin.md) assigned to you by the system (or other users). If there is a link, you can click the Item column and a new tab with the item will open. See how to make this section [always displayed](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/advanced-tips-howto/how-to-make-home-panels-always-visible.md) (even if it is empty).

* **My Actions** -- All pending [actions](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/actions.md) assigned to you. You can edit the action or change its status from this portlet. Click the Name or Summary to open the action's detail.

* **My Pending Approvals** -- All objects you need to approve. Click the Name or Label to display the document details.

  In the Approval Delegation column, the possible values are:

  * **Delegated** -- Approval tasks originally assigned to other user that have been delegated to you.

  * **None** -- Approval tasks assigned directly to you -- no delegation.

  * **Combined** -- Approval tasks that are both assigned to you and have been delegated to you by other user (when multiple approvers are assigned).

* **My Pending Creation Workflows** -- All draft documents requiring your input. See the section [Document Creation Workflow](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/workflows/document-creation-workflow.md).

* **My Pending Reviews** -- Displays a list of pending [collaboration workflow](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/guides/workflows/collaboration-workflow.md) reviews.

* **Document Quick Links** -- Displays links to various document types (Price Lists, Live Price Grids, Quotes, Agreements \& Promotions). After clicking a link, new browser tab opens displaying the list page of the selected document type (only documents that the user is entitled to see are visible).

* **Price Lists** -- A list of all [Price Lists](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/price-setting/price-lists.md). Click the Name of a Price List that you are entitled to view to display its details.

* **Price Grids** -- A list of all [Live Price Grids](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/price-setting/live-price-grids.md). Click the Label of an LPG that you are entitled to view to display its details.

* **Rebate Agreements** -- A list of all [Rebate Agreements](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/rebates.md). Click the Name or Label of a Rebate Agreement that you are entitled to view to display its details.

* **Agreements \& Promotions** -- A list of all [Agreements \& Promotions](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/agreements-promotions/agreement-promotion-documents.md). Click the Name or Label of an Agreement/Promotion that you are entitled to view to display its details.

* **Quotes** -- A list of all [Quotes](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/quoting/quotes.md). Click the Name or Label of a Quote that you are entitled to view to display its details.

* **Compensation Plans** -- A list of all [Compensation Plans](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/sales-compensation/compensation-plans.md). Click the Name or Label of a Compensation Plan that you are entitled to view to display its details.

* **Custom Forms** and **Module Categories** -- A list of any existing standalone [Custom Forms](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/custom-forms.md) and [Module Categories](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/module-categories.md).

* **My Dashboard Actions** -- displays all pending actions assigned to the user based on a specific Dashboard. Provides a contextual overview of actions linked to the Dashboard and user identifiers, enabling them to effectively manage actions created from the Dashboard. My Dashboard Actions feature allows to view a Dashboard with sales performance data and see which actions are assigned for completion.

## Preferences

When you have your Home page configuration ready, save it as a new [View Preference](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/common-table-actions.md#SavingViewPreferences). The preference will include the following customizations:

* Size or position of portlets.

* All table customizations (column order and size, hidden columns, sorting, filtering, etc.).

Click the **Home Screen Options**icon to open the preference management menu.  
![HomePage01.png](https://knowledge.pricefx.com/__attachments/a_7dede6791abdef67692d6818cef1f964db6d0401e42c58cda47cc61dd5649624/HomePage01.png?cb=7d41befb0effe741049d85b454cead06)

In the menu, you can:

* Save your customizations as a new preference.

* Update the currently selected preference with your changes.

* Reset to the currently selected preference as it has been last saved.

* Manage the saved preferences (choose your default preference or delete the unnecessary ones).

If you are not happy with your layout changes, click the **Refresh** icon to return to the default Home page definition.

## Set Your Own Start Page

If you want to display some other page as your landing page, go to **Administration** \> **Feature Flags** and change the value of the `rootPage` flag. For a list of possible options see the [Access Routes](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags.md#AccessRoutes) section.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) When you change the landing page, you can still access the Home page from the [User menu](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/application-menus.md#UserMenu).

---
version: "Latest version"
language: "en"
---
# Language and Locale

This section explains how to set the language and locale for the application.

* *Language* refers to the language used for application labels and messages. The list of available languages is [here](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md).

* *Locale* is a set of parameters that defines the user's language, region and any special variant preferences that the user wants to see in their user interface. The display settings include number formatting, date-time format, currency format and some others.

  For example, the locale determines if the decimal separator in numbers will be a point or a comma. The locale en_us (US English) will use a decimal point (25.7) while the locale de_de (German) will display a decimal comma (25,7).

  Locale can be set at the partition level by the administrator or by users for their own user account.

## Setup Options

* Partition-wide setting -- for language and locale

  * Done by admins via URL (non-overridable) or feature flags

* User settings -- for language and locale (if not blocked by partition setting)

  * Done by users in [User Settings](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/application-menus.md)

### Admin

The best option for an administrator to set the locale and language for all users in the partition is by the URL parameters `locale` and `uiLanguage` (e.g., locale=en_US\&uiLanguage=en). This settings cannot be overridden by users by any other settings in the application or in the web browser.

If using URL parameters is not an option for you, then you can only control the default language and locale that is applied if the user has no settings in the local web browser storage. You have to:

1. Make sure the auto detection of browser language is disabled (the `autodetectLanguage` and `autodetectLocale` feature flags).

2. Set the default partition locale and language using the following [feature flags](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags.md):

   * **intlCode** -- Sets the locale. The possible values are listed in the Locale column in [Localization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md).

   * **pfxCode** -- Sets the language. The possible values are listed in the ISO 639-1 column in [Localization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md).

If you enable language and locale auto-detection, then the user settings in the browser (preferred language) will always be applied.

### End User

If the language and locale is not set by the admin in the URL (you cannot override this), then you can set your preferred locale. Your options differ depending on which platform you are using.

#### Pricefx Standalone App or SAP C4C, MS Dynamics Users

You can set your locale preference in the Configuration section.

Go to **User menu** \> **User Settings** and select an option from the **Locale (display format)** and **UI Language** drop-down lists.  
![SetLanguageAndLocale02.png](https://knowledge.pricefx.com/__attachments/a_580c8812b085a3acc61e6fde6f12120097aeebca85391fa81af6cdc25cd848c0/SetLanguageAndLocale02.png?cb=b66337bef4aec05f2548733b933a4b22)

If this is not set, the application will detect and use the language and locale settings of your *web browser* -- however, this automatic detection has to be enabled by the admin!

To check your browser settings, go to:

* In **Chrome** -- Preferences \> Advanced \> Languages

* In **Firefox** -- Preferences \> General \> Language

* For **MS Edge** or **Safari**, you have to set the preferred language(s) in the system preferences.

#### Salesforce Users

If you use the application as a canvas app in Salesforce, you can set the language and locale in **My Settings \> Language \& Time Zone**. This setting has priority over any setting in the app's Configuration and also over your web browser language setting.  
![SetLanguageAndLocale01.png](https://knowledge.pricefx.com/__attachments/a_86c1077468d6350f128e6259eef34ed1bdf19b11202313808ec035dd468286f7/SetLanguageAndLocale01.png?cb=6da830554bea4fa3eb8556ff881353e5)  
See also:

* [How is the interface language set?](https://knowledge.pricefx.com/getting-started/latest-version/frequently-asked-questions.md#How-is-the-interface-language-set?)

* [Localization](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md)

* [Encoding](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/encoding.md)

---
version: "Latest version"
language: "en"
---
# Localization

The application UI is localized in the following languages:  

|--------------|---------------|-----------------------------------------------------------------------|
| **Language** | **ISO 639-1** | **Locale**(number formatting, date-time format, currency format etc.) |
| English      | ^en^          | ^en-gb, en-us, en-ca^                                                 |
| German       | ^de^          | ^de-de, de-ch^                                                        |
| French       | ^fr^          | ^fr-fr, fr-ca, fr-ch^                                                 |
| Spanish      | ^es^          | ^es-es, es-pr, es-us, es-mx, es-bo^                                   |
| Portuguese   | ^pt^          | ^pt-pt^                                                               |
| Polish       | ^pl^          | ^pl-pl^                                                               |
| Swedish      | ^sv^          | ^sv-se^                                                               |
| Norwegian    | ^no^          | ^nb-no^                                                               |
| Finnish      | ^fi^          | ^fi-fi^                                                               |
| Dutch        | ^nl^          | ~nl-nl~                                                               |
| Italian      | ^it^          | ^it_it^                                                               |

See also:

* [Language and Locale](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/language-and-locale.md) -- Explains how to set the language and locale for the application.

* [Encoding](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/encoding.md) -- Explains why national special characters cannot be used for sorting, filtering and business key purposes.

* [Internationalization](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/internationalization.md) -- Using this functionality you can rename (or even translate) all user interface labels for your partition.

* [Datamarts](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics/data-manager/datamarts.md) -- Use the translation editor to localize Datamart field labels.

* [Dynamic tabs in documents](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/miscellaneous-howto/how-to-translate-tab-labels-in-dynamic-tabs.md) -- Add tab label translations to the JSON configuration.

* [Module Category](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/miscellaneous-reference/module-category-mca.md) and [Custom Form Type](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/custom-forms-reference/custom-form-type-cfot.md) -- Add label translations for multiple languages in the Module Category / Custom Form Type configuration.

---
version: "Latest version"
language: "en"
---
# Login Page

Before you can start working in Pricefx, you have to log in. This section summarizes the basic information about how to log in, how security issues are handled and how the default settings can be changed.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) It is possible to have the login screen displayed in a different language -- simply select your preferred language at the bottom of the page. See which [languages are supported](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/localization.md).

The selected language will be added as a parameter to the URL and the UI will be displayed in this language after login.  
![LoginPage01.png](https://knowledge.pricefx.com/__attachments/a_d68d6a6ca9cf5c51fc2e0c75712ec96e75aae8c709827717945f8184b49ec880/LoginPage01.png?cb=42073335aef9d0dacfa5717c1206d711)

## How to Log in to Pricefx

To successfully log in to the application, you need to enter:

* Your user name as provided by the administrator.

* The name of the partition that you are logging into. Provided to you by the admin.

* Your password. The initial password is provided by the admin and it is strongly recommended that you change it after the first login (go to **User Profile** \> **Change Password**).

* In case two-factor authentication is enabled, you are required to enter also a valid token (e.g., a code sent to your mobile phone). Your admin will provide all necessary details.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) It is possible to log in to several partitions on different tabs of the same browser window.

### Security Features

To ensure maximum security and prevent unauthorized access to the application, the following rules apply:

* After five *unsuccessful login attempts*, the user will be blocked for 30 minutes. The error message will never specify what exactly is wrong (invalid username, password or partition name) in order to make life for the attacker harder. You may contact the Support to have the user unbanned if waiting for 30 minutes is not acceptable.

* After a specified period of *inactivity* (30 minutes by default), the user is automatically logged off.

* The user is also logged off immediately after *closing the browser* (not the browser tab).

## Login Configuration

Administrators can change some of the default settings in the [Configuration](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration.md) section. These settings apply to the current partition.

* User settings -- You can set/change the password and password expiry date or enable two-factor authentication (TFA). Go to the [User Admin](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/access-admin/user-admin.md) section to make these settings.

* Application settings -- You can disable automatic re-login after the user session expires or enforce TFA for all users. Go to **Administration** \> **Configuration** \> [General Settings](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/general-settings.md).

* Single sign-on -- Pricefx supports single sign-on (SSO) with SAML. See the [SAML Configuration](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/external-systems/saml-configuration.md) section for details.

Other settings (inactivity period, the tolerated number of failed logins, user ban period) are configurable per cluster and you need to ask Pricefx Support if you require any changes.

---
version: "Latest version"
language: "en"
---
# Pricefx Terminology

This page contains the Basic Pricefx Terminology.  

|            **Term**            |                                                                                                                                                                                                                                                                  **Description**                                                                                                                                                                                                                                                                   |
|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Access Admin                   | Access Admin is an area where the user management is taking place.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Accrual                        | The accounting method that recognizes revenue and expenses when they are incurred, regardless of when cash transactions occur. This method aligns with the matching principle, ensuring that income is recorded in the period it is earned and expenses are recorded in the period they are incurred. Accrual accounting provides a more accurate financial picture of a company's financial status by reflecting all earned revenues and liabilities.                                                                                             |
| Accrual Record                 | Accrual records are essential for providing a more accurate representation of a company's financial position, as they include obligations and income that may not be visible through cash-based accounting. Examples of accrual records include accounts receivable (for revenue earned but not yet received) and accounts payable (for expenses incurred but not yet paid). These records help in tracking performance and financial health over accounting periods by matching income with related expenses.                                     |
| Action                         | Actions can come from the Actions tab that can be added to Quotes, Agreements/Promotions, Rebate Agreements, Deal Plans and Custom Forms. Actions can be created manually from Analytics Data Table, charts or Dashboard portlets. Actions can also be created automatically by Actionable Insight Watchers. Actions can be grouped together by their nature/assignee under several steps/tabs. These action bundles are called Action Plans and are delivered by Actionable Insights Accelerator.                                                 |
| Action Type                    | The content of Actions is defined by Action Types where you specify tabs, inputs and outputs.                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Active Price                   | The current approved price.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Advanced Configuration Options | The Advanced Configuration Options in Pricefx are stored as key/value pairs and can be accessed in the Administration section. Some options do not have a user interface (UI) equivalent and must be set manually.                                                                                                                                                                                                                                                                                                                                 |
| Agreement \& Promotion         | The Agreements \& Promotions module allows you to define and manage the complex area of: Discounts at different customer and/or product hierarchies. Price promotions and campaigns. Net prices, mainly in connection with the structures defined in the backend ERP systems. All kinds of special price conditions. Customer or product specific overviews of all existing conditions or special prices.                                                                                                                                          |
| Analytics                      | In the Analytics module you can get visibility into prices and margins.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Appearance                     | Partition-wide appearance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Approval                       | Action that is performed by approval steps within an approval workflow that require approval from a specific user or group                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Approval Workflow              | A process of approving the quotes when the content of the quote does not fit into the defined thresholds (e.g., minimum margin). Approval workflows should be programmed in the calculation logic. There could be multiple approval workflows connected to different user groups in the Pricefx software.                                                                                                                                                                                                                                          |
| Base Price Grid                | Base Price Grid is a pre-defined pricing structure used to store and manage prices for specific product or service combinations.                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Base Price List                | Pre-defined list of prices that serve as the foundation for price calculations. It is a static list of price values that are used to determine the final price of a product or service.                                                                                                                                                                                                                                                                                                                                                            |
| BoM                            | A Bill of Materials (BOM) is a comprehensive list that outlines all the components, parts, and materials required to manufacture a finished product.                                                                                                                                                                                                                                                                                                                                                                                               |
| BoM Tree                       | A Bill of Materials (BOM) Tree is a hierarchical representation of the components, sub-assemblies, and materials required to manufacture a finished product. It visually illustrates the relationship between various parts, showing how individual components combine to form larger assemblies.                                                                                                                                                                                                                                                  |
| Business Key                   | Business key (also called "primary key") is a column which uniquely identifies each row in the data. For example, it can be a customer number in a CSM system or SKU number for a product. The business key value can come from a single column or can be composed of several columns (to achieve uniqueness).                                                                                                                                                                                                                                     |
| Business Roles                 | Business Roles is a tool that combines user roles and user groups for a certain level of access to the software.                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Calculated Field Sets          | A Calculated Field Set (CFS) is a data enrichment, transformation, and manipulation task that is used to enrich, modify, or transform clean values of columns in data tables (e.g., Products, Customers, Extensions, Company Parameters, etc.).                                                                                                                                                                                                                                                                                                    |
| Calculation                    | Calculation refers to a mathematical expression or formula used to determine a value or a result. Calculations are used to perform various tasks, such as: Pricing, Revenue management, Incentives, Discounts.                                                                                                                                                                                                                                                                                                                                     |
| Calculation Context            | A Calculation Context is a set of predefined rules, constraints, and data values that are applied to a calculation flow or model to determine the final price or value of a product or service.                                                                                                                                                                                                                                                                                                                                                    |
| Calculation Flow               | A Calculation Flow is a visual representation of the calculation steps and the flow of data used to determine the final price or value of a product or service. It is a modular and customizable workflow that can be integrated with other PriceFX features.                                                                                                                                                                                                                                                                                      |
| Calculation Grid               | Calculation Grids are intended for working with a large amount of row-like data (items) that are not tied to SKUs and therefore cannot be processed in Price Lists, Live Price Grids or Quotes. With Calculation Grids you are able to modify, execute and store data like supplier costs, promotions, etc.                                                                                                                                                                                                                                        |
| Calculation Input              | Calculation Input refers to the data or parameters used to determine the value of a calculation. Calculation inputs can include a wide range of data, such as: Product attributes (e.g., price, weight, quantity), Customer information (e.g., customer type, region, tier), Sales data (e.g., sales history, revenue targets), Market data (e.g., competitor pricing, industry trends).                                                                                                                                                           |
| Calculation Items              | Calculation Items are pre-defined components used to calculate prices, discounts, and other values. They are building blocks of calculations and can be combined to create complex pricing rules.                                                                                                                                                                                                                                                                                                                                                  |
| Calculation Logic              | A Calculation Logic is a program in Groovy programming language written as a sequence of one or more Groovy scripts executed in the defined order. It is used for various calculations.                                                                                                                                                                                                                                                                                                                                                            |
| Calculation Output             | Calculation Output refers to the result of a pricing or revenue management calculation. A calculation output can take many forms, including: Prices (e.g., list price, sale price, discount price), Revenue (e.g., total revenue, margin, profit), Discounts or surcharges.                                                                                                                                                                                                                                                                        |
| Calculation Results            | Calculation Results are the output of a calculation, such as a pricing calculation, a price analysis, or a what-if scenario. They display the results of a calculation, providing insights and visibility into the data.                                                                                                                                                                                                                                                                                                                           |
| Calculation Step               | A Calculation Step is a single step or operation performed during a calculation, such as a price calculation. Each step is a logical process that transforms input data into output data.                                                                                                                                                                                                                                                                                                                                                          |
| CFS Action                     | Calculated Field Set Action.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Change Request                 | A Change Request is a request to modify an existing pricelist, live price grid, or other pricing configuration. It is a way to submit changes to the pricing team or manager for approval.                                                                                                                                                                                                                                                                                                                                                         |
| Channel Management             | Channel Management is a feature that enables businesses to manage and optimize their distribution channels, such as dealers, wholesalers, or retailers. It allows users to define and oversee all aspects of channel management,                                                                                                                                                                                                                                                                                                                   |
| Chart                          | A standard pricing charts available by default in the Analytics within the Data Analyzer.                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Claim                          | A Claim is a request for payment or reimbursement made by a customer, typically based on a specific agreement, quote, or contract. In Pricefx, Claims are used to automate the process of processing customer transactions, such as invoices, credits, and refunds, and to ensure that the correct pricing and allocation rules are applied.                                                                                                                                                                                                       |
| Claim Records                  | The table containing the approved claims' records to be processed and paid out.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Claims Types                   | An area where the pre-programmed types of claims calculation are displayed. The types are used to create claims with pre-defined parameters.                                                                                                                                                                                                                                                                                                                                                                                                       |
| Company Parameters             | Company Parameters define the rules, tables or values used in price calculation. During price calculation, based on the calculation logic, values from the tables and rules are used (via the VLookup command). For example, if you use a volume discount in your price calculation, you need to set up and maintain a parameter table with volume breaks and discount values.                                                                                                                                                                     |
| Compensation                   | Compensation refers to the Sales Compensation module, which is used to manage sales compensations, such as commissions, incentives, and bonuses paid to sales agents or partners. This module allows you to create and manage compensation plans, which define the rules and formulas for calculating sales compensations based on various criteria, such as sales performance, product sales, or customer acquisition.                                                                                                                            |
| Compensation Condition         | A Compensation Condition is a specific rule or requirement that must be met in order for a sales agent or partner to receive a compensation payment. A Compensation Condition is typically defined within a Compensation Plan and is used to calculate the amount of compensation that is owed to a sales agent or partner.                                                                                                                                                                                                                        |
| Compensation Plan              | A Compensation Plan is a comprehensive outline that defines the rules and formulas for calculating sales compensations, such as commissions, incentives, and bonuses, for sales agents or partners.                                                                                                                                                                                                                                                                                                                                                |
| Concurrency Key                | A Concurrency Key is a unique identifier used to manage concurrent or simultaneous updates to data, such as master data or transaction data, by multiple users. The purpose of a Concurrency Key is to prevent data conflicts or inconsistencies that can occur when multiple users work on the same data at the same time. By assigning a unique Concurrency Key to each data record, Pricefx ensures that only one user can update the record at a time, thereby maintaining data integrity and preventing errors.                               |
| Condition                      | A Condition in Pricefx is a rule or requirement that must be met in order for a claim, quote, agreement, or other transaction to be processed or approved.                                                                                                                                                                                                                                                                                                                                                                                         |
| Condition Filter logic         | Condition Filter Logic is a feature that allows you to define a logic that filters the values available for users in the Condition Type picker when adding items to a Compensation Plan.                                                                                                                                                                                                                                                                                                                                                           |
| Condition Type                 | A Condition Type is a building block of Agreements and Promotions in Pricefx. It defines the calculation logic and specifies user input parameters that provide data to the calculation. Each line item in an Agreement/Promotion is of a specific Condition Type, which determines how the contract is calculated.                                                                                                                                                                                                                                |
| Configuration Wizard           | Configuration Wizard is an area to modify different pricing setups in a simple, step-by-step way without programming knowledge.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Contracts                      | Pricefx functional areas where users can create and manage contracts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Custom Columns                 | Lists all output elements returned by the pricing logic and configured to be shown in the Live Price Grid.                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Customer                       | Customer Data Source contains information/attributes about customers which you use for analysis of transactions or customers in a Datamart.                                                                                                                                                                                                                                                                                                                                                                                                        |
| Customer Extension             | The Customer Extension (CX) is a feature in Pricefx that allows you to store and manage customer-specific attributes that don't fit into the standard Customer table. These attributes can be used in price calculations and can have a one-to-many relationship with a customer.                                                                                                                                                                                                                                                                  |
| Dashboard                      | A graphical user interface that provides at-a-glance views of key performance indicators relevant to a particular objective or business process.                                                                                                                                                                                                                                                                                                                                                                                                   |
| Data Feed                      | Data Feed table allows you to upload raw data which is potentially not in a good condition (bad formatting, ...) and can include unwanted or duplicate rows. Data in the Data Feed is then cleaned with a Data Load process and uploaded into a Data Source.                                                                                                                                                                                                                                                                                       |
| Data Load                      | A Data Load represents a task/process for data manipulation between Analytics objects, such as uploading data from Data Feed to Data Source, deleting rows from Datamart or calculation of new values of the fields. Most Data Loads are created automatically (when you deploy a Data Source or Datamart) but you can also create them manually (e.g., a calculation Data Load to manipulate data).                                                                                                                                               |
| Data Rows                      | The Data Rows feature allows you to add, edit, and manage individual data rows for various objects such as products, customers, or agreements. You can create new rows, duplicate existing ones, or delete unwanted rows.                                                                                                                                                                                                                                                                                                                          |
| Data Source                    | In the Data Sources you can structure, clean up and validate data. It is a data container defined by the end-user to store specific master and transactional data, such as Customer master, transactional data (invoice line items) etc.                                                                                                                                                                                                                                                                                                           |
| Datamart                       | Datamarts are used to aggregate and standardize data from various sources for analytics and price setting. They enable efficient querying, chart creation, and pricing optimization.                                                                                                                                                                                                                                                                                                                                                               |
| Deal                           | A Deal is an instance of a customer agreement, contract, or negotiation that involves specific products and pricing terms. It captures the key information related to the deal, including the parties involved, the products and prices, and the status of the deal.                                                                                                                                                                                                                                                                               |
| Deal Plan                      | A Deal Plan is a framework that outlines the pricing strategy and commercial terms for a specific deal or customer account. It serves as a guideline for negotiations with customers, ensuring consistency in pricing and commercial terms across different customer interactions.                                                                                                                                                                                                                                                                 |
| Denial Reasons                 | Denial Reasons are predefined options or free-text fields for approvers to provide when denying an approvable document. This feature is used to standardize and document reasons for denials, improving transparency and auditability.                                                                                                                                                                                                                                                                                                             |
| Drill-down                     | The Drill-down feature in Pricefx allows users to dive deeper into specific data points, such as product hierarchies, customer segments, or agreement structures. By clicking on a drill-down button or link, users can access related data and details, providing a more comprehensive understanding of the data.                                                                                                                                                                                                                                 |
| Drill-Down Dimension           | When a user selects a drill-down dimension, Pricefx filters the data to show only the relevant information for that dimension, allowing users to see detailed insights and relationships within the data. The drill-down dimension helps users to analyze and explore data in a more targeted and meaningful way.                                                                                                                                                                                                                                  |
| Dynamic UOM                    | Dynamic UOM (Unit of Measurement) refers to a feature that allows the platform to automatically switch between different units of measurement based on the context of the transaction or the customer's preferences.                                                                                                                                                                                                                                                                                                                               |
| Element                        | Element refers to a specific component or attribute of a product or service. Elements can include characteristics such as: Product attributes (e.g., color, size, material), Service attributes (e.g., delivery time, warranty period), Pricing attributes (e.g., price tier, discount level).                                                                                                                                                                                                                                                     |
| Excel Client                   | A tool based on Excel macros that allows you to modify and upload the data to a particular partition.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Extension                      | Extension refers to a specific type of customization or addition to the core functionality of the platform.There are two main types of Extensions: Customer Extensions and Product Extensions.                                                                                                                                                                                                                                                                                                                                                     |
| Feeder                         | Feeder is a specific type of integration tool that is used to extract data from external sources and load it into a Data Feed.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Flush                          | Flush operation in Data Feeds is used to clear the Data Feed and refresh the data by uploading new data from the source.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Generic Logic                  | The generic calculation logic is typically used to calculate a specific price for a product in Price Lists and Quotes and to calculate Simulations. It is also used for Claims or for Agreements/Promotions and Rebate Agreements if there is no specific logic defined, for filtering, mass updates and in other areas.                                                                                                                                                                                                                           |
| Groovy Library                 | Groovy Library is a collection of reusable Groovy functions that can be used to create custom calculations and workflows. This library allows you to store and manage pre-defined functions that can be easily accessed and used in various applications, such as calculation logics and workflow scripts.                                                                                                                                                                                                                                         |
| Header                         | Header typically refers to the top section of a dashboard, report, or calculation grid that displays the title, date, or other relevant information about the data being displayed. It can also include filters, sorting options, and other navigation elements to help users understand the context and interact with the data.                                                                                                                                                                                                                   |
| Header Logic                   | The Header Logic feature allows users to define custom logic for specific header fields, such as product, customer, or agreement headers. This logic enables users to dynamically calculate header values based on specific conditions, rules, or calculations.                                                                                                                                                                                                                                                                                    |
| Home                           | A starting page of Pricefx that displays all software functional areas. It can be customized according to the user preferences.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Interceptor                    | Dynamic interceptors allow users to manipulate data and generate side effects on specific events in Pricefx. They are essentially a piece of JavaScript code, which is stored as a record in Advanced Configuration and is dynamically loaded when you have an active interceptor.                                                                                                                                                                                                                                                                 |
| Item                           | In general, an item is a single, distinct piece of data or a calculation result that is used in a larger calculation or analysis.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Key Information                | Key Information typically refers to the most important and relevant data points or metrics that are associated with a specific calculation, analysis, or report. These can include calculations, metrics, and variables that provide a clear understanding of the underlying data and help users make informed decisions.                                                                                                                                                                                                                          |
| Line Item                      | Line Item refers to a specific product or service item that is included in a price list, quote, or contract. Each Line Item represents a distinct product or service with its own pricing and attributes. Line Items can have various attributes, such as: Product ID, Description, Unit Price, etc.                                                                                                                                                                                                                                               |
| Live Price Grid                | A Live Price Grid (LPG) is a dynamic pricing tool that recalculates prices frequently based on a specific calculation logic. Unlike Price Lists, which store future prices for a longer duration, Live Price Grids are designed to manage active prices that change over time. LPGs provide real-time pricing information, making them ideal for reflecting current market conditions and enabling quick adjustments to pricing strategies.                                                                                                        |
| Logic                          | Logic refers to a set of rules or calculations that are used to determine prices, discounts, or other business outcomes. These rules are typically programmed using the Groovy programming language and are executed within the Pricefx application.                                                                                                                                                                                                                                                                                               |
| Logic Setup                    | Logic refers to a set of rules or calculations that are used to determine prices, discounts, or other business outcomes. These rules are typically programmed using the Groovy programming language and are executed within the Pricefx application.                                                                                                                                                                                                                                                                                               |
| Manual Price Expiry            | Manual Price Expiry in Pricefx refers to the ability to set a specific date or time after which a price list or a price will expire or become unavailable for use. This feature allows you to create temporary price lists or price overrides that are only valid for a certain period. After the specified expiry date or time, the price list or price will automatically be removed from the system.                                                                                                                                            |
| Manual Price List              | A Manual Price List (MPL) is similar to a table in Excel where you maintain your product prices manually. In addition, you can add a calculation logic to it, which will help you calculate the values of certain columns according to the required business rules. You can also keep there any supporting columns you wish (e.g., Product Category, Classification, Profit, Revenue, etc.).                                                                                                                                                       |
| Master Data                    | Master Data in Pricefx refers to the core data that is used to support the pricing and revenue management operations. It includes data such as products, customers, quotes, price lists, users, and dashboards.                                                                                                                                                                                                                                                                                                                                    |
| Mass Update                    | A function that allows updating the similar value, for example, cost, in many or all existing quotes. A feature that is useful during quotes revisions and common price parameters updates.                                                                                                                                                                                                                                                                                                                                                        |
| Model                          | Model is a mathematical representation of a business process or a specific problem. Models are used to analyze and optimize various business scenarios, such as price optimization, revenue management, and profitability analysis.                                                                                                                                                                                                                                                                                                                |
| Model Logic                    | Model Logic refers to a type of logic that is used to perform complex calculations and optimizations. Model Logic is a powerful tool that allows you to create custom models that can be used to determine prices, discounts, and other business outcomes.                                                                                                                                                                                                                                                                                         |
| Model Types                    | An area where the pre-programmed types of optimization approach are displayed. The types are used to create an optimization model based on the defined data and optimization target.                                                                                                                                                                                                                                                                                                                                                               |
| Module Categories              | Module Categories refer to the broad categories into which the application's modules are grouped. These categories help to organize and classify the various modules, making it easier to navigate and find related functionality.                                                                                                                                                                                                                                                                                                                 |
| Opportunity                    | Opportunity is a potential sale or deal that is being pursued by a sales representative. It represents a possibility to increase revenue or grow sales, and is often used to track and manage sales pipeline activities, forecast revenue, and analyze sales performance. Oppportunities typically include details such as customer information, product or service offerings, pricing, and sales stages.                                                                                                                                          |
| Optimization                   | Optimization is a process that helps determine the most optimal price for your products, based on data and machine learning algorithms.                                                                                                                                                                                                                                                                                                                                                                                                            |
| Optimization Engine            | Optimization Engine is an AI-based optimization technology that models the entire pricing calculation, providing transparent price guidance in a waterfall view.                                                                                                                                                                                                                                                                                                                                                                                   |
| Output Columns                 | Output Columns are fields or attributes that are added to a Calculation Grid as a result of a calculation logic. They contain the calculated values for specific metrics or calculations, such as revenue, profit, or price, and are displayed in the grid as columns. Output Columns provide the final results of a calculation and can be used for further analysis, reporting, or decision-making.                                                                                                                                              |
| PA Calculation                 | Analytics (formerly called PriceAnalyzer) Calculation. Analytics Calculations refer to the mathematical formulas and rules used to calculate and analyze pricing results. These calculations can include various metrics such as price elasticity, profitability, contribution margin, and revenue growth, among others. Analytics Calculations are used to provide insights and visualizations of pricing performance, helping businesses to make data-driven decisions.                                                                          |
| Partition                      | Partition is a way to organize and group large amounts of data into smaller, more manageable sections. This allows for faster query performance and improved data management. Partitions can be based on various criteria, such as product categories, customers, regions, or time periods. One instance of the Pricefx software. It is accessible through the internet browser and has a distinct link and partition name. Only authorized users can log in to the particular partition.                                                          |
| Payout                         | Payout refers to a payment to a Sales Agent or Seller. A Payout is typically generated based on a Compensation Plan and can include compensation for sales revenue, margin, or other performance metrics. Payouts can be displayed in various dashboards and portlets in Pricefx, such as the "Payouts Overview" portlet.                                                                                                                                                                                                                          |
| Policy Record                  | Deprecated                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Portlet                        | Portlet is a software component used on web pages to display information and functionality, such as charts and tables, in a customizable and interactive way. In the context of the Pricefx Dashboards, Portlets are used to provide a summary of specific data and insights, and can be filtered and customized by users.                                                                                                                                                                                                                         |
| Preference                     | Preference is a user-configurable setting that determines how the application behaves in various situations. Preferences are used to tailor the application to individual user needs, improve the user experience, and streamline pricing workflows.                                                                                                                                                                                                                                                                                               |
| Preferences Manager            | Preferences Manager is a feature that allows users to customize various settings and preferences within the application. This feature enables users to tailor the application to their specific needs, improve their user experience, and streamline their pricing workflows.                                                                                                                                                                                                                                                                      |
| Previous Price                 | Previous Price is a price that was assigned to a product, service, or offering in the past. It is an archived or historical price that is no longer in effect but is still maintained for record-keeping, auditing, or analytical purposes.                                                                                                                                                                                                                                                                                                        |
| Price                          | Price is a value attributed to a product, service, or offering that reflects its value to the customer. Prices are a critical component of business operations, as they directly impact sales, revenue, and profitability.                                                                                                                                                                                                                                                                                                                         |
| Price Expire Item              | Price Expire Item refers to a product or item that has a price attached to it, but the price is set to expire on a specific date. This means that the product will no longer have the specified price after the expiration date.                                                                                                                                                                                                                                                                                                                   |
| Price Grid                     | Price Grid is a pre-defined set of prices that are associated with specific products, customers, or regions. Price Grids are used to store and manage prices in a structured and organized way.                                                                                                                                                                                                                                                                                                                                                    |
| Price List                     | A Price List is a set of products with a calculated price -- the result price. The result price is calculated based on a calculation logic.                                                                                                                                                                                                                                                                                                                                                                                                        |
| Price List Revision            | Price List Revision is a newer version of a Price List that has been created to update the original Price List. The revised Price List can have the same data as the original Price List or can have updated validity, pricing logic, product selection, etc.                                                                                                                                                                                                                                                                                      |
| Price Point                    | Price Point refers to a specific element in the waterfall analysis that represents a stage in the pricing process.                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Price Record                   | Price Records represent prices or other conditions negotiated with a customer. They are created automatically after a Quote is approved by the customer and changes to a deal.                                                                                                                                                                                                                                                                                                                                                                     |
| Price Setting                  | The Price Setting module supports, in the broadest sense, price policy definition, setup of price guidelines, calculations and simulations of gross, special and net prices including algorithmic optimization, as well as the rule based or manual approval of price calculation results.                                                                                                                                                                                                                                                         |
| Price Setting Simulations      | Price Setting Simulations allow you to test different conditions or changes in Price Lists or Live Price Grids. Once you determine a Price List or Live Price Grid that the Simulation is based on, you can use new input data (from Company Parameters) or a completely new calculation logic.                                                                                                                                                                                                                                                    |
| Price Setting Types            | Price Setting Types for Price Lists and Live Price Grids are templates with preselected header, pricing and matrix logics and a view preference.                                                                                                                                                                                                                                                                                                                                                                                                   |
| Price Unit                     | Price Unit is a type of measurement used to express prices, such as currency, unit of measurement, or weight. Price Units are used to define the pricing units for products, services, or other catalog items, and can be used to calculate prices, discounts, and taxes.                                                                                                                                                                                                                                                                          |
| Pricing logic                  | Pricing Logic is a type of custom formula-based rule that determines how prices are calculated and applied to products, services, or customers. Pricing Logic can take into account various parameters such as pricing models, discounts, taxes, and customer-specific rules.                                                                                                                                                                                                                                                                      |
| Product                        | A product is defined as a single item being sold, often referred to as an SKU (Stock Keeping Unit). This designation represents an item that can be retrieved from inventory and sold.                                                                                                                                                                                                                                                                                                                                                             |
| Products                       | A table (P) in the Master Data that includes product data with various attributes. Also called Product Master.                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Product Extension              | Product Extensions (PX) are attributes of products that do not have a strict one-to-one relationship with a product: the attribute can change over time or a product can have multiple attributes of the same type. Product extensions accommodate these attributes. Product extensions can be used in price calculations. Product extensions can be classified by category.                                                                                                                                                                       |
| Product References             | Product References are a type of data entity that store information about products, services, and other catalog items. Product References are used to manage product master data, including product characteristics, pricing, and other relevant details.                                                                                                                                                                                                                                                                                          |
| Quote                          | Quote is a formal document that summarizes the terms and conditions of a proposed sale, including the products or services to be sold, their prices, and any applicable discounts or promotions.                                                                                                                                                                                                                                                                                                                                                   |
| Quote Header                   | Quote Header is an overview of the complete quote calculation. It's a summary of the quote's properties, such as customer information, quote date, and total price, and is typically used as a reference point for the quote's line items.                                                                                                                                                                                                                                                                                                         |
| Quote Header logic             | Quote Header Logic is a type of calculation logic used at the Quote header level. It's executed when launching the Quote action "Recalculate" and is used to manipulate quote header properties, such as adding or removing fields, calculating results, and hiding out-of-the-box buttons. The Quote Header Logic is typically defined in a configuration file or through a custom development process and is used to create custom quote header calculations, such as calculating summaries or sub-summaries, and modifying the quote structure. |
| Quote Line Item                | Quote Line Item - A product item added to the quote with a defined quantity. One quote can have multiple line items.                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Quote Types                    | An area in Quotes where the pre-programmed types of quote calculation are displayed. The types are used to create quotes with pre-defined parameters.                                                                                                                                                                                                                                                                                                                                                                                              |
| Quoting                        | Quoting refers to the process of creating and managing quotes for products or services. It's a key functionality that allows users to configure and price quotes quickly and efficiently, taking into account various parameters such as pricing, margins, and customer information.                                                                                                                                                                                                                                                               |
| RA Header logic                | RA Header Logic refers to the custom formula-based rule used to determine the Rebate Agreement (RA) header's properties, such as rebate amounts, payment terms, and other relevant details. The RA Header Logic is typically defined in a configuration file or through a custom development process, and is used to calculate the rebate agreement's header values based on specific business rules and parameters.                                                                                                                               |
| Reason                         | Reason refers to the justification or explanation for a specific action or outcome. In rebate management, reasons are used to explain why a rebate was awarded or not, or why a particular calculation or decision was made. For example, a reason might be provided for a rebate payout, indicating why the customer is eligible for the rebate, or for a rebate denial, explaining why the customer does not qualify for the rebate.                                                                                                             |
| Rebate                         | Rebate is a refund of a portion of the purchase price given by the seller to the buyer, paid out only when a specified limit or goal is met, typically within a certain time period. Rebates are a type of incentive used to achieve business objectives such as customer retention, attracting new customers, or increasing sales volume.                                                                                                                                                                                                         |
| Rebate Agreement               | Rebate Agreement is a formal agreement between a seller and a customer that outlines the terms and conditions of a rebate offer. It defines the specifics of the rebate, including the rebate amount, eligibility criteria, payment terms, and any other relevant details.                                                                                                                                                                                                                                                                         |
| Rebate Agreement Template      | A function allowing you to mass create many agreements at the same time, for example, do a mass upload of rebates from other systems.                                                                                                                                                                                                                                                                                                                                                                                                              |
| Rebate Calculation Logic       | Rebate Calculation Logic is a formula-based rule that determines how rebates are calculated. It's a custom logic that can be created to meet specific business requirements, taking into account various parameters such as pricing, sales volume, customer information, and more.                                                                                                                                                                                                                                                                 |
| Rebate Record                  | Rebate Record is a specific type of record that stores information about rebate agreements, including the terms and conditions of the rebate, the customer or seller involved, and the associated products or quantities. Rebate Records are used to manage rebate programs and processes within Pricefx, allowing companies to track and analyze rebate data, generate reports, and make data-driven decisions.                                                                                                                                   |
| Record                         | Record is a single entry or instance of data that is stored in a specific data table or entity. Records can represent various things, such as transactions, customers, products, or sales orders.                                                                                                                                                                                                                                                                                                                                                  |
| Result Price                   | Result Price refers to the final price that is calculated after applying various pricing rules, discounts, and conditions to a product or a transaction. It's the output of the pricing logic, taking into account multiple factors such as product attributes, customer-specific agreements, and market conditions.                                                                                                                                                                                                                               |
| Rollup                         | Rollup is a process that aggregates data from multiple levels to a higher level. It's often used to summarize data from a specific hierarchy, such as a product hierarchy, to calculate prices or costs across different categories.                                                                                                                                                                                                                                                                                                               |
| Secondary Key                  | Secondary Key is an additional identifier for an entity that can be used to uniquely identify it, often in conjunction with the Primary Key. Secondary Keys can be used to create relationships between entities or to filter data. They are also used to improve data retrieval efficiency by creating indexes on frequently accessed columns.                                                                                                                                                                                                    |
| Seller                         | Seller is a master data object that represents a customer's or client's organization. Sellers are used to store information about customers, such as their name, address, and contact details, and are a key component in price management.                                                                                                                                                                                                                                                                                                        |
| Seller Extensions              | Seller Extensions in Pricefx are attributes of Sellers that don't have a strict one-to-one relationship with a Seller, and can change over time or a Seller can have multiple attributes of the same type. They can be classified by category and are used in price calculations.                                                                                                                                                                                                                                                                  |
| Simulations                    | Simulations in Pricefx allow you to test different conditions or changes in Price Lists or Live Price Grids without affecting the active data.                                                                                                                                                                                                                                                                                                                                                                                                     |
| SKU                            | SKU stands for Stock Keeping Unit, which is a unique identifier for a specific product or service. It is a code assigned to a product that helps identify it for inventory management, ordering, and pricing purposes.                                                                                                                                                                                                                                                                                                                             |
| System Columns                 | System Column is a pre-defined column that is available in various data tables and is used to store system-generated information about a specific record. System Columns are not user-defined and are used to store metadata.                                                                                                                                                                                                                                                                                                                      |
| Toggle drill-down              | This feature ensures that the Data Tab in charts dynamically updates to reflect the data currently displayed in the chart, providing user with detailed and accurate insights.                                                                                                                                                                                                                                                                                                                                                                     |
| Transaction Data               | The records of the product sales used in the Analytics and for price calculations. Transactions are stored in the Data Manager in the Analytics.                                                                                                                                                                                                                                                                                                                                                                                                   |
| Truncate                       | The truncate operation is available for Data Feeds, Data Sources, Datamarts, and Sim Datamarts. This action deletes either all rows or filtered rows from the target.                                                                                                                                                                                                                                                                                                                                                                              |
| Type code                      | Type codes are abbreviations used to identify different data types within Pricefx. Type codes are extensively used in the general search method api.find() but there are other places as well.                                                                                                                                                                                                                                                                                                                                                     |
| Type of price                  | Price types are used to categorize and differentiate prices based on specific characteristics or factors.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| User Roles                     | User Roles provides access for users to the particular software functionality.                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| User Groups                    | User Groups is a tool that provides access for users to the data.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Unit Of Measure                | A Unit of Measure is a way to express the quantity of a product, such as kilograms, pounds, inches, or meters. In Pricefx, UOMs are used to define the default unit of measure for a product, and to enable automatic conversions between different units of measure. The uom table in Pricefx is used to store the common conversions between UOMs, such as kg → lb or in → cm. This table contains only the common conversions that are applicable to all products.                                                                              |
| Watcher                        | A Watcher monitors data trends based on predefined rules. When a trend is detected, Watchers automatically generate predefined Actions and assign them to users. Two types are available: Datamart Watcher and Dashboard Watcher.                                                                                                                                                                                                                                                                                                                  |
| Whisker                        | Refers to a graphical representation used in certain types of charts, such as box plots or error bar charts. Whiskers are lines extending from the top and bottom of a box in a box plot, illustrating variability outside the upper and lower quartiles. They typically represent the range of data points that fall within a specified interval, such as the minimum and maximum values or a defined percentage.                                                                                                                                 |
| Workflow                       | Workflows can be used to trigger calculations, assign tasks, send notifications, and more. They can be customized to fit your specific business needs and can be used in conjunction with various Pricefx features, such as calculations, dashboards, and more.                                                                                                                                                                                                                                                                                    |
| Workflow Delegation            | Workflow Delegation allows you to delegate your approval authority to another user when you will be unavailable.                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Workflow Logic                 | Workflow Logic is a set of rules and conditions that define the sequence of steps within a workflow. Workflow logic is used to automate business processes by specifying the actions that should be taken and the conditions that must be met.                                                                                                                                                                                                                                                                                                     |
| Workflow Step                  | A Workflow Step is a task or action within a workflow that is executed in a specific sequence. Workflow steps are used to define the workflow logic, including approval processes, notifications, and conditional actions.                                                                                                                                                                                                                                                                                                                         |

---
version: "Latest version"
language: "en"
---
# Common Abbreviations

When working with the Pricefx software or project teams, you may come across the following abbreviations and acronyms.  

|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
| **Abbreviation**       | **Meaning**                                                                                                                                                                                                                                                                | **Category**                 |
| ACV                    | Annual Contract Value                                                                                                                                                                                                                                                      | Project lifecycle            |
| AE                     | Account Executive                                                                                                                                                                                                                                                          | Project lifecycle            |
| AI                     | Artificial Intelligence                                                                                                                                                                                                                                                    | Pricing Industry             |
| AMAS                   | Adaptive Multi-Agent System                                                                                                                                                                                                                                                | Pricefx modules and features |
| ATPCO                  | Airline Tariff Publishing Company                                                                                                                                                                                                                                          |                              |
| BAFO                   | Best \& final offer                                                                                                                                                                                                                                                        | Pricing Industry             |
| BOM                    | Bill of Materials                                                                                                                                                                                                                                                          | Pricing Industry             |
| BR                     | Business role                                                                                                                                                                                                                                                              | Pricefx modules and features |
| C                      | Customer / Customer master                                                                                                                                                                                                                                                 | Pricefx modules and features |
| CAIQ                   | Consensus Assessment Initiative Questionnaire                                                                                                                                                                                                                              | Pricefx modules and features |
| CE                     | Configuration Engineer                                                                                                                                                                                                                                                     | Project lifecycle            |
| CF                     | Calculation flow                                                                                                                                                                                                                                                           | Pricefx modules and features |
| CFS                    | Calculated Field Set                                                                                                                                                                                                                                                       | Pricefx modules and features |
| CL                     | Calculation logic                                                                                                                                                                                                                                                          | Pricefx modules and features |
| CLIC                   | Calculable line item collection (refers to Quote/Agreement/Rebate detail in React)                                                                                                                                                                                         | Pricefx modules and features |
| CPQ                    | Configure-Price-Quote (price lists)                                                                                                                                                                                                                                        | Pricing Industry             |
| CR                     | Change Request                                                                                                                                                                                                                                                             | Project lifecycle            |
| CSA                    | Cloud Security Alliance                                                                                                                                                                                                                                                    | Pricefx modules and features |
| CTT                    | Condition Type (formerly called Contract Term Type)                                                                                                                                                                                                                        | Pricefx modules and features |
| CX                     | Customer Extensions                                                                                                                                                                                                                                                        | Pricefx modules and features |
| DCR                    | Data Change Request                                                                                                                                                                                                                                                        | Pricefx modules and features |
| DF                     | Data Feed                                                                                                                                                                                                                                                                  | Pricefx modules and features |
| DL                     | Data Load                                                                                                                                                                                                                                                                  | Pricefx modules and features |
| DM                     | Datamart                                                                                                                                                                                                                                                                   | Pricefx modules and features |
| DME                    | Datamart Expression                                                                                                                                                                                                                                                        | Pricefx modules and features |
| DMT                    | Datamart Table                                                                                                                                                                                                                                                             | Pricefx modules and features |
| DS                     | Data Source                                                                                                                                                                                                                                                                | Pricefx modules and features |
| EAN                    | European Article Number is a barcode standard, a 12- or 13-digit product identification code. Each EAN uniquely identifies the product, manufacturer and its attributes.                                                                                                   | Pricing Industry             |
| EBITDA margin          | Earnings before interest, tax, depreciation and amortization                                                                                                                                                                                                               | Pricing Industry             |
| EH                     | Enhancement Request (previously Change Request)                                                                                                                                                                                                                            | Project lifecycle            |
| ERP                    | Enterprise resource planning (in stock system)                                                                                                                                                                                                                             | Pricing Industry             |
| ETL                    | Extract, transform, load -- three database functions that are combined into one tool to pull data out of one database and place it into another database. Extract is the process of reading data from a database.                                                          | Pricing Industry             |
| IE                     | Integration Engineer                                                                                                                                                                                                                                                       | Project lifecycle            |
| ITIL                   | IT Infrastructure Library                                                                                                                                                                                                                                                  | Project lifecycle            |
| LCE                    | Lead Configuration Engineer                                                                                                                                                                                                                                                | Project lifecycle            |
| LPG                    | Live Price Grid                                                                                                                                                                                                                                                            | Pricefx modules and features |
| MPG                    | Material Pricing Group (way of grouping materials to which you want to apply the same conditions)                                                                                                                                                                          | Pricefx modules and features |
| MPL                    | Manual Price List                                                                                                                                                                                                                                                          | Pricefx modules and features |
| MRO                    | Maintenance, Repair, Operations                                                                                                                                                                                                                                            | Project lifecycle            |
| OEM                    | Original Equipment Manufacturers                                                                                                                                                                                                                                           | Pricing Industry             |
| OX                     | Object Extension (parent of all extension classes, such PX or CX)                                                                                                                                                                                                          | Pricefx modules and features |
| P                      | Product / Product master                                                                                                                                                                                                                                                   | Pricefx modules and features |
| PA                     | Analytics (formerly called PriceAnalyzer)                                                                                                                                                                                                                                  | Pricefx modules and features |
| PaaS                   | Platform-as-a-Service (infrastructure)                                                                                                                                                                                                                                     | Pricing Industry             |
| PAB                    | Platform Advisory Board                                                                                                                                                                                                                                                    | Pricefx modules and features |
| PAR                    | Price Approval Request                                                                                                                                                                                                                                                     | Pricing Industry             |
| PB                     | Price Setting (formerly called PriceBuilder)                                                                                                                                                                                                                               | Pricefx modules and features |
| PL                     | Price List                                                                                                                                                                                                                                                                 | Pricefx modules and features |
| PM                     | Agreements \& Promotions (formerly called PromotionManager)                                                                                                                                                                                                                | Pricefx modules and features |
| POC                    | Proof of Concept                                                                                                                                                                                                                                                           | Project lifecycle            |
| PP                     | Company Parameter (formerly called Price Parameter)                                                                                                                                                                                                                        | Pricefx modules and features |
| PR                     | Price Record                                                                                                                                                                                                                                                               | Pricefx modules and features |
| PraaS                  | Pricing-as-a-Service                                                                                                                                                                                                                                                       | Project lifecycle            |
| PREF                   | Preferences                                                                                                                                                                                                                                                                | Pricefx modules and features |
| PS                     | Quoting (formerly called QuoteConfigurator and Price Shop)                                                                                                                                                                                                                 | Pricefx modules and features |
| PSA                    | Price Setting Accelerator                                                                                                                                                                                                                                                  | Pricefx Accelerator          |
| PSP                    | Price Setting Package                                                                                                                                                                                                                                                      | Pricefx Accelerator          |
| PUG                    | Product User Group                                                                                                                                                                                                                                                         | Pricefx modules and features |
| PX                     | Product Extensions                                                                                                                                                                                                                                                         | Pricefx modules and features |
| Q                      | Quote                                                                                                                                                                                                                                                                      | Pricefx modules and features |
| QA                     | Quality Assurance                                                                                                                                                                                                                                                          | Project lifecycle            |
| QC                     | Quoting (formerly called QuoteConfigurator)                                                                                                                                                                                                                                | Pricefx modules and features |
| QMS                    | Quality Management System                                                                                                                                                                                                                                                  | Pricing Industry             |
| RBT                    | Rebate Type                                                                                                                                                                                                                                                                | Pricefx modules and features |
| RM                     | Rebates (formerly called RebateManager)                                                                                                                                                                                                                                    | Pricefx modules and features |
| RRP                    | Recommended Retail Price                                                                                                                                                                                                                                                   | Pricing Industry             |
| SA                     | Solution Architect                                                                                                                                                                                                                                                         | Project lifecycle            |
| SaaS                   | Software-as-a-Service                                                                                                                                                                                                                                                      | Pricing Industry             |
| SD                     | Solution Delivery                                                                                                                                                                                                                                                          | Project lifecycle            |
| SIM                    | Pricefx Partition for pricing simulations                                                                                                                                                                                                                                  | Project lifecycle            |
| SKU                    | Stock Keeping Unit is a product and service identification code for a store or product, often portrayed as a machine-readable bar code that helps track the item for inventory. A stock keeping unit (SKU) does not need to be assigned to physical products in inventory. | Pricing Industry             |
| SOC1                   | System and Organization Control Report                                                                                                                                                                                                                                     | Project lifecycle            |
| SoW                    | Statement of Work                                                                                                                                                                                                                                                          | Project lifecycle            |
| SPA                    | Sales \& Purchase Agreement                                                                                                                                                                                                                                                | Pricing Industry             |
| Spot Quote, Spot Price | Includes rate for shipment that needs to be expedited immediately or urgently                                                                                                                                                                                              | Pricing Industry             |
| TCO                    | Total Cost of Ownership (direct \& indirect cost of a product segmentation)                                                                                                                                                                                                | Pricing Industry             |
| TtV                    | Time to Value                                                                                                                                                                                                                                                              | Project lifecycle            |
| UAT                    | User Acceptance Testing                                                                                                                                                                                                                                                    | Pricing Industry             |
| UG                     | User group                                                                                                                                                                                                                                                                 | Pricefx modules and features |
| WF                     | Workflow                                                                                                                                                                                                                                                                   | Pricefx modules and features |
| WIP                    | Work in Progress                                                                                                                                                                                                                                                           | Pricing Industry             |
| YTD                    | Year-to-date is a period, starting from the beginning of the current year (either the calendar year or fiscal year) and continuing up to the present day.                                                                                                                  | Pricing Industry             |

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) If you are a configuration engineer, you might be interested in the full list of [Type Codes](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/data-model-reference/type-codes.md).

---
version: "Latest version"
language: "en"
---
# Pricing Terms

This page contains the most common pricing terms.  

|       **Term**       |                                                        **Description**                                                        |
|----------------------|-------------------------------------------------------------------------------------------------------------------------------|
| Product Costs        | The cost of production. **Types:** * Standard * Fixed * Variable * Avoidable * Internal Transportation * Internal Storage     |
| Quantity/Volume      | The amount of product sold.                                                                                                   |
| Margin               | The product's price minus cost; margin is usually the key profitability indicator.                                            |
| Target Margin        | The amount of profit expected to be received from a product sold.                                                             |
| Purchase Price       | The acquisition costs of the product that is produced somewhere else.                                                         |
| Price Indexes        | Price variation that is market- and material-related (example: oil, grains).                                                  |
| Competition Price    | The price of a competitor with a similar product.                                                                             |
| Packaging Price      | The price of packaging, which is counted as an extra cost.                                                                    |
| Stock                | Inventory of the product.                                                                                                     |
| SKU                  | Stock-keeping unit.                                                                                                           |
| Transportation Costs | The costs to move products.                                                                                                   |
| Floor Price          | Lowest price calculated based on profitability.                                                                               |
| Price Ceiling        | The highest price for selling a product.                                                                                      |
| Distributor Price    | Wholesale price in B2B businesses (example: manufacturer sells tires to distributors).                                        |
| Bottom-up Pricing    | Method in which all the costs are calculated first, and the desired profit is added to the total cost to calculate the price. |
| Top-down Pricing     | Method in which the price is calculated based on the perceived value of the product by the customer and then pushed down.     |
| Global Pricing       | Global price setting that is applicable for all business units.                                                               |
| Local Pricing        | Regional price setting that comes on top of the global pricing.                                                               |
| Product Life Cycle   | Product life stages reflected mostly in sales: introduction, growth, maturity, decline.                                       |
| Pocket Margin        | Final margin (profit before taxes).                                                                                           |
| Margin Leakage       | Areas where the company loses money.                                                                                          |

---
version: "Latest version"
language: "en"
---
# Product Names

This page contains the list of Pricefx Product Names.  

|              **Term**               |                        **Description**                        |
|-------------------------------------|---------------------------------------------------------------|
| Pricefx                             | Company and Platform name                                     |
| Pricefx Copilot                     | Core Product Name                                             |
| PlatformManager                     | Platform Product Name                                         |
| IntegrationManager                  | Platform Product Name                                         |
| Actionable Insights                 | Accelerator Product Name, Core Product Name                   |
| Agreements                          | Accelerator Product Name                                      |
| Approval Workflow                   | Accelerator Product Name                                      |
| Clustering                          | Accelerator Product Name                                      |
| Customer Insights                   | Accelerator Product Name                                      |
| CPQ                                 | Configure-Price-Quote (price lists). Accelerator Product Name |
| List Price Optimization             | Accelerator Product Name                                      |
| Markdown Optimization               | Accelerator Product Name                                      |
| Multifactor Elasticity Optimization | Accelerator Product Name                                      |
| Negotiation Guidance                | Accelerator Product Name                                      |
| Price Flexibility                   | Accelerator Product Name                                      |
| Price List Impact Simulation        | Accelerator Product Name                                      |
| Price Setting                       | Accelerator Product Name                                      |
| Price Waterfall Optimization        | Accelerator Product Name                                      |
| Product Recommendation              | Accelerator Product Name                                      |
| Product Similarity                  | Accelerator Product Name                                      |
| Rebate Management                   | Accelerator Product Name                                      |
| Sales Compensation                  | Accelerator Product Name                                      |
| Sales Insights                      | Accelerator Product Name                                      |
| SC Quoting Plugin                   | Accelerator Product Name                                      |
| Shelf Prices Optimization           | Accelerator Product Name                                      |
| Plasma                              | Paused, Not Offered Anymore                                   |
| Strategy Designer                   | Capability Product Name                                       |
| Formula Designer                    | Capability Product Name                                       |
| Workflow Designer                   | Capability Product Name                                       |
| PricingAI                           | Marketing Name of a Bundle                                    |
| Pricefx Agents                      | Core Product Name, Accelerator Product Name                   |

---
version: "Latest version"
language: "en"
---
# Screen Resolution and Zoom

## Screen Resolution

The application is responsive to the screen resolution settings on your laptop or monitor. This means that the application layout and controls change depending on the screen resolution. See the following screenshots, where the first one represents a screen with high resolution:  
![ScreenResolution01.png](https://knowledge.pricefx.com/__attachments/a_cb81b0bde0d978580a4a733b31c03af7748f7dc796518f8e4551af58815d2136/ScreenResolution01.png?cb=31428527954ba101d6252adeacc260d9)

The second screenshot shows the application on a screen with lower resolution:  
![ScreenResolution02.png](https://knowledge.pricefx.com/__attachments/a_0b1a2e088ff7d92c48c8424becd59b6a03e1d77d1ad49eb0f1622aeaf6b4d6fc/ScreenResolution02.png?cb=71df7a464a2122bc1b85bd450a351f9d)

On pages where there are more action buttons, the bar displays the **More** button on smaller screens, which groups several actions. Details \& Settings are displayed as a drawer on the right-hand side.

To change the screen resolution, go to **Control Panel** \> **Appearance and Personalization** \> **Adjust screen resolution** on Windows or to **System Preferences** \> **Displays** on MacOS.

## Browser Zoom

For best results we recommend setting your browser zoom to 100%. With a different zoom setting, you might experience issues with displaying some parts of the page content.

---
version: "Latest version"
language: "en"
---
# Translation Editor

The Translation Editor allows users to localize Dashboard Labels for any custom locale. This feature is available for each Logic-based Dashboard, but it is not available for the [Self-Service Dashboards](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/dashboards/self-service-dashboards.md).  
![TranslationEditorDialog.png](https://knowledge.pricefx.com/__attachments/a_06fe73ed6af2f72959c6f6bc175aee4d9603b3e677ec70e2cf8a7f23d345101d/TranslationEditorDialog.png?cb=c2c7bb6d8d0549cc6f2961657bccb435)  
See Also:

* [How to Create Localized Label for Dashboard](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/translation-editor/how-to-create-localized-label-for-dashboard.md)

---
version: "Latest version"
language: "en"
---
# How to Create Localized Label for Dashboard

1. Go to **Administration**.

2. Go to **Dashboards**.

3. Select the Dashboard where you want to create a localized Label.

4. Click **Configure**.

5. In the **Configure Dashboard** screen:

   1. Click the ![LocalizeLabelIcon.png](https://knowledge.pricefx.com/__attachments/a_5586de7667dfdfc43280bbb185919ec8b877b3aa8ad29e31b21ad6bd389a35a8/LocalizeLabelIcon.png?cb=13510c695ac5f3b7b008c626fa300a90) icon.

      1. In the **Translation Editor** screen:

         1. Click **Add**.

            1. In the **Add** screen:

               1. Enter **Locale** definition.

               2. Enter localized **Label**.

               3. Click **Save**.

                  ![TransEditAddScreen.png](/__attachments/a_a0f1903b62840026950279ec8c14bc58f9454e6aff4c067c43bed614c4788695/TransEditAddScreen.png?cb=df05018e67e9d1e89a26ab60be73a637)
      2. Click **Save**.

         ![TransEditDialogFilled.png](/__attachments/a_c4659280e4f89dd87cc6223a3cd6cdfc852066a6d6ecd7db8d480d56eb7bb51d/TransEditDialogFilled.png?cb=6233ffc03b36c1cd31e537efc90e7951)
6. Click **Save**.

When you switch to the target Locale, the Dashboard Label will be displayed in its localized form.  
![LocalizedDashboardLabel.png](https://knowledge.pricefx.com/__attachments/a_672fc8ba29ade65e52bb708a004152f49dd2a93e4675bc8b43ac793af9262c3f/LocalizedDashboardLabel.png?cb=0746a9bc2094ee090ea68b65f8503d2c)

---
version: "Latest version"
language: "en"
---
# Frequently Asked Questions

In this section, you will find the answers to the most frequently asked questions (FAQ).

Contents:

## Where can I find the latest Pricefx release notes?

You can find links to the latest Pricefx release notes at the official Release Notes page here:

**Pricefx Release Notes:** [Pricefx Release Notes -- All Products](https://knowledge.pricefx.com/release-info/release-notes.md)

This page provides links to release notes for key Pricefx products, including the Pricefx application, Agents Accelerator, PlatformManager, or Pricefx Copilot.

## How to debug Unity in SFDC

Q: I need to open a support ticket because Unity doesn't work. (e.g., SSO doesn't work).

A: We always need to see screenshots with the javascript console open. The verbose mode must be enabled. When we don't have access then it is not possible to say what is wrong.  
![Screenshot 2020-03-04 at 09.05.17.png](https://knowledge.pricefx.com/__attachments/a_88f9c8c37f7d9d9088f0f83faaf0a2e1893c6df6dac614255a9bbb7934ec0aed/Screenshot%202020-03-04%20at%2009.05.17.png?cb=497d91ebca8c145a8641f2d28274ab13)

## How can I configure SFDC with several PFX instances?

Q: I need to configure SFDC with 4 PFX instances which should connect in quoting.

A: This is configured and managed in Salesforce. There must be a Connected App configured for each PFX partition. It means 4 connected apps, each placed on a different Opportunity Layout. Then the right Opportunity layout is shown based on logged in user role and group.

## How can I find out which Unity version I am using?

Q: How do I know which version I am using and on which servers are my Unity modules running?

A: Go to **User** menu \> **User Settings**. In the Unity and Backend sections, you can find all the necessary information.

To find out if you are using a production or staging version, go to **Configuration** \> **External Systems** \> **SAML Configuration** \> section **Relay States** \> value in column RelayStatesURL.

## How can I access different versions of Unity?

Q: Can I connect to different versions of Unity and how do I do it?

A: There are two scenarios:

* **Unity integrated with SFDC (or C4C or MS Dynamics)**

  The admin of each partition can control, which version of Unity will be used. This can be done using the RelayStateURL parameter in Pricefx Configuration.

* **Standalone Unity**

  The user will typically be provided with a link like www.pricefx.eu/app/ to access the Unity login page. Then all partitions on the server will have the same version of Unity, as /app/ points to the latest version.

  For development/testing purposes, we also allow users to use URLs for accessing specific versions. For example:

  * `https://www.pricefx.eu/unity/master/jihlava/`

  * `https://www.pricefx.eu/unity/master/kamenice/`

  * or simply `https://www.pricefx.eu/unity/master/latest/`

## Can I use multiple tabs like in the Classic UI?

Q: Is there a plan to implement a tabbed view in Unity that's similar to Classic? I usually maintain multiple tabs at a time and flip back and forth between analytics and Quotes, Agreements/Promotions and Rebates.

A: There is no plan for introducing tabs in Unity. Instead, you can open different modules/pages in multiple web browser tabs.

The reason why we opted for browser tabs is that this approach has a positive impact on performance. With in-app tabs, all the data from all the tabs is present in the Document Object Model of the page which can cause problems with growing memory consumption. If multiple browser tabs are used, the DOM of each page is simpler and browsers often handle different tabs as separate processes.

## How can I hide a main menu item?

Q: We are not using Agreements/Promotions, so I'd like to remove the Agreements \& Promotions module from the main menu.

A: Use the `mainMenuExclude` feature flag. To hide the Agreements \& Promotions module, set the flag's value to \["promotion-manager.index"\].  
![image2020-3-20_11-30-45.png](https://knowledge.pricefx.com/__attachments/a_23279704258e28b2f9cce68db22ebc809202605377c13cdaf31877250431fb9f/image2020-3-20_11-30-45.png?cb=e14d15ac1821600cde54889a306b6c40)

See the whole list of [possible values](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags/routeid-values-to-use-in-feature-flags.md).

## How can I hide Customer user input field in the Quote header?

Q: I want to hide the Customer input field in the Quote header. How can I do it?

A: You can make this setting in three different places:

* In the Configuration section (go to **Administration** \> **Configuration** \> **Quoting General Settings** ) and disable the option **Add customer input to root item**.

* In the Quote header logic, using the [setRenderInfo](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/common/apibuilder/clicoll/CalculableLineItemCollectionBuilder.html#setRenderInfo(java.lang.String,java.lang.String,java.lang.Object)) method.

* On the **Administration** \> **Feature Flags** page, disable the feature flag `showCustomerInput`. This setting overrides the previous two.

## What is the difference between Table and Simple Table view?

Q: On the Items tab of the Quote detail page, there are three different views to select from. What are the differences?

A: The main differences among the different table views are the presence of folder structure, how the input parameters are displayed and finally performance.

**Tree View:**

* Folder structure with drag\&drop functionality.

* Global filtering by product name and ID (only in Ember version).

* Easy to view and compare calculation results.

* Supports approx. 500 records (depends on the number of columns).

**Table View:**

* Folder structure (but without drag\&drop).

* Calculation results in a drop-down under each line item.

* Global filtering by product name and ID.

* Good as a default view as it offers the possibility to view all relevant content.

* Supports approx. 500 records (depends on the number of columns).

**Simple Table View:**

* List-based line item view.

* Column quick filters and a global product filter.

* Calculation results displayed in a modal window.

* Convenient for data changes and item comparison.

* In-line product images.

* Pagination for Quotes with a large number of items.

* Supports approx. 1000 records (depends on the number of columns).

## How can I make table view the default view?

Q: I want to display the table view as default for every user. How can I do it?

A: Go to **Administration** \> **Feature Flags** and enable the property `showTableView`.

## Can I set the default view in the Quote header?

Q: I would like to be able to set the view type (tree or table) for individual Quotes, not only globally. How can I do it?

A: It is possible to configure a drop-down menu in the Quote header logic, which will enable the user to select the preferred view type for that particular Quote.

This is an example header logic that configures the drop-down menu and passes the selected value to the Quote output:
Groovy

    if (quoteProcessor.isPostPhase() && quoteProcessor.getQuoteView().label == "Items Display Settings") {

      String[] views = ["TREE_VIEW", "TABLE_VIEW"]
      
      def views_labels = [
        "TREE_VIEW" : "Tree View",
        "TABLE_VIEW" : "Table View"
      ]
      
      quoteProcessor.addOrUpdateInput(
              "ROOT",
              ["name": "defaultview",
               "label": "Default View of Items",
               "type" : InputType.OPTION,
               "valueOptions" : views,
               "required" : true,
               "parameterConfig" : [
                 "labels": views_labels
               ]
              ]
      )

      def view = quoteProcessor.getHelper().getRoot().getInputByName("defaultview")?.value
      
      quoteProcessor.addOrUpdateOutput([
        "resultName": "__UI_ItemsDisplaySettings", 
      	"resultLabel": "__UI_ItemsDisplaySettings", 
      	"resultType" : "OBJECT", 
      	"result" : [ "viewType": view ] // TREE_VIEW, TABLE_VIEW
      ])
      
    }

The drop-down menu on the Header tab will then look like this:  
![Troubleshooting16.png](https://knowledge.pricefx.com/__attachments/a_c02a089493d89616259a4bcf3f33e237aec1616c80936ceb0e3d9835e3452028/Troubleshooting16.png?cb=9c701a15c47e7074807b9b13801f9d9e)

## How can I hide the root row in Quote or Agreement/Promotion detail table view?

Q: On the Items tab, I'd like to hide the inputs on the root folder in table view so that users cannot edit them.

A: Set the 'omitTableLevel' feature flag to 1. This hides the root folder row.

## Can I add a chart to Quote header?

Q: I'd like to display a chart in the Quote header and reorganize the fields into several columns. How can I do it?

A: The main quote attributes can be displayed in a collapsible header, which will be available on all tabs. The only supported fields are:

* createdByName

* quoteStatus

* creationWorkflow

* workflowStatus

* opportunityId

* effectiveDate

* expiryDate

* lastUpdateDate

* userGroupEditView

You can also add a chart to the header if you want to see, for example, the overall Quote performance displayed in a graphical form.

For details see [Configure a Custom Quote Header](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/how-to/quoting-howto/configure-a-custom-quote-header.md).

## How is the interface language set?

The below diagram shows how the app determines what language and locale to use.  
![setting_interface_language.png](https://knowledge.pricefx.com/__attachments/a_0db31268942448477b30029dd73f2876dd3121d50743cbd781eb2a30047997f3/setting_interface_language.png?cb=6c8ad109eca4fdb404052c3300eb5074)

The steps to determine the app language are as follows:

1. The highest priority take the URL parameters for language and locale (e.g., locale=en_US\&uiLanguage=en).

2. If the URL does not contain these parameters, then the application searches for settings in the local web browser storage (previously saved by the user in the app).

3. If nothing is found, then, if enabled, the app detects the web browser language settings and applies them to the app interface.

4. The last instance, if the browser language cannot be detected or the detection is disabled, are the partition settings (the `intlCode` and `pfxCode` feature flags). If none of these attempts are successful, the default language "en" is applied.

## How routing works when a user logs into Unity

The following diagram explains what steps are evaluated when a user logs into Pricefx depending on what parameters are provided during login:

* `targetPage` -- Defines (in URL) a specific Pricefx page to open. This is often used in [Deep Linking](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/internal-linking-reference/deep-linking.md) or in [RelayState (Pricefx internal info)](https://pricefx.atlassian.net/wiki/display/KB/How+to+Specify+RelayState+Parameter) parameter. See a list of [supported values](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/internal-linking-reference/deep-linking/routepage-values-to-use-in-targetpage.md).

* `rootPage` -- Sets a home page for all users at a partition (set as a [feature flag](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags.md)).

* `startPage` -- Sets a home page for a particular user (set in [User Settings](https://knowledge.pricefx.com/getting-started/latest-version/common-functionality/application-menus.md)). This setting overrides the `rootPage` feature flag setting.

![UserLogin.drawio.png](https://knowledge.pricefx.com/__attachments/a_aae59ba35e884502585d38847d3fb06ea07d445a88cac1cd33b78a0ff090839d/UserLogin.drawio.png?cb=8c01a797368cb8fe88c7c7ba71dd2049)

## How can I import products to a Quote in bulk?

If you need to add a large number of products to a Quote at once, you can use the Import feature.

1. Prepare a spreadsheet that will contain a list of products. The first column always has to be the the line item ID (sku). If you want to import other attributes, their order must respect the order of the columns in the table.

   ![Troubleshooting14.png](https://knowledge.pricefx.com/__attachments/a_93c89f0ef712817d82d3fee50c936359ac661ee7171607e84089a9d2972f55a9/Troubleshooting14.png?cb=b25439c9c234709a8ea3fe586f5a0015)
2. Copy the content of the spreadsheet to the clipboard (**Ctrl+C**).

3. Go to the items tab and click the **Import items from clipboard** button.

   ![HowToImportProducts02.png](https://knowledge.pricefx.com/__attachments/a_4f5d336c0cf17d3777a63089c435104cde7ce948f85022b7823907966d573132/HowToImportProducts02.png?cb=75bfe6e41c89601a66a2dc6d4fe6657d)
4. Copy the list of products from the spreadsheet and paste it to the import window.

   ![Troubleshooting15.png](https://knowledge.pricefx.com/__attachments/a_79270e528745f4731039d063cb15a673c10f31b792721122f184987e95892008/Troubleshooting15.png?cb=02829bff54959f41af5f01a552c643b4)
5. Select whether you want to append the existing list of products or replace it with the imported list.

   ![FAQ02.png](https://knowledge.pricefx.com/__attachments/a_004de62a2fa44338b277eb5285ca032b5ec86a00f287f549d95a7f618fedff3a/FAQ02.png?cb=0859297320fe1200c66cb825b838ab69)
6. Verify that the products have been imported correctly.

   ![Troubleshooting13.png](https://knowledge.pricefx.com/__attachments/a_446f986c7975925c6a094e3646c53f422eb2f8ea63b0138e1a2578008090ea57/Troubleshooting13.png?cb=230afd4ee785162fd6c9eae996461144)

**Note:** Importing line items containing multi-tier entry inputs is not supported. Only the following input types can be imported/exported: BOOLEAN, BOOLEANUSERENTRY, CUSTOMER, PRODUCT, DATETIMEUSERENTRY, DATEUSERENTRY, TIMEUSERENTRY, INTEGERUSERENTRY, LOOKUP, OPTION, RADIO, STRINGUSERENTRY, TEXTUSERENTRY, USERENTRY.

![check mark](https://knowledge.pricefx.com/__attachments/a_8d4be477d244861d4e427e867761dce5fd80c651a15234c6a06d155a7fc0deb5/atlassian-check_mark?cb=a10212e1c1021c5194f7535b6843f955) You can also export the product table. On the Export tab, click **Copy to clipboard** and paste it to a spreadsheet.

**Note:** Date, Time and DateTime values are copied with enveloping double quotes ("2020-03-12"). The reason is that Pricefx is not able to recognize date and time formatting and locale settings in Excel and exporting and importing the values from and back to Pricefx could cause problems. It is up to the user to set the correct formatting in Excel and Pricefx.

## How can I configure links in email templates to point to Unity when I use SAML SSO?

For Unity interface users' convenience, you want to change the links in [message templates](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/templates/message-templates.md) so that they point to Unity. To open a Quote in Unity from an email, set the link to:

    $baseURL$/app/#/quotes/detail/$quote.uniqueName$

If you use single sign-on (SSO), the link to the document will be in the relay state parameter.

    /pricefx/martin/saml/signon?RelayState=MyRelayState--targetPage=rebate-agreements--targetPageState=R-2147483666

As for the targetPage, the supported values are listed in [AppPages](https://qa.pricefx.eu/pricefx-api/groovy/develop/net/pricefx/formulaengine/scripting/AppPages.html) in [API Documentation](https://qa.pricefx.eu/pricefx-api/groovy/master/net/pricefx/formulaengine/scripting/AppPages.html). The targetPageState will be the uniqueName of the entity. These two parameters must be present in the relay state.

## How can I edit a Quote after it was submitted and approved?

Q: We have a Quote where we need a certain field value (PO Number) before we send this Quote to SAP, but the customer will only know the PO Number once the Quote was submitted and approved. How can we update such an approved Quote in the UI?

A: Use the following setting in the header logic:

    quoteProcessor.addOrUpdateInput("ROOT", [
    	name : "PONumber",
    	label : "Customer PO Number",
    	type : "STRINGUSERENTRY",
    	alwaysEditable:true
    ])

Note:

* If the editability is not needed in the UI, the user role 'Data Integration' can update the Quote even without marking it as always editable.

* On the line item level, you use [Parameter Details](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/logics/calculation-logics/configure-calculation-logic.md) in the logic editor to make fields editable.

## How can I automatically recalculate Quote after clicking 'Confirm Changes' in pop-up configurator?

Clicking the **Confirm Changes** button in the pop-up configurator does not trigger Quote recalculation by default.  
![ConfirmChanges.png](https://knowledge.pricefx.com/__attachments/a_87c1106f760a80547116e59c692b21afa5cf93bad632bc668ae0d715f654759d/ConfirmChanges.png?cb=b7d7dfd7042f73453e7adc67da27a2a2)

If you have several configurators in the header logic which depend on each other, it is not convenient to click the **Recalculate** button every time you need to pass values from one configurator to another.

To avoid this clicking, you can turn on the feature flag `priceEntityAfterSave`.It triggers quote recalculation automatically after you click the **Confirm Changes** button in the configurator.

To set up this feature flag:

1. Go to **Administration** \> **Feature Flags**.

2. Set `priceEntityAfterSave` to *true*.

---
version: "Latest version"
language: "en"
---
# Typical Pricefx Use Cases

A typical user in Pricefx is a Pricing Manager or Analyst whose specific needs are: a tool that can provide insightful analytics, manage price lists, discounts, support all pricing-related processes in the organization.

## Analytics

Pricing managers face a common [challenge for business](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics/analytics-for-pricing-strategy-growth.md): obtaining actionable analytics for better pricing decisions. You need a tool that not only delivers insights but also manages price lists, discounts, and all pricing processes. Current hurdles include the heavy effort needed to produce critical analyses, limited visibility into profit drivers by customer and product, and rigid performance views that no longer meet business needs. To succeed, you must quickly spot margin compression and price erosion, uncover immediate margin opportunities, and use flexible, customizable tools tailored to your organization.

### How we solve it in Pricefx

Pricefx delivers insights from sales data with segmented views by customer, product, and region. It helps identify low performers, margin leakage causes, and discount inconsistencies, while enabling performance comparisons and change analysis. Customizable real-time dashboards make it easy to uncover opportunities for profit, growth, and market share.  
![Picture1-20211130-130035.png](https://knowledge.pricefx.com/__attachments/a_580418911809e6d0b50ff020e13b9a029255fe5b906ff6f95f39904f6618974a/Picture1-20211130-130035.png?cb=9a5ba3d1102edcf573d7fe7a1a951467)

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) Check the [Pricefx Analytics](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/analytics.md) section to learn more.

## Price Setting

A common business challenge is structured price list management. Pricing teams often face slow, labor-intensive mass updates, delayed responses to cost, competition, and demand shifts, and difficulty handling complex pricing strategies and rules. To overcome this, managers need faster, more accurate mass updates with less effort, agile responses to market changes, and simpler management of complex pricing strategies.

### How we solve it in Pricefx

Pricefx streamlines price list management with rule-based setup, price grids for rapid recalculation across segments, and simulations of business impact. It supports updates to targets, increases, competitive positioning, and inventory levels, while enabling real-time response to changing costs, competition, or market conditions. Automated approval workflows, system integrations, flexible output formats (ERP, e-commerce, etc.), and embedded analytics ensure speed, accuracy, and adaptability.  
![Picture2-20211130-131508.png](https://knowledge.pricefx.com/__attachments/a_d7746663af8a344c3195130f1d0d9f9419ad8056e73cad4400b3855a3f7a1877/Picture2-20211130-131508.png?cb=07236563fb849f5f290f2c5d23d70bce)

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) Check the [Price Setting](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/price-setting.md) section to learn more.

## Quoting

Negotiating profitable deals is a common challenge, often resulting in lost business, money left on the table, slow cycles, and inconsistent profitability due to handoffs, rebates, terms, and freight. Pricing managers must reduce friction, speed up quoting and negotiation, empower sales with confidence, capture cost-to-serve and off-invoice incentives, and identify segments for optimized value-based pricing.

### How we solve it in Pricefx

Pricefx streamlines deal negotiation by enabling accurate product and service configuration, reducing errors, and guiding sales with AI-driven price optimization. Embedded analytics show margin impact and build confidence, while data-driven recommendations increase deal size. Sales can benchmark quotes with historical data, cut cycle times through automated workflows, and use customizable templates with contracts and e-signatures. Integration with leading CRMs and mobile access further simplify quoting and approvals.  
![Picture3-20211130-142133.png](https://knowledge.pricefx.com/__attachments/a_69cc7de26fb6562e854ed41d15ba20a2c707091e713289fc8ce59e94ece2a0ee/Picture3-20211130-142133.png?cb=51868ce222bbf5c80bfc37b20ddaaf26)

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) Check the [Quoting](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/quoting.md) section to learn more.

## AI-Driven Pricing Monitoring \& Action

Modern pricing organizations struggle to react fast enough to margin leakage, pricing anomalies, compliance issues, and emerging opportunities hidden in large volumes of data. Manual monitoring and ad-hoc analysis make it difficult to consistently detect risks early, act at scale, and ensure follow-through across pricing, sales, and management teams.

Pricing managers need continuous, intelligent monitoring that not only highlights issues and opportunities but also recommends concrete actions and integrates seamlessly into daily workflows.

### How we solve it in Pricefx

Pricefx Agents are **AI-powered assistants** that continuously monitor pricing, sales, customer, and margin data to proactively identify risks and opportunities. Using an event-based architecture, Agents detect defined conditions, such as sudden margin drops, unusual discounting, or outlier deals and translate insights into **actionable recommendations**.

Agents can:

* Proactively surface pricing and margin risks before they escalate

* Recommend corrective actions or optimization opportunities

* Trigger workflows, alerts, and approvals directly in existing processes

* Support collaboration between pricing, sales, and management while keeping humans in control

Agents integrate directly into the Pricefx user experience, delivering alerts and recommendations via dashboards, workflows, notifications, and [Copilot](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/copilot.md). They are configurable to specific business objectives, roles, and rules, ensuring that users see only what is relevant to them.

By combining continuous monitoring with human oversight, Pricefx Agents help organizations move from reactive pricing analysis to **continuous, AI-assisted pricing optimization**.

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) Learn more about capabilities, examples, and onboarding in the [Agents Accelerator](https://knowledge.pricefx.com/accelerators-documentation-2/latest/accelerators/agents-accelerator.md) documentation.

## Agreements \& Promotions

Structured discount management is a common challenge, with difficulties in setting promotions, customers receiving incentives without meeting commitments, and limited visibility into discount impacts. This wastes valuable resources and creates inefficiencies. Pricing managers need tools to accurately track incentive performance, give sales and pricing teams clear visibility into discounts, and reduce the effort required to manage them.

### How we solve it in Pricefx

Pricefx simplifies discount management by handling promotions and contracts across customers, products, or regions, and by supporting special conditions like volume or prepayment discounts. It analyzes discount and margin-leakage impacts on KPIs, automates approval workflows, and delivers electronic quotes with DocuSign. With ERP and CRM integration, POS/claims correlation with trade promotions, and mobile access for use and approval, Pricefx ensures accuracy, efficiency, and visibility.  
![Picture4-20211130-143332.png](https://knowledge.pricefx.com/__attachments/a_e98f03587157017113a2ac3bd3fad5acaf18fcc7aa010e71d31932b5e804d660/Picture4-20211130-143332.png?cb=52f1d707459a604424cb871dae7da849)

## Rebates

Structured rebate management is challenging due to customers gaining incentives without meeting commitments, complex calculations, and limited transparency of net-net pricing. Sales and pricing teams often lack visibility into rebate impacts, wasting time and resources. Pricing managers need tools to accurately track incentive performance, calculate net-net price and margin in one place, give teams clear rebate visibility, and reduce effort in managing rebates.

### How we solve it in Pricefx

Pricefx addresses rebate challenges by allowing rebates at any customer or product level, managing and optimizing trade promotions, and handling all rebate types. Embedded analytics predict performance and optimize spend, while automated approvals streamline workflows. The platform supports electronic rebate documents with DocuSign, integrates with CRMs and ERPs for accruals and credits, correlates POS/claims with promotions, and enables mobile use and approvals.  
![Picture5-20211130-144202.png](https://knowledge.pricefx.com/__attachments/a_5fe4a190c232497d8e9c9c7b035daed13d6d5c451b7c0b8aaddbd2345e0f1e05/Picture5-20211130-144202.png?cb=46f749697b7674ade45d4aa448d3e6df)

## Channel Management

Managing ship and debit claims is challenging due to manual, offline validation, prolonged resolution times, missing supporting details, and limited ability to forecast program success. Pricing managers need systematic, accurate, and timely claims validation, the ability to forecast accruals and calculate payouts, and clear visibility into program eligibility, validity, and exceptions.

### How we solve it in Pricefx

In Pricefx, these challenges are solved by automated handling of ship \& debit claims by distributors, integration with the ERP to issue a credit memo and execute pay-outs, validation of claims to existing agreements (e.g., rebates) or quotes, and definable approval workflow rules with steps, conditions, and approvers.  
![image-20211211-120355.png](https://knowledge.pricefx.com/__attachments/a_da7b7f00a8846c845067197f5b449ebb389e4b6a41b1dedf8527a20198cdcb34/image-20211211-120355.png?cb=39c5c85e4af7cfe8b32e4de704c7aca5)

## Optimization

Implementing price optimization is challenging due to limited control over methods, lack of transparency, and difficulty applying results to quotes and pricing. Pricing managers need data-driven, intelligent deal guidance, flexibility for overrides, list price optimization alongside other price waterfall elements across segments, and the ability to manage multiple business objectives and priorities.

### How we solve it in Pricefx with AI-based Segmentation and Price Optimization

Pricefx with AI Optimization addresses these challenges through automated price optimization based on business goals and user-defined constraints. It simultaneously optimizes all pricing elements, accounts for elasticity, predicts impacts on revenue, volume, and margin, performs breakeven analysis, and allows flexible model adjustments with priorities, rules, and constraints. Optimized pricing guidance can be output directly to CPQ, price lists, ERP, and commerce platforms.  
![Picture6-20211130-145257.png](https://knowledge.pricefx.com/__attachments/a_02c328445ecda44800f80ed9361249f69104b1d1ce9d524054802a955bc596f4/Picture6-20211130-145257.png?cb=b2378546c6cbc8a20c957245f2ec70eb)

![info](https://knowledge.pricefx.com/__attachments/a_751c952a562adcdb32a53f4cb327b0460e310ee3b8ea0ec7388645560a933015/atlassian-info?cb=feab5cd71111204d6b52545f3027dd0c) Check the [Optimization](https://knowledge.pricefx.com/pricefx-unity-documentation/pricefx-capabilities/optimization.md) section to learn more.

## Market Simulation

Continuing the price optimization journey is challenging due to reliance on historical data, optimizing prices and discounts without product-level granularity, and unknown B2B market prices. Pricing managers need to respond effectively to competitive moves, optimize assortments and inventory risk, improve seasonal and markdown pricing, and drive more successful new product launches.

### How we solve it in Pricefx

In Pricefx with Market Simulation, these challenges are solved by simulating the real behavior of customers and competitors, simulating the impact of price changes of a product to the surrounding products within the portfolio through cross-price elasticity, simulating market response to price changes and its business impacts, and supporting simultaneous optimization on multiple objectives within the market simulation scenarios. The market response is simulated through various WHAT IF scenarios.  
![image-20211211-121449.png](https://knowledge.pricefx.com/__attachments/a_1fee7cf59c49990396c3157ba88cf937efe0c4e87bfda49deff42932f456d558/image-20211211-121449.png?cb=48c1514894dfb42fec2bd3820ea08ef3)

## PlatformManager

"Platform" refers to the "inner workings" and administrative functionality underlying the Pricefx Product. It enables Pricefx, and its customers to set up and manage partitions, pull in data from Pricefx and other systems, deploy Pricefx connectors and accelerators, and integrate the Product with third-party systems (e.g., CRM).​

PlatformManager includes:

* Detailed view of the connected partitions (Pricefx instances)

* Data Integration - files upload, FTP, SAP, Salesforce, etc., data mapping and basic transformations​

* Monitoring of integration health/status,​ statistics on messages/records

* Marketplace with accelerators and integration templates

* Account management of company accounts (user groups, asset groups, business roles)​

* View of the log files on system events based on a defined period

* Notifications for system problems or other events significant to a company

* Upgrade scheduling date and time to a newer release​

PlatformManager Marketplace:

* Integration Templates - allow you to efficiently set up the IntegrationManager tool to perform specific actions related to third-party systems

* Accelerators - pre-configured solutions which implement frequently used functions that are typically related to dashboard visualizations and analytics

* Packages - pre-configured solutions designed to solve specific pricing issues. You can quickly set up a partition to a required state and allow for interaction with users (enter inputs, upload data)

![Picture7-20211130-150726.png](https://knowledge.pricefx.com/__attachments/a_4c590365f20b501c9037bd4c1796e468c3ca8390f23fb25e1ea095efad170729/Picture7-20211130-150726.png?cb=a2bc706c934d063eb92dc6c2c08ff42c)

---
version: "Latest version"
language: "en"
---
# What Is New in Latest Release

This page is no longer updated. To see what's new in the latest **major** Pricefx release:

1. Open the [**Release Notes**](https://knowledge.pricefx.com/release-info/release-notes.md) page.

2. In the **Pricefx** section, find the most recent entry for the version you want to review.

3. Open that entry for the detailed release notes.

> Tip: Bookmark the [**Release Notes**](https://knowledge.pricefx.com/release-info/release-notes.md) page for quick access to major and minor Pricefx releases and other Pricefx products.

---
language: "en"
---
# Dynamic Interceptors

Dynamic interceptors allow users to manipulate data and generate side effects on specific events in Pricefx. They are essentially a piece of JavaScript code, which is stored as a record in Advanced Configuration and is dynamically loaded when you have an active interceptor.

This JavaScript code is an exported function that will be called when a specific event is triggered (what is called intercepted method) and this function will have access to an API according to the given method.

For example, when you use Pricefx inside a CRM and create a quote, it will be prefilled with CRM opportunity data. Interceptors offer a wider range of possibilities than only filling fields on a CLIC object. (If your use case is only filling fields, see [Visual Mapping](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/crm-integration/visual-mapping.md).)

You can find interceptor and CRM integration education videos here <https://www.youtube.com/playlist?list=PLdDE-zljgJOp9n96IB9GyJsUkpd3CcPWF>.  
* [Introduction to JavaScript](https://knowledge.pricefx.com/interceptors/introduction-to-javascript.md)
* [How to Create Interceptor](https://knowledge.pricefx.com/interceptors/how-to-create-interceptor.md)
* [How to Edit Interceptor](https://knowledge.pricefx.com/interceptors/how-to-edit-interceptor.md)
* [Interceptor Debugging](https://knowledge.pricefx.com/interceptors/interceptor-debugging.md)
* [Interceptor Methods](https://knowledge.pricefx.com/interceptors/interceptor-methods.md)
* [Interceptor API](https://knowledge.pricefx.com/interceptors/interceptor-api.md)
* [Interceptor Examples/Use Cases](https://knowledge.pricefx.com/interceptors/interceptor-examples-use-cases.md)
* [How to Add New Interceptor Template and Update Documentation](https://knowledge.pricefx.com/interceptors/how-to-add-new-interceptor-template-and-update-documentation.md)
* [FAQ](https://knowledge.pricefx.com/interceptors/faq.md)
* [CRM Integration](https://knowledge.pricefx.com/interceptors/crm-integration.md)

---
language: "en"
---
# CRM Integration

CRM integration and Interceptors are related topics, as without CRM integration, Interceptors would not be that much useful.

Integration should be done properly to avoid conflicts or making the Interceptor behave incorrectly, even if the interceptor is written correctly.

To integrate pricefx into CRM you need to know:

1. Which Identity Provider your company uses and how to add pricefx into it (SSO): [Configure Identity Provider](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/configuration/external-systems/saml-configuration/configure-identity-provider.md),

2. How to configure and administrate pricefx: [Administration and Data Setup](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup.md),

   1. Important topic related to interceptors: [Feature Flags](https://knowledge.pricefx.com/pricefx-unity-documentation/administration-and-data-setup/administration/feature-flags.md),

3. How to integrate pricefx as a iFrame into your CRM: [CRM Integration Options](https://knowledge.pricefx.com/pricefx-unity-documentation/crm-integration-options.md).

---
language: "en"
---
# FAQ

## Interceptor throws error after switching to React from Ember

Unfortunately interceptors between Ember and React are not compatible. If you want to switch to react, you will need to rewrite interceptor and use interceptor methods and API's created for react.

## Why is Interceptor working on the account page, but is not working on the opportunity page?

Check **Configuration** \> **CRM Integration** \> **Interceptors** in both pages:

If one of the iFrames is showing that Interceptor is not set, then most likely it happened because each iFrame has it own CRM configuration (this is correct), for example:

* iFrame in the Account Page is using crm_config_account

* iFrame in the Opportunity Page is using crm_config_opportunity

Simply set same Interceptor on Opportunity Page from pricefx, or if you want to use Pricefx Studio/Pricefx Code find CRM config which is used by opportunity and add new field `"interceptor": "name of the interceptor"`.

## Why do I keep getting `Promise<Pending>` when using API?

Use `await` or `then` when using API.

If you do not use `await` or `then` with `api`, `quoteAPI`, or other API's, they will not yield any results, as all parameters within Interceptor Methods are Promises.

Incorrect

    export const quotesDetailSubmitPre = async ({ api: { crmManager } }) => {
      const payload = crmManager.getPayload()
      console.log(payload) // returns {Promise pending}
    }

Correct

    export const quotesDetailSubmitPre = async ({ api: { crmManager } }) => {
      const payload = await crmManager.getPayload()
      console.log(payload) // returns {id: '123', name: 'pricefx Pivo a Párek' ...}
    }

---
language: "en"
---
# How to Add New Interceptor Template and Update Documentation

To add a new template, you need to have read and write access in the *pricefx-clients-js* repository.

## How to Add a New Template

1. In pricefx-clients-js access the folder `packages/pricefx-modules/src/app/context/crmIntegration/dynamicInterceptors/templates`.

2. The file names represent the interceptor methods. To add a new template, select the interceptor method where you wish to add it and put your template there.

   1. If you did not find the template file for the interceptor method, you need to create a new file and put it in the file called `packages/pricefx-modules/src/app/context/crmIntegration/dynamicInterceptors/templates/index.ts`.

   2. Push changes into the branch and merge it.

## How to Update Documentation

After you make any changes in interceptors, the documentation is not updated automatically. To update the documentation at <https://api.pricefx.com/>, you have to:

1. Open the Pricefx app.

2. In the web browser console, write `window.generateDoc = true;` and press Enter.

3. In Pricefx, go to the page `#/administration/configuration/crm-integration/interceptors`.

4. You should have the content for documentation in the browser console. Copy it.

5. Paste the content into the file `packages/pricefx-modules/src/app/context/crmIntegration/dynamicInterceptors/interceptorMethodNames.ts`.

6. Push changes into the branch and merge it.

---
language: "en"
---
# How to Create Interceptor

## How to Create Interceptor in Pricefx

Prerequisites: Make sure you have the *Develop Interceptors* role assigned.

Steps to create an interceptor:

1. Go to **Configuration** \> **CRM Integration** \> **Interceptors**.

2. Click the **Set Interceptor** button which will display a modal window where you can create an interceptor.

   Note that all interceptors have *pfxInterceptor_* as a prefix which will be used when saving them as an Advanced Configuration record. You can also set the interceptor as temporary which means that the given interceptor will be activated only for your own browser session.

   ![Screenshot%202022-04-11%20at%208.25.25%201.png?version=1&modificationDate=1649658459866&cacheVersion=1&api=v2&height=400](https://knowledge.pricefx.com/__attachments/a_5d80d641513fb2814b84c7bc71a8602ba60d35500f6dda42f38e029c3e216f0f/Screenshot%25202022-04-11%2520at%25208.25.25%25201.png%3Fversion=1&modificationDate=1649658459866&cacheVersion=1&api=v2&height=400?cb=46dc59104d8a76c6c8fdaba6e2c1e7e4)

Interceptors are specific to each CRM configuration.

Example scenario:

1. Your app uses two CRM configurations: crm_config_account and crm_config_opportunity

2. You set up an Interceptor while the app is using crm_config_account

3. Result: The Interceptor will only work with crm_config_account

4. Important: crm_config_opportunity will not have this Interceptor and you need to set it seperatly for crm_config_opportunity.

In simpler terms, when you set up an Interceptor, it only applies to the specific CRM configuration you're currently using. Other CRM configurations in your app won't automatically get the same Interceptor.

## How to Create Interceptor in IntelliJ

Prerequisites: Make sure you have the *Develop Interceptors* role assigned.

This method requires more steps and might be more difficult than creating an interceptor using pricefx, but provides more control while creating.

Steps to create an interceptor:

1. Check your version of Pricefx Studio in Plugins and update the version if necessary. If the plugin is missing, [install Pricefx Studio](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/tools/pricefx-studio/how-to-studio/install-studio.md) first.

   ![image2022-1-20_21-42-13.png?version=1&modificationDate=1642711334696&cacheVersion=1&api=v2&height=250](https://knowledge.pricefx.com/__attachments/a_f013270780a0fbbe5a62dcea6e5873329cdce601dc078b885aa2e9f0e98c4624/image2022-1-20_21-42-13.png%3Fversion=1&modificationDate=1642711334696&cacheVersion=1&api=v2&height=250?cb=51b4597fe2dbe250d3731c9d8c2bd2d7)

2. Edit the *Config.js* file to be able to fetch and deploy your solution to the correct environment.

   ![image2022-1-20_21-45-31.png?version=1&modificationDate=1642711532498&cacheVersion=1&api=v2&width=643](https://knowledge.pricefx.com/__attachments/a_bd5950f8f97063428a8e6b8b9aa31d1584e808dc04150a8f65b8b3663701b7b3/image2022-1-20_21-45-31.png%3Fversion=1&modificationDate=1642711532498&cacheVersion=1&api=v2&width=643?cb=87d743a5a80015f9f7fd5acc5033bd8b)

3. Create in **Advanced configuration** new file and name it `pfxInterceptor_*.js` (instead of \* put name of interceptor).

   ![image-20241002-114212.png](https://knowledge.pricefx.com/__attachments/a_9b3488490da69a54fda9feb751a670563813e54a9084211779f08c24fe6f50c4/image-20241002-114212.png?cb=8149c48cc5000b184f99f325d88bcba4)

4. Edit Interceptor and Deploy it to partition.

5. Find and Fetch CRM config which will use interceptor, default value of the CRM config is `crm_config`.

   ![image-20241002-114938.png](https://knowledge.pricefx.com/__attachments/a_2719f52a30d4ac65eb17e0ec9bdf071507dc174564fc664136f0b0dbaf815006/image-20241002-114938.png?cb=36c64b8fb3545723aa6ba630bdb0ba86)

6. In CRM config find or add key `interceptor`, as a value should be interceptor name.

   ![image-20241002-115342.png](https://knowledge.pricefx.com/__attachments/a_066fed7e725aa4f4ca9dab723dd52266efc1aeb9166279b2d343bba4ec55aec8/image-20241002-115342.png?cb=04bb5076bf77251631a2b7998caf6d5e)

7. After the code is deployed, use the **Reload Interceptor** functionality.

   ![Screenshot%202022-03-21%20at%2021.54.46.png?version=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603](https://knowledge.pricefx.com/__attachments/a_a0bf45370665d24fabac385ee3edd2c02d715c08431ba19b3b2463941abdd0c1/Screenshot%25202022-03-21%2520at%252021.54.46.png%3Fversion=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603?cb=6bf2b1bc822764b872cb250833674b4c)

8. Optional. Open pricefx and check if in **Administration** \> **Configuration** \> **CRM Integration** \> **Interceptors** interceptor is selected.

---
language: "en"
---
# How to Edit Interceptor

## How to Edit Interceptor in Pricefx

Available from version 14.0

You can edit Interceptor's code directly from Pricefx.

1. Go to **Administration** \> **Configuration** \> **CRM Integration** \> **Interceptors**.

2. Click **Edit interceptor**.

3. The window with the code of the currently Active interceptor will appear.

![Interceptor_Editor_Window.png](https://knowledge.pricefx.com/__attachments/a_7c70b7ae6622a8121dacfa1b39d2a974095ca083835e76b8c3831faf76d81b10/Interceptor_Editor_Window.png?cb=10bb8a18e3123ba7f9e48b6b53265d59)

## How to Add Interceptor Method Template in Pricefx

Prerequisites:

* Make sure you have the *Develop Interceptors* role assigned.

* You have crated Interceptor, and it's assigned to CRM config.

Steps to edit an Interceptor:

1. In **Configuration** \> **Interceptors** you will see all available intercepted methods. Each method refers to an event in Pricefx [Interceptor Methods](https://knowledge.pricefx.com/interceptors/interceptor-methods.md). Some of these events are:

   * **quotesDetailNewCheck**

     This method is triggered after clicking the **New** button at */#/qc/quotes* , but before the Quote is created. If this method returns *false*, the Quote will not be created and the user will stay at the Quote list. In this method you do not have access to quoteAPI, but you can use other APIs for checking conditions from CRMs.

   * **quotesDetailNew**

     The starting point for this event is clicking the **New** button at */#/qc/quotes* . The method is triggered after the new Quote is recalculated and saved at backend and the user is redirected to the Quote detail page */#/qc/quotes/\<quoteId\>*.

   * **quotesDetailEdit**

     Triggered when a user opens the Quote detail page.

   * **quotesDetailRecalculate**

     Triggered when a user clicks the **Recalculate** button on the Quote detail page */#/qc/quotes/\<quoteId\>*.

   * **quotesDetailSubmit**

     Triggered when a user clicks the **OK** button in the Submit modal dialog on the Quote detail page */#/qc/quotes/\<quoteId\>* after clicking **Submit**.

   * **quotesDetailTabSwitch**

     Triggered at Quote detail at open and then when the user switches to a different tab.

     To see a regularly updated list of all available methods and when they are triggered, visit [interceptor Method Names](https://developer.pricefx.eu/pricefx-api/javascriptdoc/master/modules/Interceptor_Methods.html).

2. As you expand one of the method fields, you will see [Add PRE Code](https://knowledge.pricefx.com/interceptors/interceptor-methods.md#PRE-and-POST-Methods), and/or [Add POST Code](https://knowledge.pricefx.com/interceptors/interceptor-methods.md#PRE-and-POST-Methods) buttons (according to each method's compatibility):

   ![image-20230727-132201.png](https://knowledge.pricefx.com/__attachments/a_aa022b80737cd8cd9c2a0a876a3f840848b58a5e6d0e9fcc8be46b11885e6b81/image-20230727-132201.png?cb=221254d915149ca9ae2a7c2c59c31f02)

   When clicking any of them, a modal window will show:  
   ![image-20241002-121106.png](https://knowledge.pricefx.com/__attachments/a_f5490f2d11150bb68dd4e0dd411b68867ae24194b5d4f62a79d426a0bbb5d777/image-20241002-121106.png?cb=324395589df739fa3446e01d23cb0335)

   There is a dropdown menu with available templates, and you can also paste your JavaScript code in there.
3. Reload the interceptor every time after modifying the interceptor to apply changes.

   ![Screenshot%202022-03-21%20at%2021.54.46.png?version=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603](https://knowledge.pricefx.com/__attachments/a_44d1b9ed97591cad857272bd9d4a98d65d792b25130fcb55a2c51677eea46991/Screenshot%25202022-03-21%2520at%252021.54.46.png%3Fversion=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603?cb=6bf2b1bc822764b872cb250833674b4c)

4. Finally, you can test the interceptor's functionality, in this case by creating a new quote:

![Screenshot%202022-04-11%20at%208.40.19.png?version=1&modificationDate=1649659533332&cacheVersion=1&api=v2&height=150](https://knowledge.pricefx.com/__attachments/a_e436c1f5a0aaf0487a3d00e3e9b1023323832634686e783f61a0a4784e64fcfd/Screenshot%25202022-04-11%2520at%25208.40.19.png%3Fversion=1&modificationDate=1649659533332&cacheVersion=1&api=v2&height=150?cb=d3bfedbbc665216f756aabda79194579)

## How to Edit Interceptor in VSCode or VSCodium

Prerequisites: Make sure you have the *Develop Interceptors* role assigned.

For a better user experience during development, we strongly recommend using VSCode with the Pricefx Code extension as IntelliJ offers JavaScript code highlighting only in paid versions of the IDE.

1. Install and login to the partition in which you want to edit interceptor. Here's how to get it done [Pricefx Code](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/tools/pricefx-code.md).

2. Open the interceptor you would like to edit.

   ![image-20241002-123003.png](https://knowledge.pricefx.com/__attachments/a_a8711c39bef7169d07744c1ba1c56848a251f0eb56cdc97c25cf02b58f2a0eb7/image-20241002-123003.png?cb=38b02def8a2e0995b56d1716069d55e8)

3. Save the file after editing is done. A notification should appear and inform that the interceptor was saved.

4. Reload the interceptor every time after modifying the interceptor to apply changes.

   ![Screenshot%202022-03-21%20at%2021.54.46.png?version=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603](https://knowledge.pricefx.com/__attachments/a_44d1b9ed97591cad857272bd9d4a98d65d792b25130fcb55a2c51677eea46991/Screenshot%25202022-03-21%2520at%252021.54.46.png%3Fversion=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603?cb=6bf2b1bc822764b872cb250833674b4c)

## How to Edit Interceptor in IntelliJ

Prerequisites: Make sure you have the *Develop Interceptors* and *General Admin* role assigned.

Steps to edit an Interceptor:

1. Check your version of Pricefx Studio in Plugins and update the version if necessary. If the plugin is missing, [install Pricefx Studio](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/tools/pricefx-studio/how-to-studio/install-studio.md) first.

   ![image2022-1-20_21-42-13.png?version=1&modificationDate=1642711334696&cacheVersion=1&api=v2&height=250](https://knowledge.pricefx.com/__attachments/a_8a0eb2674d7d75ee485a22f54756789baa01bd9dc81f79718452cb8307393605/image2022-1-20_21-42-13.png%3Fversion=1&modificationDate=1642711334696&cacheVersion=1&api=v2&height=250?cb=51b4597fe2dbe250d3731c9d8c2bd2d7)

2. Edit the *Config.js* file to be able to fetch and deploy your solution to the correct environment.

   ![image2022-1-20_21-45-31.png?version=1&modificationDate=1642711532498&cacheVersion=1&api=v2&width=643](https://knowledge.pricefx.com/__attachments/a_636df913497f5f2ee5b35717d394fcf3a63c62961b1be7ddfa6fd05e95e631dc/image2022-1-20_21-45-31.png%3Fversion=1&modificationDate=1642711532498&cacheVersion=1&api=v2&width=643?cb=87d743a5a80015f9f7fd5acc5033bd8b)

3. After creating a new Dynamic Interceptor on the **Configuration** \> **Interceptors** page, you can fetch it. Select the **Environment** and **Partition** that you want to work with and locate your interceptor in the Advanced configuration. Then click the **Fetch** button.

   ![image2022-1-20_21-49-10.png?version=1&modificationDate=1642711752545&cacheVersion=1&api=v2&width=532](https://knowledge.pricefx.com/__attachments/a_231eb0428f52f04a3f789138d91cf8e1562f9db8ac09c542ab2b9ec3e3ceb4e6/image2022-1-20_21-49-10.png%3Fversion=1&modificationDate=1642711752545&cacheVersion=1&api=v2&width=532?cb=f76cb4af5de2e405ae4b58c1aefeae64)

4. The procedure is similar to deploying your solution after some changes.

   ![image2022-1-20_21-57-32.png?version=1&modificationDate=1642712253913&cacheVersion=1&api=v2&width=752](https://knowledge.pricefx.com/__attachments/a_aa5fa0bc781e8f1cd153fc1665157910ed0f6618adb1c9ef4cdc66c34ce753e9/image2022-1-20_21-57-32.png%3Fversion=1&modificationDate=1642712253913&cacheVersion=1&api=v2&width=752?cb=a70368315f03863140e66b4e12b4c324)

5. After the code is deployed, use the **Reload Interceptor** functionality.

   ![Screenshot%202022-03-21%20at%2021.54.46.png?version=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603](https://knowledge.pricefx.com/__attachments/a_44d1b9ed97591cad857272bd9d4a98d65d792b25130fcb55a2c51677eea46991/Screenshot%25202022-03-21%2520at%252021.54.46.png%3Fversion=1&modificationDate=1647896261911&cacheVersion=1&api=v2&width=603?cb=6bf2b1bc822764b872cb250833674b4c)

---
language: "en"
---
# Interceptor API

API (Application Programming Interfaces) is tool that allow your interceptor to communicate with pricefx and CRM.

This means you can use API's to retrieve data from pricefx or CRM and insert data into them. While these are the most common uses for API's, they can also be used for other purposes, although these may be less common.

[Common Interceptor API](https://knowledge.pricefx.com/interceptors/interceptor-api/common-interceptor-api.md) is common for all Interceptor Methods.

[https://pricefx.atlassian.net/wiki/pages/resumedraft.action?draftId=5497389098\&draftShareId=f435cbba-5709-4904-b37f-5b34710261b5](https://pricefx.atlassian.net/wiki/pages/resumedraft.action?draftId=5497389098&draftShareId=f435cbba-5709-4904-b37f-5b34710261b5) is used only for CLIC modules (Quotes, Rebates, Contracts, Compensation Plans).

---
language: "en"
---
# CLIC Method Interceptor API

## Overview

This API is designed for working with Quotes, Contracts, Rebate Agreements, and Compensation Plans. It provides functionality for both list and detail views of these entities.

## API Naming Convention

The API name varies based on the module where it's used:

* Quotes: `quoteAPI`

* Compensation Plans: `compensationPlanAPI`

* Contracts: `contractAPI`

* Rebate Agreements: `rebateAgreementAPI`

### Usage Example

JavaScript

    export const quotesDetailAccountAssign = ({ quoteAPI }) => {
      // code
    }

### Special Cases

For specific interceptor methods, the API names are:

* `quotesDetailCreateNewRevision`: `quoteNewRevisionAPI`

* `quotesDetailCopy`: `quoteCopyAPI`

* Origin API: `quoteOriginAPI`

Similar patterns apply for Contracts, Rebate Agreements, and Compensation Plans.

## API Methods

### addFolder

Creates folder in line items tab in CLIC module.

**Parameters**:

* `name` (required): String - The name of the folder to be added.

* `params`: {

  `parent`?: *string* ;

  }

  An options object containing additional properties for the folder.
  * `parent`?: *string*

    The ID of the parent folder.

**Example**:

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const folder = await quoteAPI.addFolder("First Folder"); // folder contains id of folder
      await quoteAPI.addFolder('My Folder', {parent: folder});
    }

### addHeaderInput

Adds an input to the CLIC header.

**Parameters**:

* `input`: Object - The input object to be added

### addLineItems

JavaScript

    addLineItems: ((string[]) => Promise<string[]>)

Adds line items to the CLIC object.

**Parameters:**

* `lineItemIds`: string\[\] - Array of line item IDs

### deleteLineItems

JavaScript

    deleteLineItems: ((string[]) => Promise<string[]>)

Deletes line items from the CLIC object.

**Parameters:**

* `lineItemsIds`: string\[\] - Array of line item IDs

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const lineItems = await quoteAPI.getLineItems();
      const response = await quoteAPI.deleteLineItems([lineItems[0].lineId]);
      console.log({ response }); // 1
    };

### disableHeaderInputs

Disables inputs at the CLIC header. (CLIC Detail Only)

**Parameters:**

* `inputNames`: string \| string\[\] - Name(s) of input(s) to disable

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.disableHeaderInputs('Customer'); // or ['Customer', ...]
    }

### getHeaderInput

Gets an input by inputName from the CLIC header.

**Parameters:**

* `inputName`: string - The name of the input

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const clicInput = await quoteAPI.getHeaderInput('Customer');
      console.log(clicInput); // {"name": "Customer", "label": "Customer", "value": "CD-0001", ...}
    }

### getHeaderInputValue

Returns an input value from the CLIC header.

**Parameters:**

* `inputName`: string - The name of the input

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const clicInputValue = await quoteAPI.getHeaderInputValue('Customer');
      console.log(clicInputValue); // 'CD-0001'
    }

### getHeaderOutput

Gets an output by outputName from the CLIC header.

**Parameters:**

* `outputName`: string - The name of the output

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const clicOutput = await quoteAPI.getHeaderOutput('totalAmount');
      console.log(clicOutput); // {"resultName": "totalAmount", "resultLabel": "totalAmount", "result": 123456789.12345679, ...}
    }

### getHeaderOutputResult

Returns an output result from the CLIC header.

**Parameters:**

* `outputName`: string - The name of the output

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const clicOutputResult = await quoteAPI.getHeaderOutputResult('totalAmount');
      console.log(clicOutputResult); // 123456789.12345679
    }

### getHeaderType

Retrieves CLIC header type.

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const headerType = await quoteAPI.getHeaderType(); // 'Default_quote_type'
    }

### getHeaderValue

Gets a value from the CLIC header.

**Parameters:**

* `name`: string - The name of the property to obtain

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const quoteStatus = await quoteAPI.getHeaderValue('quoteStatus');
      console.log(quoteStatus) // 'DRAFT'
    }

### getLineItemInput

Returns an input by name from the first line item fetched by queryData.

**Parameters:**

* `queryData`: QueryData

* `name`: string - The name of the input

### getLineItemInputValue

Returns a value from the input defined by name from a line item.

**Parameters:**

* `queryData`: QueryData

* `name`: string - The name of the input

### getLineItemOutput

Returns an output by resultName from the first line item fetched by queryData.

**Parameters:**

* `queryData`: QueryData

* `resultName`: string - The name of the output

### getLineItemOutputResult

Returns a result from the output defined by outputName from a line item.

**Parameters:**

* `queryData`: QueryData

* `outputName`: string - The name of the output

### getLineItems

JavaScript

    getLineItems: (() => Promise<string[]>)

Fetches items from CLIC by queryData.

**Parameters:**

* `queryData`: QueryData

### getLineItemsInPage

Fetches items as a page from CLIC by queryData and limit.

**Parameters:**

* `queryData`: QueryData

* `limit`: number

### recalculate

JavaScript

    recalculate: (() => Promise<void>)

Triggers a recalculation at the CLIC object.

**Parameters:**

* `forceAsync`: boolean (optional) - Force the recalculation as an async job

### setDisabledButtons

Disables CLIC detail buttons in the header/items tabs. (CLIC Detail Only)

**Parameters:**

* `buttons`: string \| string\[\] - Button(s) to disable

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.setDisabledButtons(['calculate', 'assignAccount', 'duplicate']);
    }

### setHeaderInputValue

Sets an input value at the CLIC header.

**Parameters:**

* `inputName`: string - The name of the input

* `value`: any - The value to set

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.setHeaderInputValue('ProjectID', 'Some ID');
      await quoteAPI.setHeaderInputValue('ProjectName', 'Project Name');

      // Input with configurator
      await quoteAPI.setHeaderInputValue('Configurator_Documents', {
        InvoiceMethod: 'Invoice method',
        OpportunityOwner: 'Name',
        OpportunityOwnerEmail: 'Email',
        OpportunityOwnerPhone: 'Phone',
        OpportunityOwnerTitle: 'Title'
      });
    }

### setHeaderOutputResult

Sets an output result at the CLIC header.

**Parameters:**

* `outputName`: string - The name of the output

* `value`: any - The result value of the output

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      const clicOutputResult = await quoteAPI.setHeaderOutputResult('outputName', 'Test value');
    }

### setHeaderValue

Updates a field at the CLIC header.

**Parameters:**

* `name`: string - The name of field at the CLIC header

* `value`: any - The value of the field to be set

**Example:**
JavaScript

    export const quotesDetailNew = async ({ quoteAPI }) => {
      await quoteAPI.setHeaderValue('label', 'Updated label from intercepted method');
    }

### setLineItemInputValue

Sets a value of the input with a name which is at the first line item defined by queryData.

**Parameters:**

* `queryData`: QueryData

* `name`: string - The name of the input

* `value`: any - The value of the input

### setLineItemInputValues

Updates multiple line item inputs values at once.

**Parameters:**

* `queryData`: QueryData

* `inputsToAdd`: Object - Key-value pairs of input names and their values

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.setLineItemInputValues('product-1', {Quantity: 3, Customer: 'CD-0001'});
    }

### setReadOnly

Sets the CLIC object as read-only in UI. (CLIC Detail Only)

**Parameters:**

* `readOnly`: boolean

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.setReadOnly(true);
    }

### updateHeader

Updates header values and header input values.

**Parameters:**

* `values`: Object - Key-value pairs of header field names and their values

* `inputValues`: Object - Key-value pairs of header input names and their values

**Example:**
JavaScript

    export const quotesDetailOpen = async ({ quoteAPI }) => {
      await quoteAPI.updateHeader({externalRef: 'new external ref', label: 'new label'}, {Customer: 'CD-0001'});
    }

## Notes

* Some methods are only applicable in CLIC Detail view and not in list view.

* When using dot notation for nested inputs (e.g., `collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1`), ensure the path is correct.

* Always handle promises returned by these methods appropriately in your code.

---
language: "en"
---
# Common Interceptor API

## Overview

The Interceptor API's provides default API functions available in each intercepted method. This interface enables various operations and interactions within the pricefx.

## API Methods

### add

Methods for adding new customers and products.

#### customer

JavaScript

    customer: ((customer) => Promise<any>)

Adds a new customer.

**Parameters:**

* `customer`: any - Customer Object.

#### product

JavaScript

    product: ((product) => Promise<any>)

Adds a new product to products.

**Parameters:**

* `product`: any - Product Object.

**Example:**
JavaScript

    await api.add.product({
      sku: 'KS-2003',
      label: 'Test2',
      unitOfMeasure: 1,
      currency: 'CZK',
      formulaName: 'ActionButtons',
      attribute18: 'A'
    });

### app

Used for obtaining data from Unity which are not accessible through configuration.

#### getCurrentUser

JavaScript

    getCurrentUser: (() => Promise<User>)

Returns the logged-in user.

**Example:**
JavaScript

    await api.app.getCurrentUser()
    /*
    {
      "version": 2,
      "typedId": 123,
      "loginName": "donatas.ka",
      ...
    }
    */

### configuration

Methods for managing configuration.

#### overrideConfig

TypeScript

    overrideConfig: ((path, value) => Promise<void>)

Used to **temporarily** set a value in the configuration. Updated configuration is valid only in the current web browser tab.

**Parameters:**

* `path`: string - Name of configuration.

* `value`: any - Configuration new value.

**Example:**
JavaScript

    await api.configuration.overrideConfig(
      'applicationEnvironment',
      'salesforce'
    );

#### retrieveConfig

TypeScript

    retrieveConfig: ((path, defaultValue?) => Promise<any>)

Reads values from Pricefx configuration object.

You can use it to get values from feature flags or some other values such as:

* type - dev \| prod

* partition

* applicationEnvironment - standalone \| salesforce \| c4c \| dynamics \| sugarCRM

* apiUrl

* locale

**Parameters:**

* `path`: string - Name of configuration.

* `defaultValue`: any - (Optional) If retrieving the configuration is unsuccessful, the default value will be returned.

**Example:**
JavaScript

    const visibleDashboards = await configuration.retrieveConfig(
     'customerSpecificFeatureFlag.dashboards.visible.account',
      []
    );

### crmManager

Enables communication with CRMs in which Pricefx is embedded.

#### callAndReceive

TypeScript

    callAndReceive: ((message) => Promise<any>)

Triggers postMessage with a message in the window with CRM.

**Parameters:**

* `message`: any - Data which will be sent to CRM.

**Example:**
JavaScript

    const message = {
      fields: [
        { id: 'name', value: 'New name' },
        { id: 'description', value: 'New description' }
      ]
    };
    return api.crmManager.callAndReceive({ action: 'createNewQuote', data: message })

#### findAccount

TypeScript

    findAccount: (() => Promise<any>)

Returns Account from CRM with provided ID.

#### findAccounts

TypeScript

    findAccounts: ((name) => Promise<{ Id: string; Name: string; }[]>)

Returns max 10 Accounts from CRM which contains the value passed into the function.

**Parameters:**

* `name`: any - Name of the account.

#### findByQuery

TypeScript

    findByQuery: ((query) => Promise<any>)

Finds data in CRM's by SQL query. Supported keywords: `SELECT`, `FROM`, `WHERE`, `LIMIT`, `AND`, and `OR`.

Supported operators for Salesforce, C4C, and Dynamics: `=`, `!=`, `<`, `>`, `<=`, `>=`, `LIKE`.

Supported operators for SugarCRM: `=`, `LIKE`.

**Parameters:**

* `query`: string - Query which will be executed.

**Example:**
JavaScript

    export const crmFindOpportunitiesPre = ({
      result,
      searchText,
      api
    }) => {
      const query = `
        SELECT Id, Name, StageName, RecordType.Name
        FROM Opportunity
        WHERE Name = '%${searchText}%'
        LIMIT 10
      `;
      return api.crmManager.findByQuery(query).then(list => {
        list.forEach(item => {
          item.Name = `${item.Name} (${item.RecordType.Name})`;
        });
        result.list = list;
        return result;
      });
    };

#### getAccountAssociatedValue

TypeScript

    getAccountAssociatedValue: (() => Promise<any>)

Returns the value of the accountAssociatedValue feature flag.

#### getAccountAssociationField

TypeScript

    getAccountAssociationField: (() => Promise<string>)

Returns the value of the accountAssociationField feature flag.

#### getCurrentUser

TypeScript

    getCurrentUser: (() => Promise<CrmUser>)

Retrieves the current user from the CRM.

#### getOpportunityAssociatedValue

TypeScript

    getOpportunityAssociatedValue: (() => Promise<any>)

Returns the value of the opportunityAssociatedValue feature flag.

#### getOpportunityLineItemURL

TypeScript

    getOpportunityLineItemURL: ((externalId) => Promise<string>)

Returns a link to the opportunity line items with provided ID. Salesforce only.

**Parameters:**

* `externalId`: string - Id of the opportunity.

#### getOpportunityURL

TypeScript

    getOpportunityURL: ((externalId) => Promise<string>)

Returns a link to the opportunity with provided ID. Salesforce only.

**Parameters:**

* `externalId`: string - Id of the opportunity.

#### getPayload

TypeScript

    getPayload: (() => Promise<any>)

Returns CRM payload. The value of the payload will vary based on CRM used with Pricefx.

**Example:**
JavaScript

    export const quotesDetailNew = async ({
      quoteAPI,
      api
    }) => {
      const payload = await api.crmManager.getPayload();
      await quoteAPI.setHeaderValue('label', payload.Name);
      await quoteAPI.setHeaderInputValue('Customer', payload.Customer_Number__c);
      await quoteAPI.setHeaderInputValue('ProjectID', payload.Project_Id__c);
      await quoteAPI.setHeaderInputValue('ProjectName', payload.Project__c);
    };

#### getQuoteAccountReferenceField

TypeScript

    getQuoteAccountReferenceField: (() => Promise<string>)

Returns the value of the quoteAccountReferenceField feature flag. (Deprecated, use getAccountAssociationField instead)

#### getSObjectURL

TypeScript

    getSObjectURL: (() => Promise<string>)

Returns a link of the SObject. Salesforce only.

#### getSugarCrmEntityById

TypeScript

    getSugarCrmEntityById: ((module, id) => Promise<any>)

Loads an entity by ID from the module. SugarCRM only.

**Parameters:**

* `module`: string - Name of the module.

* `id`: string - Id of the object in module.

**Example:**
JavaScript

    const parentAccount = await api.crmManager.getSugarCrmEntityById('Accounts', parentId);

#### isAccountPage

TypeScript

    isAccountPage: (() => Promise<boolean>)

Returns true when Pricefx is embedded under an account page in CRM.

**Example:**
JavaScript

    export const quotesDetailSubmit = async ({
      api
    }) => {
      if(await api.crmManager.isAccountPage()) {
        await api.notify.success('We on account page');
      }
    };

#### isOpportunityPage

TypeScript

    isOpportunityPage: (() => Promise<boolean>)

Returns true when Pricefx is embedded under the opportunity page in CRM.

**Example:**
JavaScript

    export const quotesDetailSubmit = async ({
      api
    }) => {
      if(await api.crmManager.isOpportunityPage()) {
        await api.notify.success('We on opportunity page');
      }
    };

#### postCall

TypeScript

    postCall: ((url, method, payload) => Promise<any>)

Calls HTTP request in CRM. Salesforce and SugarCRM only.

**Parameters:**

* `url`: string - API call url.

* `method`: GET \| POST \| PUT \| DELETE - Method which will be used for API call.

* `payload`: any - Body of the API call.

**Example:**
JavaScript

    export const quotesDetailSubmit = async ({
      quoteAPI,
      api
    }) => {
      const externalRef = await quoteAPI.getHeaderValue('externalRef');
      const opportunityUrl = await api.crmManager.getOpportunityURL(externalRef);
      const totalValue = await quoteAPI.getHeaderOutputResult('TotalAmount');
      const payloadForSF = {
        PriceFx_Quote_No__c: quoteAPI.getHeaderValue('uniqueName'),
        Amount: totalValue
      };
      api.crmManager.postCall(opportunityUrl, 'PATCH', payloadForSF).then(() => {
        api.notify.success('Opportunity was updated.');
      });
    };

#### updateCache

TypeScript

    updateCache: ((path, data) => Promise<void>)

This function is used to manipulate _initCache in SugarcrmManager. It is mainly used to modify the parent account under the account page in SugarCRM. **SugarCRM only.**

**Parameters:**

* `path`: string - Path to Cache.

* `data`: any - Data for update.

**Example:**
JavaScript

    // Data is a parent account for the current account
    crmManager.updateCache('sugarCRMData.payload.Account', data)

### fetch

Methods for fetching customer and product data.

#### customer

TypeScript

    customer: ((customerId) => Promise<Customer>)

Fetches a customer by their ID.

**Parameters:**

* `customerId`: string - Customer ID.

#### customerByFilter

TypeScript

    customerByFilter: ((customFilter) => Promise<Customer[]>)

Fetches customers based on a custom filter.

**Parameters:**

* `customFilter`: string - Criteria.

#### customerByName

TypeScript

    customerByName: ((customerName) => Promise<Customer[]>)

Fetches customers by their name.

**Parameters:**

* `customerName`: string - Customer Name.

#### customerExtension

TypeScript

    customerExtension: ((tableName, filter) => Promise<CustomerExtension[]>)

Fetches customer extension data based on the table name and filter.

**Parameters:**

* `tableName`: string - Name of the Customer Table.

* `filter`: string - Advance filter.

#### productById

TypeScript

    productById: ((sku) => Promise<any>)

Fetches a product by its SKU.

**Parameters:**

* `label`: string - Product sku.

#### productByLabel

TypeScript

    productByLabel: ((label) => Promise<Product[]>)

Fetches products by their label.

**Parameters:**

* `label`: string - Product label.

### navigate

TypeScript

    navigate: ((targetPage, targetPageState) => Promise<void>)

Allows page navigation using interceptor API. This API uses [Context Linking](https://knowledge.pricefx.com/configuration-engineer-knowledge-base/reference/internal-linking-reference/context-linking.md) for navigation.

**Parameters:**

* `targetPage`: string - Page to which user should be navigated.

* `targetPageState`: any - Additional parameters for navigation.

**Example:**
JavaScript

    export const quotesListDataLoad = async ({ api, appPages }) => {
      await api.navigate(appPages.QC_NEW_QUOTE, { id: 'P-123' });
    }

### notify

API for displaying notifications.

Methods:

* `alert`: Displays a blue notification message.

* `error`: Displays a red notification message.

* `info`: Displays a blue notification message.

* `success`: Displays a green notification message.

* `warning`: Displays an orange notification message.

**Parameters:**

* `message`: string - Translation value key.

* `options`: {duration?: number, url?: string, urlName?: string} - (Optional) Settings for notification.

**Example:**
JavaScript

    await api.notify.error(
      'Error message, with help link',
      {
        urlName: "help",
        url: "<https://help.me>",
        duration: 0
      }
    )

### translate

TypeScript

    translate: ((key, params?) => Promise<string>)

Translates text based on the provided key and parameters.

**Parameters:**

* `key`: string - Translation value key.

* `params`: any - Parameters for translation string formatting.

**Example:**
JavaScript

    await api.translate(
      'unity_interceptor_already_exists',
      {
        name: 'myInterceptor'
      }
    )

### url

Methods related to URL handling.

#### getParameters

TypeScript

    getParameters: (() => Promise<string>)

Retrieves URL parameters.

[Next Page](https://knowledge.pricefx.com/llms-full.txt/1)
