How to Connect ServiceNow to Power BI
Getting your ServiceNow data into Power BI is the key to unlocking a deeper understanding of your IT operations and how they impact the entire business. Moving beyond ServiceNow's native reports gives you the power to create dynamic, interactive dashboards and combine your incident, problem, and change request data with information from other departments. This guide provides a clear path to connecting ServiceNow to Power BI, outlining the most effective methods and best practices to get you started.
Why Connect ServiceNow to Power BI in the First Place?
Before jumping into the "how," it’s helpful to understand the "why." While ServiceNow is a powerful platform for managing IT services, its built-in reporting has limitations. Connecting it to Power BI bridges that gap, allowing you to:
- Create Rich, Interactive Visualizations: Power BI’s visualization capabilities go far beyond standard tables and charts. You can build advanced reports with drill-down functionality, cross-filtering, and custom visuals that tell a compelling story about your data.
- Build a Centralized Analytics Hub: Your ServiceNow data doesn't exist in a vacuum. By bringing it into Power BI, you can combine IT service management (ITSM) data with data from your finance, HR, sales, or marketing platforms to create a 360-degree view of business operations. For example, you can correlate system downtime with dips in sales revenue.
- Share Insights Easily: Power BI is integrated into the Microsoft ecosystem, making it simple to share dashboards and reports with stakeholders across your organization via Teams, SharePoint, or published web links. This ensures everyone is working from the same real-time information.
- Democratize Data Access: Once a data model is set up in Power BI, business users can more easily perform self-service analytics without needing to learn the complexities of the ServiceNow table structure.
Before You Begin: What You'll Need
To ensure a smooth connection process, make sure you have the following ready:
- Power BI Desktop: This is the free application from Microsoft where you'll build your reports. Make sure you have the latest version installed.
- ServiceNow Instance URL: You'll need the specific URL for your organization's ServiceNow instance (e.g.,
https://yourcompany.servicenow.com). - ServiceNow Credentials with Permissions: You’ll need a username and password for a ServiceNow account. Critically, this account needs the right access permissions to read the data tables you want to analyze. For best practices, it's recommended to use a dedicated service account instead of your personal login. Common roles needed include
itilandrest_api_explorer, but you may need more specific roles depending on the data you're pulling. - A Clear Goal: Know which ServiceNow tables you need to pull from. Are you analyzing incidents, problems, change requests, or user data? Having a list of tables (like
incident,problem,change_request, orsys_user) beforehand will speed up the process significantly.
Method 1: Using the Official ServiceNow Connector in Power BI
The simplest and most direct way to get started is by using the native connector built directly into Power BI. It’s designed to make the process as straightforward as possible and is perfect for most common use cases.
Step-by-Step Connection Guide
- Open Power BI and Get Data: Launch Power BI Desktop. From the
Hometab on the ribbon, clickGet Data, then selectMore...to open the full list of data sources. - Find the ServiceNow Connector: In the search box, type "ServiceNow" to quickly find the connectors. Select
ServiceNow Tablesand clickConnect. - Enter Your Instance URL: A dialog box will appear asking for your ServiceNow instance URL. Enter the full address of your instance and click
OK. You can also choose betweenImportandDirectQuerydata connectivity modes here. For most situations,Importis the recommended choice as it provides much better performance. - Authenticate: Power BI will then prompt you to sign in. Select the
Organizational accountoption on the left, clickSign in, and enter the username and password for your ServiceNow service account. Once you successfully log in, clickConnect. - Select Your Tables: You'll now see the
Navigatorwindow, which displays a list of all the tables available in your ServiceNow instance - there will be thousands! Use the search bar to find the tables you need, such asincidentorproblem. Select the checkboxes next to the tables you want to import. - Transform, Don't Just Load: This is a crucial step. Instead of clicking
Load, always chooseTransform Data. This will open the Power Query Editor, a powerful tool for cleaning and preparing your data before it gets loaded into your report model. Loading entire ServiceNow tables without cleaning them first can lead to incredibly slow reports and refresh failures.
Best Practices for Using the Connector
- Be Ruthless with Columns: ServiceNow tables can have hundreds of columns, most of which you probably don't need (e.g., a huge number of system columns prefixed with
sys_). In the Power Query Editor, use theChoose Columnsfeature on theHometab to select only the fields you actually need for your report. Fewer columns mean faster refresh speeds and a more manageable data model. - Filter Your Rows Early: Do you really need five years' worth of resolved incidents? Probably not. Use the filter controls in Power Query to limit the data you import. For example, you can filter for incidents created in the last 180 days or only pull records that are
Active = true. Filtering rows significantly reduces the amount of data transferred and improves performance.
Method 2: Connecting via the ServiceNow REST API
If the native connector feels too restrictive or if you need to pull from a very large table, connecting directly to ServiceNow’s REST API using Power BI’s Web connector offers far more control and flexibility.
When to Use This Method
- You want to specify the exact columns to retrieve directly in your API call for maximum efficiency.
- You need to overcome the limitations of the default connector and handle pagination to pull hundreds of thousands of records.
- You need to access data from a specific API endpoint that the native connector doesn't expose.
Step-by-Step API Connection Guide
- Choose the Web Connector: In Power BI Desktop, navigate to
Get Data > Web. - Build Your API URL: Select the
Advancedoption to construct your API call. In theURL partsbox, you will construct a URL that points directly to the ServiceNow Table API. Here’s a sample structure:
https://<yourcompany>.servicenow.com/api/now/table/<incident>
You can add parameters to make your query more efficient. Two of the most useful are:
- sysparm_fields: This lets you define the exact columns you want. For example:
sysparm_fields=number,short_description,state,caller_id. - sysparm_limit: This sets the number of records to return in a single call (maximum is typically 10,000). For example:
sysparm_limit=5000.
Your full URL might look like this:
https://yourcompany.servicenow.com/api/now/table/incident?sysparm_fields=number,short_description,state&sysparm_limit=1000
- Set Authentication: Under
Authentication, chooseBasicand enter the username and password for your ServiceNow service account. - Configure Headers: It's good practice to add an
Acceptheader. In theHTTP request header parameterssection, enterAcceptin the first box andapplication/jsonin the second. - Transform the JSON Response: After connecting, Power BI will show you a JSON response which isn't yet in a usable format. Click
To Table, then look for a column that contains the word "List" or "result." Click the expand icon (two opposing arrows) in the column header to expand the records into individual columns representing your data fields. You can then clean up and rename columns as needed.
Common Pitfalls and Best Practices
Whichever method you choose, a few key concepts will save you hours of headaches.
Understanding Display Values vs. System IDs
One of the most common surprises when pulling ServiceNow data is seeing long, cryptic strings of characters instead of readable text. For example, the caller_id or assignment_group fields will show a sys_id (e.g., 5137153cc611227c000bbd14d8961980) instead of a person's name or a group name.
To fix this, you have two options:
- Get Display Values Directly (API Method): When using the API, you can add the parameter
sysparm_display_value=trueto your URL. This tells ServiceNow to return the user-friendly text instead of the system ID. The trade-off is that you won't get the raw IDs, which might be needed for creating relationships. - Create Relationships in Power BI: The better, more robust solution is to import the related tables. For example, you would import both the
incidenttable and thesys_usertable. In Power BI, you can then create a relationship betweenincident[caller_id]andsys_user[sys_id]. This allows you to use the user's name from thesys_usertable in your visuals.
Setting Up Scheduled Refreshes
Your beautiful reports are only useful if their data is fresh. After you publish your report from Power BI Desktop to the Power BI Service (Power BI's cloud platform), you’ll need to schedule automatic refreshes.
- Go to the dataset settings in the Power BI Service.
- Under
Data source credentials, edit your ServiceNow credentials and securely enter them again so the cloud service can connect on your behalf. - Under
Scheduled refresh, you can toggle it on and set a frequency, like daily or hourly, to keep your reports up-to-date automatically.
Final Thoughts
Connecting ServiceNow to Power BI opens up a huge potential for analysis, giving you the ability to monitor IT performance, measure team efficiency, and track progress against business goals. Whether you use the simple built-in connector for quick access or the more powerful direct API method for greater control, the key is to be thoughtful about pulling only the data you need to keep your reports fast and effective.
The process of connecting sources, shaping data in tools like Power Query, and manually building reports can often be a time-consuming hurdle, especially when you're managing data across multiple platforms. We built Graphed to remove this friction for sales and marketing analytics. By letting you integrate your most important sources with a few clicks and build real-time dashboards using simple, natural language, we help you get from data to insights in seconds - not hours.
Related Articles
How to Enable Data Analysis in Excel
Enable Excel's hidden data analysis tools with our step-by-step guide. Uncover trends, make forecasts, and turn raw numbers into actionable insights today!
What SEO Tools Work with Google Analytics?
Discover which SEO tools integrate seamlessly with Google Analytics to provide a comprehensive view of your site's performance. Optimize your SEO strategy now!
Looker Studio vs Metabase: Which BI Tool Actually Fits Your Team?
Looker Studio and Metabase both help you turn raw data into dashboards, but they take completely different approaches. This guide breaks down where each tool fits, what they are good at, and which one matches your actual workflow.