

How to Export Pipeline to Sheets with Power Automate
Automatically query Salesforce for open opportunities every morning and write them to a Google Sheet.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Sales teams that need daily pipeline visibility in Sheets without manual Salesforce exports
Not ideal for
Teams needing real-time updates or complex SOQL queries with multiple object relationships
Sync type
scheduledUse case type
reportingReal-World Example
A 25-person B2B sales team uses this to export their open opportunities to a shared Google Sheet every morning at 8 AM. Sales managers review pipeline health in Sheets during daily standups instead of logging into Salesforce. Before automation, the VP of Sales manually exported data twice per week, missing deals that closed between exports.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Opportunity Name | Name | |
| Amount | Amount | |
| Close Date | CloseDate | |
| Stage Name | StageName | |
3 optional fields▸ show
| Account ID | AccountId |
| Owner ID | OwnerId |
| Probability | Probability |
Step-by-Step Setup
My flows > + New flow > Scheduled cloud flow
Create scheduled cloud flow
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then '+ New flow' in the top toolbar. Select 'Scheduled cloud flow' from the dropdown menu. Name your flow 'Daily Pipeline Export' and set it to run every day at 8:00 AM.
- 1Click 'My flows' in left sidebar
- 2Click '+ New flow' button
- 3Select 'Scheduled cloud flow'
- 4Name it 'Daily Pipeline Export'
- 5Set frequency to daily at 8:00 AM
Flow designer > + New step > Salesforce > Get records (V2)
Add Salesforce connection
Click '+ New step' below the Recurrence trigger. Search for 'Salesforce' in the connector search bar and select it. Choose the 'Get records (V2)' action from the list. Power Automate will prompt you to create a connection - click 'Sign in' and authenticate with your Salesforce credentials.
- 1Click '+ New step' under Recurrence
- 2Type 'Salesforce' in search bar
- 3Select 'Salesforce' connector
- 4Choose 'Get records (V2)' action
- 5Click 'Sign in' and authenticate
Salesforce step > Configuration
Configure opportunity query
In the Object type dropdown, select 'Opportunities'. Leave the Filter query field blank to get all opportunities, or add 'IsClosed eq false' to get only open deals. Set the Order by field to 'CreatedDate desc' to get newest opportunities first. Leave Fetch only top records blank to get all matching records.
- 1Select 'Opportunities' from Object type dropdown
- 2Enter 'IsClosed eq false' in Filter query
- 3Set Order by to 'CreatedDate desc'
- 4Leave Fetch only top records blank
Flow designer > + New step > Excel Online (Business) > Update a range
Add Google Sheets connection
Click '+ New step' below the Salesforce action. Search for 'Excel Online (Business)' - this connector also handles Google Sheets in Power Automate. Select 'Update a range' action. You'll need to authenticate with your Google account that has access to the target spreadsheet.
- 1Click '+ New step' below Salesforce
- 2Search 'Excel Online Business'
- 3Select the connector
- 4Choose 'Update a range' action
- 5Sign in with Google account
Excel step > File selection
Select target spreadsheet
In the Location dropdown, select 'OneDrive for Business' if your Sheet is there, or browse to find your Google Drive. Select your target spreadsheet from the Document Library dropdown. Choose the specific worksheet tab from the Table dropdown. Set the Range field to 'A2:G2' to start writing data in row 2, leaving row 1 for headers.
- 1Select location from dropdown
- 2Choose your spreadsheet file
- 3Select worksheet tab
- 4Enter range 'A2:G100' for data rows
Excel step menu > Add an action before > Excel Online (Business) > Clear range
Clear existing data first
Before the Excel step, add another action to clear old data. Click the '...' menu on the Excel step and select 'Add an action before'. Search for 'Excel Online (Business)' again and choose 'Clear range'. Use the same file selection but set the range to 'A2:G1000' to clear all data rows while preserving headers.
- 1Click '...' on Excel step
- 2Select 'Add an action before'
- 3Choose Excel Online (Business) connector
- 4Select 'Clear range' action
- 5Set range to 'A2:G1000'
Update range step > Values field > Dynamic content
Map opportunity fields
In the Update range step, click inside the Values field. Power Automate will show 'Apply to each' since Salesforce returns multiple opportunities. Map each column: A=Name, B=Amount, C=CloseDate, D=StageName, E=AccountId, F=OwnerId, G=Probability. Use dynamic content picker to select these fields from the Salesforce response.
- 1Click in Values field
- 2Select opportunity Name for column A
- 3Map Amount to column B
- 4Add CloseDate, StageName, AccountId, OwnerId, Probability
- 5Ensure all 7 columns are mapped
Flow toolbar > Save > Test > Manually > Run flow
Test the flow
Click 'Save' in the top toolbar to save your flow. Then click 'Test' and choose 'Manually' to run it immediately. Click 'Run flow' to execute the test. Watch the run history to see each step complete - green checkmarks indicate success, red X's show errors. Check your Google Sheet to verify opportunity data appeared.
- 1Click 'Save' in top toolbar
- 2Click 'Test' button
- 3Select 'Manually' option
- 4Click 'Run flow'
- 5Monitor execution in run history
Action menu > Settings > Configure run after
Add error handling
Click on each action and select 'Settings' from the action menu. Turn on 'Configure run after' and check 'is successful' and 'has failed'. Add a final step using 'Send an email (V2)' action to notify you if the daily export fails. This ensures you know when data isn't updating.
- 1Click each action's '...' menu
- 2Select 'Settings'
- 3Enable 'Configure run after'
- 4Check success and failure options
- 5Add email notification for failures
Use this Power Fx expression in the Amount field to format currency values with proper comma separators and dollar signs instead of raw numbers.
JavaScript — Code Stepconcat(▸ Show code
concat( "$", formatNumber(
... expand to see full code
concat(
"$",
formatNumber(
float(items('Apply_to_each')?['Amount']),
"#,##0.00"
)
)Scaling Beyond 500+ opportunities+ Records
If your volume exceeds 500+ opportunities records, apply these adjustments.
Use date-based filtering
Add 'CreatedDate ge 2024-01-01T00:00:00Z' to your filter query to limit results to recent opportunities. This prevents timeouts and reduces API usage.
Implement batching with Skip tokens
For orgs with 5,000+ opportunities, use the Skip token parameter in Get records to page through results. Each batch processes 5,000 records maximum.
Clear ranges efficiently
Instead of clearing A2:G1000, calculate the exact range based on your opportunity count. Use length(body('Get_records')?['value']) to determine how many rows to clear.
Monitor API governor limits
Salesforce limits API calls per 24-hour period. Check Setup > System Overview > API Usage regularly and reduce frequency if you approach limits.
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Microsoft Power Automate for this if you're already in the Microsoft ecosystem and need a basic daily export without complex data transformation. The Excel Online connector handles batch updates better than individual row inserts, and the scheduled triggers are reliable. Skip this for real-time updates or complex SOQL queries - use Zapier for simple webhook-based syncing instead.
Costs run about $15/user/month for the base Power Platform license, which includes 2,000 API calls. At 100 opportunities exported daily, you'll use roughly 3,000 API calls per month, pushing you into premium connector territory. Zapier costs $20/month for 2,000 tasks but counts each opportunity as one task - making Power Automate slightly cheaper for bulk operations.
Make handles SOQL queries better with its Salesforce Search module and proper relationship traversal - no separate lookups needed for Account.Name. N8n gives you full JavaScript access for data transformation and costs nothing for self-hosted deployments. Pipedream excels at error handling and retry logic for failed API calls. But Power Automate wins on enterprise compliance and built-in Office 365 integration if you're already paying for Microsoft licenses.
You'll hit Salesforce API limits faster than expected - most Professional editions cap at 1,000 calls per day across all integrations, not just your flow. The Excel Online connector occasionally fails with 'Service Unavailable' errors during Microsoft maintenance windows. Power Automate's Apply to each loops can timeout after 60 seconds with large datasets, forcing you to add pagination logic that should be automatic.
Ideas for what to build next
- →Add account name lookup — Replace AccountId with readable company names using additional Get record steps for cleaner reports.
- →Create closed deals tracker — Build a second flow to export won/lost opportunities to a different sheet tab for historical analysis.
- →Set up Slack notifications — Add a step to post daily pipeline summaries to your sales channel when the export completes.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup