> For the complete documentation index, see [llms.txt](https://atlas.anywhere.now/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atlas.anywhere.now/channels-integrations/crm-service/sharepoint.md).

# Configure SharePoint CRM Service

Configure CRM Service for SharePoint-backed CRM lists.

Configure CRM Service for SharePoint when WebAgent must retrieve CRM-style information from SharePoint-backed lists.

Before requesting the service, confirm the [shared CRM connector licensing prerequisites](/channels-integrations/crm-service.md#licensing-prerequisites).

## Request SharePoint CRM Service in OnePortal

1. Request the SharePoint CRM Service for the customer environment through the current OnePortal, delivery, or support process.
2. Confirm which UCC and WebAgent configuration must consume SharePoint list data.
3. Confirm that SharePoint is the enabled CRM Service provider before changing provider settings.
4. Use [Configure CRM Service settings](/channels-integrations/crm-service/configure-crm-service-settings.md) for shared request, change, `PluginSettings`, `PluginAttributes`, and secret-handling rules.

{% hint style="info" %}
Exact OnePortal labels can differ by release. Use the current customer-specific request path instead of legacy labels.
{% endhint %}

## Prepare SharePoint

Prepare the SharePoint site, lists, columns, and authentication model before CRM Service settings are completed.

| Preparation item     | What to prepare                                                                                                   | Used by CRM Service                      |
| -------------------- | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| SharePoint site      | Site URL and site access approved for the customer environment.                                                   | `ApplicationHost` and site/list settings |
| Lists                | CRM lists that store contacts, accounts, cases, or related records.                                               | Query and mapping behavior               |
| Columns              | Columns required for search, display, phone-number matching, links, and case state.                               | `PluginAttributes` and CAML queries      |
| Authentication model | Username/password access or app-only client ID/client secret access, depending on the approved environment model. | Authentication settings                  |

For general SharePoint site preparation, see [Configure SharePoint UCC sites](broken://spaces/8itFXJdndqu1dclywEFc/pages/whtSEXyrHF8dFRV5n3Ml).

{% hint style="warning" %}
Do not recreate legacy SharePoint app-only or ACS setup steps unless product or support confirms that they are the current customer-facing process for this environment.
{% endhint %}

## Configure SharePoint CRM Service settings

Prepare the SharePoint site, lists, columns, and authentication model in SharePoint. Enter or request the CRM Service configuration values in the active configuration source for `CrmService` `PluginSettings`; that source can be Dialogue Cloud Neo-backed or SharePoint-backed depending on the customer environment.

| Setting               | Requirement                                           | Value                                                                                                                                              |
| --------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ApplicationHost`     | Required                                              | SharePoint application or site URL supplied for the environment. Only one `ApplicationHost` URL is allowed per CRM Service across configured UCCs. |
| `IsOnlineEnvironment` | Required                                              | Set to `True` for SharePoint Online.                                                                                                               |
| `SiteName`            | Required                                              | SharePoint site name used for initial validation.                                                                                                  |
| `ContactListName`     | Required                                              | Contact list name approved for the environment, for example `Contacts`.                                                                            |
| `BaseContactQuery`    | Required                                              | CAML contact query template. Default uses a `<View>` query with `<Where/>` and mandatory `<RowLimit>100</RowLimit>`.                               |
| `Username`            | Required when username/password is the approved model | SharePoint account username.                                                                                                                       |
| `Password`            | Required when username/password is the approved model | Encrypted SharePoint account password handled through the approved secret process.                                                                 |
| `ClientId`            | Required when app-only access is the approved model   | App-only access client ID approved for the SharePoint site and lists.                                                                              |
| `ClientSecret`        | Required when app-only access is the approved model   | Encrypted app-only access client secret handled through the approved secret process.                                                               |

Configure SharePoint list-column mappings in `CrmService` `PluginAttributes` when default mapping is not sufficient for the customer list design.

{% hint style="warning" %}
For SharePoint Online, do not use username/password authentication for accounts that require MFA, Conditional Access, or another interactive sign-in requirement. If the environment uses app-only access with the older SharePoint ACS model, verify the approved customer path before relying on ACS-based `ClientId` and `ClientSecret` authentication; Microsoft states ACS for SharePoint Online stops working from April 2, 2026.
{% endhint %}

## Configure optional SharePoint settings

Add optional settings with scope `CrmService`.

| Setting or mapping             | Where configured   | Default or value guidance                                                                                                                                   |
| ------------------------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ShowStatus`                   | `PluginSettings`   | Shows whether the caller is a contact, lead, or unknown. Confirm the value approved for the environment.                                                    |
| `DefaultPhoneNumberRegion`     | `PluginSettings`   | ISO 3166 alpha-2 region code. Configure only when the environment requires an explicit region.                                                              |
| `PhoneNumberFormat`            | `PluginSettings`   | Phone-number matching mode. Use the mode approved for the SharePoint list data.                                                                             |
| `CaseListName`                 | `PluginSettings`   | Case list name, for example a customer case list such as `Cases`. Only one `CaseListName` is allowed per `CrmService` configuration across configured UCCs. |
| `BaseCaseQuery`                | `PluginSettings`   | CAML case query template. Include the required fields and row limit approved for the customer case list.                                                    |
| `ContactCaseFilter`            | `PluginSettings`   | Contact-to-case filter. Attribute and value must be valid SharePoint `SystemName` values.                                                                   |
| `CaseStatus`                   | `PluginSettings`   | Maps SharePoint list status values to WebAgent status. Align the mapping with the customer case-status column.                                              |
| `ContactsListFieldDefinitions` | `PluginSettings`   | Contact-list field-definition override. Configure only when the customer list design requires explicit field definitions.                                   |
| `CasesListFieldDefinitions`    | `PluginSettings`   | Case-list field-definition override. Configure only when the customer case list design requires explicit field definitions.                                 |
| `UseOriginalSystemName`        | `PluginSettings`   | Preserves uppercase characters in attribute names. Set an explicit value only when the SharePoint system-name casing is confirmed.                          |
| SharePoint `PluginAttributes`  | `PluginAttributes` | Map SharePoint columns to WebAgent contact, contact-search, case, and case-search output.                                                                   |

<details>

<summary>SharePoint list mapping guidance</summary>

For SharePoint `PluginAttributes`, `SystemName` must be the SharePoint column name. Use:

* `DisplayName` for the label shown in WebAgent.
* `ShowOnExtensionWindow` to control whether WebAgent displays the value.
* `Order`; restart numbering for each `Category`.
* `FieldType` values such as `Id`, `Name`, `PhoneNumber`, `SipAddress`, `Email`, `Date`, `Search`, and `Verify` where the mapped column requires that behavior.
* `Hyperlink` to make a value clickable; include `SystemName` placeholders in square brackets when the link needs field values.
* `ShowOnToast` to force the column into the query.

`ContactSearch` falls back to `Contact` if no `ContactSearch` items are supplied. The same fallback applies from lead, lead-search, case, and case-search categories to their base categories; at least one contact mapping is required.

The default CAML query uses `PluginAttributes` to build `<ViewFields>`. Fields marked for display, search, or query inclusion must be returned by the relevant CAML query. `<RowLimit>` is mandatory. If multiple `PluginAttributes` are marked as `PhoneNumber`, `SipAddress`, or `Email`, CRM Service can include those fields in the generated query.

No reusable exact default `PluginAttributes` rows are published for SharePoint because list names, column internal names, CAML fields, and mappings are customer-data-model dependent.

Keep complete customer-specific CAML templates and mapping records in the delivery or configuration record. Include customer-specific list names, column names, and CAML only when the customer must validate a list or field mapping.

</details>

<details>

<summary>Legacy app-only references</summary>

Use these Microsoft references only when product or support confirms that the SharePoint app-only or ACS model remains current and publishable for the customer environment:

* [SharePoint app-only using ACS](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)
* [Add-in permissions in SharePoint](https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/add-in-permissions-in-sharepoint)

</details>

## Validate SharePoint CRM Service

1. Confirm that CRM Service can reach the SharePoint site.
2. Search for a known SharePoint contact, account, or case from WebAgent.
3. Confirm that expected SharePoint list fields appear in WebAgent.
4. Confirm that phone-number recognition returns the expected SharePoint-backed record.

## References

* [Configure SharePoint UCC sites](broken://spaces/8itFXJdndqu1dclywEFc/pages/whtSEXyrHF8dFRV5n3Ml)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://atlas.anywhere.now/channels-integrations/crm-service/sharepoint.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
