Partner contacts not able to see Customer Cases in CSM PortalIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Partner contacts are unable to view cases created by their customer accounts in the CSM portal, even when those contacts have the expected partner-admin or customer_admin role assigned. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } - A partner user with the sn_customerservice.partner_admin or sn_customerservice.customer_admin role searches for a case in the CSM portal and receives no results or an access denied error.- The same user is also unable to access the record through the Native UI.- Access Analyzer shows the user is blocked at the query level, typically by a business rule.- The partner_contact and/or partner fields on the case record are empty.- Cases submitted on behalf of a customer account do not appear in the partner user's case list, even though the partner organization has an Account Relationship defined with the customer. Facts<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } OOB Partner Field Population LogicThe out-of-the-box CSM record producer sets the partner_contact and partner fields at case creation time using the following logic: var account = new GlideRecord('customer_account'); if (account.get(accountId) && account.partner) { current.partner_contact = gs.getUserID(); current.partner = gs.getUser().getCompanyID(); } This means the partner value is derived from the submitting user's company, not from any Account Relationship. For this logic to fire, the account record associated with the submitting user must have the partner flag set to true on the customer_account table. Account Relationship Table vs. the Partner FlagThere is no out-of-the-box mechanism that automatically populates the Partner or Partner Contact fields based on relationships defined in the Account Relationship table. Customers requiring that behavior must implement custom logic. Partner vs. Partner Contact Field BehaviorThe two fields serve different purposes:- Partner Contact: Grants visibility to a specific individual user within the partner organization.- Partner: Grants visibility to all users within the specified partner organization. Customized Business RulesIf a business rule on the sn_customerservice_case table has been modified from its OOB state, it may override or interfere with the standard query-level access logic for partner users. This is a common secondary cause and should be verified using Access Analyzer. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Not Release Specific Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } This issue is typically caused by one or more of the following: 1. The partner_contact and/or partner fields are not populated on the case. Without these fields, the platform has no basis to grant the partner user access to the record.2. No accounts in the instance have the partner flag set to true on the customer_account table, so the OOB record producer logic never populates the partner fields at case creation.3. Cases are being created through a custom record producer or alternative method that does not include the OOB partner field population logic.4. A business rule on the case table has been customized and is blocking query-level access for partner users, overriding the expected ACL behavior. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Step 1 - Run Access AnalyzerImpersonate the affected partner user and run Access Analyzer against the case record in question. If a business rule is listed as the blocking factor:- Navigate to the business rule identified in the Access Analyzer results.- Confirm whether it has been modified from its OOB state.- If customized, review with the customer's development team. Support cannot modify production business rules on behalf of the customer. Step 2 - Verify Partner Flag on Account RecordsNavigate to the customer_account table and filter for records where partner = true. If no records are returned, the OOB logic for populating partner fields will never fire. Work with the customer to identify the correct partner organization accounts and set the partner flag to true on those records. Step 3 - Populate the Partner or Partner Contact Field on the CaseFor cases that already exist and need to be made visible to a partner user, manually set one of the following fields on the case record:- Partner Contact: Set to the specific partner user who needs access. This grants visibility to that individual.- Partner: Set to the partner organization. This grants visibility to all users within that organization.See ServiceNow documentation: Assign a partner contact to a case (docs.servicenow.com) Step 4 - Address Custom Case Creation MethodsIf cases are created through a custom record producer or method other than the OOB CSM record producer, that method will need to be updated to include logic that populates the partner_contact and/or partner fields at creation time. This is a customization and must be implemented by the customer's development team. The OOB logic above can be used as a reference. Step 5 - Deriving Partner from Account Relationships (Custom Logic Required)If the customer requires the partner field to be populated based on the Account Relationship table rather than the submitting user's company, this is not supported out of the box and requires custom development. A background script or business rule would need to query the Account Relationship table and explicitly set the partner field on the case based on the relationship defined there.