AutomationFlowsGeneral › BARIN ALP - Objects CRUD

BARIN ALP - Objects CRUD

BARIN ALP - Objects CRUD. Uses googleSheets, respondToWebhook. Webhook trigger; 9 nodes.

Webhook trigger★★★☆☆ complexity9 nodesGoogle Sheets
General Trigger: Webhook Nodes: 9 Complexity: ★★★☆☆

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 - Objects CRUD",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "GET",
        "path": "objects",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-get-objects",
      "name": "GET Objects",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        200
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "objects",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-post-object",
      "name": "POST Object",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        500
      ]
    },
    {
      "parameters": {
        "httpMethod": "PUT",
        "path": "objects/update-expenses",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "id": "webhook-update-expenses",
      "name": "Update Expenses",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        250,
        800
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "1Mvg9vxzp7LyYwNor0i8o8LvqYiF0ID4WD3Af58zkVTo",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Objects",
          "mode": "list"
        }
      },
      "id": "sheets-get-objects",
      "name": "Read Objects",
      "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": "Objects",
          "mode": "list"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "id": "={{ $json.body.id }}",
            "name": "={{ $json.body.name }}",
            "address": "={{ $json.body.address }}",
            "status": "={{ $json.body.status }}",
            "totalExpenses": "={{ $json.body.totalExpenses || 0 }}"
          }
        }
      },
      "id": "sheets-append-object",
      "name": "Append Object",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        470,
        500
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1Mvg9vxzp7LyYwNor0i8o8LvqYiF0ID4WD3Af58zkVTo",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Objects",
          "mode": "list"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "id": "={{ $json.body.objectId }}",
            "totalExpenses": "={{ $json.body.newTotalExpenses }}"
          }
        },
        "options": {
          "cellFormat": "USER_ENTERED",
          "dataLocationOnSheet": {
            "values": {
              "lookupColumn": "id",
              "lookupValue": "={{ $json.body.objectId }}"
            }
          }
        }
      },
      "id": "sheets-update-expenses",
      "name": "Update Object Expenses",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        470,
        800
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ $input.all().map(item => ({\n  id: parseInt(item.json.id),\n  name: item.json.name,\n  address: item.json.address,\n  status: item.json.status,\n  totalExpenses: parseFloat(item.json.totalExpenses) || 0\n})) }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-get-objects",
      "name": "Respond Objects List",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        690,
        200
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { success: true, object: $('POST Object').first().json.body } }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-post-object",
      "name": "Respond Object Created",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        690,
        500
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { success: true, message: 'Expenses updated' } }}",
        "options": {
          "responseHeaders": {
            "entries": [
              {
                "name": "Access-Control-Allow-Origin",
                "value": "*"
              }
            ]
          }
        }
      },
      "id": "respond-update-expenses",
      "name": "Respond Expenses Updated",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [
        690,
        800
      ]
    }
  ],
  "connections": {
    "GET Objects": {
      "main": [
        [
          {
            "node": "Read Objects",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "POST Object": {
      "main": [
        [
          {
            "node": "Append Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Expenses": {
      "main": [
        [
          {
            "node": "Update Object Expenses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Objects": {
      "main": [
        [
          {
            "node": "Respond Objects List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Object": {
      "main": [
        [
          {
            "node": "Respond Object Created",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Object Expenses": {
      "main": [
        [
          {
            "node": "Respond Expenses Updated",
            "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.

About this workflow

BARIN ALP - Objects CRUD. Uses googleSheets, respondToWebhook. Webhook trigger; 9 nodes.

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

More General workflows → · Browse all categories →