Log every new order in Google Sheets

Each new Shopify order becomes a row in a spreadsheet you can filter and share.

Easy Saves ~4 hours/month E-commerceBy Flowngn team

Works with n8n · Make · Zapier

How it works

Trigger: Shopify — order created
  1. Receive the new order from Shopify.
  2. Pick the fields you need: order number, customer, total, items, country.
  3. Append a new row to your "Orders" sheet.

Diagram

SNew orderShopify Trigger✎Pick order fieldsEdit Fields (Set)GAdd rowGoogle Sheets
Trigger App Logic

Build it

Pick your tool — same automation, step by step.

Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.

Workflow JSON
Show code (153 lines)
{
  "name": "Log every new order in Google Sheets (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## Log every new order in Google Sheets\nEach new Shopify order becomes a row in a spreadsheet you can filter and share.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "458210f1-f980-4989-a1ec-07858e8eaece",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "topic": "orders/create"
      },
      "id": "458210f1-f980-4989-a1ec-07858e8eaece",
      "name": "New order",
      "type": "n8n-nodes-base.shopifyTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "webhookId": "458210f1-f980-4989-a1ec-07858e8eaece"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "order",
              "value": "={{ $json.name }}",
              "type": "string"
            },
            {
              "id": "a2",
              "name": "date",
              "value": "={{ $json.created_at }}",
              "type": "string"
            },
            {
              "id": "a3",
              "name": "customer",
              "value": "={{ $json.customer?.first_name }} {{ $json.customer?.last_name }}",
              "type": "string"
            },
            {
              "id": "a4",
              "name": "email",
              "value": "={{ $json.email }}",
              "type": "string"
            },
            {
              "id": "a5",
              "name": "total",
              "value": "={{ $json.total_price }}",
              "type": "number"
            },
            {
              "id": "a6",
              "name": "items",
              "value": "={{ $json.line_items.map(i => i.quantity + 'x ' + i.title).join(', ') }}",
              "type": "string"
            },
            {
              "id": "a7",
              "name": "country",
              "value": "={{ $json.shipping_address?.country }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "458210f1-f980-4989-a1ec-07858e8eaece",
      "name": "Pick order fields",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Orders",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {}
        },
        "options": {}
      },
      "id": "458210f1-f980-4989-a1ec-07858e8eaece",
      "name": "Add row",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        600,
        0
      ]
    }
  ],
  "connections": {
    "New order": {
      "main": [
        [
          {
            "node": "Pick order fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pick order fields": {
      "main": [
        [
          {
            "node": "Add row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

Open in the playground to edit →

Tips

  • Freeze the header row so column names never shift.

Related flows