Intermediate~15 min setupProductivity & E-commerceVerified April 2026
Google Sheets logo
Shopify logo

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-time

Use case type

reporting

Real-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.

⚑1 op per order β€” A store processing 1,000 orders/month uses ~1,000 ops.
/mo
505005K50K

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

Skip the setup

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.

Admin access to your Shopify store to install the Pipedream app
Google account with edit access to the target spreadsheet
Google Sheet already created with column headers for order data
Pipedream account (free tier works for most order volumes)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Order Numberorder_number
Customer Namecustomer.first_name + customer.last_name
Customer Emailcustomer.email
Order Totaltotal_price
Line Itemsline_items
Order Datecreated_at
4 optional fieldsβ–Έ show
Currencycurrency
Fulfillment Statusfulfillment_status
Payment Statusfinancial_status
Shipping Addressshipping_address

Step-by-Step Setup

1

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'.

  1. 1Click 'New Workflow' button in dashboard
  2. 2Name workflow 'Shopify Orders to Sheets'
  3. 3Click 'Create' to open workflow builder
βœ“ What you should see: You should see an empty workflow canvas with 'Add a trigger' as the first step.
2

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.

  1. 1Click 'Add a trigger' button
  2. 2Search for 'Shopify' in the apps list
  3. 3Select 'New Order (Instant)' trigger
  4. 4Click 'Connect Account' for Shopify
βœ“ What you should see: You should see a webhook URL starting with https://eol... and a 'Connect Shopify Account' prompt.
⚠
Common mistake β€” The webhook URL won't receive data until you complete the Shopify connection in the next step.
Pipedream
+
click +
search apps
Google Sheets
GO
Google Sheets
Add Shopify webhook trigger
Google Sheets
GO
module added
3

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.

  1. 1Enter your store name (just 'mystorename', not full URL)
  2. 2Click 'Connect' to redirect to Shopify
  3. 3Click 'Install app' in Shopify admin
  4. 4Return to Pipedream workflow builder
βœ“ What you should see: You should see 'Connected to [YourStore]' with a green checkmark next to your Shopify account.
⚠
Common mistake β€” Make sure you're logged into the correct Shopify store admin before starting the connection process.
4

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.

  1. 1Click 'Generate Test Event' button
  2. 2Wait 10-15 seconds for sample data to load
  3. 3Expand the order object to see available fields
  4. 4Note fields like order_number, customer, total_price
βœ“ What you should see: You should see a JSON object with order details including customer info, line items, and pricing data.
⚠
Common mistake β€” Test events show dummy data - real orders will have different field values but the same structure.
Pipedream
β–Ά Deploy & test
executed
βœ“
Google Sheets
βœ“
Shopify
Shopify
πŸ”” notification
received
5

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.

  1. 1Click the '+' button below Shopify trigger
  2. 2Search for 'Google Sheets' in the actions
  3. 3Select 'Add Single Row' action
  4. 4Click 'Connect Account' for Google Sheets
βœ“ What you should see: You should see the Google Sheets step added with connection and configuration options visible.
6

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.

  1. 1Click 'Connect Account' in Google Sheets step
  2. 2Sign in with your Google account
  3. 3Grant Pipedream permissions to Google Sheets
  4. 4Click 'Allow' to complete authorization
βœ“ What you should see: You should see 'Connected to Google Sheets' with your email address displayed.
⚠
Common mistake β€” Use the same Google account that owns the spreadsheet you want to update to avoid permission issues.
Pipedream settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
7

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'.

  1. 1Select your spreadsheet from the dropdown
  2. 2Choose the worksheet tab (usually 'Sheet1')
  3. 3Verify the sheet has headers in row 1
  4. 4Click 'Refresh' if your sheet doesn't appear
βœ“ What you should see: You should see your spreadsheet and worksheet selected with field mapping options appearing below.
⚠
Common mistake β€” If you select the wrong worksheet, all your order data will go to that tab and you can't change it without rebuilding the step.
8

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.

  1. 1Map Order Number to steps.trigger.event.order_number
  2. 2Map Customer Name to steps.trigger.event.customer.first_name + last_name
  3. 3Map Email to steps.trigger.event.customer.email
  4. 4Map Total to steps.trigger.event.total_price
  5. 5Map Items using custom expression for line_items array
βœ“ What you should see: Each spreadsheet column should show a mapped Shopify field with preview data from your test event.
⚠
Common mistake β€” Line items come as an array - you'll need to join them into a single text string or only the first item will show.
Google Sheets fields
Column A
Column B
Email
Status
Notes
available as variables:
1.props.Column A
1.props.Column B
1.props.Email
1.props.Status
1.props.Notes
9

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.

  1. 1Click '+' between Shopify trigger and Google Sheets
  2. 2Select 'Run Node.js Code' action
  3. 3Paste the line items formatting code
  4. 4Update Google Sheets mapping to use code step output
βœ“ What you should see: You should see the code step executing successfully with formatted line items in the output.
⚠
Common mistake β€” Make sure to update your Google Sheets field mapping to reference the code step output instead of the raw trigger data.

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'
    };
  },
});
10

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.

  1. 1Click 'Test' button in top toolbar
  2. 2Wait for all steps to complete
  3. 3Open your Google Sheet in new tab
  4. 4Verify new row contains correct order data
βœ“ What you should see: You should see a new row in your Google Sheet with formatted order data and green success indicators on all workflow steps.
11

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.

  1. 1Click 'Deploy' button in top right
  2. 2Confirm deployment in modal dialog
  3. 3Navigate to Events tab to monitor activity
  4. 4Place a test order to verify live processing
βœ“ What you should see: You should see 'Deployed' status and your workflow will now process live Shopify orders automatically.
⚠
Common mistake β€” Once deployed, every real order will trigger this workflow - make sure your field mapping is correct before going live.

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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

Was this guide helpful?
← Google Sheets + Shopify overviewPipedream profile β†’