> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useparagon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ServiceNow

## Synced Objects

ServiceNow supports the following Synced Objects:

* [Files](/managed-sync/api/file-schema): Syncs knowledge base articles from ServiceNow.
* [Tickets](/managed-sync/api/ticket-schema): Syncs tickets from ServiceNow.
* [Permissions](/managed-sync/permissions-api): Syncs knowledge base and article read and contribute permissions.

## Files

Send a request to [Enable Sync](/managed-sync/api/enable-a-sync) to start a file sync of knowledge base articles from ServiceNow.

```json Example theme={null}
{
    "integration": "servicenow",
    "pipeline": "files",
    "configuration": {
        "kbId": "kb_knowledge_base_sys_id_here"
    }
}
```

**Configuration options:**

<ParamField path="kbId" type="string">
  A ServiceNow Knowledge Base ID to limit the Sync scope to articles within a specific knowledge base.

  If not specified, the Sync will ingest articles from all available knowledge bases.
</ParamField>

### Permissions

Knowledge base article syncs include a Permissions sync that maps ServiceNow access controls into the [Permissions API](/managed-sync/permissions-api). Permissions are indexed automatically as files are processed.

The following ServiceNow access controls are supported:

* Knowledge base and article user criteria (can read, cannot read, can contribute, cannot contribute)
* Legacy article roles (`roles`, `author`, `manager`)
* Ownership groups when `glide.knowman.ownership_group.enabled` is `true`
* Article-level user criteria when `glide.knowman.apply_article_read_criteria` is `true`
* Group, role, department, location, and company memberships resolved from `sys_user`

Deny rules take precedence over allow rules. Advanced scripted criteria and custom criteria fields are not evaluated: unknown allow criteria grant no access, and unknown deny criteria block all access.

**User identity:** Users are identified by their ServiceNow email address (`sys_user.email`). Pass this value as the `user` when calling [Check Access](/managed-sync/api/check-access), [Batch Check Access](/managed-sync/api/batch-check-access), or [List Objects](/managed-sync/api/list-objects). If `email` is empty, `user_name` is used when it is formatted as an email address. Users without a resolvable email are omitted from the permission model.

**Required access:** The connected ServiceNow account must have read access to:

* Knowledge base permission M2M tables (`kb_uc_can_read_mtom`, `kb_uc_cannot_read_mtom`, `kb_uc_can_contribute_mtom`, `kb_uc_cannot_contribute_mtom`)
* `user_criteria` and its membership tables
* `sys_user`, `sys_user_grmember`, `sys_user_has_role`, and related group, role, department, location, and company tables
* The `glide.knowman.apply_article_read_criteria` and `glide.knowman.ownership_group.enabled` system properties

## Tickets

Send a request to [Enable Sync](/managed-sync/api/enable-a-sync) to start a ticket sync.

```json Example theme={null}
{
    "integration": "servicenow",
    "pipeline": "tickets",
    "configuration": {}
}
```

**Configuration options:**

ServiceNow ticket sync does not require any additional configuration options. The sync will ingest all available tickets from the user's ServiceNow account.
