How to Import Salesforce Report in Google Sheets

Cody Schneider9 min read

Getting your Salesforce data into a more flexible environment like Google Sheets is one of the best ways to supercharge your analysis. It allows you to build custom dashboards, blend Salesforce data with other sources, and share insights easily with team members who don't live inside a CRM. This article will show you three effective methods to import your Salesforce reports into Google Sheets, from a simple manual download to a fully automated workflow.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Why Bother Connecting Salesforce to Google Sheets?

Before jumping into the "how," it's helpful to understand the "why." While Salesforce reporting is powerful, it can feel a bit rigid. Moving your report data into Google Sheets unlocks several key benefits:

  • Easier Collaboration: Not everyone on your team has or needs a Salesforce license. A Google Sheet is a universally accessible place to share performance data, get feedback, and work together on analysis without security hassles.
  • Flexible Data Manipulation: Google Sheets is an incredible playground for data. You can easily create pivot tables, write complex formulas, build visualizations, and slice and dice the information in ways that aren't always straightforward within a Salesforce report builder.
  • Custom Dashboards: You can use your Salesforce data as a source to build fully custom, real-time dashboards right inside a Google Sheet. This is perfect for team-specific KPIs or project-based tracking that you want to see at a glance.
  • Combining Data Sources: Your business data doesn't just live in Salesforce. In a Google Sheet, you can easily pull in data from other sources - like ad spend from a separate CSV or project timelines from another tool - to create a more holistic view of performance.

In short, it takes your valuable CRM data out of its silo and puts it into a flexible tool your entire team already knows how to use.

Method 1: The Classic Manual Export and Import

This is the quick-and-dirty method. It’s perfect for one-off analyses or situations where you just need a snapshot of data right now. It requires no special tools, but as the name implies, it's a completely manual process.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Step-by-Step Instructions:

  1. Run Your Report in Salesforce: Log into your Salesforce account and navigate to the report you want to export. Run the report to ensure you have the latest data loaded. Make sure the columns and filters are exactly how you want them.
  2. Export the Report: On the report results page, look for the Export button or dropdown arrow. Click it.
  3. Choose Your Export Format: Salesforce will give you a couple of options. For Google Sheets, the best choice is Details Only. This will give you a clean data set. Under ‘Format,’ select Comma Delimited .csv. This format is universally compatible with spreadsheet programs.
  4. Import into Google Sheets: Open a new or existing Google Sheet. Go to FileImport.
  5. Upload Your CSV File: In the import dialog, click on the "Upload" tab and drag-and-drop the CSV file you just downloaded from Salesforce.
  6. Configure Import Settings: Google Sheets will ask you how you want to handle the data. For most cases, you can leave the settings as they are ('Detect automatically' for the separator) and just click "Import data." The data from your report will now populate your sheet.

When to use this method: It’s fast and requires no setup, making it ideal for a quick pull. But if you have to do this every Monday morning for your weekly report, you’ll quickly grow tired of the repetitive clicks. It's static, not scalable, and highly prone to human error.

Method 2: Using a Google Sheets Add-on (The Automated Way)

For recurring reporting, you need an automated solution. This is where Google Sheets add-ons shine. They create a direct, live connection between Salesforce and your spreadsheet, allowing you to import data and schedule automatic refreshes without ever exporting another CSV.

Several great third-party add-ons are available in the Google Workspace Marketplace. Popular choices include Coefficient, Data Connector for Salesforce, and Sheetgo. The setup process is generally similar for all of them.

Step-by-Step Instructions:

  1. Install the Add-on: In your Google Sheet, navigate to ExtensionsAdd-onsGet add-ons. This opens the Google Workspace Marketplace. Search for "Salesforce" and choose a well-rated connector. Click "Install" and follow the prompts to grant the necessary permissions.
  2. Launch and Connect to Salesforce: Once installed, launch the add-on from the Extensions menu. The first time you use it, you'll be prompted to connect to your Salesforce account. You’ll be redirected to a Salesforce login page to securely authorize the connection (using OAuth). Rest assured, your credentials are not stored by the add-on, you’re just giving it permission to access data on your behalf.
  3. Select Your Import Method: The add-on’s interface will appear in a sidebar. Look for an option like "Import Data," "From Report," or "Pull Data."
  4. Find Your Salesforce Report: You'll see a search bar where you can type the name of the Salesforce report you want to import. This is much faster than scrolling through dozens of reports. Select the correct report from the search results.
  5. Import the Data: Click the "Import" or "Get Data" button. The add-on will fetch real-time data from your report via the Salesforce API and place it directly into your active Google Sheet. This might take a few moments depending on the size of your report.
  6. Schedule Automatic Refreshes: This is the most powerful feature. Inside the add-on’s menu, look for a "Scheduling" or "Automation" section. Here, you can set the report to automatically refresh on a regular cadence - every hour, every day at 8 AM, or every Monday morning. Your data will always be up-to-date without any manual effort.

