Back to n8n Workflows

Rally Multi-Image Testing

Mike Taylor Mike Taylor

Automatically test multiple images against Rally's AI audience in a single workflow run. Upload images to Google Drive, get quantified preference results with reasoning, and export comprehensive vote analysis to CSV format.

Rally Multi-Image Testing n8n workflow diagram

Click to expand

Summarize in
OR
View full transcript
{
"name": "Rally Images Multi",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.askrally.com/api/v1/chat",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "accept",
"value": "application/json"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "smart",
"value": "false"
},
{
"name": "provider",
"value": "google"
},
{
"name": "query",
"value": "=Which theme would you most like to play from the four choices below and why?\n{{ $json.data.map((item, i) => `${'abcdefghijklmnopqrstuvwxyz'[i]}) ${item.filename}`).join('\\n') }}\n"
},
{
"name": "audience_id",
"value": "re09d5f7de60e46"
},
{
"name": "voting_mode",
"value": "true"
},
{
"name": "files",
"value": "={{ $json.data.map(item => ({ url: item.img_url, type: \"image/jpeg\" })) }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1120,
-120
],
"id": "02c374c8-49d5-4e9a-94ba-5c14f34b4954",
"name": "Ask Rally",
"credentials": {
"httpBearerAuth": {
"id": "HeUQ9K9oUtQ5TyHr",
"name": "Bearer Auth account"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-580,
-120
],
"id": "b412a1e7-6754-4c49-a16f-9cf5aa90c763",
"name": "When clicking ‘Execute workflow’"
},
{
"parameters": {
"operation": "download",
"fileId": {
"__rl": true,
"value": "={{ $json.id }}",
"mode": "id"
},
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
-40,
-120
],
"id": "b2f8d1b1-6c6f-4ff1-a134-dd6f2d0a072f",
"name": "Download file",
"credentials": {
"googleDriveOAuth2Api": {
"id": "FH39KObmNFy4c47W",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"resource": "fileFolder",
"returnAll": true,
"filter": {
"folderId": {
"__rl": true,
"value": "1YxT0C4emKscY6m0l9frquwCFe6ceL41y",
"mode": "list",
"cachedResultName": "images-rally-multi-n8n",
"cachedResultUrl": "https://drive.google.com/drive/folders/1YxT0C4emKscY6m0l9frquwCFe6ceL41y"
}
},
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
-320,
-120
],
"id": "c565e710-e2ea-470c-a1fd-b6215edb6fe4",
"name": "Search files and folders",
"credentials": {
"googleDriveOAuth2Api": {
"id": "FH39KObmNFy4c47W",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"operation": "upload",
"bucketName": "n8n-workflows",
"fileName": "={{ $json.name }}",
"additionalFields": {}
},
"type": "n8n-nodes-base.s3",
"typeVersion": 1,
"position": [
240,
-120
],
"id": "a3192bc5-cc1e-463d-acb3-0f2d3eb91292",
"name": "Save Image",
"credentials": {
"s3": {
"id": "8W09zUhDxJm0JJRU",
"name": "S3 account"
}
}
},
{
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Get the file name from the current item's \"Download file\" field\nconst fileName = $('Download file').item.json.name\n\nif (!fileName) {\n throw new Error(\"File name not found in 'Download file'.\");\n}\n\n// Construct Cloudflare URL\nconst img_url = `https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/${encodeURIComponent(fileName)}`;\n\n// Return it in the output\nreturn {\n filename: fileName,\n img_url\n};\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
580,
-120
],
"id": "377f899c-d4db-4c0a-9db6-3d6b64667416",
"name": "Code"
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
800,
-120
],
"id": "f2bd62e5-7c32-4863-a07d-6cc2c46b9345",
"name": "Aggregate"
},
{
"parameters": {
"jsCode": "let optionCounts = {};\nlet total = 0;\n\n// Count option selections\nfor (const item of $input.all()) {\n try {\n const responseData = JSON.parse(item.json.response);\n const option = responseData.option?.toLowerCase();\n\n if (option) {\n total++;\n optionCounts[option] = (optionCounts[option] || 0) + 1;\n }\n } catch (error) {\n console.log(`Error parsing response for item ${item.json.persona_id}:`, error.message);\n }\n}\n\n// Get filenames from Aggregate node\nlet filenames = [];\ntry {\n filenames = $('Aggregate').first().json.data.map(d => d.filename);\n} catch (error) {\n console.log(\"Error retrieving filenames from Aggregate node:\", error.message);\n}\n\n// Combine vote counts with filenames\nconst results = [];\n\nfor (const [option, count] of Object.entries(optionCounts)) {\n const index = option.charCodeAt(0) - 97; // a = 0, b = 1...\n const filename = filenames[index] || `[Unknown option \"${option}\"]`;\n const percentage = total > 0 ? (count / total * 100).toFixed(1) : \"0.0\";\n\n results.push({\n option,\n filename,\n votes: count,\n percentage: parseFloat(percentage)\n });\n}\n\n// Sort by most votes\nresults.sort((a, b) => b.votes - a.votes);\n\n// Return one item per result (for CSV export)\nreturn results.map(r => ({ json: r }));\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1560,
-120
],
"id": "645b2876-d5c0-4fc7-9a66-802ba85fae4f",
"name": "Code1"
},
{
"parameters": {
"fieldToSplitOut": "responses",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1340,
-120
],
"id": "693b7b1e-005c-408d-83b6-6d60bed4da43",
"name": "Split Out"
},
{
"parameters": {
"options": {
"headerRow": true
}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
1780,
-120
],
"id": "fe48cfa8-ecbe-4a0c-8898-04924baa08f7",
"name": "Convert to File"
}
],
"pinData": {
"Aggregate": [
{
"json": {
"data": [
{
"filename": "Bright Sky.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Bright%20Sky.png"
},
{
"filename": "Purple Tower.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Purple%20Tower.png"
},
{
"filename": "Green Forest.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Green%20Forest.png"
},
{
"filename": "Purple Forest.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Purple%20Forest.png"
}
]
}
}
],
"Ask Rally": [
{
"json": {
"session_id": "r9f645133a4d343",
"title": "Favorite Game Theme Selection",
"responses": [
{
"persona_id": "raff5994e291f43",
"response": "{\"thinking\": \"Ooh, this is Goblin Quest, that sounds fun. The purple tower one looks more interesting, the colors are much more vibrant and it makes me curious to see what the goblins will do. It has a mysterious and magical vibe, I like that. Gotta choose that one!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "ra40e07c2c8824a",
"response": "{\"thinking\": \"The tower theme clicks with me. It has a bit of a classic adventure vibe to it. Seems like there could be puzzles. Plus, the purple looks really nice and mysterious, giving me an incentive to dive in and strategize.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r84c6f4ab743143",
"response": "{\"thinking\": \"Ooh, I love a bit of mystery and depth. 'Purple Tower' has a great vibe, a little bit magical, a little bit spooky, and the art is cute. I'm always drawn to a good adventure theme, and I think it's the most visually interesting and would be a lot of fun to play!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r022184a6e2a84d",
"response": "{\"thinking\": \"I'm all about fast-paced action, and that looks like a tower. The purple looks cool. I want to play that. B is the best choice. I want to see if it's challenging.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r5b4563b940d24a",
"response": "{\"thinking\": \"Purple Tower feels like it hints at a mystery, some hidden depth I can dive into. Adventure and puzzle solving are a great combo!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r9e2b1f8b1a3145",
"response": "{\"thinking\": \"Forests are mysterious and intriguing, and I love puzzles. The Green Forest theme looks promising, plus it's got that adventurous feel I love from my childhood games. The other options are a little less appealing. I'm really feeling this game.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r7fe106831b974a",
"response": "{\"thinking\": \"Green Forest looks like it has a nice, inviting aesthetic, and the characters seem playful. It feels like the perfect setting for an engaging adventure, and I think the students would really love the look of this one. It will be a fun game to incorporate into the lesson plan.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "ra06f758b4acc46",
"response": "{\"thinking\": \"I'd pick the Purple Tower one. It looks more interesting, with the tower standing out and some mysterious vibe compared to the others. The bright sky one feels generic, and the forests are cool, but the tower gives it a nice touch.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r4772c007b61a4f",
"response": "{\"thinking\": \"Ooh, the one with the tower, that one is the most interesting to me. The goblins are always cute to me, but with the tower, it sparks my imagination. I'm imagining what can happen in the tower, I can get creative with the story around it. I'd pick that one to play.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r7e210af9210c42",
"response": "{\"thinking\": \"I like the Green Forest one. It looks more dynamic with the vibrant green. The Purple Tower is a bit dark and the purple forest seems a bit boring. Bright sky is nice but I want to see more color in the graphics. I like the Green Forest the most.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r8528fe54e87348",
"response": "{\"thinking\": \"Ooh, games! I love puzzle games, but I also like a good adventure. Bright sky is nice, but a bit plain. The Purple Tower? Hmmm. Green Forest... that feels like a classic adventure game setting, but with goblins, which is fun! Purple Forest feels a bit too dark, could be a bit stressful. Green forest has a nice balance. It's the one for me.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r90c8713e2de845",
"response": "{\"thinking\": \"Purple Tower looks interesting, it's different. I'm always looking for something new in my downtime. Green forest is okay, but I've seen it before. Bright Sky looks a bit plain and predictable, and I don't know about Purple Forest. So I'll go with Purple Tower; the graphics are intriguing, and the tower setting suggests some sort of adventure, which might be fun.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r7be6b6019bd040",
"response": "{\"thinking\": \"I like the purple tower image because it has a bit of mystery and a sense of exploration. The others look a little too generic, or perhaps too boring, I'm not sure. I think I'm in the mood for a quest. This might be fun to explore.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "rf9a71a8e3b3547",
"response": "{\"thinking\": \"I'm digging the Purple Tower. I love that spooky, mysterious vibe. Always enjoy a good adventure game and it looks like this one has a lot of atmosphere. And the goblins are cute. This looks like a game I would enjoy for sure.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "rcf436bf6b8f54c",
"response": "{\"thinking\": \"Purple Tower.png. The tower suggests something to defend, a structure to build. The other ones are just generic. Seems like an interesting puzzle to figure out.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r41271e46d14f45",
"response": "{\"thinking\": \"Oh, I love the Green Forest! The lush greenery is inviting, and those little goblins look like they're ready for an adventure, just like my students are. The bright sky is nice, but it's a bit plain. The purple themes look fun, but they're a bit too dark for a children's game. Forests are always a good idea, so the choice is clear for me.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r178e6faa83734f",
"response": "{\"thinking\": \"I'm all about adventure games. I like the 'Purple Tower' image. It has a mysterious vibe. I want to explore!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r84ade9746f8341",
"response": "{\"thinking\": \"The Purple Tower image is intriguing. It has a sense of mystery and fantasy. The vibrant colors and the looming tower evoke a sense of adventure, as I'm a fan of games that tell rich narratives. I wonder what secrets the tower holds. Let's go with that one.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r066796ea78ee4e",
"response": "{\"thinking\": \"Green Forest. A nice, inviting, look to it. Plus I like forests and nature and that would make a good adventure for my kids to go on!\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "rd4c6fa061a6648",
"response": "{\"thinking\": \"I love casino-style games, so I think the Purple Tower looks most intriguing. The tower design is appealing because it seems to offer a good mix of the classic and the mysterious. The purple color scheme gives it a mystical vibe, which could work well with the theme of adventure and exploration. I'd choose this one!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r680c241314944b",
"response": "{\"thinking\": \"Oh, 'Bright Sky' looks like a good one. Gotta love a good blue sky. It's inviting and friendly. It reminds me of the good old days when I was a kid, playing games in the backyard. Just a simple, classic, good feeling. Seems like a fun arcade game.\", \"option\": \"a\"}",
"thoughts": "voting"
},
{
"persona_id": "r348391d1e35044",
"response": "{\"thinking\": \"The forest one! It looks mysterious and cool, and I love exploring and adventures.\", \"option\": \"d\"}",
"thoughts": "voting"
},
{
"persona_id": "r046b2518857946",
"response": "{\"thinking\": \"The Purple Tower theme. The bright sky feels a bit generic, the green forest too. However the Purple Tower adds a sense of mystery and adventure, plus it stands out the most. I like the atmosphere it sets!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r36b2458565d34c",
"response": "{\"thinking\": \"Hmm, let me see here. Bright sky... kinda basic. Green forest is nice and all, but I'm feeling something a little darker. Purple tower is kinda cool, and the goblins look like they're ready for adventure. Purple forest is nice but the tower one is more unique, and I love towers. I love an immersive game where I can get lost, and a purple tower sounds like it'd make for a great setting!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r42d0a99507354e",
"response": "{\"thinking\": \"I like the look of the Purple Tower. It looks like it might involve more strategy and the tower gives it a bit of mystery.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r71be88d44af74d",
"response": "{\"thinking\": \"Ooh, I love puzzles! The game looks like it could be fun, but I'm leaning towards the Purple Tower one. The tower suggests a challenge or a mystery, which is what I always seek out in games. Plus, the color scheme is really nice. That's the one for me.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r3e6cdaf4a1a144",
"response": "{\"thinking\": \"I like the Purple Tower theme. I think the background of the tower, surrounded by that purple mist, looks epic and intriguing. The goblins are in the middle of a quest there, I can feel it. It's got a bit of a mysterious vibe. It just seems like a cool setting for a game.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "rb1b45aacbbea4f",
"response": "{\"thinking\": \"I am a sucker for anything with a forest setting, and the purple gives it a magical feel. Sounds like a great start for a story!\", \"option\": \"d\"}",
"thoughts": "voting"
},
{
"persona_id": "r35ab2d7072fd41",
"response": "{\"thinking\": \"The second one, Purple Tower, has a cool and mysterious vibe. The tower looks like it might have a puzzle to solve, and I love a good puzzle game. The other ones look a bit too straightforward. This one has a nice bit of depth that would make it interesting.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r0586a600584c42",
"response": "{\"thinking\": \"Okay, these all look pretty cool, but the Purple Tower one has that cool vibe. The others are nice, but that tower... it's got potential, it's got a mysterious feeling, and I love those kind of games. Let's go with that.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r8c674b4446664b",
"response": "{\"thinking\": \"I like the Green Forest! It's got the right vibe, looks like a good adventure game. I would totally stream this and I'd definitely get some views!\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "rc51fe8d0d61e44",
"response": "{\"thinking\": \"Purple Forest. That's the one. The other ones are boring. I love the color purple, it looks like a magical place. I'm ready for an adventure. I need to try this game now!\", \"option\": \"d\"}",
"thoughts": "voting"
},
{
"persona_id": "r5ac0afdb362d4b",
"response": "{\"thinking\": \"Green Forest. A vibrant, natural environment always makes for an engaging experience. Also, the Green Forest.png image looks much more detailed and interesting than the others. The goblins will have an interesting environment, maybe even a strategy game here. Yes, it is the most attractive choice.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r1631b87fa2b849",
"response": "{\"thinking\": \"Hmm, I like the forest. Green Forest is a nice, classic theme. I love the colors, and the characters look fun. Not too sure about the tower or purple forest, but the bright sky doesn't feel very interesting. So, I'll go with the Green Forest!\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r93d6d608102c45",
"response": "{\"thinking\": \"The Purple Forest one. It is a classic fantasy setting, and I love RPGs. Plus, purple is a cool color!\", \"option\": \"d\"}",
"thoughts": "voting"
},
{
"persona_id": "r6540d1670a0948",
"response": "{\"thinking\": \"The Green Forest one is definitely the most appealing to me. It feels like the most inviting, and it has a nice balance of greens and blues. I could get lost in a beautiful forest setting. It's not too busy, so it wouldn't distract me from the puzzles. Seems like it would be a good place to spend some time.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r5ff327e0167d4f",
"response": "{\"thinking\": \"Purple Forest. The goblins in that one look cool. The color pallette is unique and interesting. It looks the most fantastical, the kind of world I'd want to explore.\", \"option\": \"d\"}",
"thoughts": "voting"
},
{
"persona_id": "rf26840f76e9243",
"response": "{\"thinking\": \"Green Forest is where it's at. It just looks like the right setting for an adventure game. I love the feel of that environment. The others don't call to me.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "rb7a6b26e785b45",
"response": "{\"thinking\": \"The one with the tower, it looks like it has potential for puzzles or quests. I like that there's something to explore, with a little bit of mystery. The others just look a bit boring and I don't like the bright sky, it's not that interesting.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r7f9722a063b044",
"response": "{\"thinking\": \"Ooh, a game! I like the one with the green forest. It looks like a place you would go on an adventure, and I love reading stories about adventures with kids.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r7eae7ad1f5b44c",
"response": "{\"thinking\": \"Green Forest makes the most sense because the other options look too dark or not exciting. The background is a great setting for a game. It is a good choice for me.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "rd40f274569db4c",
"response": "{\"thinking\": \"Purple Tower looks intriguing. I like the look of a tower because it may involve puzzle solving, and it looks like a cool setting.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r71cfe898ad5243",
"response": "{\"thinking\": \"I like the bright sky and greens in the background. The goblins look friendly and it would be nice to see the world in the background.\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r6ec3c43f12a44e",
"response": "{\"thinking\": \"Bright Sky seems nice, but I'm not really feeling it. Green Forest, maybe. But the Purple Tower... the colors and the structure, that's what's got my attention. The whole thing is more interesting, and the name of the game is Goblin Quest, so it fits. I'll choose that one.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r162110d898ec48",
"response": "{\"thinking\": \"Ooo, the Purple Tower! I love a good fantasy theme. It's got a bit of mystery, a bit of adventure, and that touch of magic that always grabs me. The other ones are fine, but the tower has that vibe. Gotta go with that one.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "rda1a463dae2347",
"response": "{\"thinking\": \"Purple Tower looks mysterious. The tower theme suggests a puzzle game, my favorite! This sounds like the best choice!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r919ceffa796448",
"response": "{\"thinking\": \"I like the Purple Tower one, the tower looks interesting and mysterious. I've always been a fan of those kinds of settings. I'm imagining all kinds of puzzles and challenges. I'm picturing an interesting game. Let's go with B!\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r67a9d96480dd40",
"response": "{\"thinking\": \"Ooh, I love a good forest setting. The green one feels adventurous, and it's a familiar setting that's comfortable and not too chaotic. The purple ones seem a bit dark and ominous, which is not my vibe. I'd enjoy the Green Forest the most, it sounds inviting and fun!\", \"option\": \"c\"}",
"thoughts": "voting"
},
{
"persona_id": "r41381ecce82543",
"response": "{\"thinking\": \"I would be most drawn to the 'Purple Tower'. The environment seems mysterious, promising puzzles, and challenges. A tower always suggests a quest or a significant goal to achieve. The other choices are a bit generic. I need a challenge, a goal, something more interesting. The Purple Tower seems like the most interesting to me.\", \"option\": \"b\"}",
"thoughts": "voting"
},
{
"persona_id": "r7f526bfae93144",
"response": "{\"thinking\": \"Green Forest? I'd like to go on a quest there. The others seem a little too dark or simplistic. I want to explore the unknown, not get stuck in a tower or a purple haze. Green forest, I like that.\", \"option\": \"c\"}",
"thoughts": "voting"
}
],
"summary": "The dominant preference is for the 'Purple Tower' theme, with many respondents citing its mysterious and adventurous qualities, potential for puzzles, and appealing color scheme. The 'Green Forest' theme is the second most favored, praised for its inviting and classic adventure setting. The 'Bright Sky' and 'Purple Forest' themes received less enthusiasm, with some finding them generic or unappealing. The responses suggest that users are drawn to themes that offer a sense of mystery, exploration, and the potential for engaging gameplay experiences. The choice of the setting seems to be very important for most players.",
"provider": "google",
"mode": "normal"
}
}
],
"Search files and folders": [
{
"json": {
"id": "1xRxZ8U7DFTbm0OUWyIhSONrc_E6qW2Iz",
"name": "Bright Sky.png"
}
},
{
"json": {
"id": "1Frs3uXsq6rF9lySDDiCxVNfe-167WO9S",
"name": "Purple Tower.png"
}
},
{
"json": {
"id": "1mrwbsrS8as5HHCDuLmowImzLQdmIzYQh",
"name": "Green Forest.png"
}
},
{
"json": {
"id": "1hMn54r60xqDN7lAo-4BWA8dIo7e26-Y6",
"name": "Purple Forest.png"
}
}
],
"Save Image": [
{
"json": {
"success": true
}
},
{
"json": {
"success": true
}
},
{
"json": {
"success": true
}
},
{
"json": {
"success": true
}
}
],
"Code": [
{
"json": {
"filename": "Bright Sky.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Bright%20Sky.png"
}
},
{
"json": {
"filename": "Purple Tower.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Purple%20Tower.png"
}
},
{
"json": {
"filename": "Green Forest.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Green%20Forest.png"
}
},
{
"json": {
"filename": "Purple Forest.png",
"img_url": "https://pub-59930e8103b24fda9a2e59de070f969d.r2.dev/Purple%20Forest.png"
}
}
],
"Split Out": [
{
"json": {
"persona_id": "raff5994e291f43",
"response": "{\"thinking\": \"Ooh, this is Goblin Quest, that sounds fun. The purple tower one looks more interesting, the colors are much more vibrant and it makes me curious to see what the goblins will do. It has a mysterious and magical vibe, I like that. Gotta choose that one!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "ra40e07c2c8824a",
"response": "{\"thinking\": \"The tower theme clicks with me. It has a bit of a classic adventure vibe to it. Seems like there could be puzzles. Plus, the purple looks really nice and mysterious, giving me an incentive to dive in and strategize.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r84c6f4ab743143",
"response": "{\"thinking\": \"Ooh, I love a bit of mystery and depth. 'Purple Tower' has a great vibe, a little bit magical, a little bit spooky, and the art is cute. I'm always drawn to a good adventure theme, and I think it's the most visually interesting and would be a lot of fun to play!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r022184a6e2a84d",
"response": "{\"thinking\": \"I'm all about fast-paced action, and that looks like a tower. The purple looks cool. I want to play that. B is the best choice. I want to see if it's challenging.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r5b4563b940d24a",
"response": "{\"thinking\": \"Purple Tower feels like it hints at a mystery, some hidden depth I can dive into. Adventure and puzzle solving are a great combo!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r9e2b1f8b1a3145",
"response": "{\"thinking\": \"Forests are mysterious and intriguing, and I love puzzles. The Green Forest theme looks promising, plus it's got that adventurous feel I love from my childhood games. The other options are a little less appealing. I'm really feeling this game.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7fe106831b974a",
"response": "{\"thinking\": \"Green Forest looks like it has a nice, inviting aesthetic, and the characters seem playful. It feels like the perfect setting for an engaging adventure, and I think the students would really love the look of this one. It will be a fun game to incorporate into the lesson plan.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "ra06f758b4acc46",
"response": "{\"thinking\": \"I'd pick the Purple Tower one. It looks more interesting, with the tower standing out and some mysterious vibe compared to the others. The bright sky one feels generic, and the forests are cool, but the tower gives it a nice touch.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r4772c007b61a4f",
"response": "{\"thinking\": \"Ooh, the one with the tower, that one is the most interesting to me. The goblins are always cute to me, but with the tower, it sparks my imagination. I'm imagining what can happen in the tower, I can get creative with the story around it. I'd pick that one to play.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7e210af9210c42",
"response": "{\"thinking\": \"I like the Green Forest one. It looks more dynamic with the vibrant green. The Purple Tower is a bit dark and the purple forest seems a bit boring. Bright sky is nice but I want to see more color in the graphics. I like the Green Forest the most.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r8528fe54e87348",
"response": "{\"thinking\": \"Ooh, games! I love puzzle games, but I also like a good adventure. Bright sky is nice, but a bit plain. The Purple Tower? Hmmm. Green Forest... that feels like a classic adventure game setting, but with goblins, which is fun! Purple Forest feels a bit too dark, could be a bit stressful. Green forest has a nice balance. It's the one for me.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r90c8713e2de845",
"response": "{\"thinking\": \"Purple Tower looks interesting, it's different. I'm always looking for something new in my downtime. Green forest is okay, but I've seen it before. Bright Sky looks a bit plain and predictable, and I don't know about Purple Forest. So I'll go with Purple Tower; the graphics are intriguing, and the tower setting suggests some sort of adventure, which might be fun.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7be6b6019bd040",
"response": "{\"thinking\": \"I like the purple tower image because it has a bit of mystery and a sense of exploration. The others look a little too generic, or perhaps too boring, I'm not sure. I think I'm in the mood for a quest. This might be fun to explore.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rf9a71a8e3b3547",
"response": "{\"thinking\": \"I'm digging the Purple Tower. I love that spooky, mysterious vibe. Always enjoy a good adventure game and it looks like this one has a lot of atmosphere. And the goblins are cute. This looks like a game I would enjoy for sure.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rcf436bf6b8f54c",
"response": "{\"thinking\": \"Purple Tower.png. The tower suggests something to defend, a structure to build. The other ones are just generic. Seems like an interesting puzzle to figure out.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r41271e46d14f45",
"response": "{\"thinking\": \"Oh, I love the Green Forest! The lush greenery is inviting, and those little goblins look like they're ready for an adventure, just like my students are. The bright sky is nice, but it's a bit plain. The purple themes look fun, but they're a bit too dark for a children's game. Forests are always a good idea, so the choice is clear for me.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r178e6faa83734f",
"response": "{\"thinking\": \"I'm all about adventure games. I like the 'Purple Tower' image. It has a mysterious vibe. I want to explore!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r84ade9746f8341",
"response": "{\"thinking\": \"The Purple Tower image is intriguing. It has a sense of mystery and fantasy. The vibrant colors and the looming tower evoke a sense of adventure, as I'm a fan of games that tell rich narratives. I wonder what secrets the tower holds. Let's go with that one.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r066796ea78ee4e",
"response": "{\"thinking\": \"Green Forest. A nice, inviting, look to it. Plus I like forests and nature and that would make a good adventure for my kids to go on!\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rd4c6fa061a6648",
"response": "{\"thinking\": \"I love casino-style games, so I think the Purple Tower looks most intriguing. The tower design is appealing because it seems to offer a good mix of the classic and the mysterious. The purple color scheme gives it a mystical vibe, which could work well with the theme of adventure and exploration. I'd choose this one!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r680c241314944b",
"response": "{\"thinking\": \"Oh, 'Bright Sky' looks like a good one. Gotta love a good blue sky. It's inviting and friendly. It reminds me of the good old days when I was a kid, playing games in the backyard. Just a simple, classic, good feeling. Seems like a fun arcade game.\", \"option\": \"a\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r348391d1e35044",
"response": "{\"thinking\": \"The forest one! It looks mysterious and cool, and I love exploring and adventures.\", \"option\": \"d\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r046b2518857946",
"response": "{\"thinking\": \"The Purple Tower theme. The bright sky feels a bit generic, the green forest too. However the Purple Tower adds a sense of mystery and adventure, plus it stands out the most. I like the atmosphere it sets!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r36b2458565d34c",
"response": "{\"thinking\": \"Hmm, let me see here. Bright sky... kinda basic. Green forest is nice and all, but I'm feeling something a little darker. Purple tower is kinda cool, and the goblins look like they're ready for adventure. Purple forest is nice but the tower one is more unique, and I love towers. I love an immersive game where I can get lost, and a purple tower sounds like it'd make for a great setting!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r42d0a99507354e",
"response": "{\"thinking\": \"I like the look of the Purple Tower. It looks like it might involve more strategy and the tower gives it a bit of mystery.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r71be88d44af74d",
"response": "{\"thinking\": \"Ooh, I love puzzles! The game looks like it could be fun, but I'm leaning towards the Purple Tower one. The tower suggests a challenge or a mystery, which is what I always seek out in games. Plus, the color scheme is really nice. That's the one for me.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r3e6cdaf4a1a144",
"response": "{\"thinking\": \"I like the Purple Tower theme. I think the background of the tower, surrounded by that purple mist, looks epic and intriguing. The goblins are in the middle of a quest there, I can feel it. It's got a bit of a mysterious vibe. It just seems like a cool setting for a game.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rb1b45aacbbea4f",
"response": "{\"thinking\": \"I am a sucker for anything with a forest setting, and the purple gives it a magical feel. Sounds like a great start for a story!\", \"option\": \"d\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r35ab2d7072fd41",
"response": "{\"thinking\": \"The second one, Purple Tower, has a cool and mysterious vibe. The tower looks like it might have a puzzle to solve, and I love a good puzzle game. The other ones look a bit too straightforward. This one has a nice bit of depth that would make it interesting.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r0586a600584c42",
"response": "{\"thinking\": \"Okay, these all look pretty cool, but the Purple Tower one has that cool vibe. The others are nice, but that tower... it's got potential, it's got a mysterious feeling, and I love those kind of games. Let's go with that.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r8c674b4446664b",
"response": "{\"thinking\": \"I like the Green Forest! It's got the right vibe, looks like a good adventure game. I would totally stream this and I'd definitely get some views!\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rc51fe8d0d61e44",
"response": "{\"thinking\": \"Purple Forest. That's the one. The other ones are boring. I love the color purple, it looks like a magical place. I'm ready for an adventure. I need to try this game now!\", \"option\": \"d\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r5ac0afdb362d4b",
"response": "{\"thinking\": \"Green Forest. A vibrant, natural environment always makes for an engaging experience. Also, the Green Forest.png image looks much more detailed and interesting than the others. The goblins will have an interesting environment, maybe even a strategy game here. Yes, it is the most attractive choice.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r1631b87fa2b849",
"response": "{\"thinking\": \"Hmm, I like the forest. Green Forest is a nice, classic theme. I love the colors, and the characters look fun. Not too sure about the tower or purple forest, but the bright sky doesn't feel very interesting. So, I'll go with the Green Forest!\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r93d6d608102c45",
"response": "{\"thinking\": \"The Purple Forest one. It is a classic fantasy setting, and I love RPGs. Plus, purple is a cool color!\", \"option\": \"d\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r6540d1670a0948",
"response": "{\"thinking\": \"The Green Forest one is definitely the most appealing to me. It feels like the most inviting, and it has a nice balance of greens and blues. I could get lost in a beautiful forest setting. It's not too busy, so it wouldn't distract me from the puzzles. Seems like it would be a good place to spend some time.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r5ff327e0167d4f",
"response": "{\"thinking\": \"Purple Forest. The goblins in that one look cool. The color pallette is unique and interesting. It looks the most fantastical, the kind of world I'd want to explore.\", \"option\": \"d\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rf26840f76e9243",
"response": "{\"thinking\": \"Green Forest is where it's at. It just looks like the right setting for an adventure game. I love the feel of that environment. The others don't call to me.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rb7a6b26e785b45",
"response": "{\"thinking\": \"The one with the tower, it looks like it has potential for puzzles or quests. I like that there's something to explore, with a little bit of mystery. The others just look a bit boring and I don't like the bright sky, it's not that interesting.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7f9722a063b044",
"response": "{\"thinking\": \"Ooh, a game! I like the one with the green forest. It looks like a place you would go on an adventure, and I love reading stories about adventures with kids.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7eae7ad1f5b44c",
"response": "{\"thinking\": \"Green Forest makes the most sense because the other options look too dark or not exciting. The background is a great setting for a game. It is a good choice for me.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rd40f274569db4c",
"response": "{\"thinking\": \"Purple Tower looks intriguing. I like the look of a tower because it may involve puzzle solving, and it looks like a cool setting.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r71cfe898ad5243",
"response": "{\"thinking\": \"I like the bright sky and greens in the background. The goblins look friendly and it would be nice to see the world in the background.\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r6ec3c43f12a44e",
"response": "{\"thinking\": \"Bright Sky seems nice, but I'm not really feeling it. Green Forest, maybe. But the Purple Tower... the colors and the structure, that's what's got my attention. The whole thing is more interesting, and the name of the game is Goblin Quest, so it fits. I'll choose that one.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r162110d898ec48",
"response": "{\"thinking\": \"Ooo, the Purple Tower! I love a good fantasy theme. It's got a bit of mystery, a bit of adventure, and that touch of magic that always grabs me. The other ones are fine, but the tower has that vibe. Gotta go with that one.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "rda1a463dae2347",
"response": "{\"thinking\": \"Purple Tower looks mysterious. The tower theme suggests a puzzle game, my favorite! This sounds like the best choice!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r919ceffa796448",
"response": "{\"thinking\": \"I like the Purple Tower one, the tower looks interesting and mysterious. I've always been a fan of those kinds of settings. I'm imagining all kinds of puzzles and challenges. I'm picturing an interesting game. Let's go with B!\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r67a9d96480dd40",
"response": "{\"thinking\": \"Ooh, I love a good forest setting. The green one feels adventurous, and it's a familiar setting that's comfortable and not too chaotic. The purple ones seem a bit dark and ominous, which is not my vibe. I'd enjoy the Green Forest the most, it sounds inviting and fun!\", \"option\": \"c\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r41381ecce82543",
"response": "{\"thinking\": \"I would be most drawn to the 'Purple Tower'. The environment seems mysterious, promising puzzles, and challenges. A tower always suggests a quest or a significant goal to achieve. The other choices are a bit generic. I need a challenge, a goal, something more interesting. The Purple Tower seems like the most interesting to me.\", \"option\": \"b\"}",
"thoughts": "voting"
}
},
{
"json": {
"persona_id": "r7f526bfae93144",
"response": "{\"thinking\": \"Green Forest? I'd like to go on a quest there. The others seem a little too dark or simplistic. I want to explore the unknown, not get stuck in a tower or a purple haze. Green forest, I like that.\", \"option\": \"c\"}",
"thoughts": "voting"
}
}
]
},
"connections": {
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Search files and folders",
"type": "main",
"index": 0
}
]
]
},
"Download file": {
"main": [
[
{
"node": "Save Image",
"type": "main",
"index": 0
}
]
]
},
"Search files and folders": {
"main": [
[
{
"node": "Download file",
"type": "main",
"index": 0
}
]
]
},
"Save Image": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Ask Rally",
"type": "main",
"index": 0
}
]
]
},
"Ask Rally": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "5fb09ee3-0b7a-4ec1-b27d-82330c02f758",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "7aa2e96d57ff40383569724f8ecb13d674a87bf09d39aa5d8fa5ba31f7a8407a"
},
"id": "MFGXx2Nxdz7VuJrT",
"tags": []
}

