Guidelines for Knowledge Model setup
The following recommendations provide guidelines to configure your Knowledge Model to work best with Process Copilot. Adhering to these guidelines will help you improve the quality and accuracy of Process Copilot’s responses.
KPI Requirements
KPIs tagged must have PQL queries that are executable and return a single value.
Do not label KPIs used in other KPIs, only label the top-level KPI.
Indicator flags, “case whens” or any other record level KPIs should be created as attributes. For example, the KPI shown below should either be untagged or recreated as an attribute of the Invoice Item record.
// Bad Example id: FORMULA_InvoiceItem_isCleared displayName: Is Invoice item cleared pql: CASE WHEN ROUND_DAY("BSEG"."AUGDT") <= ROUND_DAY(${VAR_Clearing_date}) THEN 1 ELSE 0 END
Attribute requirements
Attributes tagged must have PQL queries that are executable and capable of returning multiple rows of values.
For date attributes, create and tag new attributes that formats the date into your desired time increments (e.g., month or quarter). For example:
// Under the Accounting Line Item record id: CLEARING_DATE_BY_MONTH displayName: Clearing date (by month) pql: ROUND_MONTH("BSEG"."AUGDT") id: CLEARING_DATE_BY_QUARTER displayName: Clearing Date (by quarter) pql: ROUND_QUARTER("BSEG"."AUGDT")
Avoid duplicate names and descriptions
Display names and descriptions should be concise, understandable and accurately reflect the outputs of the KPI or record attribute. Provide as many details as required to differentiate between similar items.
Please make sure that no display names or descriptions are directly duplicated across KPIs or attributes. If there are duplicates, users will not be able to identify the difference between the duplicated items during Process Copilot's disambiguation step.
Reduce similar content
Avoid labeling multiple KPIs or attributes with similar names. For example, tagging several “On-time payment rate” related KPIs causes Process Copilot to struggle finding the intended one.
Attributes that appear in multiple tables should only be tagged once. For example, “Company Code” or “Vendor” might be available in several records, but having them tagged only in the case table (invoice or invoice item) is sufficient.
If attributes need to be in multiple records to satisfy a join path, specify which record it belongs to in the attribute's displayName and description fields to differentiate the attributes, such as “Invoice line item company code” or “Invoice header company code”.
Resolving Knowledge Model issues
If you see an “Enhance Accuracy” notification at the top of your Process Copilot, follow the steps below to resolve the issues in your Knowledge Model.
Step 1: Fix incorrect PQL issues
It is critical to fix these issues for your Process Copilot’s operation:
For KPIs not returning a single value, move the query to a record attribute if necessary.
For KPIs or Record Attributes with PQL errors, update the query according to the error message:
Step 2: Resolve duplicate names and descriptions
Add more context to the duplicated name or description fields to differentiate them.
Step 3: Differentiate similar items
For similar KPIs, you can do one of the following:
If the KPI’s queries differ only based on their filters, create a new KPI for the base query and create a second new record attribute to support the filtering logic. Each Process Copilot can generate KPIs with PQL filters based on the record attributes provided. For example:
Before:
id: OTPRate_thisMonth displayName: On-time Payment Rate for this month pql: AVG( CASE WHEN ROUND_MONTH("BSEG"."AUGT") = ROUND_MONTH(TODAY()) THEN KPI("IsInvoicePaidOnTime") ELSE NULL END) id: OTPRate_lastMonth displayName: On-time Payment Rate for the previous month pql: AVG( CASE WHEN ROUND_MONTH("BSEG"."AUGT") < ROUND_MONTH(ADD_MONTHS(TODAY(), -1)) THEN KPI("IsInvoicePaidOnTime") ELSE NULL END)
Refactored:
id: OTPRate displayName: On-time Payment Rate pql: AVG( KPI("IsInvoicePaidOnTime") ) // Under the Accounting Line Item record id: Clearing_Date_Month displayName: Month of Clearing Date pql: ROUND_MONTH("BSEG"."AUGT")
For similar Record Attributes:
If the attribute's queries are known to be identical across records (e.g. Company Code), keep minimum attributes to facilitate join operations (usually those attached to Case Tables) and remove the label from the rest.
Identical attributes should be tagged once unless there is an N-to-1-to-N or 1-to-N-to-1 relationship that prevents the attribute being used with a KPI in a chart or table. For example, a hypothetical attribute needs to exist on both Table A and D to facilitate joins between 1) A and B, and 2) C and D.
Step 4: Add missing descriptions
Providing clear and distinct descriptions significantly enhances the understandability and usability of the content for your Process Copilot and users.