Setup
1
Add the ServiceNow destination to your package and connect it to the last component of your dataflow.
2
Select your ServiceNow connection (see Connection).
3
Choose Write to: Import set table or Table, and pick the table from the list.
4
For import sets, keep Records per request at 1 unless you need to batch (see Records per request).
5
Map your input fields to ServiceNow columns (see Schema mapping).
6
Optionally turn on Output failed records and Output successful records, then save and run a small test.
Connection
Select an existing ServiceNow connection or create a new one. The destination uses the same connection as the ServiceNow source: your Instance URL (for examplehttps://integrateio.service-now.com), a username and a password. No other credentials are needed.
The connection’s ServiceNow user needs these permissions:
The requests are throttled and retried using the connection’s rate limit and retry settings unless you set Requests per second on the component.
Destination properties
Records per request
Records per request applies to import set tables only (1 to 200, default 1).- 1 sends one request per record. ServiceNow runs the transform immediately and returns each record’s result: the import status, the target table and the
sys_idof the record it created or updated. - 2 to 200 sends the records together through ServiceNow’s
insertMultipleendpoint, which is faster for large volumes. ServiceNow does not return per-record results for these requests, so Integrate.io reads each row’s result back from the import set table once the transform has finished.
Advanced options
Schema mapping
Map each input field to a ServiceNow column, picked from the selected table’s columns, including the ones it inherits (for example, thetask columns on incident). Auto-fill maps input fields to the columns named after them. The editor warns when a column ServiceNow marks as mandatory is not mapped. If the columns cannot be loaded, for example when the connection’s user cannot read the table definitions, you type the column names instead.
- Use column names (for example
u_amount), not labels (Amount). With more than 1 record per request, this needs the REST Insert Multiple entry described in Records per request. - Map each column only once.
- Empty (null) input values are not sent, so ServiceNow applies the column’s default.
- Date-time fields are sent as
yyyy-MM-dd HH:mm:ssin UTC, the format ServiceNow expects.
Result outputs
Both outputs are optional and can go to Amazon S3, Google Cloud Storage, Azure Blob Storage, SFTP or FTPS. A file is only written when it has rows. Successful records has these columns, followed by your mapped fields:
Failed records has
Error, Record JSON and your mapped fields.
Errors and retries
The job is not retried automatically for the same reason: a retried attempt would insert again every record the first attempt already wrote, unless your transform map coalesces on a key.
Best Practices
- Prefer import set tables with a transform map that coalesces on an external ID. Re-running a job then updates the existing records instead of creating duplicates.
- Keep Records per request at 1 unless you send large volumes. Before batching, add the REST Insert Multiple entry for the import set table and give the integration user read access to it.
- Enable Output failed records so rejected records can be fixed and re-sent.
- Test with a small sample first, especially when writing directly to a table.
FAQ
Q: Can this destination update existing records? Not directly. Writing to a Table only inserts. To update records, write to an import set table whose transform map coalesces on a key field: ServiceNow then updates the matching record and reports the statusupdated.
Q: Why do my records show the status accepted?
ServiceNow took the record, but its transform result could not be read back. This happens when:
- you send 1 record per request and ServiceNow returns no transform result, because the import set table has no transform map or imports asynchronously;
- you send more than 1 record per request and the result could not be read: the connection’s ServiceNow user cannot read the import set table, reading the result failed (an error response or a network error), or the transform had not finished within 10 minutes.
incident, sys_user, cmdb_ci and pm_project (project records).