# ServiceNow
URL: /reference/blocks/servicenow-record
Type: reference
Description: Create, read, update, and delete ServiceNow records
Keywords: servicenow, servicenow/record, integrations, block, workflow builder
`servicenow/record` — Create, read, update, and delete ServiceNow records.

Where it appears [#where-it-appears]

The **ServiceNow** block lives in the **Integrations** group of the Workflow Builder. Connect the Servicenow integration before adding it.

Fields [#fields]

| Field          | Type                       | Required | Default | Description                                                                                                                                                                                                                         |
| -------------- | -------------------------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operation`    | select                     | Yes      | —       | Which CRUD action to perform against the ServiceNow table. The remaining fields shown depend on this choice. Options: `servicenow_create_record`, `servicenow_read_record`, `servicenow_update_record`, `servicenow_delete_record`. |
| `tableName`    | text (supports references) | Yes      | —       | ServiceNow table to operate on, given by its API name (e.g. `incident`, `change_request`, `sys_user`). Accepts literal text or \<StepName.field>.                                                                                   |
| `createFields` | code                       | No       | —       | JSON object of field names to values for the new record, matching the columns of the chosen table (e.g. `short_description`, `priority`).                                                                                           |
| `readSysId`    | text (supports references) | No       | —       | Optional sys\_id of a single record to read. Leave empty to read multiple records matched by the Query. Accepts literal text or \<StepName.field>.                                                                                  |
| `query`        | text (supports references) | No       | —       | Optional ServiceNow encoded query to filter records (e.g. `active=true^priority=1`). Accepts literal text or \<StepName.field>.                                                                                                     |
| `updateSysId`  | text (supports references) | Yes      | —       | sys\_id of the record to update. Use a literal sys\_id or \<StepName.field> from a previous step.                                                                                                                                   |
| `updateFields` | code                       | No       | —       | JSON object of field names to new values to apply to the record. Only the keys you include are changed.                                                                                                                             |
| `deleteSysId`  | text (supports references) | Yes      | —       | sys\_id of the record to delete. Use a literal sys\_id or \<StepName.field> from a previous step.                                                                                                                                   |

Inputs and outputs [#inputs-and-outputs]

Inputs are the configurable fields above. The block produces these outputs:

**Outputs**

Reference an output downstream with `<ServiceNow.field>`.

| Name       | Type    | Description                 |
| ---------- | ------- | --------------------------- |
| `success`  | boolean | Operation success status    |
| `record`   | json    | Single ServiceNow record    |
| `records`  | json    | Array of ServiceNow records |
| `metadata` | json    | Operation metadata          |
| `error`    | string  | Error message if failed     |

Example [#example]

A minimal configuration for this block:

```json
{
  "type": "servicenow/record",
  "config": {
    "operation": "servicenow_create_record",
    "tableName": "<PreviousStep.field>",
    "updateSysId": "<PreviousStep.field>",
    "deleteSysId": "<PreviousStep.field>"
  }
}
```

Limits and failure modes [#limits-and-failure-modes]

* Requires a connected Servicenow integration. Calls fail if that integration is disconnected or its authorization has expired.
* Required fields (`operation`, `tableName`, `updateSysId`, `deleteSysId`) must be set, or the block fails validation before it runs.
* On failure the `error` output is populated; downstream blocks that reference other outputs may not receive values.

Related [#related]

* [All workflow blocks](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)
* [Integrations](/integrations)