Overview

This workflow automates visual concept testing by batch-processing multiple images from Google Drive and testing them with Rally's AI persona network. It downloads images from a designated folder, uploads them to cloud storage for public access, then presents all options simultaneously to AI personas asking them to choose their preference with reasoning. The results are automatically tallied, ranked by popularity, and exported as a CSV file containing vote counts and percentages for each image option - perfect for A/B testing visual concepts, game themes, marketing assets, or any design decisions requiring audience validation.

🎯 Pro Tips & Secret Sauce

The magic lies in the batch visual testing with intelligent vote aggregation:

  1. Automated Asset Pipeline - Seamlessly moves images from Google Drive through S3 storage to create the public URLs that Rally's API requires for visual analysis, eliminating manual file handling
  2. Simultaneous Choice Architecture - Presents all images together in a single voting session, mimicking real-world decision scenarios where users choose between multiple options rather than rating individually
  3. Smart Vote Correlation - Custom logic matches Rally's letter-based voting responses (a, b, c, d) back to original filenames, calculating both raw vote counts and percentage distributions
  4. Comprehensive Results Export - Generates detailed CSV reports with filename, option letter, vote count, and percentage - perfect for stakeholder presentations and decision documentation
  5. Scalable Testing Framework - Works with any number of images in the designated folder, automatically adjusting the voting options and result processing based on what's available

