Import Sets

Schedule a Recurring Data Import

Recurring data imports replace manual CSV uploads and one-off data loads that break when sources change. This guide walks you through setting up automated imports that run reliably and give you visibility into what succeeded, failed, or got skipped.

Why manual imports break down

Teams usually start with manual CSV uploads or one-time import sets when they need external data in ServiceNow. That works until the data changes daily, the person doing uploads leaves, or the source system format shifts without warning. Integration admins and platform teams inherit these fragile processes and spend time firefighting data issues instead of building reliable automation. Manual imports also give you no systematic way to track what imported successfully versus what failed.

How scheduled imports actually work

A Data Source defines where ServiceNow pulls data from and how often it runs. File-based sources (SFTP, HTTP) grab files from servers or web endpoints — use these for CSV exports and API responses. JDBC sources connect directly to databases — use these when you can query the source system directly and want real-time data. The import runs on schedule, creates Import Set rows for staging, then Transform Maps move the data into target tables. The Import Log captures per-row results so you know exactly what succeeded, what got skipped due to duplicates, and what failed with errors.

Production-quality improvements

Once your basic import works, add error notifications so you know when imports fail silently, set up data validation in Transform Maps to catch bad records before they hit target tables, and configure the import to archive or delete old Import Set rows to prevent database bloat. For high-volume imports, consider breaking large datasets into smaller chunks and scheduling them during off-peak hours. JDBC sources benefit from indexed queries and connection pooling for better performance.

Before you start

  • import_admin or admin role
  • Network access to the external data source (SFTP server, database, or HTTP endpoint)
  • Target table and Transform Map already configured
Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Step by step

1

Create the data source record

Navigate to System Import Sets > Administration > Data Sources and click New. Choose your Type: File for CSV/XML from SFTP or HTTP endpoints, or JDBC for direct database connections. Name it descriptively — you'll have multiple data sources and need to distinguish them in logs.

TIP

JDBC sources perform better but require database credentials and network access; file sources are more flexible but depend on the external system generating files correctly.

2

Configure the connection details

For file sources, set the URL (SFTP/HTTP path) and authentication credentials. For JDBC, enter the connection string, username, and password, then specify your SQL query in the Query field. Test the connection using the Test Connection button — if it fails here, the scheduled import will fail silently.

TIP

JDBC queries should include ORDER BY clauses for consistent imports and WHERE conditions to limit rows if you don't need the entire table.

3

Set the import schedule

Check the Active box to enable scheduling. Set Import Schedule to the frequency you need — Daily, Weekly, or Custom. For Custom, use cron syntax in the Repeat Interval field. Set Run As to a service account that has import_admin role, not your personal account.

TIP

Start with longer intervals during testing — you can always increase frequency once you verify the import works correctly.

4

Configure the import target

Set Import Set Table Name to match your existing import set table (usually starts with 'u_import'). Select your Transform Map in the Transform Map field — this moves data from the import set to your target table. Leave Advanced settings at defaults unless you have specific performance requirements.

5

Set up monitoring and cleanup

In the Notifications section, add email addresses that should receive alerts when imports fail. Set Max Import Set Rows to prevent runaway imports from filling your database — 10,000 is a reasonable default. Configure Row Cleanup to delete or archive old import set rows after successful processing.

6

Test with manual execution

Save the Data Source record, then click Execute Import to run it immediately. Check the Import Log (System Import Sets > Import Log) for results. Each row shows the outcome: Inserted, Updated, Skipped, or Error. Fix any Transform Map issues before relying on the schedule.

7

Monitor scheduled execution

Let the scheduled import run at least twice before considering it stable. Check Import Sets > Import Log regularly for the first week. Look for consistent row counts and no unexpected errors. The State field shows whether each scheduled run completed successfully.

Best practices

  • Always set a Max Import Set Rows limit to prevent runaway imports from consuming database space when source systems send unexpectedly large datasets.

  • Use a dedicated service account for the Run As field rather than personal accounts — when people leave or change roles, scheduled imports break.

  • Configure row cleanup to delete processed import set rows after 30 days unless you need them for auditing — import set tables grow quickly and slow down the database.

  • For JDBC sources, write queries that only fetch changed records using timestamp fields rather than importing the entire table every time.

  • Set up email notifications for import failures but test them first — failed imports often fail silently and you won't know until users report missing data.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue