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 →
{
"nodes": [
{
"id": "93eba4f0-218d-47d3-a55f-09d490d5e0bb",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
100,
320
],
"parameters": {
"path": "03e24572-a381-455e-a5b8-ae697647f7d4",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1.1
},
{
"id": "e2c8d43e-79f9-45a4-9d6d-37e8768e7f81",
"name": "Create Row",
"type": "n8n-nodes-base.grist",
"position": [
940,
240
],
"parameters": {
"docId": "",
"tableId": "",
"operation": "create",
"fieldsToSend": {
"properties": [
{
"fieldId": "Source",
"fieldValue": "={{ $json.body[0].id }}"
}
]
}
},
"credentials": {
"gristApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "1e6e741e-2890-4e08-a97a-efae1812d507",
"name": "Confirmed?",
"type": "n8n-nodes-base.if",
"position": [
300,
320
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "df1c1dba-dc96-42e9-86ee-8ccd4c82b048",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.body[0].Confirmed }}",
"rightValue": ""
}
]
}
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "c6b1b482-6121-4484-b524-bc3e7e175fe8",
"name": "get existing",
"type": "n8n-nodes-base.grist",
"position": [
560,
160
],
"parameters": {
"docId": "",
"tableId": "",
"additionalOptions": {
"filter": {
"filterProperties": [
{
"field": "Source",
"values": "={{ $json.body[0].id }}"
}
]
}
}
},
"credentials": {
"gristApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "a52e000c-73ef-4f2d-811d-cbcaf45e2b75",
"name": "has existing?",
"type": "n8n-nodes-base.if",
"position": [
700,
160
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6f08b500-956e-493c-abbe-845b5352110c",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "fe609754-3dd6-4bbd-932a-a30f7d100911",
"name": "Confirmation-based",
"type": "n8n-nodes-base.stickyNote",
"position": [
460,
420
],
"parameters": {
"width": 346.820338983051,
"height": 144.13559322033893,
"content": "## Confirmation-based\nIn the source table there is a boolean column \"Confirmed\" that will trigger the transfer.\nThis way there is a manual check involved & it's a conscious step to trigger the workflow."
},
"typeVersion": 1
},
{
"id": "edb074f6-b264-45ec-87e2-cf91063ca63b",
"name": "Runs once",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
60
],
"parameters": {
"width": 253.74915254237288,
"height": 139.9050847457627,
"content": "## Runs once\nIf the destination table already contains an entry, **we will not re-create/update** it (as it might've already been changed manually)\n"
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Confirmed?",
"type": "main",
"index": 0
}
]
]
},
"Confirmed?": {
"main": [
[
{
"node": "get existing",
"type": "main",
"index": 0
}
]
]
},
"get existing": {
"main": [
[
{
"node": "has existing?",
"type": "main",
"index": 0
}
]
]
},
"has existing?": {
"main": [
null,
[
{
"node": "Create Row",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
gristApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Grist Stickynote. Uses grist, stickyNote. Webhook trigger; 7 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
A clean, extensible REST-style API routing template for n8n webhooks with up to 3 path levels. Serves API routes via Webhooks with path variables Normalizes incoming requests into "global" REQUEST and
PUQ Docker NextCloud deploy. Uses respondToWebhook, stickyNote, httpRequest, ssh. Webhook trigger; 44 nodes.
puq-docker-immich-deploy. Uses respondToWebhook, ssh, stickyNote. Webhook trigger; 35 nodes.
Analyze_email_headers_for_IPs_and_spoofing__3. Uses stickyNote, respondToWebhook, itemLists, httpRequest. Webhook trigger; 35 nodes.
puq-docker-n8n-deploy. Uses respondToWebhook, ssh, stickyNote. Webhook trigger; 34 nodes.