AutomationFlowsData & Sheets › Barin Alp - Invoices Crud

Barin Alp - Invoices Crud

BARIN ALP - Invoices CRUD. Uses googleSheets. Webhook trigger; 6 nodes.

Webhook trigger★★☆☆☆ complexity6 nodesGoogle Sheets
Data & Sheets Trigger: Webhook Nodes: 6 Complexity: ★★☆☆☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "BARIN ALP - Invoices CRUD",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "GET",
        "path": "invoices",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-get-invoices",
      "name": "GET Invoices",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        200
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "invoices",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-post-invoice",
      "name": "POST Invoice",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        500
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "1Mvg9vxzp7LyYwNor0i8o8LvqYiF0ID4WD3Af58zkVTo",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Invoices",
          "mode": "list"
        }
      },
      "id": "sheets-get-invoices",
      "name": "Read Invoices",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        470,
        200
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1Mvg9vxzp7LyYwNor0i8o8LvqYiF0ID4WD3Af58zkVTo",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Invoices",
          "mode": "list"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "id": "={{ $json.body.id }}",
            "date": "={{ $json.body.date }}",
            "supplier": "={{ $json.body.supplier }}",
            "invoiceNumber": "={{ $json.body.invoiceNumber }}",
            "total": "={{ $json.body.total }}",
            "description": "={{ $json.body.description }}",
            "createdBy": "={{ $json.body.createdBy }}",
            "createdByName": "={{ $json.body.createdByName }}",
            "objectId": "={{ $json.body.objectId }}",
            "objectName": "={{ $json.body.objectName }}"
          }
        }
      },
      "id": "sheets-append-invoice",
      "name": "Append Invoice",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        470,
        500
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ $input.all().map(item => ({\n  id: parseInt(item.json.id),\n  date: item.json.date,\n  supplier: item.json.supplier,\n  invoiceNumber: item.json.invoiceNumber,\n  total: parseFloat(item.json.total) || 0,\n  description: item.json.description,\n  createdBy: parseInt(item.json.createdBy),\n  createdByName: item.json.createdByName,\n  objectId: parseInt(item.json.objectId),\n  objectName: item.json.objectName\n})) }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-get-invoices",
      "name": "Respond Invoices List",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        690,
        200
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { success: true, invoice: $('POST Invoice').first().json.body } }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-post-invoice",
      "name": "Respond Invoice Created",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        690,
        500
      ]
    }
  ],
  "connections": {
    "GET Invoices": {
      "main": [
        [
          {
            "node": "Read Invoices",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "POST Invoice": {
      "main": [
        [
          {
            "node": "Append Invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Invoices": {
      "main": [
        [
          {
            "node": "Respond Invoices List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Invoice": {
      "main": [
        [
          {
            "node": "Respond Invoice Created",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

BARIN ALP - Invoices CRUD. Uses googleSheets. Webhook trigger; 6 nodes.

Source: https://github.com/Georgi-Piskov/barin-alp-pwa/blob/e075dc84be1bb3ab00948c90ae754447771adaa5/n8n-workflows/03-invoices-crud.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

Track how many coffees your Jura E8 espresso machine makes — fully automated via webhook and Google Sheets.

Google Sheets
Data & Sheets

BARIN ALP - Inventory CRUD. Uses googleSheets. Webhook trigger; 9 nodes.

Google Sheets
Data & Sheets

Get Orders API. Uses googleSheets, errorTrigger. Webhook trigger; 8 nodes.

Google Sheets, Error Trigger
Data & Sheets

This workflow converts an exported CSV from Squarespace profiles into a Shopify-compatible format for customer import.

Google Sheets
Data & Sheets

Googlesheets Respondtowebhook. Uses respondToWebhook, googleSheets, stickyNote. Webhook trigger; 7 nodes.

Google Sheets