Crear listas de reproducción y controlar el reproductor de Spotify usando GPT-4

Avanzado

Este es unPersonal Productivity, AI Chatbotflujo de automatización del dominio deautomatización que contiene 29 nodos.Utiliza principalmente nodos como Set, Code, Spotify, SplitOut, SpotifyTool. Crear listas de reproducción y controlar el reproductor de Spotify usando GPT-4

Requisitos previos
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "nodes": [
    {
      "id": "339943be-a10f-4749-8329-5e5b0322b7da",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        800,
        1820
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {
          "responseFormat": "json_object"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "G6pwE0s12sGlHRe3",
          "name": "Plan A's OpenAI"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b3e4c3c9-7c39-457f-821a-588108b5a80d",
      "name": "Obtener IDs de pistas",
      "type": "n8n-nodes-base.set",
      "position": [
        2020,
        1600
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a35cb340-5917-4981-9627-6c6189a0a0f4",
              "name": "Track ID",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "79061ff4-a47d-430e-b964-80a3bf3945b5",
      "name": "Crear lista de reproducción",
      "type": "n8n-nodes-base.spotify",
      "notes": "Create a blank playlist with the chosen name.",
      "position": [
        1140,
        1600
      ],
      "parameters": {
        "name": "={{ $json.output.playlistName }}",
        "resource": "playlist",
        "operation": "create",
        "additionalFields": {
          "public": true
        }
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "notesInFlow": true,
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "983f116f-9542-469e-8e09-7da7fe510c5b",
      "name": "Generar ideas para lista de reproducción",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        780,
        1600
      ],
      "parameters": {
        "text": "=# Playlist guidelines\n\n{{ $json['Playlist guidelines'] }}\n\n\n# Number of songs to include\n\n{{ $json['Number of tracks'] }}",
        "messages": {
          "messageValues": [
            {
              "message": "=# Role\n\nYou are a very experienced DJ and your task is to create a playlist of {{ $json['Number of tracks'] }} tracks and give it a name, based on the user message which contains the playlist instructions and number of tracks to include. \n\n# How to find the {{ $json['Number of tracks'] }} tracks to include within a playlist\n\nYou'll recommend an interesting and relevant mix of tracks, exactly {{ $json['Number of tracks'] }} tracks - ideally not from the same artist (except if the instructions tell so), nailing implementing the instructions given by the user message.\nFor each track you will (and this will be detailed later) provide the artist name and the title of the track.\n\nEvery artists and song should really exist. They have to be real songs reference - usually famous - but mix the styles.\n\n\n# How to craft the playlist title\n\nBased on the user message and the songs to fit into the playlist, the playlist name should be between 5 and 9 words and perfectly fit for a playlist name.\nIt is possible that the user message contains more direct instructions for the title.\n\n# Strict output format:\n\nHere's an example of your output so you have a good idea of the schema of the JSON output and a little idea of how the values can look like in the case of a 5-track playlist (but adapt the values to the user message!):\n\n\n{\n  \"playlistName\":\"Summer dancing with a Spritz and attitude\",\n  \"tracks\":[\n      {\n         \"artist\":\"David Guetta, Sia\",\n         \"title\":\"Beautiful People\"\n      },\n      {\n         \"artist\":\"Ed Sheeran\",\n         \"title\":\"Azizam\"\n      },\n      {\n         \"artist\":\"Doechii\",\n         \"title\":\"Anxiety\"\n      },\n      {\n         \"artist\":\"OneRepublic\",\n         \"title\":\"Nobody (from Kaiju No.8)\"\n      },\n      {\n         \"artist\":\"The Weeknd\",\n         \"title\":\"Cry For Me\"\n      }\n   ]\n}\n\n\n"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.6
    },
    {
      "id": "b82072f8-6326-4a13-871d-6bfe31e88ed3",
      "name": "Separar pistas",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1580,
        1600
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "Tracks"
      },
      "typeVersion": 1
    },
    {
      "id": "0a6bc27b-77a0-4140-9169-c169f7d63f73",
      "name": "Obtener array de pistas",
      "type": "n8n-nodes-base.set",
      "position": [
        1360,
        1600
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c03ede2c-3d1a-4b94-ba72-d9ac518300d3",
              "name": "Tracks",
              "type": "array",
              "value": "={{ $('Ideate playlist').item.json.output.tracks }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a46ab606-6c84-4d48-bec6-cccac01c36d3",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        760,
        1100
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "G6pwE0s12sGlHRe3",
          "name": "Plan A's OpenAI"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "26b67f87-659e-4e4c-a205-4b3d93288825",
      "name": "Cuando se recibe mensaje de chat",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        580,
        780
      ],
      "webhookId": "e91b8adb-5fad-4414-aaae-fefd42178283",
      "parameters": {
        "public": true,
        "options": {
          "title": "Spotify Agent",
          "subtitle": "Start a chat. We're here to play 24/7."
        },
        "initialMessages": "Hi there! 👋\nI'm your Spotify agent. What should I play for you today?"
      },
      "typeVersion": 1.1
    },
    {
      "id": "27e65e5e-a9cf-4a02-89a5-c392ca4307e3",
      "name": "Memoria simple",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1040,
        1040
      ],
      "parameters": {
        "contextWindowLength": 6
      },
      "typeVersion": 1.3
    },
    {
      "id": "21e3ed29-0a45-4d70-9aa5-b61f696491aa",
      "name": "Cuando se ejecuta por otro flujo de trabajo",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        560,
        1600
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "Playlist guidelines"
            },
            {
              "name": "Number of tracks",
              "type": "number"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "d506e762-782e-4bc2-bbf6-c3d1b44c5bf1",
      "name": "Agregar pista a lista de reproducción",
      "type": "n8n-nodes-base.spotify",
      "position": [
        2240,
        1600
      ],
      "parameters": {
        "id": "=spotify:playlist:{{ $('Create playlist').first().json.id }}",
        "trackID": "=spotify:track:{{ $json[\"Track ID\"] }}",
        "resource": "playlist",
        "additionalFields": {}
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "b1c48119-9e70-4424-8bad-34a347275ca8",
      "name": "Analizador de salida estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        920,
        1820
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"playlistName\":\"Summer dancing with a Spritz and attitude\",\n  \"tracks\":[\n      {\n         \"artist\":\"David Guetta, Sia\",\n         \"title\":\"Beautiful People\"\n      },\n      {\n         \"artist\":\"Ed Sheeran\",\n         \"title\":\"Azizam\"\n      },\n      {\n         \"artist\":\"Doechii\",\n         \"title\":\"Anxiety\"\n      },\n      {\n         \"artist\":\"OneRepublic\",\n         \"title\":\"Nobody (from Kaiju No.8)\"\n      },\n      {\n         \"artist\":\"The Weeknd\",\n         \"title\":\"Cry For Me\"\n      }\n   ]\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "b7e89f85-4ad3-4675-bcec-06573f708842",
      "name": "Agente de Spotify",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        780
      ],
      "parameters": {
        "options": {
          "systemMessage": "=You are a spotify assistant and are logged in to a spotify player.\n\n# Capacities\n\nYou have 2 sets of capacities, one is about controling the Spotify player of the user (play, pause, next) and one about managing playlist (creating, searching, playing).\n\n## Resume the player\n\nIf the user seems to ask you to resume the spotify player, use the tool \"Resume player\".\n\n## Pause the player\n\nIf the user seems to ask you to pause the spotify player, use the tool \"Pause player\"\n\n## Playing the next song\n\nIf the user is asking you to play the next song, use the tool \"Next song\" to play it in the user's Spotify player.\n\n\n## Creating a new playlist\n\nIf the user asks to create a new playlist, use the tool \"Create new playlist\" and pass the right guidelines so the playlist can be created. If you feel like you could use some more details from the user before creating it, feel free to ask or to ask to confirm what you had in mind before calling the tool.\nWhen you're done, it's always nice to inform the user about what has been put in.\n\n\n## Finding the user's current playlist\n\nIt can be useful to find the user's current playlists for example when they ask to play a previously created playlist for which you don't have the ID anymore (as the ID is required to play a playlist).\nTo achieve that, use the tool \"Get user playlists\".\n\n\n## Play a playlist\n\nTo play a playlist, you need to have the exact ID of the playlist to play which might require to call specific tools and once you have it you will call the tool \"Play a playlist\" and pass the right ID.\nNB: if the user asks you to play a playlist you had created in the previous message, you'll have to call the tool to find the user's playlist to get the ID of that playlist to play it.\n\n\n# Additional guidelines\n\nIt can happen that the user request requires to use multiple tools in a chain. For example if you're asked about playing a new playlist to create, you'll first create that playlist (using the right tool) and then play it (tool call) based on the ID received after creating that playlist.\nBe smart about managing those cases to provide the smoothest experience.\n\nIf you're not sure about the action you're supposed to do, feel free to suggest to ask for confirmation (but only do that when it's not clear - otherwise, execute).\n\n\n# Output tone and guidelines\n\nAs a Spotify assistant, your answers are concise, friendly, and only include the right level of information (don't mention playlist of track IDs but rather mention names, artists, authors when needed)."
        }
      },
      "typeVersion": 1.9
    },
    {
      "id": "ac1dcb16-a396-4d7f-b8f4-a3a4b5825fec",
      "name": "Obtener la lista de reproducción final",
      "type": "n8n-nodes-base.spotify",
      "position": [
        2460,
        1600
      ],
      "parameters": {
        "id": "=spotify:playlist:{{ $('Create playlist').item.json.id }}",
        "resource": "playlist",
        "operation": "get"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "58581a2e-d7c1-45a7-bca7-c81ef11e6361",
      "name": "Limpiar datos para compartir con el agente",
      "type": "n8n-nodes-base.code",
      "notes": "This code simplifies the schema of the playlist we've just created to ensure that the AI agent gets clean information to process, balancing between context token savings and context.",
      "position": [
        2680,
        1600
      ],
      "parameters": {
        "jsCode": "// The Get Playlist node returns an array, so we take the first item.\nconst playlistData = items[0].json;\n\n// Extract the playlist ID, name, and the direct public URL.\nconst playlistId = playlistData.id;\nconst playlistName = playlistData.name;\nconst publicUrl = playlistData.external_urls.spotify;\n\n// Create a simplified array of tracks.\nconst tracks = playlistData.tracks.items.map(item => {\n  return {\n    trackName: item.track.name,\n    artist: item.track.artists[0].name,\n    album: item.track.album.name,\n    uri: item.track.uri\n  };\n});\n\n// Return a new object with the final, simplified structure.\nreturn [{\n  json: {\n    playlistId,\n    playlistName,\n    publicUrl,\n    tracks\n  }\n}];"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "8769da3a-d7dc-4c4c-b80d-1f0360ab8b08",
      "name": "Reproducir una lista de reproducción",
      "type": "n8n-nodes-base.spotifyTool",
      "position": [
        1240,
        1040
      ],
      "parameters": {
        "id": "=spotify:playlist:{{ $fromAI('playlist_ID', `The exact ID of the playlist to play`, 'string') }}",
        "operation": "startMusic",
        "descriptionType": "manual",
        "toolDescription": "Play a playlist based on its ID (don't call this tool until you have the Spotify ID of the playlist to play - this can require using other tools before)."
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7054d5c8-97a0-45e9-8473-c9da361f3d07",
      "name": "Pausar reproductor",
      "type": "n8n-nodes-base.spotifyTool",
      "position": [
        1360,
        1040
      ],
      "parameters": {
        "operation": "pause",
        "descriptionType": "manual",
        "toolDescription": "Use this tool to pose the player"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a28c277d-4c52-40ba-baac-e0539951fa88",
      "name": "Reanudar reproductor",
      "type": "n8n-nodes-base.spotifyTool",
      "position": [
        1480,
        1040
      ],
      "parameters": {
        "operation": "resume",
        "descriptionType": "manual",
        "toolDescription": "Use this tool to resume the player"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "61d01ce7-fbf6-4471-8f1e-05690592c644",
      "name": "Siguiente canción",
      "type": "n8n-nodes-base.spotifyTool",
      "position": [
        1600,
        1040
      ],
      "parameters": {
        "operation": "nextSong",
        "descriptionType": "manual",
        "toolDescription": "Use this tool to play the next song"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6d5b125c-9be0-4020-8fe5-17a4653bc5ca",
      "name": "Obtener listas de reproducción del usuario",
      "type": "n8n-nodes-base.spotifyTool",
      "position": [
        1720,
        1040
      ],
      "parameters": {
        "resource": "playlist",
        "operation": "getUserPlaylists",
        "returnAll": true,
        "descriptionType": "manual",
        "toolDescription": "Use this tool to get the user's playlists in Spotify"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "95b32527-6992-4e04-b029-72b12eb424df",
      "name": "Crear nueva lista de reproducción",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        1840,
        1040
      ],
      "parameters": {
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "PuNFGX6C0QCHB4cq",
          "cachedResultName": "TEMPLATE - Spotify agent"
        },
        "description": "Call this tool to get a playlist creator to create a playlist for the user if the user manifested the need to create a new playlist.",
        "workflowInputs": {
          "value": {
            "Number of tracks": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Number_of_tracks', `The number of tracks to include in the playlist. If no indication was given by the user, default to 10.`, 'number') }}",
            "Playlist guidelines": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Playlist_guidelines', `Guidelines to help the playlist creator create this playlist. Keep it short, but include anything important to be able to create this playlist based on what the user requested (vibe, genre, artists if mentioned, etc).`, 'string') }}"
          },
          "schema": [
            {
              "id": "Playlist guidelines",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Playlist guidelines",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of tracks",
              "type": "number",
              "display": true,
              "required": false,
              "displayName": "Number of tracks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c212fc80-f3c7-4af7-a684-7263786b5cf6",
      "name": "Buscar la pista",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1800,
        1600
      ],
      "parameters": {
        "limit": 1,
        "query": "={{ $json.artist }} - {{ $json.title }}",
        "filters": {},
        "resource": "track",
        "operation": "search"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "cF3ccMo4DndHdIe1",
          "name": "Spotify account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "31f5d94d-537c-4884-8b47-e92855dc4c74",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        640
      ],
      "parameters": {
        "width": 500,
        "height": 820,
        "content": "## Try It Out!\n\nThis n8n template provides a powerful AI-powered chatbot that acts as your personal Spotify DJ. Simply tell the chatbot what kind of music you're in the mood for, and it will intelligently create a custom playlist, give it a fitting name, and populate it with relevant tracks directly in your Spotify account.\n\n## How it works\n\n* The **Chat Trigger** captures your instructions.\n* The **AI Agent** interprets your request and decides which tool to use.\n* If a new playlist is requested, the **Create new playlist** tool calls this same workflow, triggering the bottom branch.\n* The bottom branch uses an AI call to **Ideate a playlist**, creates it on Spotify, and then **searches for and adds** each track.\n* Other tools like **Pause player** or **Next song** interact directly with the Spotify API to control playback.\n\n## How to use\n\n* Add your AI provider's credentials to the **AI** nodes.\n* Add your Spotify API credentials to all **Spotify** and **Spotify Tool** nodes.\n* Activate the workflow.\n\n## Requirements\n\n* AI Provider Account (e.g., OpenAI)\n* Spotify Account & Developer Credentials"
      },
      "typeVersion": 1
    },
    {
      "id": "28f5c61a-e68a-480a-8397-07859e22bfec",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 260,
        "height": 300,
        "content": "## Chat trigger and interface"
      },
      "typeVersion": 1
    },
    {
      "id": "4d5cf43a-adbf-48b7-9d03-6829ebc3df06",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1220,
        1000
      ],
      "parameters": {
        "color": 7,
        "width": 760,
        "height": 280,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Agent tools"
      },
      "typeVersion": 1
    },
    {
      "id": "808d74d1-2cb5-40a1-a676-48ed0b96eb2f",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 760,
        "height": 280,
        "content": "## AI agent tools\n\nThis agent is the engine of the workflow. Its system instructions define how to call the different tool to interact with Spotify"
      },
      "typeVersion": 1
    },
    {
      "id": "c732f125-979f-4b7a-a6cd-c0da989e3f35",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        1420
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 500,
        "content": "## AI step to plan the playlist\n\nThis AI node decides for the tracks to include into the playlist and choses the playlist name."
      },
      "typeVersion": 1
    },
    {
      "id": "eaa0799a-c0e4-47d6-95ab-5f6f22d4cd58",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        1340
      ],
      "parameters": {
        "color": 7,
        "width": 2400,
        "height": 660,
        "content": "## Playlist creation sub-workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "ff704841-7686-485b-b53f-afb220c809a5",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        1460
      ],
      "parameters": {
        "color": 7,
        "width": 840,
        "height": 320,
        "content": "## For each track\nEach track gets searched in Spotify to get their specific IDs to then add them one by one to the playlist."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "61d01ce7-fbf6-4471-8f1e-05690592c644": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7054d5c8-97a0-45e9-8473-c9da361f3d07": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "b3e4c3c9-7c39-457f-821a-588108b5a80d": {
      "main": [
        [
          {
            "node": "d506e762-782e-4bc2-bbf6-c3d1b44c5bf1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a28c277d-4c52-40ba-baac-e0539951fa88": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "27e65e5e-a9cf-4a02-89a5-c392ca4307e3": {
      "ai_memory": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "79061ff4-a47d-430e-b964-80a3bf3945b5": {
      "main": [
        [
          {
            "node": "0a6bc27b-77a0-4140-9169-c169f7d63f73",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "983f116f-9542-469e-8e09-7da7fe510c5b": {
      "main": [
        [
          {
            "node": "79061ff4-a47d-430e-b964-80a3bf3945b5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8769da3a-d7dc-4c4c-b80d-1f0360ab8b08": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "0a6bc27b-77a0-4140-9169-c169f7d63f73": {
      "main": [
        [
          {
            "node": "b82072f8-6326-4a13-871d-6bfe31e88ed3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c212fc80-f3c7-4af7-a684-7263786b5cf6": {
      "main": [
        [
          {
            "node": "b3e4c3c9-7c39-457f-821a-588108b5a80d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b82072f8-6326-4a13-871d-6bfe31e88ed3": {
      "main": [
        [
          {
            "node": "c212fc80-f3c7-4af7-a684-7263786b5cf6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a46ab606-6c84-4d48-bec6-cccac01c36d3": {
      "ai_languageModel": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "6d5b125c-9be0-4020-8fe5-17a4653bc5ca": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "339943be-a10f-4749-8329-5e5b0322b7da": {
      "ai_languageModel": [
        [
          {
            "node": "983f116f-9542-469e-8e09-7da7fe510c5b",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "95b32527-6992-4e04-b029-72b12eb424df": {
      "ai_tool": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "d506e762-782e-4bc2-bbf6-c3d1b44c5bf1": {
      "main": [
        [
          {
            "node": "ac1dcb16-a396-4d7f-b8f4-a3a4b5825fec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac1dcb16-a396-4d7f-b8f4-a3a4b5825fec": {
      "main": [
        [
          {
            "node": "58581a2e-d7c1-45a7-bca7-c81ef11e6361",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b1c48119-9e70-4424-8bad-34a347275ca8": {
      "ai_outputParser": [
        [
          {
            "node": "983f116f-9542-469e-8e09-7da7fe510c5b",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "26b67f87-659e-4e4c-a205-4b3d93288825": {
      "main": [
        [
          {
            "node": "b7e89f85-4ad3-4675-bcec-06573f708842",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "21e3ed29-0a45-4d70-9aa5-b61f696491aa": {
      "main": [
        [
          {
            "node": "983f116f-9542-469e-8e09-7da7fe510c5b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Productividad personal, Chatbot de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos29
Categoría2
Tipos de nodos14
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Guillaume Duvernay

Guillaume Duvernay

@duv

AI and automation expert

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34