This creates a complete visual testing laboratory that can validate design concepts, game themes, marketing assets, or any visual decision with quantified audience data in minutes rather than weeks.

📝 Step-by-Step Instructions

  1. Manual Trigger - User initiates the workflow to begin batch testing of all images in the designated Google Drive folder
  2. Search Drive Folder - Automatically discovers all image files in the specified Google Drive folder ("images-rally-multi-n8n")
  3. Download Images - Sequentially downloads each image file from Google Drive to n8n for processing
  4. Upload to S3 - Uploads each image to AWS S3 bucket ("n8n-workflows") to create publicly accessible URLs required by Rally API
  5. Generate Public URLs - Creates properly formatted Cloudflare R2 CDN URLs for each uploaded image with URL encoding for special characters
  6. Aggregate Image Data - Combines all image filenames and their corresponding public URLs into a structured dataset for Rally testing
  7. Rally Multi-Image Test - Sends all images simultaneously to Rally's gaming audience personas asking "Which theme would you most like to play from the four choices below and why?" in voting mode
  8. Split Individual Votes - Processes Rally's response array to extract each persona's individual voting decision and reasoning
  9. Calculate Vote Results - Custom code tallies votes for each option (a, b, c, d), matches them back to original filenames, calculates percentages, and ranks by popularity
  10. Export CSV Report - Converts the final results into a downloadable CSV file containing option, filename, vote count, and percentage for comprehensive analysis and sharing

