Course 1 "Set Node" doesn't seem to be available

Hello, I am in the step of course 1 where it asks you to add a “set node”

For the life of me, I cannot find this node in self-hosted, nor the cloud version of N8N

I did find a workaround by copying code for a set node that I found in the forums. But that’s the only way I can add a set node.

Is it possible the set note is deprecated from being listed in the list of nodes available to add?

Hi @norg

The set node was renamed to “edit fields” or something similar.

You should still find it when searching for set in the node panel.

1 Like

Thank You I did find the Edit Fields, but it lacked the setting “Keep only set”
This is what confused me, the course referencing the deprecated set node.

Is there a “keep only set” similarity in the edit fields? I didn’t see that in the documentation.

I did get beyond the limitation by copying the set node from old documentation. My intention in mentioning this was to alert that course 1 needs updating potentially unless it’s being replaced.

Thank You again for your help.

{
  "meta": {
    "instanceId": "a18bf26e966bc5c9e62af2047fa0d0a2e509365c7026b205f585c41ef8dd5ec6"
  },
  "nodes": [
    {
      "parameters": {},
      "id": "05ee5076-e56e-4b0e-8fdd-6c2d0e3f1a99",
      "name": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        600,
        280
      ]
    },
    {
      "parameters": {
        "url": "https://internal.users.n8n.cloud/webhook/custom-erp",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "unique_id",
              "value": "e4d19d59382159d8c17bf089fb7e910f"
            }
          ]
        },
        "options": {}
      },
      "id": "f9751d92-0090-4eba-849f-57f766b184fc",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        820,
        280
      ],
      "notesInFlow": true,
      "credentials": {
        "httpHeaderAuth": {
          "id": "aG5U5aLKC1YI2yDw",
          "name": "Header Auth account"
        }
      },
      "notes": "Internal test auth"
    },
    {
      "parameters": {
        "operation": "upsert",
        "base": {
          "__rl": true,
          "value": "appQ0Xh7DLTFPwteN",
          "mode": "list",
          "cachedResultName": "Beginner course",
          "cachedResultUrl": "https://airtable.com/appQ0Xh7DLTFPwteN"
        },
        "table": {
          "__rl": true,
          "value": "tbltuQkkdhdI5rzGV",
          "mode": "list",
          "cachedResultName": "processingOrders",
          "cachedResultUrl": "https://airtable.com/appQ0Xh7DLTFPwteN/tbltuQkkdhdI5rzGV"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [
            "id"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "readOnly": true
            },
            {
              "id": "orderID",
              "displayName": "orderID",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "employeeName",
              "displayName": "employeeName",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            }
          ]
        },
        "options": {}
      },
      "id": "d5667a4a-9ebf-43da-8691-27cf7c2cf437",
      "name": "Airtable",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        1680,
        120
      ],
      "credentials": {
        "airtableTokenApi": {
          "id": "sEEme6jNkKmnUyKI",
          "name": "Airtable Personal Access Token account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.orderStatus }}",
              "value2": "processing"
            }
          ]
        }
      },
      "id": "365efa34-93aa-4092-8125-0105f6fcd5f5",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1040,
        280
      ]
    },
    {
      "parameters": {
        "keepOnlySet": true,
        "values": {
          "number": [
            {
              "name": "orderID",
              "value": "={{ $json.orderID }}"
            }
          ],
          "string": [
            {
              "name": "employeeName",
              "value": "={{ $json.employeeName }}"
            }
          ]
        },
        "options": {}
      },
      "id": "bbbf9669-2022-49ca-8643-42ce9e2c6ad5",
      "name": "Set",
      "type": "n8n-nodes-base.set",
      "typeVersion": 2,
      "position": [
        1360,
        200
      ]
    },
    {
      "parameters": {
        "jsCode": "let items = $input.all();\nlet totalBooked = items.length;\nlet bookedSum = 0;\n\nfor(let i=0; i < items.length; i++) {\n  bookedSum = bookedSum + items[i].json.orderPrice;\n}\nreturn [{json:{totalBooked, bookedSum}}];\n"
      },
      "id": "f1e2fa25-5560-46d7-9c72-a51d3812ccab",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1520,
        520
      ]
    },
    {
      "parameters": {
        "webhookUri": "=https://discord.com/api/webhooks/1175601599922569326/-iSK55b643h9MSPc8gB1UNq_1czypSOZouz-b6ZH0ztwJkOoQJwfxdpbreBFwPu97V5f",
        "text": "=This week we have {{ $json.totalBooked }} booked orders with a total value of {{ $json.bookedSum }}. My Unique ID: {{ $('HTTP Request').params[\"headerParameters\"][\"parameters\"][0][\"value\"] }}",
        "options": {}
      },
      "id": "c7f15f73-fb12-432e-a77a-374b67c4d248",
      "name": "Discord",
      "type": "n8n-nodes-base.discord",
      "typeVersion": 1,
      "position": [
        1720,
        520
      ],
      "notesInFlow": true,
      "notes": "This week we have {{ $json.totalBooked }} booked orders with a total value of {{ $json.bookedSum }}. My Unique ID: {{ $('HTTP Request').params[\"headerParameters\"][\"parameters\"][0][\"value\"] }}"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "id": "f8b8b954-1ad3-4477-bfc0-587532cfac19",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        600,
        120
      ]
    },
    {
      "parameters": {
        "jsCode": "let items = $input.all();\nlet totalBooked = items.length;\nlet bookedSum = 0;\n\nfor(let i=0; i < items.length; i++) {\n  bookedSum = bookedSum + items[i].json.orderPrice;\n}\nreturn [{json:{totalBooked, bookedSum}}];\n"
      },
      "id": "aee4c989-525a-4f70-a58f-59c2dda2f046",
      "name": "Code1",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1540,
        340
      ]
    },
    {
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "employeeName",
              "stringValue": "={{ $json.employeeName }}"
            },
            {
              "name": "orderID",
              "type": "numberValue",
              "numberValue": "={{ $json.orderID }}"
            }
          ]
        },
        "include": "={{ $json.orderID }} {{ $json.employeeName }}",
        "options": {}
      },
      "id": "e2870f5e-62ee-41e1-980d-a73797de24da",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.2,
      "position": [
        1300,
        40
      ]
    }
  ],
  "connections": {
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF": {
      "main": [
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          },
          {
            "node": "Set",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set": {
      "main": [
        [
          {
            "node": "Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}```

Hi @norg

Yeah I get why this can be confusing. it is this setting:
image
Set it to No input Fields to get the “keep only set”

1 Like

I love it! Thank You so much. I typically dive head first into new platforms.

Have a great week!

1 Like

have fun!

@Nikki Could you have a look at this level 1 course please? :slight_smile:

1 Like

Not really wanting to pollute the forum with another question; how do I post a graphic interactive copy of my workflow? Above is the JSON of my workflow, but it isn’t graphic like I’ve seen in other posts. the </> and pasting the JSON inside of it doesn’t produce the result I’m looking for.

@norg Thanks for letting us know about the level 1 course needing another tweak. I’ll get it sorted

Anytime,
The more I read and configure the n8n the more excited I’m getting. And the adhoc handling for APIs that aren’t included is really sweet. Thank You n8n for creating such an amazing platoform!