---
title: ServiceNow API Integration on Truto
slug: servicenow
category: Ticketing
canonical: "https://truto.one/integrations/detail/servicenow/"
---

# ServiceNow API Integration on Truto



**Category:** Ticketing  
**Status:** Generally available

## Unified APIs

### Unified HRIS API

- **Employees** — Represents an employee in HRIS
- **Employments** — Employments represent a job position at a company.
- **Groups** — Groups represent the groups for an Employee
- **Locations** — Locations represent the locations in HRIS

### Unified User Directory API

- **Groups** — Groups are a collection of users in the source application. In some applications, they might also be called Teams.
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

### Unified Ticketing API

- **Accounts** — Accounts represent the companies or organizations that you are in contact with. Accounts have one or more Contacts associated with them.
- **Attachments** — Attachments are the files associated with a ticket or a comment.
- **Collections** — Tickets and contacts can be grouped into Collections. Collection resource usually maps to the various grouping systems used in the underlying product. Some examples are lists, projects, epics, etc. You can differentiate between these grouping systems using the type attribute of a Collection.
- **Comments** — Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.
- **Contacts** — Contact represent the external people you are in contact with. These could be customers, leads, etc. Contacts can be associated with an Account if the underlying product supports it.
- **Tags** — Tags represent a common classification approach used in various ticketing systems. A Ticket may have one or more Tags associated with them.
- **Tasks** — Task represent a smaller subdivision of a Ticket, which could be the list of things to do in a Ticket.
- **Teams** — Teams represent the grouping system used for Users. These are usually called groups, teams, agent groups, etc. in the underlying products. A User can belong to one or more Teams.
- **Ticket Priorities** — Ticket Priorities represent the intended order in which the Tickets should be worked on. Some products provide customizing the Ticket Priorities.
- **Ticket Status** — Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.
- **Ticket Types** — Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.
- **Tickets** — Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.
- **Users** — Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

## MCP-ready AI tools

Truto exposes 96 tools for ServiceNow that AI agents can call directly.

