🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Shopify to Google Sheets, order logs that stay clean

Lisa Granqvist Partner Workflow Automation Expert

Your order data shouldn’t feel like a scavenger hunt. But if you’re still copying details out of Shopify, pasting into a spreadsheet, and then double-checking totals, you already know how messy it gets (and how easy it is to miss one).

This Shopify Sheets automation hits e-commerce owners hardest, because every order is “right now.” Ops leads feel it when weekly reporting turns into a manual cleanup job. And agencies managing multiple stores? They end up babysitting spreadsheets instead of improving performance.

This workflow logs each new Shopify order into Google Sheets automatically, then pings you on Telegram for success or failure. You’ll see how it works, what you need, and what changes once the order log stays clean without constant attention.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Shopify to Google Sheets, order logs that stay clean

The Challenge: Order logs that drift, break, and lie

Shopify is great for running the store, but it’s not great for sharing order data with people who don’t belong in your admin. So you export CSVs. You paste into Sheets. You try to keep a “master” order log that powers reporting, finance handoffs, fulfillment checks, and quick questions like “what happened to order #10432?” Then an export is missing a day, someone overwrites a column, or two people update the same sheet differently. Suddenly your numbers don’t match Shopify, and you’re stuck reconciling instead of running the business.

It adds up fast. Here’s where it breaks down most often.

  • Manual exports happen when someone remembers, which means your “live” sheet is always behind.
  • Copy-paste and column shifts create silent errors that only show up when reporting looks off.
  • Teammates without Shopify access can’t self-serve order details, so questions land on you all day.
  • When something fails (bad webhook, wrong sheet ID), you often find out days later during cleanup.

The Fix: Auto-log every new Shopify order into Sheets (with Telegram alerts)

This workflow creates a simple bridge between Shopify, Google Sheets, and Telegram. A new order in Shopify triggers the automation instantly via a webhook. The workflow then “normalizes” the order payload, which means it takes Shopify’s raw JSON and turns it into consistent fields you can trust (order ID, order number, customer, totals, shipping address, line items, and a JSON backup). Next, it appends the order as a new row in a dedicated orders sheet. Finally, it checks whether the append actually succeeded and sends you a Telegram message either way, so you don’t have to wonder if the log is staying current.

The workflow starts with Shopify’s order creation webhook. From there, a function node standardizes the data before Google Sheets receives it. An “Outcome Check” routes to either a success alert or a failure alert in Telegram, so you get visibility without opening n8n every day.

What Changes: Before vs. After

Real-World Impact

Say you average 20 orders a day. Manually logging an order (open Shopify, copy customer, totals, items, paste, format) is maybe 3 minutes each, so you’re spending about an hour daily just keeping Sheets up to date. With this workflow, you spend about 15 minutes once to connect Shopify, Sheets, and Telegram, then each order is logged automatically while you do something else. The “time cost” becomes a quick glance at Telegram, not a daily spreadsheet ritual.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Shopify to send “order created” webhooks
  • Google Sheets to store the running order log
  • Telegram bot token (get it from BotFather in Telegram)

Skill level: Beginner. You’ll paste a webhook URL into Shopify, set a Sheet ID, and connect Telegram credentials.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A new Shopify order triggers the workflow. Shopify calls your n8n webhook the moment an order is created, so you aren’t waiting on exports or scheduled pulls.

The order payload gets cleaned up and standardized. A function step normalizes fields into a predictable structure (including a JSON copy), which keeps your Google Sheet consistent even when orders vary.

The workflow appends a new row to Google Sheets. The order is stored in your dedicated “orders” sheet with columns like orderId, orderNumber, customer, lineItems, totalPrice, and currency.

Telegram confirms success or flags failure. An if/else outcome check routes to a success message when the row is added, or a failure message when something goes wrong, so you can fix it while it’s fresh.

You can easily modify the columns captured in Sheets to match your reporting needs based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the entry point that receives order data from Shopify.

  1. Add the Incoming Shopify Order Hook node as your trigger.
  2. Set HTTP Method to POST.
  3. Set Path to shopify-webhook.
  4. Copy the production webhook URL from Incoming Shopify Order Hook and paste it into your Shopify webhook configuration.

Ensure your Shopify webhook topic matches order creation events so the payload includes line_items, customer, and shipping_address data.

Step 2: Connect Google Sheets

Configure the destination where normalized orders will be logged.

  1. Add the Append Order to Sheets node.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Set Operation to append.
  4. Set Document to [YOUR_ID] (replace with your Google Sheet ID).
  5. Set Sheet to Order (or your target tab name).
  6. Leave Mapping Mode as autoMapInputData to map fields from the normalized payload automatically.

⚠️ Common Pitfall: If your sheet headers don’t match the normalized field names (e.g., orderId, customer, lineItems), the append may fail or create blank columns.

Step 3: Set Up the Processing Node

Normalize the incoming Shopify payload so it is consistent and ready for logging.

  1. Add the Normalize Order Payload node between Incoming Shopify Order Hook and Append Order to Sheets.
  2. Paste the provided JavaScript into Function Code exactly as in the workflow to standardize fields and stringify nested objects.
  3. Verify the output includes fields like orderId, orderNumber, customer, shippingAddress, and lineItems.

