This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.
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 →
{
"createdAt": "2025-07-08T05:59:56.110Z",
"updatedAt": "2025-08-24T09:07:31.926Z",
"id": "4Qdj1H8JXasMygxA",
"name": "pokeapi - DataCleansing Practice",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
144,
-720
],
"id": "69860a9d-f2bf-4492-a7d7-53203b188748",
"name": "When clicking \u2018Execute workflow\u2019"
},
{
"parameters": {
"content": "\n# Pokeapi \uc804\ucc98\ub9ac \uc2e4\uc2b5 https://pokeapi.co/\n\n\ud3ec\ucf13\ubaac API\ub294 \uc77c\ubc18\uc801\uc73c\ub85c Pok\u00e9API (https://pokeapi.co)\ub97c \uc9c0\uce6d\ud569\ub2c8\ub2e4. \uc774 API\ub294 \ud3ec\ucf13\ubaac \uac8c\uc784 \uc2dc\ub9ac\uc988\uc5d0 \ub4f1\uc7a5\ud558\ub294 \ub2e4\uc591\ud55c \ub370\uc774\ud130(\ud3ec\ucf13\ubaac, \uae30\uc220, \ub3c4\uac10, \ud0c0\uc785 \ub4f1)\ub97c RESTful API \ud615\ud0dc\ub85c \uc81c\uacf5\ud558\ub294 \uc624\ud508\uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. \uc544\ub798\ub294 \uc8fc\uc694 \ud2b9\uc131\uacfc \uad6c\uc131\uc5d0 \ub300\ud55c \uc124\uba85\uc785\ub2c8\ub2e4.\n\n\u2e3b\n\n\u2705 \uae30\ubcf8 \uc815\ubcf4\n\t\u2022\tAPI \uc774\ub984: Pok\u00e9API\n\t\u2022\t\ud615\uc2dd: REST API\n\t\u2022\t\uc751\ub2f5 \ud3ec\ub9f7: JSON\n\t\u2022\t\uc778\uc99d \ud544\uc694 \uc5c6\uc74c (2025\ub144 6\uc6d4 \uae30\uc900)\n\t\u2022\t\uacf5\uc2dd \ubb38\uc11c: https://pokeapi.co/docs/v2\n\n\u2e3b\n\n\u2705 \uc8fc\uc694 \uc5d4\ub4dc\ud3ec\uc778\ud2b8 (V2 \uae30\uc900)\n\n\uc5d4\ub4dc\ud3ec\uc778\ud2b8\t\uc124\uba85\t\uc608\uc2dc URL\n/pokemon/\t\ud3ec\ucf13\ubaac \uae30\ubcf8 \uc815\ubcf4\thttps://pokeapi.co/api/v2/pokemon/pikachu/\n/ability/\t\ud3ec\ucf13\ubaac\uc758 \ud2b9\uc131 (Ability)\thttps://pokeapi.co/api/v2/ability/1/\n/type/\t\ud3ec\ucf13\ubaac\uc758 \ud0c0\uc785 (Type)\thttps://pokeapi.co/api/v2/type/3/\n/move/\t\ud3ec\ucf13\ubaac \uae30\uc220 (Move)\thttps://pokeapi.co/api/v2/move/15/\n/pokemon-species/\t\ud3ec\ucf13\ubaac \uc885(species) \uad00\ub828 \uc0c1\uc138 \uc815\ubcf4\thttps://pokeapi.co/api/v2/pokemon-species/25/\n/evolution-chain/\t\uc9c4\ud654 \uccb4\uacc4\thttps://pokeapi.co/api/v2/evolution-chain/10/\n/location/\t\ud3ec\ucf13\ubaac \ucd9c\ud604 \uc7a5\uc18c\thttps://pokeapi.co/api/v2/location/1/\n\n\n\u2e3b\n\n\u2705 \uc608\uc2dc: https://pokeapi.co/api/v2/pokemon/pikachu/ \ud638\ucd9c \uc2dc \uc751\ub2f5 \uc8fc\uc694 \ud544\ub4dc\n\n```\n{\n \"name\": \"pikachu\",\n \"id\": 25,\n \"height\": 4,\n \"weight\": 60,\n \"types\": [\n {\n \"slot\": 1,\n \"type\": {\n \"name\": \"electric\",\n \"url\": \"https://pokeapi.co/api/v2/type/13/\"\n }\n }\n ],\n \"abilities\": [\n {\n \"ability\": {\n \"name\": \"static\",\n \"url\": \"https://pokeapi.co/api/v2/ability/9/\"\n },\n \"is_hidden\": false,\n \"slot\": 1\n }\n ],\n ...\n}\n```\n\n\u2e3b\n\n\u2705 \uc2e4\ubb34 \ud65c\uc6a9 \uc608\uc2dc\n\t\u2022\t\ub370\uc774\ud130 \ubd84\uc11d: \ud3ec\ucf13\ubaac \ub2a5\ub825\uce58 \uae30\ubc18 \ud074\ub7ec\uc2a4\ud130\ub9c1, \ud0c0\uc785 \uac04 \uc0c1\uc131 \ubd84\uc11d\n\t\u2022\tAPI \uc5f0\ub3d9 \uc608\uc2dc: n8n, Python (requests/pandas), JavaScript (fetch/axios) \ub4f1\n\t\u2022\t\uc790\ub3d9\ud654: \ud3ec\ucf13\ubaac \uc774\ub984 \ub9ac\uc2a4\ud2b8\ub85c \ub8e8\ud504 \ub3cc\ub9ac\uba70 \uc0c1\uc138 \uc815\ubcf4 \uc218\uc9d1 \u2192 CSV \uc800\uc7a5\n\n\u2e3b\n\n\u2705 \uc8fc\uc758\uc0ac\ud56d\n\t\u2022\tRate Limit: \uacf5\uc2dd \ubb38\uc11c\uc5d0 \uba85\uc2dc\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc9c0\ub9cc, \ub300\ub7c9 \uc694\uccad \uc2dc \uc751\ub2f5 \uc9c0\uc5f0 \ub610\ub294 \ucc28\ub2e8 \uac00\ub2a5\uc131 \uc788\uc74c\n\t\u2022\t\ub370\uc774\ud130 \uc77c\uad00\uc131: \uc2e4\uc81c \uac8c\uc784 \ubc84\uc804\ubcc4 \ucc28\uc774\uac00 \uc788\uc744 \uc218 \uc788\uc74c\n\t\u2022\tAPI \uc751\ub2f5 \ud06c\uae30: \uc77c\ubd80 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub294 \ub9e4\uc6b0 \ub9ce\uc740 JSON \ud544\ub4dc\ub97c \ud3ec\ud568\ud558\ubbc0\ub85c, \ud544\ud130\ub9c1 \ub85c\uc9c1 \ud544\uc694",
"height": 1304,
"width": 608
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-384,
-704
],
"id": "9800310d-4499-4d45-a18c-795adf67134b",
"name": "Sticky Note"
},
{
"parameters": {
"url": "https://pokeapi.co/api/v2/pokemon/ditto",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
496,
-400
],
"id": "9a68c5e7-cb89-4101-bf62-7817ffb494d3",
"name": "ditto"
},
{
"parameters": {
"url": "https://pokeapi.co/api/v2/pokemon/pikachu",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
496,
-48
],
"id": "cc286219-2590-433a-a9be-ec0d234c3679",
"name": "pikachu"
},
{
"parameters": {
"content": "# 1. Data Cleansing",
"height": 100,
"width": 440,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
480,
-688
],
"id": "3846d5f4-b025-4386-922d-f048ee32e8d4",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "## \ud83d\udd39 1\ub2e8\uacc4: \ub370\uc774\ud130 \ud544\ud130\ub9c1 / \uc870\uac74 \ubd84\uae30 \ucc98\ub9ac\n\n\ud83d\udccc \ud504\ub85c\uc81d\ud2b8\uba85: \uc804\ud22c\ub825 \uc0c1\uc704 \ud3ec\ucf13\ubaac \ud544\ud130\ub9c1\n\t\u2022 base_experience\uac00 200 \uc774\uc0c1\uc778 \ud3ec\ucf13\ubaac\ub9cc \ucd94\ucd9c\n\t\u2022 \ud0c0\uc785\uc774 fire\uc77c \uacbd\uc6b0 \ubcc4\ub3c4 \uacbd\ub85c\ub85c \ubd84\uae30 \ucc98\ub9ac\n\t\u2022 IF, Switch, Set \ub178\ub4dc \ud65c\uc6a9\n",
"height": 176,
"width": 512,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
352,
496
],
"id": "370b965e-28d9-4f9e-a60f-abe5d4ff5593",
"name": "Sticky Note4"
},
{
"parameters": {
"content": "# \uba54\ud0c0\ubabd(Ditto)\ub97c \uc870\ud68c\ud574\ubd05\uc2dc\ub2e4.",
"height": 100,
"width": 520,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
480,
-528
],
"id": "34440dc1-b10c-4bed-b8c5-5ffe049fda39",
"name": "Sticky Note7"
},
{
"parameters": {
"content": "# \ud53c\uce74\uce04(Pikachu)\ub97c \uc870\ud68c\ud574\ubd05\uc2dc\ub2e4.\n- \ub80c\ub354\ub9c1\ud560 \ub370\uc774\ud130\uc591\uc774 \ub9ce\uc73c\ub2c8 \uc8fc\uc758\ud558\uc138\uc694.",
"height": 100,
"width": 520,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
480,
-208
],
"id": "feaefdd9-f02d-48e4-a3b7-ac7cef53da8a",
"name": "Sticky Note8"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e9bf1115-5c8e-47d3-8510-c27b90f1dba5",
"name": "id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "fa5498f1-cbd3-49a7-abee-07ba82a4a4f5",
"name": "name",
"value": "={{ $json.name }}",
"type": "string"
},
{
"id": "9db2a013-6700-4eb3-a103-0c1436081694",
"name": "type",
"value": "={{ $json.types[0].type.name }}",
"type": "string"
},
{
"id": "4bdc6634-4fa5-4e4d-bf5a-436a9185e761",
"name": "height(m)",
"value": "={{ $json.height / 10 }}",
"type": "string"
},
{
"id": "9de81692-03ca-4afb-bbf3-884654e5e141",
"name": "weight(kg)",
"value": "={{ $json.weight / 10 }}",
"type": "string"
},
{
"id": "15cf60bd-4cd6-4598-8432-796a5cf87a45",
"name": "ablilties",
"value": "={{ $json.abilities.map(item => item.ability.name) }}",
"type": "array"
},
{
"id": "56014d15-2615-46cb-ad6b-e7cf0a46da38",
"name": "cries",
"value": "={{ $json.cries.latest }}",
"type": "string"
},
{
"id": "254fc366-cff9-468d-a0f4-65356fd43029",
"name": "sprites",
"value": "={{ $json.sprites.front_default }}",
"type": "string"
},
{
"id": "14336cca-b6b9-45e0-aadb-b8fbeda4d6d9",
"name": "stat_name",
"value": "={{ $json.stats.map(item => item.stat.name) }}",
"type": "array"
},
{
"id": "662ef797-6a50-4594-a75f-a025f9169ac2",
"name": "stat_value",
"value": "={{ $json.stats.map(item => item.base_stat ) }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
688,
-400
],
"id": "661ed51b-7815-44a6-a473-23901be74f1b",
"name": "Edit Fields"
},
{
"parameters": {
"content": "## \ud83d\udd39 2\ub2e8\uacc4: \ub370\uc774\ud130 \ubcd1\ud569 \ubc0f \ud0a4 \uae30\uc900 Join \ucc98\ub9ac\n\n\ud83d\udccc \ud504\ub85c\uc81d\ud2b8\uba85: \ud3ec\ucf13\ubaac + \ud0c0\uc785 \ubcd1\ud569 \ubd84\uc11d\n\t\u2022\t/pokemon/{name}\ub85c \uc0c1\uc138 \uc815\ubcf4 \ud638\ucd9c\n\t\u2022\t\uac01 \ud3ec\ucf13\ubaac\uc758 \ud0c0\uc785\uc744 \uae30\uc900\uc73c\ub85c /type/{type_name}\uc5d0\uc11c \ud0c0\uc785\ubcc4 \uc815\ubcf4 \ubcd1\ud569\n\t\u2022\tMerge \ub178\ub4dc\uc758 on key match \ubc29\uc2dd \ud65c\uc6a9",
"height": 176,
"width": 512,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
928,
496
],
"id": "f77bd5a1-7f77-4f3f-8140-c9dc5fa617f7",
"name": "Sticky Note5"
},
{
"parameters": {
"content": "## \ud83d\udd39 3\ub2e8\uacc4: \uc911\ubcf5 \uc81c\uac70 / Null \ucc98\ub9ac / \ub370\uc774\ud130 \ud0c0\uc785 \ubcc0\ud658\n\n\ud83d\udccc \ud504\ub85c\uc81d\ud2b8\uba85: \uc804\ud22c\ub825 \ub204\ub77d \ud3ec\ucf13\ubaac \uc815\uc81c \ubc0f \uc815\ud615\ud654\n\t\u2022\tstats \uc815\ubcf4\uac00 \ub204\ub77d\ub41c \ud3ec\ucf13\ubaac \uc81c\uac70\n\t\u2022\t\ubb38\uc790\uc5f4 \ud615\ud0dc\uc758 \uacf5\uaca9\ub825(\"attack\": \"90\") \u2192 \uc22b\uc790\ud615 \ubcc0\ud658\n\t\u2022\t\ub3d9\uc77c\ud55c \ud3ec\ucf13\ubaac\uba85 \uc911\ubcf5 \uc81c\uac70\n\t\u2022\tFunction, Set \ub178\ub4dc \uc911\uc2ec \ucc98\ub9ac",
"height": 192,
"width": 512,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1504,
496
],
"id": "5d48c96d-e7bd-429c-b8bd-e11199b8ec37",
"name": "Sticky Note6"
},
{
"parameters": {
"content": "## 4\ub2e8\uacc4 : AI Agent\ub85c \uc804\ucc98\ub9ac \ud558\ub294 \ubc29\ubc95\n- \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac\uc744 \ubd84\ub958\ud558\ub294 \ubc29\ubc95. (GPT\uc5d0\uac8c \ud504\ub86c\ud504\ud2b8\ub97c \uc791\uc131\uc694\uccad)\n\n```\n\uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8: \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac \ubd84\ub958 \uc5d0\uc774\uc804\ud2b8\n\n\uc5ed\ud560\n\n\ub108\ub294 \uc0ac\uc6a9\uc790\uac00 \uc785\ub825\ud55c \ud3ec\ucf13\ubaac \uc774\ub984\uc774 \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac(Starter Pok\u00e9mon) \uc778\uc9c0 \uc544\ub2cc\uc9c0\ub97c \ud310\ubcc4\ud558\ub294 \ubd84\ub958\uae30\ub2e4.\n\n\uc815\uc758\n\t\u2022\t\uae30\ubcf8(\uc5c4\uaca9) \uae30\uc900: \uba54\uc778 \uc2dc\ub9ac\uc988 \uac01 \uc138\ub300\uc758 \ud480/\ubd88/\ubb3c \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac \u2018\uae30\ubcf8 \ub2e8\uacc4\u2019(Base form) \ub9cc \u2018\uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac\u2019\uc73c\ub85c \ubcf8\ub2e4.\n\uc608) \ubd88\ub300\ubb38\uc790(\ud30c\uc774\ub9ac/Charmander)\ub294 O, \ub9ac\uc790\ub4dc/\ub9ac\uc790\ubabd\uc740 X.\n\t\u2022\t\ud655\uc7a5 \uae30\uc900(\uc120\ud0dd): \ud2b9\uc815 \uc2a4\ud540\uc624\ud504/\ub9ac\uba54\uc774\ud06c\uc5d0\uc11c\uc758 \uc2a4\ud0c0\ud305(\uc608: \ud53c\uce74\uce04\u00b7\uc774\ube0c\uc774)\ub3c4 \uc778\uc815\ud560\uc9c0 mode\ub85c \uc81c\uc5b4\ud55c\ub2e4.\n\n# \uba54\uc778 \uc2dc\ub9ac\uc988 \uc2a4\ud0c0\ud305(\uc138\ub300\ubcc4, \uae30\ubcf8 \ub2e8\uacc4)\n1\uc138\ub300 (Kanto): \uc774\uc0c1\ud574\uc528(Bulbasaur), \ud30c\uc774\ub9ac(Charmander), \uaf2c\ubd80\uae30(Squirtle)\n2\uc138\ub300 (Johto): \uce58\ucf54\ub9ac\ud0c0(Chikorita), \ube0c\ucf00\uc778(Cyndaquil), \ub9ac\uc544\ucf54(Totodile)\n3\uc138\ub300 (Hoenn): \ub098\ubb34\uc9c0\uae30(Treecko), \uc544\ucc28\ubaa8(Torchic), \ubb3c\uc9f1\uc774(Mudkip)\n4\uc138\ub300 (Sinnoh): \ubaa8\ubd80\uae30(Turtwig), \ubd88\uaf43\uc22d\uc774(Chimchar), \ud33d\ub3c4\ub9ac(Piplup)\n5\uc138\ub300 (Unova): \uc8fc\ub9ac\ube44\uc580(Snivy), \ub69c\uafb8\ub9ac(Tepig), \uc218\ub315\uc774(Oshawott)\n6\uc138\ub300 (Kalos): \ub3c4\uce58\ub9c8\ub860(Chespin), \ud478\ud638\uaf2c(Fennekin), \uac1c\uad6c\ub9c8\ub974(Froakie)\n7\uc138\ub300 (Alola): \ub098\ubab0\ube7c\ubbf8(Rowlet), \ub0d0\uc624\ubd88(Litten), \ub204\ub9ac\uacf5(=\ub204\ub9ac\ub808\ub290/Popplio)\n8\uc138\ub300 (Galar): \ud765\ub098\uc22d(Grookey), \uc5fc\ubc84\ub2c8(Scorbunny), \uc6b8\uba38\uae30(Sobble)\n9\uc138\ub300 (Paldea): \ub098\uc624\ud558(Sprigatito), \ub728\uc544\uac70(Fuecoco), \uafb8\uc641\uc2a4(Quaxly)\n\n\n# \ucd9c\ub825 \ud615\uc2dd(JSON)\n{\n \"is_starter\": true\n}\n\n\uc608\uc2dc\n\t\u2022\t\uc785\ub825: \"Bulbasaur\" \u2192 is_starter: true\n\t\u2022\t\uc785\ub825: \u201cditto\u201d \u2192 is_starter: false\n\n\uae08\uc9c0/\uc8fc\uc758\n\t\u2022\t\uc678\ubd80 \uc9c0\uc2dd \ucd94\ub860\uc73c\ub85c \ubaa9\ub85d\uc744 \uc784\uc758 \ud655\uc7a5\ud558\uc9c0 \ub9d0 \uac83.\n\t\u2022\t\uc0ac\uc6a9\uc790\uac00 \u201c\uc138\ub300\ubcc4 \ubaa9\ub85d\u201d \uc694\uccad \ub4f1 \ud3ec\ub9f7\uc744 \ubc14\uafd4\ub3c4 \ud56d\uc0c1 JSON \uc2a4\ud0a4\ub9c8\ub85c\ub9cc \uc751\ub2f5.\n\t\u2022\t\ubaa8\ud638\ud560 \ub54c \uac70\uc9d3 \ud655\uc2e0 \uae08\uc9c0.\n```",
"height": 192,
"width": 512,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2128,
496
],
"id": "855e21fe-23cc-4b76-8f51-fefabd50e1f9",
"name": "Sticky Note9"
},
{
"parameters": {
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"sqlQuery": "SELECT *\nFROM `n8n-automation-466906.datasets.pokemon_data_v2`",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
96,
768
],
"id": "74b9b1ab-b1f5-4d0f-932c-5fc224e583c6",
"name": "Call Poke List",
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e9bf1115-5c8e-47d3-8510-c27b90f1dba5",
"name": "id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "fa5498f1-cbd3-49a7-abee-07ba82a4a4f5",
"name": "name",
"value": "={{ $json.name }}",
"type": "string"
},
{
"id": "9db2a013-6700-4eb3-a103-0c1436081694",
"name": "type",
"value": "={{ $json.types[0].type.name }}",
"type": "string"
},
{
"id": "4bdc6634-4fa5-4e4d-bf5a-436a9185e761",
"name": "height(m)",
"value": "={{ $json.height / 10 }}",
"type": "string"
},
{
"id": "9de81692-03ca-4afb-bbf3-884654e5e141",
"name": "weight(kg)",
"value": "={{ $json.weight / 10 }}",
"type": "string"
},
{
"id": "15cf60bd-4cd6-4598-8432-796a5cf87a45",
"name": "ablilties",
"value": "={{ $json.abilities.map(item => item.ability.name) }}",
"type": "array"
},
{
"id": "56014d15-2615-46cb-ad6b-e7cf0a46da38",
"name": "cries",
"value": "={{ $json.cries.latest }}",
"type": "string"
},
{
"id": "254fc366-cff9-468d-a0f4-65356fd43029",
"name": "sprites",
"value": "={{ $json.sprites.front_default }}",
"type": "string"
},
{
"id": "14336cca-b6b9-45e0-aadb-b8fbeda4d6d9",
"name": "stat_name",
"value": "={{ $json.stats.map(item => item.stat.name) }}",
"type": "array"
},
{
"id": "662ef797-6a50-4594-a75f-a025f9169ac2",
"name": "stat_value",
"value": "={{ $json.stats.map(item => item.base_stat ) }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
704,
-48
],
"id": "a1a3e185-7521-46f8-87fc-6eecf4a7aeec",
"name": "Edit Fields2"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "097ed799-551a-4d17-9e75-563c7893a2b5",
"leftValue": "={{ $json.name.length }}",
"rightValue": 9,
"operator": {
"type": "number",
"operation": "gte"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
704,
768
],
"id": "3aed8dcc-19e6-4021-8132-bb21782fc034",
"name": "If"
},
{
"parameters": {
"content": "## \uc774\ub984 \uae00\uc528\uac00 9\uc790 \uc774\uc0c1",
"height": 192
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
640,
704
],
"id": "8ae15c89-46e1-4a73-8ccd-35460fec6ba1",
"name": "Sticky Note1"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.type }}",
"rightValue": "fire",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "84c5fe93-bfe8-47e4-8a73-64a757fe2619"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "fire"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "80bf1d80-980c-47fb-8211-c4ef30726c4d",
"leftValue": "={{ $json.type }}",
"rightValue": "water",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "water"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "e2ea971e-c952-4e57-be51-63c6dd3fa3cf",
"leftValue": "={{ $json.type }}",
"rightValue": "grass",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "grass"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f33d14a8-fce4-4e6a-b866-971873988590",
"leftValue": "={{ $json.type }}",
"rightValue": "^(?!fire$|water$|grass$).+$",
"operator": {
"type": "string",
"operation": "regex"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "others"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
944,
928
],
"id": "dd94779a-73f6-4b70-9fe9-acc21888373a",
"name": "Switch"
},
{
"parameters": {
"content": "## \ubd84\uae30",
"height": 256
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
880,
896
],
"id": "bdcce636-4218-4a08-9f36-af892aae9c31",
"name": "Sticky Note2"
},
{
"parameters": {
"compare": "selectedFields",
"fieldsToCompare": "id",
"options": {}
},
"type": "n8n-nodes-base.removeDuplicates",
"typeVersion": 2,
"position": [
1536,
800
],
"id": "eca42093-fc93-4902-b544-44648ffd1d2d",
"name": "Remove Duplicates"
},
{
"parameters": {
"content": "## \uc911\ubcf5\uc81c\uac70",
"height": 224
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1472,
736
],
"id": "1dc65840-2c62-4148-b241-68f00d1552ea",
"name": "Sticky Note10"
},
{
"parameters": {
"content": "## \ud615\ubcc0\ud658 TypeCast\n\u2e3b\n## \ubb38\uc790\uc5f4(String) \uad00\ub828\n```\n.toInt() : \ubb38\uc790\uc5f4 \u2192 \uc815\uc218\n.toFloat() / .toDecimalNumber() : \ubb38\uc790\uc5f4 \u2192 \uc2e4\uc218\n.toNumber() : \ubb38\uc790\uc5f4 \u2192 \uc22b\uc790\n.toBoolean() : \ubb38\uc790\uc5f4\uc744 true/false\ub85c \ubcc0\ud658\n.toDateTime() : \ubb38\uc790\uc5f4 \u2192 \ub0a0\uc9dc \uac1d\uccb4\n.parseJson() : \ubb38\uc790\uc5f4(JSON) \u2192 JSON \uac1d\uccb4\n.toSentenceCase(), .toSnakeCase(), .toTitleCase() : \ubb38\uc790\uc5f4 \ud3ec\ub9f7 \ubcc0\ud658\n.base64Encode(), .base64Decode() : Base64 \uc778\ucf54\ub529/\ub514\ucf54\ub529\n.extractDomain(), .extractEmail(), .extractUrl(), .extractUrlPath() : \ubb38\uc790\uc5f4\uc5d0\uc11c \ud2b9\uc815 \uac12 \ucd94\ucd9c\n.isDomain(), .isEmail(), .isNumeric(), .isUrl() : \ubb38\uc790\uc5f4 \uac80\uc99d\n.isEmpty(), .isNotEmpty() : \ube48 \ubb38\uc790\uc5f4 \uc5ec\ubd80 \ud655\uc778\n.quote(), .removeMarkdown(), .replaceSpecialChars(), .removeTags() : \ubb38\uc790\uc5f4 \uc815\ub9ac\n.urlDecode(), .urlEncode() : URL \ub514\ucf54\ub529/\uc778\ucf54\ub529\n```\n\u2e3b\n\n## \uc22b\uc790(Number) \uad00\ub828\n```\n.ceil() : \uc62c\ub9bc\n.floor() : \ub0b4\ub9bc\n.round(decimalPlaces?) : \ubc18\uc62c\ub9bc (\uc18c\uc218\uc810 \uc790\ub9ac \uc9c0\uc815 \uac00\ub2a5)\n.format(locales?, options?) : \uc22b\uc790 \ud3ec\ub9f7\ud305 (\ud1b5\ud654, \ucc9c \ub2e8\uc704 \uad6c\ubd84 \ub4f1)\n.isEven() : \uc9dd\uc218 \uc5ec\ubd80\n.isOdd() : \ud640\uc218 \uc5ec\ubd80\n.toBoolean() : \uc22b\uc790\ub97c true/false\ub85c \ubcc0\ud658 (0 \u2192 false)\n.toDateTime(format?) : \uc22b\uc790(\ud0c0\uc784\uc2a4\ud0ec\ud504, Excel \uae30\uc900 \ub4f1) \u2192 \ub0a0\uc9dc\n```\n\u2e3b\n\n## JavaScript \ub0b4\uc7a5 \ud568\uc218 \ud65c\uc6a9\n```\nparseInt() : \ubb38\uc790\uc5f4 \u2192 \uc815\uc218\nparseFloat() : \ubb38\uc790\uc5f4 \u2192 \uc2e4\uc218\n.toString() : \uc22b\uc790/\uac1d\uccb4 \u2192 \ubb38\uc790\uc5f4\n\u201c\u201d + value : \ubb38\uc790\uc5f4 \ubcc0\ud658 \uac04\ub2e8 \ud45c\uae30\ubc95\n```",
"height": 864,
"width": 512
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
320,
928
],
"id": "62d01e47-e56d-482b-a93c-a4d2abee8693",
"name": "Sticky Note11"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "9e919d96-8e96-45b8-936b-795cb3934b74",
"leftValue": "={{ $json.height_m }}",
"rightValue": 1,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.filter",
"typeVersion": 2.2,
"position": [
400,
768
],
"id": "5cc18fea-b800-4fd7-9bde-6df43986cd1d",
"name": "height > 1"
},
{
"parameters": {
"numberInputs": 5
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
1264,
752
],
"id": "c620112d-c0c3-4d11-a4fd-4b6e0ab75a7b",
"name": "Merge"
},
{
"parameters": {
"content": "## height > 1 ",
"height": 192
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
336,
704
],
"id": "e7a0c1a7-4862-4576-bac3-b9cbdf0461b9",
"name": "Sticky Note12"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
2096,
1008
],
"id": "d9b39153-39c1-435b-bdb2-df9975990af8",
"name": "Google Gemini Chat Model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.name }}",
"hasOutputParser": true,
"needsFallback": true,
"options": {
"systemMessage": "=\uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8: \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac \ubd84\ub958 \uc5d0\uc774\uc804\ud2b8\n\n\uc5ed\ud560\n\n\ub108\ub294 \uc0ac\uc6a9\uc790\uac00 \uc785\ub825\ud55c \ud3ec\ucf13\ubaac \uc774\ub984\uc774 \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac(Starter Pok\u00e9mon) \uc778\uc9c0 \uc544\ub2cc\uc9c0\ub97c \ud310\ubcc4\ud558\ub294 \ubd84\ub958\uae30\ub2e4.\n\n\uc815\uc758\n\t\u2022\t\uae30\ubcf8(\uc5c4\uaca9) \uae30\uc900: \uba54\uc778 \uc2dc\ub9ac\uc988 \uac01 \uc138\ub300\uc758 \ud480/\ubd88/\ubb3c \uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac \u2018\uae30\ubcf8 \ub2e8\uacc4\u2019(Base form) \ub9cc \u2018\uc2a4\ud0c0\ud305 \ud3ec\ucf13\ubaac\u2019\uc73c\ub85c \ubcf8\ub2e4.\n\uc608) \ubd88\ub300\ubb38\uc790(\ud30c\uc774\ub9ac/Charmander)\ub294 O, \ub9ac\uc790\ub4dc/\ub9ac\uc790\ubabd\uc740 X.\n\t\u2022\t\ud655\uc7a5 \uae30\uc900(\uc120\ud0dd): \ud2b9\uc815 \uc2a4\ud540\uc624\ud504/\ub9ac\uba54\uc774\ud06c\uc5d0\uc11c\uc758 \uc2a4\ud0c0\ud305(\uc608: \ud53c\uce74\uce04\u00b7\uc774\ube0c\uc774)\ub3c4 \uc778\uc815\ud560\uc9c0 mode\ub85c \uc81c\uc5b4\ud55c\ub2e4.\n\n# \uba54\uc778 \uc2dc\ub9ac\uc988 \uc2a4\ud0c0\ud305(\uc138\ub300\ubcc4, \uae30\ubcf8 \ub2e8\uacc4)\n1\uc138\ub300 (Kanto): \uc774\uc0c1\ud574\uc528(Bulbasaur), \ud30c\uc774\ub9ac(Charmander), \uaf2c\ubd80\uae30(Squirtle)\n2\uc138\ub300 (Johto): \uce58\ucf54\ub9ac\ud0c0(Chikorita), \ube0c\ucf00\uc778(Cyndaquil), \ub9ac\uc544\ucf54(Totodile)\n3\uc138\ub300 (Hoenn): \ub098\ubb34\uc9c0\uae30(Treecko), \uc544\ucc28\ubaa8(Torchic), \ubb3c\uc9f1\uc774(Mudkip)\n4\uc138\ub300 (Sinnoh): \ubaa8\ubd80\uae30(Turtwig), \ubd88\uaf43\uc22d\uc774(Chimchar), \ud33d\ub3c4\ub9ac(Piplup)\n5\uc138\ub300 (Unova): \uc8fc\ub9ac\ube44\uc580(Snivy), \ub69c\uafb8\ub9ac(Tepig), \uc218\ub315\uc774(Oshawott)\n6\uc138\ub300 (Kalos): \ub3c4\uce58\ub9c8\ub860(Chespin), \ud478\ud638\uaf2c(Fennekin), \uac1c\uad6c\ub9c8\ub974(Froakie)\n7\uc138\ub300 (Alola): \ub098\ubab0\ube7c\ubbf8(Rowlet), \ub0d0\uc624\ubd88(Litten), \ub204\ub9ac\uacf5(=\ub204\ub9ac\ub808\ub290/Popplio)\n8\uc138\ub300 (Galar): \ud765\ub098\uc22d(Grookey), \uc5fc\ubc84\ub2c8(Scorbunny), \uc6b8\uba38\uae30(Sobble)\n9\uc138\ub300 (Paldea): \ub098\uc624\ud558(Sprigatito), \ub728\uc544\uac70(Fuecoco), \uafb8\uc641\uc2a4(Quaxly)\n\n\n# \ucd9c\ub825 \ud615\uc2dd(JSON)\n{\n \"is_starter\": true\n}\n\n\uc608\uc2dc\n\t\u2022\t\uc785\ub825: \"Bulbasaur\" \u2192 is_starter: true\n\t\u2022\t\uc785\ub825: \u201cditto\u201d \u2192 is_starter: false\n\n\uae08\uc9c0/\uc8fc\uc758\n\t\u2022\t\uc678\ubd80 \uc9c0\uc2dd \ucd94\ub860\uc73c\ub85c \ubaa9\ub85d\uc744 \uc784\uc758 \ud655\uc7a5\ud558\uc9c0 \ub9d0 \uac83.\n\t\u2022\t\uc0ac\uc6a9\uc790\uac00 \u201c\uc138\ub300\ubcc4 \ubaa9\ub85d\u201d \uc694\uccad \ub4f1 \ud3ec\ub9f7\uc744 \ubc14\uafd4\ub3c4 \ud56d\uc0c1 JSON \uc2a4\ud0a4\ub9c8\ub85c\ub9cc \uc751\ub2f5.\n\t\u2022\t\ubaa8\ud638\ud560 \ub54c \uac70\uc9d3 \ud655\uc2e0 \uae08\uc9c0."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
2256,
800
],
"id": "bb4794b0-0153-4027-89d1-b66f437c1186",
"name": "Is Starting Classfication AI Agent"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
2304,
1008
],
"id": "84e1b4d8-157f-4bdc-ba2f-45ada3a251cf",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsonSchemaExample": "{\n \"is_starter\": true\n}\n"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.3,
"position": [
2496,
1008
],
"id": "28655c36-70c4-437b-b60b-bd4b9f93ee2f",
"name": "Structured Output Parser"
},
{
"parameters": {
"maxItems": 10
},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
2048,
800
],
"id": "2f8062e1-0cb7-4a34-808a-7185563864da",
"name": "Limit"
},
{
"parameters": {
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"sqlQuery": "-- 1. \ud14c\uc774\ube14\uc774 \uc5c6\uc73c\uba74 \uba3c\uc800 \uc0dd\uc131\nCREATE TABLE IF NOT EXISTS `n8n-automation-466906.datasets.pokemon_data_enriched` (\n id STRING,\n name STRING,\n type STRING,\n height_m FLOAT64,\n weight_kg FLOAT64,\n ablilties ARRAY<STRING>,\n cries STRING,\n sprites STRING,\n stat_name ARRAY<STRING>,\n stat_value ARRAY<INT64>,\n is_starting BOOL\n);",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
2720,
784
],
"id": "67cdcfbf-ba72-4c69-a1ff-986b73e581e8",
"name": "CREATE TABLE IF EXIST",
"alwaysOutputData": true,
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
},
"disabled": true
},
{
"parameters": {
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"sqlQuery": "INSERT INTO `n8n-automation-466906.datasets.pokemon_data_enriched` (\n id,\n name,\n type,\n height_m,\n weight_kg,\n ablilties,\n cries,\n sprites,\n stat_name,\n stat_value,\n is_starting\n)\nVALUES (\n{{ $('Expressions').item.json.id }},\n{{ $('Expressions').item.json.name }},\n{{ $('Expressions').item.json.type }},\n{{ $('Expressions').item.json.height_m }},\n{{ $('Expressions').item.json.weight_kg }},\n{{ $('Expressions').item.json.ablilties.toJsonString() }},\n{{ $('Expressions').item.json.cries }},\n{{ $('Expressions').item.json.sprites }},\n{{ $('Expressions').item.json.stat_name.toJsonString() }},\n{{ $('Expressions').item.json.stat_value.toJsonString() }},\n{{ $json.output.is_starter }}\n);",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
2960,
784
],
"id": "3ba270f5-9512-441d-a7d0-f6a7eca569ec",
"name": "INSERT INTO pokemon_data_enriched",
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
},
"disabled": true
},
{
"parameters": {
"url": "={{ $json.ability.url }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1936,
-384
],
"id": "ed2e77d7-36a6-48bf-ad65-322dd2754745",
"name": "Pokemon ability"
},
{
"parameters": {
"url": "https://pokeapi.co/api/v2/pokemon/ditto",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1568,
-384
],
"id": "3d1fce2f-11f7-4823-9ce2-2a2908d8386b",
"name": "ditto1"
},
{
"parameters": {
"fieldToSplitOut": "abilities",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1760,
-384
],
"id": "193134b3-df46-4b74-8810-9e9bb40d76be",
"name": "Split Out - abilities"
},
{
"parameters": {
"content": "# \uba54\ud0c0\ubabd(Ditto)\uc758 Ability\ub97c \uc870\ud68c",
"height": 100,
"width": 520,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1520,
-544
],
"id": "a140f532-4ff1-4dc7-8d83-06fed911ebf9",
"name": "Sticky Note13"
},
{
"parameters": {
"content": "### Q. language name \uac12\uc774 ko\uc77c\ub54c, flavor_text \uac12\uc744 \uac00\uc838\uc624\ub294 \ubc29\ubc95 (Ask to GPT)\n\n```text\n{{ (Array.isArray($json) ? $json[0] : $json).flavor_text_entries?.find(e => e.language?.name === 'ko')?.flavor_text }}\n```",
"width": 592
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
2080,
-560
],
"id": "78b70c01-d8a3-4eb4-8199-66a8ec6190bf",
"name": "Sticky Note14"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ef679f58-4323-4af2-9e7b-e75d717ba0ca",
"name": "ability_url",
"value": "=https://pokeapi.co/api/v2/ability/{{ $json.id }}/",
"type": "string"
},
{
"id": "d0c8c5fc-f74d-4009-a5ca-5cbe5cb561b0",
"name": "pokemon_url",
"value": "={{ $json.pokemon[0].pokemon.url }}",
"type": "string"
},
{
"id": "4da61664-06c9-428d-b32e-4e2d9839d09e",
"name": "short_effect",
"value": "={{ $json.effect_entries[1].short_effect }}",
"type": "string"
},
{
"id": "840e65f1-29c0-45df-bed9-ad24bc9d72d9",
"name": "flavor_text_1",
"value": "={{ $json.flavor_text_entries.find(e => e.language.name === 'ko')?.flavor_text }}",
"type": "string"
},
{
"id": "6e0159f6-c7ef-4ff6-a1f9-349ebf2eef40",
"name": "flavor_text_2",
"value": "={{ (Array.isArray($json) ? $json[0] : $json).flavor_text_entries?.find(e => e.language?.name === 'ko')?.flavor_text }}",
"type": "string"
},
{
"id": "8793cf99-5f13-4bdd-994c-01dfca6503ed",
"name": "flavor_text_3",
"value": "={{ ((Array.isArray($json) ? $json[0] : $json).flavor_text_entries?.find(e => e.language?.name === 'ko')?.flavor_text || '').replace(/\\s+/g,' ') }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
2160,
-384
],
"id": "de0decd8-c479-45f7-b942-87f91e870ff7",
"name": "Ability Edit Fields"
},
{
"parameters": {
"url": "https://pokeapi.co/api/v2/pokemon/ditto",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1584,
-48
],
"id": "e10cfb42-ac20-42c3-b261-9e0751fab8f7",
"name": "ditto2"
},
{
"parameters": {
"content": "# \uba54\ud0c0\ubabd(Ditto)\uc758 Ability\ub97c \ud569\uce58\uae30 JOIN",
"height": 100,
"width": 648,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1504,
-176
],
"id": "65d4a521-30fc-477e-9e84-1746c7fe3914",
"name": "Sticky Note15"
},
{
"parameters": {
"mode": "combine",
"advanced": true,
"mergeByFields": {
"values": [
{
"field1": "ability_url",
"field2": "ablilties_url"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
2592,
-192
],
"id": "6f5c945e-df6d-4b3c-8bd8-d00199ba1af1",
"name": "Merge1"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e9bf1115-5c8e-47d3-8510-c27b90f1dba5",
"name": "id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "fa5498f1-cbd3-49a7-abee-07ba82a4a4f5",
"name": "name",
"value": "={{ $json.name }}",
"type": "string"
},
{
"id": "9db2a013-6700-4eb3-a103-0c1436081694",
"name": "type",
"value": "={{ $json.types[0].type.name }}",
"type": "string"
},
{
"id": "4bdc6634-4fa5-4e4d-bf5a-436a9185e761",
"name": "height(m)",
"value": "={{ $json.height / 10 }}",
"type": "string"
},
{
"id": "9de81692-03ca-4afb-bbf3-884654e5e141",
"name": "weight(kg)",
"value": "={{ $json.weight / 10 }}",
"type": "string"
},
{
"id": "15cf60bd-4cd6-4598-8432-796a5cf87a45",
"name": "ablilties",
"value": "={{ $json.abilities.map(item => item.ability.name) }}",
"type": "array"
},
{
"id": "08911db7-df59-466b-91a1-bb86ab05a9c2",
"name": "ablilties_url",
"value": "={{ $json.abilities.map(item => item.ability.url ) }}",
"type": "array"
},
{
"id": "56014d15-2615-46cb-ad6b-e7cf0a46da38",
"name": "cries",
"value": "={{ $json.cries.latest }}",
"type": "string"
},
{
"id": "254fc366-cff9-468d-a0f4-65356fd43029",
"name": "sprites",
"value": "={{ $json.sprites.front_default }}",
"type": "string"
},
{
"id": "14336cca-b6b9-45e0-aadb-b8fbeda4d6d9",
"name": "stat_name",
"value": "={{ $json.stats.map(item => item.stat.name) }}",
"type": "array"
},
{
"id": "662ef797-6a50-4594-a75f-a025f9169ac2",
"name": "stat_value",
"value": "={{ $json.stats.map(item => item.base_stat ) }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1792,
-48
],
"id": "2547ec80-83ef-4ed0-b6f0-35a2efa772ca",
"name": "Ditto Stat"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "ability_url"
},
{
"fieldToAggregate": "flavor_text_3"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
2368,
-384
],
"id": "101c1e20-c2bf-4905-8c04-9a8ff107ac70",
"name": "Aggregate"
},
{
"parameters": {
"url": "https://pokeapi.co/api/v2/pokemon?offset=40&limit=100",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
480,
304
],
"id": "11a43082-2045-4fe4-b0db-a14cbd0a55b1",
"name": "Pokemon List"
},
{
"parameters": {
"url": "={{ $json.url }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1136,
304
],
"id": "c8ef81e1-0466-43cb-87c2-999f341d18a4",
"name": "HTTP Request"
},
{
"parameters": {
"fieldToSplitOut": "results",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
704,
304
],
"id": "db48889b-8f4c-4f89-ad1d-faa3df053688",
"name": "Split Out"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e9bf1115-5c8e-47d3-8510-c27b90f1dba5",
"name": "id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "fa5498f1-cbd3-49a7-abee-07ba82a4a4f5",
"name": "name",
"value": "={{ $json.name }}",
"type": "string"
},
{
"id": "9db2a013-6700-4eb3-a103-0c1436081694",
"name": "type",
"value": "={{ $json.types[0].type.name }}",
"type": "string"
},
{
"id": "4bdc6634-4fa5-4e4d-bf5a-436a9185e761",
"name": "height(m)",
"value": "={{ $json.height / 10 }}",
"type": "string"
},
{
"id": "9de81692-03ca-4afb-bbf3-884654e5e141",
"name": "weight(kg)",
"value": "={{ $json.weight / 10 }}",
"type": "string"
},
{
"id": "15cf60bd-4cd6-4598-8432-796a5cf87a45",
"name": "ablilties",
"value": "={{ $json.abilities.map(item => item.ability.name) }}",
"type": "array"
},
{
"id": "56014d15-2615-46cb-ad6b-e7cf0a46da38",
"name": "cries",
"value": "={{ $json.cries.latest }}",
"type": "string"
},
{
"id": "254fc366-cff9-468d-a0f4-65356fd43029",
"name": "sprites",
"value": "={{ $json.sprites.front_default }}",
"type": "string"
},
{
"id": "14336cca-b6b9-45e0-aadb-b8fbeda4d6d9",
"name": "stat_name",
"value": "={{ $json.stats.map(item => item.stat.name) }}",
"type": "array"
},
{
"id": "662ef797-6a50-4594-a75f-a025f9169ac2",
"name": "stat_value",
"value": "={{ $json.stats.map(item => item.base_stat ) }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1344,
304
],
"id": "e7f06676-3230-47df-ba38-e019f17796ca",
"name": "Edit Fields1"
},
{
"parameters": {
"content": "# 2. \ud3ec\ucf13\ubaac \ub9ac\uc2a4\ud2b8\ub97c \ub123\uc5b4\ubd05\uc2dc\ub2e4. (To BigQuery)",
"height": 100,
"width": 760,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
480,
176
],
"id": "cbba1464-4323-46e9-9dda-afa20b4d0e3e",
"name": "Sticky Note16"
},
{
"parameters": {
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"sqlQuery": "CREATE TABLE IF NOT EXISTS `n8n-automation-466906.datasets.pokemon_data_v2` (\n id STRING,\n name STRING,\n type STRING,\n height_m FLOAT64,\n weight_kg FLOAT64,\n ablilties ARRAY<STRING>,\n cries STRING,\n sprites STRING,\n stat_name ARRAY<STRING>,\n stat_value ARRAY<INT64>\n);",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
880,
-400
],
"id": "5f40abf2-0295-470d-ba11-e588e809fd5b",
"name": "Execute a SQL query",
"alwaysOutputData": true,
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"sqlQuery": "INSERT INTO `n8n-automation-466906.datasets.pokemon_data_v2` (\n id, name, type, height_m, weight_kg, ablilties, cries, sprites, stat_name, stat_value\n)\nSELECT\n '{{ $(\"Edit Fields\").item.json.id }}',\n '{{ $(\"Edit Fields\").item.json.name }}',\n '{{ $(\"Edit Fields\").item.json.type }}',\n {{ $(\"Edit Fields\").item.json[\"height(m)\"] }},\n {{ $(\"Edit Fields\").item.json[\"weight(kg)\"] }},\n {{ $(\"Edit Fields\").item.json.ablilties.toJsonString() }},\n '{{ $(\"Edit Fields\").item.json.cries }}',\n '{{ $(\"Edit Fields\").item.json.sprites }}',\n {{ $(\"Edit Fields\").item.json.stat_name.toJsonString() }},\n {{ $(\"Edit Fields\").item.json.stat_value.toJsonString() }}\nFROM (SELECT 1)\nWHERE NOT EXISTS (\n SELECT 1\n FROM `n8n-automation-466906.datasets.pokemon_data_v2`\n WHERE id = '{{ $(\"Edit Fields\").item.json.id }}'\n);",
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
1088,
-400
],
"id": "2e684a28-608d-494b-9660-484ac3f9469f",
"name": "INSERT INTO pokemon_data_v2",
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"maxItems": 5
},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
912,
304
],
"id": "3cb27022-2fcf-4616-9d05-bb8c7b6158f8",
"name": "Limit1"
},
{
"parameters": {
"operation": "insert",
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"datasetId": {
"__rl": true,
"value": "datasets",
"mode": "list",
"cachedResultName": "datasets"
},
"tableId": {
"__rl": true,
"value": "pokemon_data_v2",
"mode": "list",
"cachedResultName": "pokemon_data_v2"
},
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
1584,
304
],
"id": "5869cfd0-8f2f-450f-a23b-b3aeabf394d2",
"name": "INSERT INTO datasets.pokemon_data1",
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "insert",
"projectId": {
"__rl": true,
"value": "n8n-automation-466906",
"mode": "list",
"cachedResultName": "n8n-automation",
"cachedResultUrl": "https://console.cloud.google.com/bigquery?project=n8n-automation-466906"
},
"datasetId": {
"__rl": true,
"value": "datasets",
"mode": "list",
"cachedResultName": "datasets"
},
"tableId": {
"__rl": true,
"value": "pokemon_data_enriched",
"mode": "list",
"cachedResultName": "pokemon_data_enriched"
},
"dataMode": "define",
"fieldsUi": {
"values": [
{
"fieldId": "id",
"fieldValue": "={{ $('Limit').item.json.id }}"
},
{
"fieldId": "name",
"fieldValue": "={{ $('Limit').item.json.name }}"
},
{
"fieldId": "type",
"fieldValue": "={{ $('Limit').item.json.type }}"
},
{
"fieldId": "height_m",
"fieldValue": "={{ $('Limit').item.json.height_m }}"
},
{
"fieldId": "weight_kg",
"fieldValue": "={{ $('Limit').item.json.weight_kg }}"
},
{
"fieldId": "ablilties",
"fieldValue": "={{ $('Limit').item.json.ablilties }}"
},
{
"fieldId": "cries",
"fieldValue": "={{ $('Limit').item.json.cries }}"
},
{
"fieldId": "sprites",
"fieldValue": "={{ $('Limit').item.json.sprites }}"
},
{
"fieldId": "stat_name",
"fieldValue": "={{ $('Limit').item.json.stat_name }}"
},
{
"fieldId": "stat_value",
"fieldValue": "={{ $('Limit').item.json.stat_value }}"
},
{
"fieldId": "is_starting",
"fieldValue": "={{ $json.output.is_starter }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.googleBigQuery",
"typeVersion": 2.1,
"position": [
2720,
960
],
"id": "d0ea344e-016f-416f-80bb-1f1e1565bf52",
"name": "INSERT INTO pokemon_data_enriched1",
"credentials": {
"googleBigQueryOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc785\ub825\ud560 Is_Starting \ube48 \ubcc0\uc218\ub97c \uc0dd\uc131\ud558\uae30\n- ",
"height": 288
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1776,
704
],
"id": "974ffd45-2bf9-4659-ac97-a71f0738c9d3",
"name": "Sticky Note17"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a1edb7a8-639e-4fc8-b9ff-11f6e6136503",
"name": "is_starting",
"value": "=",
"type": "string"
}
]
},
"includeOtherFields": true,
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1840,
832
],
"id": "baa9e3a4-ee23-455a-8c29-a7a463249f29",
"name": "Is_starting"
},
{
"parameters": {
"content": "# *\uba54\ub274\uc5bc \ud2b8\ub9ac\uac70\ub97c \uac01\uac01\uc5d0 \ud558\ub098\uc529 \ubd99\uc5ec\ubcf4\uba74\uc11c \uc2e4\ud589\ud574\ubcf4\uc138\uc694.",
"width": 480
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
-880
],
"id": "8fc5fa75-877a-4c33-8e65-e7dc8d7f5c9f",
"name": "Sticky Note18"
},
{
"parameters": {
"content": "## (\uc0ac\uc804\uc791\uc5c5) \ube45\ucffc\ub9ac DB \ud504\ub85c\uc81d\ud2b8\ub97c \uc124\uc815\ud558\uae30.",
"height": 80,
"width": 256
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1040,
-512
],
"id": "639f52a8-c6b9-43cf-8bc5-eff0b188f67e",
"name": "Sticky Note19"
}
],
"connections": {
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "ditto",
"type": "main",
"index": 0
}
]
]
},
"ditto": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Execute a SQL query",
"type": "main",
"index": 0
}
]
]
},
"pikachu": {
"main": [
[
{
"node": "Edit Fields2",
"type": "main",
"index": 0
}
]
]
},
"Call Poke List": {
"main": [
[
{
"node": "height > 1",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
],
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicates": {
"main": [
[
{
"node": "Is_starting",
"type": "main",
"index": 0
}
]
]
},
"height > 1": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
],
[
{
"node": "Merge",
"type": "main",
"index": 2
}
],
[
{
"node": "Merge",
"type": "main",
"index": 3
}
],
[
{
"node": "Merge",
"type": "main",
"index": 4
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Is Starting Classfication AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Is Starting Classfication AI Agent",
"type": "ai_languageModel",
"index": 1
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Is Starting Classfication AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Is Starting Classfication AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Is Starting Classfication AI Agent": {
"main": [
[
{
"node": "INSERT INTO pokemon_data_enriched1",
"type": "main",
"index": 0
}
]
]
},
"CREATE TABLE IF EXIST": {
"main": [
[
{
"node": "INSERT INTO pokemon_data_enriched",
"type": "main",
"index": 0
}
]
]
},
"Pokemon ability": {
"main": [
[
{
"node": "Ability Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Split Out - abilities": {
"main": [
[
{
"node": "Pokemon ability",
"type": "main",
"index": 0
}
]
]
},
"ditto1": {
"main": [
[
{
"node": "Split Out - abilities",
"type": "main",
"index": 0
}
]
]
},
"ditto2": {
"main": [
[
{
"no
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.
googleBigQueryOAuth2ApigooglePalmApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow fetches Pokémon data from the PokeAPI via HTTP requests, cleanses and structures it using AI-powered tools like Google Gemini for intelligent parsing, then loads the refined dataset into Google BigQuery for analysis. It's ideal for data enthusiasts, analysts, or developers practising data cleansing techniques on real-world APIs without building everything from scratch. The key step involves the AI agent transforming raw, unstructured JSON responses into a clean, queryable format, saving hours of manual scripting and ensuring data quality for downstream insights.
Use this workflow when experimenting with API data pipelines or learning to integrate AI for data processing in event-driven scenarios, such as ad-hoc data pulls. Avoid it for production-scale operations requiring robust error handling or when dealing with sensitive data, as it's designed for practice rather than enterprise reliability. Common variations include swapping PokeAPI for other public APIs like REST Countries or replacing Gemini with OpenAI for custom cleansing logic.
About this workflow
pokeapi - DataCleansing Practice. Uses httpRequest, googleBigQuery, lmChatGoogleGemini, agent. Event-driven trigger; 56 nodes.
Source: https://github.com/2innnnn0/fastcampus-n8n-data-analysis-agent/blob/main/workflows/[4Qdj1H8JXasMygxA]pokeapi---datacleansing-practice.json — 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.
This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.
This is an automated blog post generation system that: Researches topics using AI agents and web search tools Writes complete blog posts with proper SEO structure Generates custom images for each post
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Transform a single quote into a fully-rendered cinematic short video — with voice-over, visuals, and music — then publish it directly to TikTok, Instagram Reels, and YouTube Shorts. This isn’t just au
RESUME SCREENER. Uses agent, outputParserStructured, lmChatOpenAi, gmailTrigger. Event-driven trigger; 37 nodes.