- **list_all_servicenow_sys_users** — List sys_users records in ServiceNow. Returns fields such as sys_id, sys_created_on, sys_updated_on, active, and name for each user. Requires specifying the sys_users table.
- **get_single_servicenow_sys_user_by_id** — Get details about a specific sys_user in ServiceNow by id. Returns key fields such as sys_id, name, email, active status, roles, creation and update timestamps, and reference links.
- **create_a_servicenow_sys_user** — Create a sys_users record in ServiceNow. Returns fields of the new user record such as sys_id, user_name, name, and email. Only single record insertion is supported.
- **update_a_servicenow_sys_user_by_id** — Update sys_users record in ServiceNow using id. Returns updated fields such as sys_id, user_name, and other key attributes in the response.
- **delete_a_servicenow_sys_user_by_id** — Delete a specific sys_users record in ServiceNow. Requires id. No content is returned in the response.
- **servicenow_sys_users_overwrite** — Update sys_users record in ServiceNow with id. Returns updated fields such as sys_id, name, email, and active status in the response.
- **list_all_servicenow_sys_user_roles** — List sys_user_roles records in ServiceNow. Returns key fields like sys_id, name, and description for each role in the response.
- **get_single_servicenow_sys_user_role_by_id** — Get a specific sys_user_roles record in ServiceNow by id. Returns fields such as sys_id, role, user, and related record details.
- **create_a_servicenow_sys_user_role** — Create sys_user_roles record in ServiceNow. Inserts one record and returns fields such as sys_id, name, and description.
- **update_a_servicenow_sys_user_role_by_id** — Update a sys_user_roles record in ServiceNow. Requires id. Returns updated fields such as role details and metadata in the response.
- **delete_a_servicenow_sys_user_role_by_id** — Delete sys_user_roles record in ServiceNow. Requires id. Returns empty response on successful deletion.
- **servicenow_sys_user_roles_overwrite** — Update sys_user_roles record in ServiceNow. Requires id. Returns updated fields such as role, user, and other key role assignment details in the response.
- **list_all_servicenow_sys_db_object** — List records for a specific table in ServiceNow. Requires sys_db_object. Returns key fields of each record in result.
- **get_single_servicenow_sys_db_object_by_id** — Get a record from a specific table in ServiceNow. Requires sys_db_object and id. Returns all fields for the record, such as sys_id, sys_created_on, and field values.
- **create_a_servicenow_sys_db_object** — Create a new sys_db_object record in ServiceNow. Requires id. Returns fields of the inserted record including its unique identifiers and values.
- **update_a_servicenow_sys_db_object_by_id** — Update a specific sys_db_object record in ServiceNow using id. The response returns updated fields of the sys_db_object record.
- **delete_a_servicenow_sys_db_object_by_id** — Delete a specific record in ServiceNow. Requires table_name and id. Returns an empty response upon successful deletion.
- **servicenow_sys_db_object_overwrite** — Update a sys_db_object record in ServiceNow. Requires id. Returns updated fields of the sys_db_object record in the response.
- **list_all_servicenow_incident** — List incidents in ServiceNow. Returns incident records with key fields such as sys_id, short_description, number, and state.
- **get_single_servicenow_incident_by_id** — Get a specific incident record in ServiceNow. Requires id. Returns fields such as sys_id, number, short_description, and state in the response.
- **create_a_servicenow_incident** — Create an incident in ServiceNow. Returns sys_id, number, short_description, priority, impact, urgency, state, assigned_to, assignment_group, incident_state, and key metadata fields for the created incident.
- **update_a_servicenow_incident_by_id** — Update an incident in ServiceNow. Requires id. Returns fields such as number (incident number), state, short_description, priority, category, assignment_group, assigned_to, sys_created_on, sys_updated_on, and sys_id for tracking updates.
- **servicenow_incident_overwrite** — Update a specific incident in ServiceNow. Requires id. Returns key fields including short_description, number, incident_state, priority, assignment_group, caller_id, opened_at, and sys_id in the response.
- **delete_a_servicenow_incident_by_id** — Delete a specific incident in ServiceNow using id. Returns an empty response if successful.
- **list_all_servicenow_problem** — List problems in ServiceNow. Returns key fields such as sys_id, short_description, and state for each problem.
- **get_single_servicenow_problem_by_id** — Get a specific problem record in ServiceNow identified by id. Returns all fields of the problem record in the response.
- **delete_a_servicenow_problem_by_id** — Delete problem record in ServiceNow. Requires id. The response confirms deletion of the specified problem.
- **create_a_servicenow_problem** — Create a new problem record in ServiceNow. Returns the problem's sys_id, number, and key record fields in the response.
- **update_a_servicenow_problem_by_id** — Update a specific problem record in ServiceNow. Requires id. Returns the updated problem fields and their new values in the response.
- **servicenow_problem_overwrite** — Update a specific problem record in ServiceNow. Requires id. Returns updated fields of the problem record.
- **list_all_servicenow_sc_request** — Get list of sc_request records in ServiceNow. Retrieves multiple request records from the sc_request table, returning key fields such as number, sys_id, and state.
- **get_single_servicenow_sc_request_by_id** — Get a specific sc_request record in ServiceNow. Requires id. Returns fields containing the sc_request details.
- **create_a_servicenow_sc_request** — Create a new sc_request record in ServiceNow. Returns the newly created record's fields, including key identifiers and attributes.
- **update_a_servicenow_sc_request_by_id** — Update a specific sc_request record in ServiceNow by id. Returns all updated fields such as number, state, priority, assignment_group, short_description, and sys_id as well as key reference and status fields in the response.
- **delete_a_servicenow_sc_request_by_id** — Delete sc_request record in ServiceNow by id. Returns status indicating successful deletion of the specified record.
- **servicenow_sc_request_overwrite** — Update a specific sc_request record in ServiceNow using id. The response returns the updated fields of the sc_request record.
- **list_all_servicenow_change_request** — List change_request records in ServiceNow. Returns an array of change_request objects with key fields such as sys_id, number, short_description, and state.
- **get_single_servicenow_change_request_by_id** — Get a change_request record in ServiceNow by id. Returns fields of the change_request record in the response.
- **create_a_servicenow_change_request** — Create a change_request in ServiceNow using api_version and table_name. Returns fields such as sys_id, number, and status in the response. Only single record insertion is supported.
- **update_a_servicenow_change_request_by_id** — Update a specific change_request in ServiceNow. Requires id. Returns updated fields of the change_request record in the response.
- **delete_a_servicenow_change_request_by_id** — Delete a specific change request in ServiceNow. Requires id. The response returns the status of the deletion operation.
- **servicenow_change_request_overwrite** — Update a specific change_request record in ServiceNow using id. Returns the updated fields and values in the response.
- **list_all_servicenow_label_entry** — List label_entry records in ServiceNow. Returns fields such as sys_id, name, and type in the response for each label_entry record.
- **get_single_servicenow_label_entry_by_id** — Get details of a specific label_entry in ServiceNow by id. Returns key fields of the record from the label_entry table.
- **create_a_servicenow_label_entry** — Create a label_entry record in ServiceNow. Returns key fields of the created label_entry record in the response.
- **update_a_servicenow_label_entry_by_id** — Update a specific label_entry in ServiceNow. Returns all updated fields such as sys_id, number, short_description, and assigned_to.
- **delete_a_servicenow_label_entry_by_id** — Delete a specific label_entry record in ServiceNow. Requires table_name and id. Returns status indicating if deletion was successful.
- **servicenow_label_entry_overwrite** — Update label_entry in ServiceNow using id. Returns updated fields of the label_entry in the response.
- **list_all_servicenow_kb_knowledge** — List kb_knowledge records in ServiceNow. Returns result array with sys_id and key article fields.
- **get_single_servicenow_kb_knowledge_by_id** — Get kb_knowledge record in ServiceNow using table_name and id. Returns all fields of the kb_knowledge record as defined in the table for the specified id.
- **create_a_servicenow_kb_knowledge** — Create a kb_knowledge record in ServiceNow. Returns created record fields such as number, sys_id, and sys_created_on. Only one record can be inserted per request.
- **update_a_servicenow_kb_knowledge_by_id** — Update a kb_knowledge record in ServiceNow. Requires id. Returns the updated record fields including key knowledge article properties.
- **delete_a_servicenow_kb_knowledge_by_id** — Delete kb_knowledge in ServiceNow using table_name and id. No content is returned in the response.
- **servicenow_kb_knowledge_overwrite** — Update a kb_knowledge record in ServiceNow. Requires table_name and id. Returns updated fields of the kb_knowledge record in the response.
- **list_all_servicenow_kb_category** — List kb_category records in ServiceNow. Returns key fields such as sys_id, title, parent, and order in the response.
- **get_single_servicenow_kb_category_by_id** — Get kb_category record in ServiceNow using table_name and id. Returns all fields of the kb_category record such as sys_id, name, and parent.
- **create_a_servicenow_kb_category** — Create a kb_category record in ServiceNow. Returns the created kb_category fields including key details such as sys_id, name, and parent. Only supports single record insertion.
- **update_a_servicenow_kb_category_by_id** — Update a kb_category record in ServiceNow using id. Returns the updated kb_category fields, such as sys_id and others included in the request body.
- **delete_a_servicenow_kb_category_by_id** — Delete kb_category record in ServiceNow. Requires id. Returns status information indicating success.
- **servicenow_kb_category_over_write** — Update kb_category in ServiceNow. Requires id. Returns fields such as sys_id, name, and updated information for the kb_category.
- **list_all_servicenow_label** — List label records in ServiceNow. Requires table_name. Returns result array with details for each label.
- **get_single_servicenow_label_by_id** — Get a label record in ServiceNow by id. Returns all fields for the specified record.
- **create_a_servicenow_label** — Create a new label record in ServiceNow. The response returns the id, name, and sys_created_on fields of the created label.
- **update_a_servicenow_label_by_id** — Update a specific label record in ServiceNow. Requires ID. Returns updated fields such as sys_id, sys_updated_on, and sys_updated_by for confirmation.
- **delete_a_servicenow_label_by_id** — Delete a specific label in ServiceNow. Requires id. Returns confirmation of deletion in the response.
- **servicenow_label_overwrite** — Update a specific label record in ServiceNow. Requires  id. Returns updated fields of the label record in the response.
- **list_all_servicenow_cmn_department** — List cmn_department records in ServiceNow. Returns fields such as sys_id, name, and description for each department.
- **get_single_servicenow_cmn_department_by_id** — Get a specific cmn_department in ServiceNow. Requires id. Returns fields of the department record corresponding to the given id.
- **create_a_servicenow_cmn_department** — Create a cmn_department record in ServiceNow. Returns fields such as sys_id and name in the response. Only one record can be inserted per request.
- **update_a_servicenow_cmn_department_by_id** — Update a specific cmn_department record in ServiceNow using id. Returns updated fields such as sys_id, name, and additional department information.
- **delete_a_servicenow_cmn_department_by_id** — Delete cmn_department record in ServiceNow. Requires id. Returns status indicating success or failure of record deletion.
- **servicenow_cmn_department_overwrite** — Update a cmn_department record in ServiceNow. Requires id. Returns the updated department fields in the response.
- **list_all_servicenow_sys_attachment** — List sys_attachment records in ServiceNow. Returns fields such as sys_id, file_name, content_type, and table_name for each attachment.
- **get_single_servicenow_sys_attachment_by_id** — Get sys_attachment record in ServiceNow using id. Returns fields such as sys_id, file_name, content_type, size_bytes, and table_name for the specified attachment.
- **create_a_servicenow_sys_attachment** — Create a sys_attachment record in ServiceNow. Returns attachment record fields in result. Only single record insertion supported.
- **update_a_servicenow_sys_attachment_by_id** — Update a sys_attachment record in ServiceNow using id. Returns fields like file_name, content_type, and size in the response.
- **delete_a_servicenow_sys_attachment_by_id** — Delete a specific sys_attachment record in ServiceNow by id. No content is returned in the response.
- **servicenow_sys_attachment_overwrite** — Update a sys_attachment record in ServiceNow using id. Returns fields such as file_name, content_type, size_bytes, and download_link in the response.
- **list_all_servicenow_task** — List tasks in ServiceNow. Returns key fields such as sys_id, short_description, sys_created_on, state, and other task details for all tasks in the instance.
- **get_single_servicenow_task_by_id** — Get a specific task in ServiceNow by table_name and id. Returns all fields for the task record, such as sys_id, number, state, assigned_to, and short_description.
- **create_a_servicenow_task** — Create a new task record in ServiceNow in the specified table_name. Requires table_name. Returns fields such as sys_id (unique identifier), number, short_description, state, priority, and other task details in the response.
- **update_a_servicenow_task_by_id** — Update a task in ServiceNow. Requires id. Returns updated fields for the task including key data from the name-value pairs supplied in the request.
- **delete_a_servicenow_task_by_id** — Delete task record by id in ServiceNow. Requires table_name and id. Returns success status of the deletion operation.
- **servicenow_task_overwrite** — Update an existing task in ServiceNow. Requires id. Returns all updated fields of the task record in the response.
- **list_all_servicenow_sys_journal_field** — List sys_journal_field records in ServiceNow. Returns fields such as value, element_id, element, name, and sys_id for each record.
- **get_single_servicenow_sys_journal_field_by_id** — Get a sys_journal_field record by id in ServiceNow. Returns fields such as value, name, element_id, created_on, and updated_on in the response. Requires id.
- **create_a_servicenow_sys_journal_field** — Create a sys_journal_field record in ServiceNow. Returns key fields of the created journal entry, such as its unique identifiers and details. Only single record insertion is supported.
- **update_a_servicenow_sys_journal_field_by_id** — Update a specific sys_journal_field record in ServiceNow using id. Returns updated fields such as value, element_id, and sys_updated_on in the response.
- **delete_a_servicenow_sys_journal_field_by_id** — Delete a sys_journal_field record in ServiceNow. Requires id. Returns status of the deletion.
- **servicenow_sys_journal_field_overwrite** — Update a sys_journal_field record in ServiceNow. Requires id. Returns updated fields including value, element_id, table_name, element, and journal_entry.
- **list_all_servicenow_sc_task** — List sc_task records in ServiceNow. Returns an array of sc_task records with key fields such as sys_id, number, short_description, and state.
- **get_single_servicenow_sc_task_by_id** — Get a specific sc_task record in ServiceNow. Requires table_name and id. Returns key fields such as sys_id and all available properties for the record.
- **create_a_servicenow_sc_task** — Create sc_task record in ServiceNow. Returns the sys_id, number, and other fields of the newly created task. Only single record insertion is supported.
- **update_a_servicenow_sc_task_by_id** — Update sc_task record in ServiceNow. Requires id. Returns updated fields including sys_id, short_description, state, and other relevant fields in the response.
- **delete_a_servicenow_sc_task_by_id** — Delete a specific sc_task record in ServiceNow. Requires id. No content returned in the response.
- **servicenow_sc_task_overwrite** — Update sc_task record in ServiceNow using id. Returns updated fields such as number, sys_id, and state in the response.