📋 Requirements

Required Integrations

  • Google Drive - Source storage for images to be tested, with folder-based organization
  • AWS S3 - Cloud storage for creating publicly accessible image URLs required by Rally API
  • Rally API - AI persona testing service with multi-image voting capabilities and visual analysis
  • Manual Trigger - On-demand execution for batch testing sessions

Required Credentials

  • Google Drive OAuth2 credentials with read access to designated testing folders
  • AWS S3 credentials with upload permissions to "n8n-workflows" bucket
  • Rally API Bearer token with voting mode and file upload capabilities

Setup Prerequisites

  • Google Drive folder containing images to test (default: "images-rally-multi-n8n" folder ID: 1YxT0C4emKscY6m0l9frquwCFe6ceL41y)
  • AWS S3 bucket configured for public read access via Cloudflare R2 CDN
  • Rally account with gaming audience persona access (default: re09d5f7de60e46)
  • Images should be in common formats (PNG, JPG, JPEG) with descriptive filenames

About the Author

Mike Taylor

Mike Taylor

Mike Taylor is the CEO & Co-Founder of Rally. He previously co-founded a 50-person growth marketing agency called Ladder, created marketing & AI courses on LinkedIn, Vexpower, and Udemy taken by over 450,000 people, and published a book with O’Reilly on prompt engineering.