When to use this method: This is the recommended approach for any kind of recurring report. It saves countless hours, eliminates manual errors, and keeps your dashboards and analyses fed with fresh data.

Method 3: Go Custom with Google Apps Script

If you're comfortable with code and want maximum control without paying for an add-on, Google Apps Script is your best friend. Apps Script is a cloud-based JavaScript platform that lets you write code to automate tasks across Google Workspace, including fetching data from external APIs like Salesforce's.

Disclaimer: This method requires API access in your Salesforce edition (typically Enterprise and above) and some comfort with basic programming concepts.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

High-Level Overview:

  1. Create a 'Connected App' in Salesforce: This step gives your script a secure identity for authentication. In Salesforce Setup, search for "App Manager" and create a "New Connected App." Enable OAuth settings, and carefully copy the Consumer Key and Consumer Secret. You’ll need these for your script.
  2. Open the Apps Script Editor: In your Google Sheet, go to ExtensionsApps Script. This will open a new programming environment in your browser.
  3. Write the Script to Fetch Data: You will write JavaScript code to perform a series of actions:

Here's a simplified conceptual snippet of what such a function might look like:

function importSalesforceReport() {
  var reportId = 'YOUR_SALESFORCE_REPORT_ID',  
  var accessToken = getSalesforceAccessToken(), 

  // URL for the Salesforce Reports API
  var reportApiUrl = 'https://yourInstance.salesforce.com/services/data/v58.0/analytics/reports/' + reportId,

  // Options for the API call
  var options = {
    'method' : 'get',
    'headers' : { 'Authorization' : 'Bearer ' + accessToken },
    'muteHttpExceptions': true
  },

  // Run the API call
  var response = UrlFetchApp.fetch(reportApiUrl, options),
  var jsonResponse = JSON.parse(response.getContentText()),

  // (Code here to parse the jsonResponse and extract rows...)
  
  // Example of writing the parsed data back to the sheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Salesforce Data"),
  sheet.getRange(2, 1, extractedData.length, extractedData[0].length).setValues(extractedData),
}
  1. Create a Time-Driven Trigger: To automate your script, click on the Triggers tab (the clock icon) in the Apps Script editor. Set up a new trigger that runs your importSalesforceReport function on your desired schedule (e.g., a daily timer that runs between 7 AM and 8 AM).

When to use this method: If you have developers on your team, need a lot of customization in how the data is transformed before it even hits the sheet, or want to avoid recurring subscription fees from add-ons, this is an incredibly powerful option.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Best Practices for Smooth Integration

No matter which method you choose, keeping a few principles in mind will make your life much easier.

  • Keep Salesforce Reports Simple: For programmatic use, tabular reports are far superior to summary or matrix formats. A simple table with rows and columns maps perfectly to a spreadsheet, making the import predictable and easy to work with.
  • Filter in Salesforce, Not in Sheets: Make sure your Salesforce report is hyper-focused on exactly the data you need. Rather than importing 100,000 rows and ten columns just to use three of them, adjust your filters in Salesforce first. This makes the data transfer faster and lightens the load on Google Sheets, especially since you might hit cell limits.
  • Be Mindful of API Limits: Salesforce allocates a certain number of API calls your organization can make in a 24-hour period. If you’re using an add-on or Apps Script, an aggressive refresh schedule (like every 5 minutes) on a large number of reports could potentially hit this limit and disrupt other integrations. Use a reasonable refresh rate for your business needs.

Final Thoughts

Connecting your Salesforce reports to Google Sheets empowers your team to analyze performance, collaborate on strategy, and build custom visualizations without constraints. Whether you're doing a quick manual export or setting up a sophisticated daily sync with Apps Script, moving that data into a flexible environment unlocks new pathways for turning rich CRM data into actionable intelligence.

As you get more comfortable pulling data into spreadsheets, you may notice that the real bottleneck shifts from getting the data to analyzing it. Creating all the pivot tables, charts, and summaries to answer business questions still takes time. We built Graphed to help with that exact problem. Instead of pulling your Salesforce data into a sheet and building reports manually, Graphed connects directly to Salesforce (and dozens of other tools) and lets you build real-time dashboards just by asking questions in plain English. This lets your entire team get fast answers about performance without anyone having to become a spreadsheet expert.

Related Articles