## How it works

1. **Link your customer's ServiceNow account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach ServiceNow.** The Proxy API is a 1-to-1 mapping of the ServiceNow API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Auto-create incidents from alerts and anomalies** — Monitoring, security, and observability SaaS products can automatically create and update ServiceNow incidents when they detect issues, keeping enterprise IT teams working in their system of record without switching tools.
- **Gate deployments behind change request approvals** — CI/CD and DevOps platforms can create change requests in ServiceNow and poll for approval status before executing production deployments, satisfying enterprise change management policies without manual handoffs.
- **Fulfill service catalog requests programmatically** — SaaS management and procurement platforms can ingest approved service catalog requests and tasks from ServiceNow, auto-provision licenses or resources, and close out the task — all without the end user leaving ServiceNow's employee portal.
- **Sync organizational identity data for routing and access** — Identity, HR, and security SaaS products can pull users, roles, and departments from ServiceNow to ensure their internal permission models and assignment routing match the customer's actual org structure.
- **Publish knowledge articles from external platforms** — Documentation and customer support SaaS tools can push self-service articles into ServiceNow's knowledge base, keeping internal IT portals up to date without manual content duplication.

## What you can build

- **Bi-directional incident sync with work notes** — Create incidents from your product and keep them updated in real time by syncing comments and work notes via sys_journal_field, so both your app and ServiceNow always reflect the latest status.
- **Change request approval workflow** — Programmatically create change requests, monitor their approval state, and trigger downstream actions in your product only after IT leadership signs off inside ServiceNow.
- **Automated service catalog task fulfillment** — Listen for approved sc_request and sc_task records, provision resources or licenses automatically, then update and close ServiceNow tasks to complete the fulfillment loop.
- **Org-aware user and department directory sync** — Pull sys_users, sys_user_roles, and cmn_department data into your product to build accurate org charts, enforce role-based access, and route tickets to the right teams.
- **Contextual file attachments on tickets** — Attach log files, screenshots, diagnostic reports, or PDFs directly to ServiceNow incidents, problems, or tasks so responders have full context without leaving their workflow.
- **Knowledge base content pipeline** — Create and update kb_knowledge articles organized by kb_category, allowing your product to push troubleshooting guides or runbooks directly into the customer's ServiceNow knowledge portal.

