

How to Log New Orders with Pipedream
Automatically add a new Google Sheets row with order details every time a Shopify order is placed.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Store owners who want real-time order logging without checking Shopify constantly throughout the day
Not ideal for
Teams that need complex order processing workflows or heavy data transformation before logging
Sync type
real-timeUse case type
reportingReal-World Example
A 8-person dropshipping company uses this to track orders in real-time across 3 Shopify stores. Before automation, they manually exported order reports twice daily and missed rush periods. Now their fulfillment team sees new orders within 30 seconds in their shared Google Sheet dashboard.
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 Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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 | ||
| Order Number | order_number | |
| Customer Name | customer.first_name + customer.last_name | |
| Customer Email | customer.email | |
| Order Total | total_price | |
| Line Items | line_items | |
| Order Date | created_at | |
4 optional fieldsβΈ show
| Currency | currency |
| Fulfillment Status | fulfillment_status |
| Payment Status | financial_status |
| Shipping Address | shipping_address |
Step-by-Step Setup
Pipedream Dashboard > Workflows > New
Create new workflow in Pipedream
Navigate to pipedream.com and click New Workflow in the top right. You'll land on the workflow builder with an empty canvas. The interface shows Sources on the left and Steps on the right. Name your workflow something descriptive like 'Shopify Orders to Sheets'.
- 1Click 'New Workflow' button in dashboard
- 2Name workflow 'Shopify Orders to Sheets'
- 3Click 'Create' to open workflow builder
Workflow Builder > Add Trigger > Shopify
Add Shopify webhook trigger
Click 'Add a trigger' and search for Shopify. Select 'New Order (Instant)' from the trigger options. This creates an instant webhook that fires the moment an order is placed. You'll see the webhook URL that Shopify will call.
- 1Click 'Add a trigger' button
- 2Search for 'Shopify' in the apps list
- 3Select 'New Order (Instant)' trigger
- 4Click 'Connect Account' for Shopify
Shopify Auth > Store Domain > Authorize
Connect your Shopify store
Click 'Connect Account' and enter your Shopify store domain without the .myshopify.com part. You'll be redirected to Shopify to authorize Pipedream. Grant access to orders, products, and customers. After authorization, you'll return to Pipedream with a green connected status.
- 1Enter your store name (just 'mystorename', not full URL)
- 2Click 'Connect' to redirect to Shopify
- 3Click 'Install app' in Shopify admin
- 4Return to Pipedream workflow builder
Shopify Trigger > Test > Generate Test Event
Test the Shopify trigger
Click 'Generate Test Event' to create sample order data, or place a real test order in your store. Pipedream will capture the webhook data and show you the full order object structure. This sample data helps you understand what fields are available for mapping to Google Sheets.
- 1Click 'Generate Test Event' button
- 2Wait 10-15 seconds for sample data to load
- 3Expand the order object to see available fields
- 4Note fields like order_number, customer, total_price
Workflow Builder > + Add Step > Google Sheets
Add Google Sheets action step
Click the '+' button below your trigger to add a new step. Search for Google Sheets and select 'Add Single Row'. This action will append a new row to your spreadsheet each time an order comes in. You'll need to specify which spreadsheet and worksheet to use.
- 1Click the '+' button below Shopify trigger
- 2Search for 'Google Sheets' in the actions
- 3Select 'Add Single Row' action
- 4Click 'Connect Account' for Google Sheets
Google Sheets Auth > Sign In > Grant Permissions
Connect Google Sheets account
Click 'Connect Account' and sign in with your Google account. Grant Pipedream permission to read and write your Google Sheets. After authorization, you'll return to the workflow with access to select your spreadsheets. The connection should show a green connected status.
- 1Click 'Connect Account' in Google Sheets step
- 2Sign in with your Google account
- 3Grant Pipedream permissions to Google Sheets
- 4Click 'Allow' to complete authorization
Google Sheets Step > Spreadsheet > Worksheet
Select spreadsheet and worksheet
Choose your target spreadsheet from the dropdown list. If you don't have one ready, create a new Google Sheet with headers like Order Number, Customer Name, Email, Total, Items. Select the specific worksheet tab where you want rows added. Most sheets default to 'Sheet1'.
- 1Select your spreadsheet from the dropdown
- 2Choose the worksheet tab (usually 'Sheet1')
- 3Verify the sheet has headers in row 1
- 4Click 'Refresh' if your sheet doesn't appear
Google Sheets Step > Field Mapping > Custom Expressions
Map Shopify data to sheet columns
Now map the Shopify order fields to your spreadsheet columns. Click each field dropdown and select the corresponding Shopify data. For line items, you'll need to format them as a readable list since Google Sheets expects text, not arrays. Use the custom expression builder for complex fields.
- 1Map Order Number to steps.trigger.event.order_number
- 2Map Customer Name to steps.trigger.event.customer.first_name + last_name
- 3Map Email to steps.trigger.event.customer.email
- 4Map Total to steps.trigger.event.total_price
- 5Map Items using custom expression for line_items array
Workflow Builder > + Code Step > Node.js
Add custom code for line items formatting
Add a code step before Google Sheets to format the line items nicely. Click '+' between Shopify and Sheets, then select 'Node.js Code'. Write code to loop through line_items and create a readable string with product names, quantities, and prices. Return the formatted data for the Sheets step.
- 1Click '+' between Shopify trigger and Google Sheets
- 2Select 'Run Node.js Code' action
- 3Paste the line items formatting code
- 4Update Google Sheets mapping to use code step output
This code step formats Shopify line items into readable text for your Google Sheet. Paste it in a Node.js code step between Shopify and Google Sheets.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const order = steps.trigger.event;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const order = steps.trigger.event;
// Format line items into readable string
const formattedItems = order.line_items.map(item => {
const price = parseFloat(item.price).toFixed(2);
return `${item.title} (${item.quantity}x $${price})`;
}).join(', ');
// Format customer name safely
const customerName = [
order.customer?.first_name || '',
order.customer?.last_name || ''
].filter(name => name.length > 0).join(' ') || 'Guest';
// Format order total with currency
const orderTotal = `${order.currency} ${parseFloat(order.total_price).toFixed(2)}`;
// Return formatted data for Google Sheets
return {
order_number: order.order_number,
customer_name: customerName,
customer_email: order.customer?.email || '',
total_price: orderTotal,
line_items: formattedItems,
created_at: new Date(order.created_at).toLocaleDateString(),
fulfillment_status: order.fulfillment_status || 'unfulfilled',
financial_status: order.financial_status || 'pending'
};
},
});Workflow Builder > Test > Check Google Sheet
Test the complete workflow
Click 'Test' at the top of the workflow to run it with your sample data. Check your Google Sheet to confirm a new row was added with all the mapped order information. The test should complete in 2-3 seconds. If successful, you'll see green checkmarks on each step.
- 1Click 'Test' button in top toolbar
- 2Wait for all steps to complete
- 3Open your Google Sheet in new tab
- 4Verify new row contains correct order data
Workflow Builder > Deploy > Events Monitor
Deploy workflow to production
Click 'Deploy' to activate your workflow for live orders. The webhook will now process real Shopify orders and add them to your sheet within 30 seconds. You can monitor execution in the Events tab and pause/resume the workflow anytime from the main dashboard.
- 1Click 'Deploy' button in top right
- 2Confirm deployment in modal dialog
- 3Navigate to Events tab to monitor activity
- 4Place a test order to verify live processing
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 Pipedream for this if you need instant webhook processing and custom data formatting. The Node.js code steps let you transform Shopify's complex order objects into clean spreadsheet rows without learning a proprietary formula language. Plus you get real webhook URLs that respond in under 500ms. Skip Pipedream if you want a purely visual builder with zero code.
This costs 1 credit per order on Pipedream's free tier (10,000 credits monthly). At 200 orders per month you'll stay free forever. Compare that to Zapier's 100 free tasks monthly - you'd hit the limit in 2 weeks and pay $19.99/month. Make gives you 1,000 free operations but charges $9/month after that. Pipedream wins on cost until you hit 10,000+ orders monthly.
Make has better visual debugging with step-by-step data preview, and Zapier's Shopify integration includes more trigger options like 'Updated Order'. n8n gives you self-hosting to avoid monthly fees entirely. Power Automate includes advanced Excel formatting if you use Microsoft 365. But Pipedream's instant webhooks beat everyone else's 1-15 minute polling delays, and the Node.js environment handles complex line item formatting that breaks other platforms' formula builders.
You'll hit Shopify's webhook limits if you have multiple apps fighting for the same events - Shopify allows 5 webhook URLs per event type maximum. Google Sheets will throttle writes if you get a sudden spike of 100+ concurrent orders, causing temporary failures. The line items array structure changes between Shopify plans, so test with real order data from your specific store setup before going live.
Ideas for what to build next
- βAdd order status updates β Create a reverse sync to update Google Sheets when order status changes in Shopify.
- βBuild fulfillment tracking β Connect your shipping provider to automatically update tracking numbers in the sheet.
- βCreate daily order summaries β Add a scheduled workflow that emails daily order counts and revenue totals from your sheet data.
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