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 →
{
"name": "OpenAI Cities Recommender",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "openai-cities",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-node",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"text": "Soy un asistente que solo devuelve JSON. Tengo un dataset de restaurantes en estas 3 ciudades mexicanas: 'Mexicali', 'Tijuana', 'Puerto Nuevo'.\n\nInstrucci\u00f3n: Dada la ciudad '{{ $json.city }}' en el pa\u00eds '{{ $json.country }}', devuelve las 3 ciudades m\u00e1s cercanas geogr\u00e1ficamente de mi lista (Mexicali, Tijuana, Puerto Nuevo).\n\nReglas:\n1. Si la ciudad proporcionada est\u00e1 en mi lista, \u00fasala como primera opci\u00f3n\n2. Ordena de m\u00e1s cercana a menos cercana\n3. Siempre devuelve exactamente 3 ciudades\n4. Solo ciudades de mi lista\n\nFormato de respuesta EXACTO (sin texto adicional):\n{\n \"cities\": [\"Ciudad1\", \"Ciudad2\", \"Ciudad3\"]\n}\n\nEjemplos:\n- Input: {'city': 'San Diego', 'country': 'USA'} \u2192 Output: {\"cities\": [\"Tijuana\", \"Mexicali\", \"Puerto Nuevo\"]}\n- Input: {'city': 'Mexicali', 'country': 'M\u00e9xico'} \u2192 Output: {\"cities\": [\"Mexicali\", \"Tijuana\", \"Puerto Nuevo\"]}",
"options": {}
},
"id": "openai-node",
"name": "OpenAI",
"type": "n8n-nodes-base.openAi",
"typeVersion": 1,
"position": [
450,
300
],
"credentials": {
"openAiApi": "<your credential>"
}
},
{
"parameters": {
"options": {}
},
"id": "response-node",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
650,
300
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
},
"OpenAI": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {},
"staticData": null,
"tags": [],
"triggerCount": 1
}
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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
OpenAI Cities Recommender. Uses openAi. Webhook trigger; 3 nodes.
Source: https://github.com/andrea2298/Restaurant-recommender/blob/48a70f50e88ff666b7880c4c31b25cd254de1341/n8n/examen_grima_workflow.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.
Image Generation API. Uses respondToWebhook, stickyNote, openAi. Webhook trigger; 7 nodes.
• Webhook → urlscan.io → GPT-4o mini → Gmail • Payload example: • urlscan.io returns a Scan ID and raw JSON. • AI node classifies the scan as malicious / suspicious / benign, assigns a 1-10 risk score
Brand Finder and Contacter. Uses openAi, respond, gmail. Webhook trigger; 7 nodes.
Generate audio from text using OpenAI - text-to-speech Workflow. Uses respondToWebhook, stickyNote, openAi. Webhook trigger; 5 nodes.