## FAQs

### What authentication methods does the ServiceNow integration support?

Truto handles ServiceNow authentication on your behalf. ServiceNow typically uses OAuth 2.0 or basic auth with instance-specific credentials. Your end users connect their ServiceNow accounts through Truto's managed auth flow, so you don't need to build or maintain the auth logic yourself.

### Which ServiceNow tables and resources can I access through Truto?

Truto supports full CRUD operations on key ServiceNow tables including incident, problem, change_request, sc_request, sc_task, task, sys_user, sys_user_role, cmn_department, sys_attachment, sys_journal_field, kb_knowledge, kb_category, label, label_entry, and sys_db_object. Each resource supports list, get, create, update, and delete operations.

### Can I use Truto's Unified APIs instead of ServiceNow-specific endpoints?

Yes. ServiceNow is mapped to Truto's Unified Ticketing API (covering tickets, comments, attachments, users, tags, teams, and more), Unified User Directory API (users, roles, groups), and Unified HRIS API (employees, groups, locations). This means you can build once against the unified schema and support ServiceNow alongside other ticketing and directory platforms.

### How does pagination work for large ServiceNow datasets?

Truto abstracts pagination entirely. When you call a list endpoint like list_all_servicenow_incident, Truto handles ServiceNow's offset-based pagination behind the scenes, returning consistent paginated responses regardless of the underlying API behavior.

### Can I sync comments and work notes bidirectionally?

Yes. The sys_journal_field resource supports list, get, create, update, and delete operations, allowing you to read work notes and comments from any ServiceNow ticket and write new entries back. This is the foundation for keeping communication in sync between your product and ServiceNow.

### Does Truto support bulk or overwrite operations for ServiceNow data?

Yes. Most ServiceNow resources in Truto support an overwrite operation (e.g., servicenow_incident_overwrite, servicenow_sys_users_overwrite), which lets you push a complete dataset to replace existing records — useful for full syncs of user directories, departments, or knowledge base content.

## Related reading

- [How to Integrate with the ServiceNow API: 2026 Engineering Guide](https://truto.one/blog/how-to-integrate-with-the-servicenow-api-2026-engineering-guide/) — A technical guide to integrating with the ServiceNow REST API in 2026 — covering OAuth 2.0 Client Credentials setup, scoped roles, rate limits, and architectural best practices for B2B SaaS teams.
