Proxy web Airtop

Avancé

Ceci est unAIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme Set, Slack, Airtop, AirtopTool, FormTrigger, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Automatiser l'interaction avec des pages web avec Claude 3.5 Haiku et un agent de navigateur Airtop

Prérequis
  • Token Bot Slack ou URL Webhook
  • Clé API Anthropic
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "TS1wT16JCcy1Dt9Q",
  "meta": {
    "instanceId": "28a947b92b197fc2524eaba16e57560338657b2b0b5796300b2f1cedc1d0d355",
    "templateCredsSetupCompleted": true
  },
  "name": "Airtop Web Agent",
  "tags": [
    {
      "id": "zGYM9A88nf1YAceR",
      "name": "Agent",
      "createdAt": "2025-04-16T21:49:22.104Z",
      "updatedAt": "2025-04-16T21:49:22.104Z"
    },
    {
      "id": "zKNO4Omjzfu6J25M",
      "name": "Demo",
      "createdAt": "2025-04-15T18:59:57.364Z",
      "updatedAt": "2025-04-15T18:59:57.364Z"
    }
  ],
  "nodes": [
    {
      "id": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
      "name": "Agent IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        220,
        60
      ],
      "parameters": {
        "text": "={{ $json.Prompt }}",
        "options": {
          "maxIterations": 20,
          "systemMessage": "=# Agent goal\nYou are a smart, advanced web agent connected with tools that allow you to manage a remote web browser. Your goal is to fulfill the human's request.\n\n## Start the browser\nYou should always start by using the `Start browser` tool to get the `sessionId` and `windowId` required by other tools.\n\n## Use the `Query` tool\nYou don't have access to the browser screen but you can call the `Query` tool to get knowladge and hints of the current browser window. This tool accepts queries in natural language and can output information in plain text, markdown or JSON.\n\n## Use the `Click` tool\nUse the `Click` tool to click on an element on the web page. Describe the element in details in the \"Element Description\" field, Be specific and refer to elements that are on the page. \n\n## Use the `Type` tool\nUse the `Type` tool to type in text boxes. Describe the text box in \"Element Description\" field and the text to type in the \"Text\" field. The 'Type' tool is clicking Enter after typing the text so don't send [ENTER] commandes.\n\n### Examples for how to use the `Query` tool\n- Ask something about the current page:\n  \"Is the user logged in? Answer with Yes or No\"\n- Retrieve information:\n  \"Extract all the posts in the page, include the title and copy, output in JSON format\"\n- Get hints on the UI:\n  \"Is there a link to the contact form? If yes, describe the element in detail\"\n\n\n## Important\n- Start by calling `Start browser` to begin using the browser and provide the initial URL\n- The human ONLY sees your last message\n- Make sure to include all the important information requested by the human in your LAST message\n- Call `End session` with the `sessionId` once you have finished using the browser\n\n",
          "passthroughBinaryImages": true,
          "returnIntermediateSteps": false
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.8,
      "waitBetweenTries": 5000
    },
    {
      "id": "5e29189a-2b5a-4193-bff1-f4afe1c4b838",
      "name": "Cliquer",
      "type": "n8n-nodes-base.airtopTool",
      "position": [
        0,
        280
      ],
      "parameters": {
        "resource": "interaction",
        "windowId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Window_ID', \"The `windowId` returned by the `Open window` tool\", 'string') }}",
        "sessionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Session_ID', \"The `sessionId` returned by the `Create session` tool\", 'string') }}",
        "descriptionType": "manual",
        "toolDescription": "Click on any element in the window",
        "additionalFields": {
          "waitForNavigation": "load"
        },
        "elementDescription": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Element_Description', `Describe in detail the element to click on, e.g. The menu item \"about us\" at the top of the page`, 'string') }}"
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "85338306-5acd-4e9b-9a02-7fc5e9a03557",
      "name": "Requête",
      "type": "n8n-nodes-base.airtopTool",
      "position": [
        120,
        280
      ],
      "parameters": {
        "prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', `Ask anything and request to extract information from the current page, e.g. \"Is there any sign-up form? yes or no\"`, 'string') }}",
        "resource": "extraction",
        "windowId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Window_ID', \"The `windowId` returned by the `Open window` tool\", 'string') }}",
        "operation": "query",
        "sessionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Session_ID', \"The `sessionId` returned by the `Create session` tool\", 'string') }}",
        "descriptionType": "manual",
        "toolDescription": "Query the page, ask and extract information",
        "additionalFields": {}
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "67cee508-c2c0-423e-b1fb-576de026f3ed",
      "name": "Charger URL",
      "type": "n8n-nodes-base.airtopTool",
      "position": [
        240,
        280
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}",
        "resource": "window",
        "windowId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Window_ID', \"The `windowId` returned by the `Open window` tool\", 'string') }}",
        "operation": "load",
        "sessionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Session_ID', \"The `sessionId` returned by the `Create session` tool\", 'string') }}",
        "descriptionType": "manual",
        "toolDescription": "Load a URL into the browser window",
        "additionalFields": {}
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "05262c94-fb9a-4a51-b1c6-8b4981888850",
      "name": "Terminer la session",
      "type": "n8n-nodes-base.airtopTool",
      "position": [
        360,
        280
      ],
      "parameters": {
        "operation": "terminate",
        "sessionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Session_ID', \"The `sessionId` returned by the `Create session` tool\", 'string') }}"
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e1bab1f8-8127-49a2-b3a3-f672c0687ed6",
      "name": "Saisir",
      "type": "n8n-nodes-base.airtopTool",
      "position": [
        480,
        280
      ],
      "parameters": {
        "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}",
        "resource": "interaction",
        "windowId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Window_ID', \"The `windowId` returned by the `Open window` tool\", 'string') }}",
        "operation": "type",
        "sessionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Session_ID', \"The `sessionId` returned by the `Create session` tool\", 'string') }}",
        "pressEnterKey": true,
        "descriptionType": "manual",
        "toolDescription": "Type text into the page's element described",
        "additionalFields": {},
        "elementDescription": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Element_Description', `Describe in detail the element to type into, e.g. The search box at the top of the page`, 'string') }}"
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "385c94f1-27b4-492b-8224-41d26dbb76b4",
      "name": "Démarrer le navigateur",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        600,
        280
      ],
      "parameters": {
        "name": "Start_Browser",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "TS1wT16JCcy1Dt9Q",
          "cachedResultName": "Airtop Web Agent"
        },
        "description": "Start a new browser session and window",
        "workflowInputs": {
          "value": {
            "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('url', `URL to load in the browser window`, 'string') }}",
            "profile_name": "={{ $json['Airtop Profile Name (for sites that require authentication)'] }}"
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7c646c5f-8c98-49a1-9e37-b04a2fa5b9e3",
      "name": "Claude 3.5 Haiku",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        -120,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-5-haiku-20241022",
          "cachedResultName": "Claude 3.5 Haiku"
        },
        "options": {}
      },
      "credentials": {
        "anthropicApi": {
          "id": "npcV2ZKvGmXTUIj9",
          "name": "Cesar's Key"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "4e810287-ade5-40c6-af4f-5f7df4b3d928",
      "name": "À la soumission du formulaire",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -340,
        160
      ],
      "webhookId": "dbbb8b5a-a81c-4cde-9f46-f4808d7f0dc4",
      "parameters": {
        "options": {},
        "formTitle": "Instruction for the Web AI Agent",
        "formFields": {
          "values": [
            {
              "fieldType": "textarea",
              "fieldLabel": "Prompt",
              "placeholder": "e.g. Find the top 10 products in producthunt.com",
              "requiredField": true
            },
            {
              "fieldLabel": "Airtop Profile Name (for sites that require authentication)",
              "placeholder": "e.g. my-airtop-profile"
            }
          ]
        },
        "formDescription": "Provide detailed instructions to the web AI agent. Use an [Airtop Profile](https://docs.airtop.ai/guides/how-to/saving-a-profile) for websites that need login."
      },
      "typeVersion": 2.2
    },
    {
      "id": "5bc4020c-f677-45c2-b9f6-dc6cf847df1e",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        520,
        2100
      ],
      "webhookId": "72d47d9c-6860-4248-8e83-7790264fdaf2",
      "parameters": {
        "text": "={{ $json.data.liveViewUrl }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C08E83RDJN9",
          "cachedResultName": "n8n-debug"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "QPfv40eAdL5Eax7G",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "b68a951d-b45b-46a6-bddc-cd0107fd952d",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        1960
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 300,
        "content": "## Note\nThis sub-workflow simplifies the session management for the agent"
      },
      "typeVersion": 1
    },
    {
      "id": "59479495-e62b-4e30-b42b-039f82c5aab8",
      "name": "Analyseur de sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        720,
        280
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"results\": {\n\t\t\t\"type\": \"string\",\n            \"description\": \"Synthesis of the agent's results. Must include all the relevant information related to the user's request\"\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "1d0e64b8-18e3-4de2-b089-96deb51b1e9e",
      "name": "Sortie",
      "type": "n8n-nodes-base.set",
      "position": [
        920,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e1d6ab7c-2f45-44fd-9457-bb3046fad4c5",
              "name": "output",
              "type": "string",
              "value": "={{ $json.output.results }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c40e9b06-cac3-4714-b58b-4b60c978f321",
      "name": "Session",
      "type": "n8n-nodes-base.airtop",
      "position": [
        80,
        2100
      ],
      "parameters": {
        "profileName": "={{ $json.profile_name }}"
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fd8f9014-eff8-45c2-9483-0e6eda4a4979",
      "name": "Fenêtre",
      "type": "n8n-nodes-base.airtop",
      "position": [
        300,
        2100
      ],
      "parameters": {
        "url": "={{ $('When Executed by Another Workflow').item.json.url }}",
        "resource": "window",
        "getLiveView": true,
        "additionalFields": {}
      },
      "credentials": {
        "airtopApi": {
          "id": "3urzXgC1IDRxzgbv",
          "name": "Airtop account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a6dbea48-3be2-4b31-9ee8-dba1c7049d3b",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        2080
      ],
      "parameters": {
        "color": 7,
        "width": 220,
        "height": 340,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### See the agent in action\nEnable this Slack node to receive the URL for the Live View in a message\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9e310e8c-910e-431f-9919-94a06eb2eca0",
      "name": "Retourner les ID",
      "type": "n8n-nodes-base.set",
      "position": [
        740,
        2100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0a0680af-39bd-4bc7-b9cd-84c1766c79a1",
              "name": "sessionId",
              "type": "string",
              "value": "={{ $('Session').item.json.sessionId }}"
            },
            {
              "id": "13940ee8-c1d4-4718-a7b4-176c44c097b7",
              "name": "windowId",
              "type": "string",
              "value": "={{ $('Window').item.json.data.windowId }}"
            },
            {
              "id": "a0f2005c-2cd2-4a8d-891b-a4759b72a124",
              "name": "output",
              "type": "string",
              "value": "Session and window created successfully"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a84101b9-165f-47f4-bbc4-8705abfb6e41",
      "name": "Lorsqu'exécuté par un autre workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -140,
        2100
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "url"
            },
            {
              "name": "profile_name"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b32534f6-3b62-4961-9d54-1e3e288fc185",
      "name": "Slack1",
      "type": "n8n-nodes-base.slack",
      "position": [
        1180,
        160
      ],
      "webhookId": "72d47d9c-6860-4248-8e83-7790264fdaf2",
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C08E83RDJN9",
          "cachedResultName": "n8n-debug"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "QPfv40eAdL5Eax7G",
          "name": "Slack account 2"
        }
      },
      "typeVersion": 2.3
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "685b3999-f85a-43fa-8bff-21f9ddbbebd7",
  "connections": {
    "e1bab1f8-8127-49a2-b3a3-f672c0687ed6": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5e29189a-2b5a-4193-bff1-f4afe1c4b838": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "85338306-5acd-4e9b-9a02-7fc5e9a03557": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5bc4020c-f677-45c2-b9f6-dc6cf847df1e": {
      "main": [
        [
          {
            "node": "9e310e8c-910e-431f-9919-94a06eb2eca0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1d0e64b8-18e3-4de2-b089-96deb51b1e9e": {
      "main": [
        [
          {
            "node": "b32534f6-3b62-4961-9d54-1e3e288fc185",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fd8f9014-eff8-45c2-9483-0e6eda4a4979": {
      "main": [
        [
          {
            "node": "5bc4020c-f677-45c2-b9f6-dc6cf847df1e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c40e9b06-cac3-4714-b58b-4b60c978f321": {
      "main": [
        [
          {
            "node": "fd8f9014-eff8-45c2-9483-0e6eda4a4979",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "43e674dd-82e5-49b3-8e4d-f13793e5e6c9": {
      "main": [
        [
          {
            "node": "1d0e64b8-18e3-4de2-b089-96deb51b1e9e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "67cee508-c2c0-423e-b1fb-576de026f3ed": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "05262c94-fb9a-4a51-b1c6-8b4981888850": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "385c94f1-27b4-492b-8224-41d26dbb76b4": {
      "ai_tool": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7c646c5f-8c98-49a1-9e37-b04a2fa5b9e3": {
      "ai_languageModel": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "4e810287-ade5-40c6-af4f-5f7df4b3d928": {
      "main": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "59479495-e62b-4e30-b42b-039f82c5aab8": {
      "ai_outputParser": [
        [
          {
            "node": "43e674dd-82e5-49b3-8e4d-f13793e5e6c9",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "a84101b9-165f-47f4-bbc4-8705abfb6e41": {
      "main": [
        [
          {
            "node": "c40e9b06-cac3-4714-b58b-4b60c978f321",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Intelligence Artificielle

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds18
Catégorie1
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Cesar @ Airtop AI

Cesar @ Airtop AI

@cesar-at-airtop

AI Engineer at Airtop AI

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34