The function converts customer, shippingAddress, and lineItems to strings to prevent Google Sheets object errors.

Step 4: Configure Output and Alerts

Send alerts depending on whether the sheet append succeeds or fails.

  1. Add the Outcome Check node after Append Order to Sheets to route success and failure paths.
  2. Connect the true output of Outcome Check to Send Success Alert and the false output to Dispatch Failure Alert.
  3. In Send Success Alert, set Text to =🛍️ New Order Successfully Recorded Order #: {{ $node["Normalize Order Payload"].json.orderNumber }} Customer: {{ JSON.parse($node["Normalize Order Payload"].json.customer).name }} Total: {{ $node["Normalize Order Payload"].json.currency }} {{ $node["Normalize Order Payload"].json.totalPrice }} Date: {{ $node["Normalize Order Payload"].json.created_at }} Order has been added to your Order Tracking Sheet..
  4. In Send Success Alert, set Chat ID to =[YOUR_ID].
  5. Credential Required: Connect your telegramApi credentials in Send Success Alert.
  6. In Dispatch Failure Alert, set Text to ❌ *ERROR: Shopify Order Processing Failed* ``` {{ $json.error }} ``` *Error occurred at:* {{ $now }}.
  7. In Dispatch Failure Alert, set Chat ID to ={{$node["Utility: Assign Config Values"].json.telegramChatId}}.
  8. Credential Required: Connect your telegramApi credentials in Dispatch Failure Alert.

⚠️ Common Pitfall: The Dispatch Failure Alert chat ID uses Utility: Assign Config Values. Ensure that node contains a valid telegramChatId, even though it doesn’t run in the main flow.

Step 5: Add Error Handling

Use a configuration helper to centralize IDs used in error alerts.

  1. Open Utility: Assign Config Values and set spreadsheetId to [YOUR_ID].
  2. Set sheetName to orders.
  3. Set telegramChatId to [YOUR_ID] for your failure alert destination.

This node acts as a central place to update IDs; you can reuse these values in other expressions later if you expand the workflow.

Step 6: Test and Activate Your Workflow

Validate that Shopify orders are logged and alerts are delivered before enabling the automation.

  1. Click Execute Workflow and send a test order payload to the Incoming Shopify Order Hook URL.
  2. Confirm the Normalize Order Payload output shows standardized fields and stringified JSON sections.
  3. Verify that Append Order to Sheets adds a new row in your target sheet.
  4. Ensure Send Success Alert posts to Telegram with order details, or Dispatch Failure Alert posts error text when you simulate a failure.
  5. Toggle the workflow to Active to start processing live Shopify orders.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n credential connection and the target spreadsheet access first.
  • Shopify webhooks are picky about the endpoint. If your webhook URL changes (new n8n domain, new path), update it in Shopify or you’ll stop receiving new orders.
  • Telegram alerts can silently fail if you use the wrong chat ID. Confirm the chat ID by messaging your bot first, then re-check the ID saved in the “Assign Config Values” step.

Common Questions

How quickly can I implement this Shopify Sheets automation automation?

About 30 minutes if you already have the Sheet and Telegram bot ready.

Can non-technical teams implement this Shopify Sheets automation?

Yes. No coding is required, but you do need to paste the n8n webhook URL into Shopify and pick the right Google Sheet.

Is n8n free to use for this Shopify Sheets automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Telegram (free) and Google Sheets (usually free on most Google accounts).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Shopify Sheets automation solution to my specific challenges?

You can. Most customizations happen in the “Normalize Order Payload” function (to add or remove fields) and the Google Sheets append step (to match your columns). Some teams add extra columns for tags, discount codes, or fulfillment status, then adjust the Telegram messages to include the order number and total. If you want a second destination like an ERP, you can add another branch after the data is normalized.

Why is my Shopify connection failing in this workflow?

Usually it’s the webhook URL or permissions. Confirm Shopify is pointing to the exact webhook URL from the “Incoming Shopify Order Hook” node, and verify n8n is reachable from the public internet (no local-only URLs). If orders arrive but Sheets doesn’t update, it’s typically a Google Sheets credential or spreadsheet access issue. Also check Telegram credentials if you’re seeing failures without any alerts, because that can hide the real error.

What’s the capacity of this Shopify Sheets automation solution?

On n8n Cloud, capacity depends on your plan’s monthly executions, and each order is usually one execution. If you self-host, there’s no built-in execution cap; your server resources become the limit, and Google Sheets API limits can matter during very high volume bursts. For most small and mid-sized stores, it runs comfortably in the background without tuning.

Is this Shopify Sheets automation automation better than using Zapier or Make?

Sometimes. n8n is a better fit when you want reliable branching (success vs failure alerts), custom data shaping in the normalization step, and the option to self-host so runs don’t become a per-task tax. Zapier and Make can be faster for a simple “Shopify order → add row” flow, but they get awkward when you want a clean JSON backup column, strict column mapping, and richer error handling. Also, errors are where teams lose the most time, and this workflow treats them as first-class events. If you’re unsure, Talk to an automation expert and you’ll get a straight answer for your volume and setup.

Once your Shopify orders hit Google Sheets automatically and you get Telegram confirmation, your “order log” stops being a fragile project. It just runs, quietly, and stays honest.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal