This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Agent D'analyse",
"nodes": [
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "sessionID"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
0,
-256
],
"id": "8eb05d9b-112d-433e-96fa-a05e59f48802",
"name": "Simple Memory"
},
{
"parameters": {
"language": "python",
"pythonCode": "import json\n\nraw = items[0]['json']['output']\n\n# Nettoyage du JSON brut\nraw = raw.replace(\"```json\", \"\").replace(\"```\", \"\").strip()\nraw = raw.replace('\\\\n', '\\n').replace('\\\\\"', '\"')\n\n# Conversion en dictionnaire Python\ndata = json.loads(raw)\n\n# Retour avec l'ID Google Sheet ajout\u00e9\nreturn [{\n 'json': {\n 'entreprise_analysee': data['entreprise_analysee'],\n 'icp': data['icp'],\n 'personas': data['personas'],\n 'proposition_valeur': data['proposition_valeur'],\n 'spreadsheetId': data.get('google_sheet', {}).get('spreadsheetId', ''),\n 'sheetId': data.get('google_sheet', {}).get('sheetId', '')\n }\n}]\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
336,
-480
],
"id": "2c082ebc-a356-4847-9b0e-edcbc80f38e7",
"name": "Code in Python (Beta)"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "session_id2"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
920,
40
],
"id": "f35a2e43-c107-4ee2-ae3f-1173f2f18ec8",
"name": "Simple Memory1"
},
{
"parameters": {
"language": "python",
"pythonCode": "import json\n\n# Supposons que 'items' est la sortie de ton agent IA\nraw = items[0]['json']['output']\n\n# Nettoyage des backticks et espaces\nraw = raw.replace(\"```json\", \"\").replace(\"```\", \"\").strip()\n\n# Remplacement des \u00e9chappements pour obtenir un JSON correct\nraw = raw.replace('\\\\n', '').replace('\\\\\"', '\"')\n\n# Chargement du JSON\ndata = json.loads(raw)\n\n# Retour sous forme exploitable\nreturn [{\n 'json': {\n 'clients_potentiels': data\n }\n}]\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1136,
-184
],
"id": "79e8f5ca-16d2-419a-a4ca-135e762d963f",
"name": "Code in Python (Beta)1"
},
{
"parameters": {
"language": "python",
"pythonCode": "import json\n\n# Supposons que 'items' contient le JSON nettoy\u00e9 du n\u0153ud pr\u00e9c\u00e9dent\n# Chaque item contient 'clients_potentiels' sous la cl\u00e9 'json'\nclients_raw = items[0]['json']['clients_potentiels']\n\n# Ici on pr\u00e9pare un format exploitable pour chaque client potentiel\nclients_prepared = []\nfor client in clients_raw:\n clients_prepared.append({\n 'type_client': client.get('type_client'),\n 'code_naf': client.get('code_naf'),\n 'secteur': client.get('secteur'),\n })\n\n# Retour pour le workflow\nreturn [{'json': client} for client in clients_prepared]\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1360,
-184
],
"id": "1413d86d-0f66-4540-aadb-97771570cd6a",
"name": "Code in Python (Beta)2"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
1584,
-184
],
"id": "25212ed7-60f8-45e5-a9d0-6e8e2fb701e7",
"name": "Loop Over Items"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "06e8dbd9-f640-4333-a0e3-808181f3d8d1",
"name": "nom_entreprise",
"value": "={{ $json.etablissement.uniteLegale.denominationUniteLegale }}",
"type": "string"
},
{
"id": "77aa8b34-74bd-4731-a5aa-02a38c9dd66a",
"name": "siren",
"value": "={{ $json.etablissement.siret }}",
"type": "string"
},
{
"id": "8bda4ac9-af4b-43c0-919b-1d654a397efe",
"name": "siret",
"value": "={{ $json.etablissement.siret }}",
"type": "string"
},
{
"id": "a62d2762-025c-4e9f-b4d6-f319d6a60c9c",
"name": "categorie_entreprise",
"value": "={{ $json.etablissement.uniteLegale.categorieEntreprise }}",
"type": "string"
},
{
"id": "a8386e46-513c-4831-8627-c2006d21395e",
"name": "code_naf",
"value": "={{ $json.etablissement.uniteLegale.activitePrincipaleUniteLegale }}",
"type": "string"
},
{
"id": "cdbce7dd-8872-4602-970f-c2c1f083849b",
"name": "etat_administratif",
"value": "={{ $json.etablissement.uniteLegale.etatAdministratifUniteLegale }}",
"type": "string"
},
{
"id": "173d12fe-51c3-4be9-b2c2-2aecb6f480a2",
"name": "nombre_effectif",
"value": "={{ $json.etablissement.uniteLegale.trancheEffectifsUniteLegale }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
2544,
-432
],
"id": "c84309ca-70ee-4f79-9459-506fd424e23a",
"name": "Edit Fields1"
},
{
"parameters": {
"amount": 60
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1808,
-332
],
"id": "98bae1d4-77f4-4cf3-a557-18fa70af0743",
"name": "Wait"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
2032,
-332
],
"id": "53eabfd5-b728-4981-b953-fa5550a549c0",
"name": "Loop Over Items1"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a382cba9-0e0b-4d26-bd06-8836310b7e11",
"name": "numero_voie",
"value": "={{ $json.etablissement.adresseEtablissement.complementAdresseEtablissement }}",
"type": "string"
},
{
"id": "337a0eb1-b3c5-4acc-87cb-c468e11d6ee4",
"name": "type_voie",
"value": "={{ $json.etablissement.adresseEtablissement.typeVoieEtablissement }}",
"type": "string"
},
{
"id": "70adee4b-f965-4625-931e-34b49f456932",
"name": "libelle_voie",
"value": "={{ $json.etablissement.adresseEtablissement.libelleVoieEtablissement }}",
"type": "string"
},
{
"id": "43842b3f-478e-4b6d-a060-6a3dd21a9d5f",
"name": "code_postal",
"value": "={{ $json.etablissement.adresseEtablissement.codePostalEtablissement }}",
"type": "string"
},
{
"id": "15a91257-4c92-406e-b670-db9f2a8a35d9",
"name": "nom_entreprise",
"value": "={{ $json.etablissement.uniteLegale.denominationUniteLegale }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
2544,
-728
],
"id": "d2192cac-2455-40e3-bf7e-40524f9dad65",
"name": "Edit Fields2"
},
{
"parameters": {
"resource": "spreadsheet",
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"options": {}
},
"type": "n8n-nodes-base.googleSheetsTool",
"typeVersion": 4.7,
"position": [
128,
-256
],
"id": "70a24550-8390-4f93-b188-8ff391bbc0e9",
"name": "Create spreadsheet in Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "section_3"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
2968,
-608
],
"id": "12e898f1-ee96-4f0d-8267-b53a8572b1d2",
"name": "Simple Memory2"
},
{
"parameters": {
"language": "python",
"pythonCode": "import json\n\n# Cr\u00e9e une liste pour stocker les r\u00e9sultats\nresults = []\n\nfor item in items:\n output_str = item['json']['output']\n \n # Nettoie les ```json``` et les retours \u00e0 la ligne\n clean = output_str.replace('```json', '').replace('```', '').replace('\\n', ' ').strip()\n \n try:\n data = json.loads(clean)\n results.append({\n 'json': {\n 'nom_entreprise': data.get('nom_entreprise', None),\n 'adresse_complete': data.get('adresse_complete', None)\n }\n })\n except json.JSONDecodeError:\n # Ignore les entr\u00e9es mal form\u00e9es\n continue\n\nreturn results\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3248,
-728
],
"id": "0304f2ce-368a-4997-a6d7-6fe181e45cfd",
"name": "Code in Python (Beta)3"
},
{
"parameters": {
"promptType": "define",
"text": "=Tu es un expert en analyse d'entreprise B2B et en identification de cibles commerciales. Ta mission est d'analyser une entreprise \u00e0 partir des informations fournies (URL de site web OU description textuelle) et de produire une analyse commerciale structur\u00e9e.\n\n## CONTEXTE D'ENTR\u00c9E\nTu recevras soit :\n- Une URL de site web d'entreprise\n- Une description textuelle d'une entreprise\n\n## INSTRUCTIONS D'ANALYSE\n\n1\ufe0f\u20e3 IDENTIFICATION DU TYPE D'INPUT\n- D\u00e9termine si l'input est une URL ou une description textuelle\n- Si URL : r\u00e9cup\u00e8re le contenu du site et analyse-le\n- Si description : analyse directement le texte fourni\n\n2\ufe0f\u20e3 EXTRACTION DES INFORMATIONS CL\u00c9S\n- Entreprise : nom, secteur, taille, business model, offre principale, positionnement, ton de marque, promesse, technologies\n\n3\ufe0f\u20e3 ICP (Ideal Customer Profile)\n- G\u00e9n\u00e8re un profil client id\u00e9al : type d'entreprise cible, secteur, taille cible, effectif min/max, CA estim\u00e9 min/max, zone g\u00e9ographique, niveau de maturit\u00e9, budget estim\u00e9, d\u00e9cisionnaire principal, signaux d'achat\n\n4\ufe0f\u20e3 PERSONAS\n- Cr\u00e9e 3 personas d\u00e9cisionnaires : poste, r\u00f4le, objectifs (max 3), pain points (max 3), budget, canaux pr\u00e9f\u00e9r\u00e9s, d\u00e9clencheurs d'achat\n\n5\ufe0f\u20e3 PROPOSITION DE VALEUR\n- UVP, pitch par persona, mots-cl\u00e9s d\u00e9clencheurs pour prospection\n\n## FORMAT DE SORTIE\n\nRetourne **un objet JSON avec chaque cat\u00e9gorie comme objet s\u00e9par\u00e9**, exactement ainsi :\n\n{\n \"entreprise_analysee\": {\n \"nom\": \"\",\n \"secteur\": \"\",\n \"taille\": \"\",\n \"business_model\": \"\",\n \"offre_principale\": \"\",\n \"positionnement\": \"\",\n \"ton_marque\": \"\",\n \"promesse\": \"\",\n \"technologies\": [],\n \"code_naf\": \"\" je veux que ce soit ecris comme ca : 00.00X (ceci est un example)\n },\n \"icp\": {\n \"type_entreprise\": \"\",\n \"secteur_cible\": \"\",\n \"taille_cible\": \"\",\n \"effectif_min\": 0,\n \"effectif_max\": 0,\n \"ca_estime_min\": \"\",\n \"ca_estime_max\": \"\", //integer\n \"zone_geo\": \"\",\n \"niveau_maturite\": \"\",\n \"budget_estime\": \"\",\n \"decisionnaire_principal\": \"\",\n \"signaux_achat\": []\n },\n \"personas\": {\n \"persona_1\": {\n \"poste\": \"\",\n \"role\": \"\",\n \"objectifs\": [],\n \"pain_points\": [],\n \"budget\": \"\",\n \"canaux_preferes\": [],\n \"declencheurs_achat\": []\n },\n \"persona_2\": {\n \"poste\": \"\",\n \"role\": \"\",\n \"objectifs\": [],\n \"pain_points\": [],\n \"budget\": \"\",\n \"canaux_preferes\": [],\n \"declencheurs_achat\": []\n },\n \"persona_3\": {\n \"poste\": \"\",\n \"role\": \"\",\n \"objectifs\": [],\n \"pain_points\": [],\n \"budget\": \"\",\n \"canaux_preferes\": [],\n \"declencheurs_achat\": []\n }\n },\n \"proposition_valeur\": {\n \"uvp\": \"\",\n \"pitch_persona_1\": \"\",\n \"pitch_persona_2\": \"\",\n \"pitch_persona_3\": \"\",\n \"mots_cles_declencheurs\": []\n }\n}\n\n## R\u00c8GLES IMPORTANTES\n- Sois pr\u00e9cis et factuel dans ton analyse\n- Si une information n'est pas disponible, indique \"Non disponible\"\n- Les personas doivent \u00eatre distincts et compl\u00e9mentaires\n- Le JSON doit \u00eatre valide et sans commentaires\n\n## INPUT \u00c0 ANALYSER\n{{ $json.data }} ou {{ $json.description }}\n\net a la fin j'aimerai que tu cr\u00e9e un google ssheet avec un nom de document personalis\u00e9 avec le nom de l'entreprise au format : List prospects {nom_de_entreprise} et je ne veux pas que tu me donne le liens du google doc\nje ne veux pas que tu me donne le used tool mais si possible donne moi a la toute fin en json dans une categorie a part l'id du document et je veux que le nom du sheet cr\u00e9e soit Sheet1 le sheet name sera sheetName et le document id sera spreadsheetId Et je veux que la colonne ou elle y soit google_sheet ne mets pas le used tools !!!",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
-72,
-480
],
"id": "b462c94c-6956-47de-8f57-a0ea90b8c0e8",
"name": "Agent D'analyse",
"executeOnce": false
},
{
"parameters": {
"promptType": "define",
"text": "=Tu es un expert en intelligence commerciale et automatisation de prospection B2B.\n\nTon r\u00f4le est d\u2019analyser les informations d\u2019une entreprise (fournies au format JSON) pour identifier les **types de clients potentiels** et leurs **codes NAF** les plus pertinents, afin de pouvoir les interroger ensuite via l\u2019**API INSEE SIREN** (appel HTTP Request).\n\nVoici le format d\u2019entr\u00e9e :\n[\n {\n \"nom_entreprise\": \"Nom de l\u2019entreprise\",\n \"secteur\": \"Secteur d\u2019activit\u00e9 principal\",\n \"code_naf\": \"Code(s) NAF de l\u2019entreprise\", // je veux que le code_naf soit ecris de cette facon ci : 77.39Z (je veux que tu mette le '.' apres deux chiffres <- ceci est un example\n \"taille_cible\": \"Taille ou profil des entreprises cibl\u00e9es (PME, ETI, grands groupes, etc.)\",\n \"zone_geo\": \"Zone g\u00e9ographique cible (pays, r\u00e9gions, villes)\",\n \"mots_cles\": \"Liste de mots-cl\u00e9s d\u00e9crivant les besoins, probl\u00e9matiques ou opportunit\u00e9s commerciales\",\n \"budget_cible\": \"Informations sur la capacit\u00e9 ou logique budg\u00e9taire de la cible\"\n }\n]\n\n\u00c0 partir de ces informations, fais les \u00e9tapes suivantes :\n\n1. Identifie les **types d\u2019entreprises clientes potentielles** les plus coh\u00e9rentes (par leur activit\u00e9, taille, besoins ou relation possible avec l\u2019entreprise d\u00e9crite).\n2. D\u00e9duis leurs **codes NAF correspondants** (selon la nomenclature fran\u00e7aise de l\u2019INSEE).\n3. Donne le tout sous **format JSON exploitable** pour une requ\u00eate ult\u00e9rieure vers l\u2019API INSEE SIREN.\n\nLe JSON de sortie doit avoir le format suivant :\n[\n {\n \"type_client\": \"Nom ou cat\u00e9gorie d\u2019entreprise potentielle\",\n \"code_naf\": \"Code NAF correspondant\",\n \"secteur\": \"Secteur d\u2019activit\u00e9 principal du client potentiel\",\n \"raison_pertinence\": \"Br\u00e8ve explication du lien commercial possible avec l\u2019entreprise source\"\n }\n]\n\n\u2699\ufe0f Contraintes :\n- Donne entre **10 et 30 suggestions** pertinentes.\n- \u00c9vite les doublons.\n- Reste centr\u00e9 sur les secteurs li\u00e9s aux mots-cl\u00e9s et au domaine d\u2019activit\u00e9 du JSON fourni.\n- N\u2019inclus aucune phrase d\u2019introduction ou de conclusion, uniquement la donn\u00e9e JSON.\n\nObjectif final : obtenir une **liste JSON de codes NAF clients potentiels** que je peux utiliser directement dans un n\u0153ud \u201cHTTP Request\u201d pour interroger l\u2019API INSEE SIREN et trouver des entreprises correspondantes.\n\nvoici ce qu'on a en input \n {{ $json.nom_entreprise }} , {{ $json.secteur }} , {{ $json.code_naf }}\n, {{ $json.taille_cible }}{{ $json.mots_cles }}, {{ $json.zone_geo }}, {{ $json.budget_cible }}\n",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
784,
-184
],
"id": "c00e8cd3-fa14-41ba-8d56-e4d1281795ab",
"name": "Collecte data de Prospection"
},
{
"parameters": {
"httpMethod": "POST",
"path": "2cfb89f7-417d-4567-87f6-f77ed65bf7c2",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
-1024,
-480
],
"id": "b0278bb4-18bd-4469-b9b8-857b9830a7ff",
"name": "Webhook"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "a0c49654-54d7-4548-8ad6-5320c77717ba",
"leftValue": "={{ $json.url }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-576,
-480
],
"id": "e69a40fc-91ad-4425-94f4-52ad32361cd6",
"name": "If"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "8990d9e5-8af8-4506-8583-21b2c351e968",
"name": "url",
"value": "={{ $json.body.url }}",
"type": "string"
},
{
"id": "2dd69b45-618e-48c1-9180-04cb320c1d68",
"name": "desciption",
"value": "={{ $json.body.description }}",
"type": "string"
},
{
"id": "7732daa4-bd2f-437d-800e-5243f8fa8824",
"name": "voice_chat",
"value": "={{ $json.body.voiceTranscript }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-800,
-480
],
"id": "e6aac502-6201-40f9-bd2c-48b6449a99f8",
"name": "Edit Fields"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
-128,
-256
],
"id": "64b08ad7-a0ba-414f-a7de-cca6ce1aee23",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=Tu es un assistant IA charg\u00e9 de scorer des entreprises pour identifier celles qui sont les plus susceptibles d\u2019acheter ArenaSales, un SaaS B2B de prospection commerciale.\n\nTu recevras un tableau JSON avec des entreprises au format Sirene. Chaque entreprise contient au minimum : \n- siren, siret, nom\n- uniteLegale : activitePrincipaleUniteLegale, categorieEntreprise, trancheEffectifsUniteLegale, etatAdministratifUniteLegale, dateCreationUniteLegale\n- adresseEtablissement : codePostalEtablissement\n\nTa mission :\n1. Pour chaque entreprise, calculer un score de 0 \u00e0 100 selon ces crit\u00e8res et pond\u00e9rations exactes :\n - **Secteur / NAF (30%)**\n - NAF cible : 61.90Z, 6201Z, 6202A, 6202B, 7022Z, 7311Z \u2192 30 points si correspond, sinon 0.\n - **Taille (20%)**\n - PME (10\u2011249) \u2192 20 points\n - ETI (250\u20114999) \u2192 15 points\n - TPE (1\u20119) \u2192 5 points\n - Autres \u2192 0 points\n - **Cat\u00e9gorie entreprise (10%)**\n - PME ou ETI \u2192 10 points\n - TPE \u2192 5 points\n - Autres \u2192 0 points\n - **\u00c2ge de l\u2019entreprise (10%)**\n - Entre 2 et 15 ans \u2192 10 points\n - <2 ans \u2192 3 points\n - >15 ans \u2192 5 points\n - **\u00c9tat (15%)**\n - Actif \u2192 15 points\n - Autres \u2192 0 points\n - **Localisation (15%)**\n - Code postal correspondant \u00e0 la zone cible \u2192 15 points\n - Autres r\u00e9gions \u2192 5 points\n\n2. Additionner les points pour obtenir un score final 0-100.\n\n3. G\u00e9n\u00e9rer un JSON de sortie pour chaque entreprise :\n```json\n{\n \"siren\": \"...\",\n \"siret\": \"...\",\n \"nom\": \"...\",\n \"score\": 0-100,\n \"raison_score\": \"Explication br\u00e8ve, crit\u00e8re par crit\u00e8re, du calcul du score\"\n}\n//je ne veux pas que tu me mette ici ton think je veux juste le resultat",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
2480,
-136
],
"id": "e3a43fa8-7932-4aa4-a70f-b29140b50eb2",
"name": "AI Agent"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
2488,
88
],
"id": "849b945e-ffde-44c1-9482-327b7c53b1ce",
"name": "Google Gemini Chat Model2",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "section_5"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
2616,
88
],
"id": "c9c3ea42-480f-4436-b277-b775dafc8907",
"name": "Simple Memory3"
},
{
"parameters": {
"jsCode": "// On r\u00e9cup\u00e8re le JSON d'entr\u00e9e (analyse entreprise)\nconst input = $json;\n\n// S\u00e9curit\u00e9 : v\u00e9rification des champs\nconst entreprise = input.entreprise_analysee || {};\nconst icp = input.icp || {};\nconst proposition_valeur = input.proposition_valeur || {};\n\n// Pr\u00e9paration des crit\u00e8res de recherche\nconst search_criteria = {\n nom_entreprise: entreprise.nom || \"Non disponible\",\n secteur: entreprise.secteur || icp.secteur_cible || \"Non disponible\",\n code_naf: entreprise.code_naf || \"Non disponible\",\n taille_cible: icp.taille_cible || \"Non disponible\",\n zone_geo: icp.zone_geo || \"France\",\n mots_cles: (proposition_valeur.mots_cles_declencheurs || []).join(\", \"),\n budget_cible: icp.budget_estime || \"Non disponible\",\n};\n\n// Log utile pour le debug\nconsole.log(\"\ud83d\udd0d Crit\u00e8res extraits :\", search_criteria);\n\n// Sortie pour le prochain n\u0153ud\nreturn [{ json: search_criteria }];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
560,
-184
],
"id": "c34d197f-7168-4cc6-abef-e5afce9b4f06",
"name": "Code in JavaScript"
},
{
"parameters": {
"domain": "={{ $json.url }}",
"limit": 10,
"filters": {}
},
"type": "n8n-nodes-base.hunter",
"typeVersion": 1,
"position": [
3760,
-432
],
"id": "3d3d24b8-3937-401b-bd3b-0e244ebc2efc",
"name": "Hunter",
"credentials": {
"hunterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "// On r\u00e9cup\u00e8re tous les items d'entr\u00e9e\nconst items = $input.all();\n\n// On cr\u00e9e un tableau pour stocker les r\u00e9sultats\nconst results = [];\n\nfor (const item of items) {\n let response = item.json.output?.[0]?.content?.[0]?.text || \"\";\n\n let data;\n try {\n // Tente de parser le JSON renvoy\u00e9 par l'IA\n data = JSON.parse(response);\n } catch (e) {\n // Si ce n'est pas du JSON valide, on passe un objet par d\u00e9faut\n results.push({\n json: {\n nom_entreprise: item.json.nom_entreprise || \"Inconnu\",\n url: \"Non trouv\u00e9\",\n url_valide: false\n }\n });\n continue;\n }\n\n // Si le JSON est un tableau d'entreprises\n if (Array.isArray(data)) {\n for (const entreprise of data) {\n const urlTrouvee = entreprise.url && entreprise.url.startsWith(\"http\");\n\n results.push({\n json: {\n nom_entreprise: entreprise.nom_entreprise || item.json.nom_entreprise || \"Inconnu\",\n url: entreprise.url || \"Non trouv\u00e9\",\n url_valide: !!urlTrouvee\n }\n });\n }\n } else {\n // Si c'est un seul objet\n const urlTrouvee = data.url && data.url.startsWith(\"http\");\n\n results.push({\n json: {\n nom_entreprise: data.nom_entreprise || item.json.nom_entreprise || \"Inconnu\",\n url: data.url || \"Non trouv\u00e9\",\n url_valide: !!urlTrouvee\n }\n });\n }\n}\n\n// Retourne tous les r\u00e9sultats \u00e0 n8n\nreturn results;\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3536,
-432
],
"id": "f908c34c-393d-4e91-8dac-a8fe946ce495",
"name": "Code in JavaScript1"
},
{
"parameters": {
"tableId": "analyses_entreprises",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "nom_entreprise",
"fieldValue": "={{ $json.entreprise_analysee.nom }}"
},
{
"fieldId": "secteur",
"fieldValue": "={{ $json.entreprise_analysee.secteur }}"
},
{
"fieldId": "taille",
"fieldValue": "={{ $json.entreprise_analysee.taille }}"
},
{
"fieldId": "business_model",
"fieldValue": "={{ $json.entreprise_analysee.business_model }}"
},
{
"fieldId": "offre_principale",
"fieldValue": "={{ $json.entreprise_analysee.offre_principale }}"
},
{
"fieldId": "positionnement",
"fieldValue": "={{ $json.entreprise_analysee.positionnement }}"
},
{
"fieldId": "ton_marque",
"fieldValue": "={{ $json.entreprise_analysee.ton_marque }}"
},
{
"fieldId": "promesse",
"fieldValue": "={{ $json.entreprise_analysee.promesse }}"
},
{
"fieldId": "technologies",
"fieldValue": "={{ JSON.stringify($json.entreprise_analysee.technologies) }}"
},
{
"fieldId": "code_naf",
"fieldValue": "={{ $json.entreprise_analysee.code_naf }}"
},
{
"fieldId": "icp_type_entreprise",
"fieldValue": "={{ $json.icp.type_entreprise }}"
},
{
"fieldId": "icp_secteur_cible",
"fieldValue": "={{ $json.icp.secteur_cible }}"
},
{
"fieldId": "icp_taille_cible",
"fieldValue": "={{ $json.icp.taille_cible }}"
},
{
"fieldId": "icp_effectif_min",
"fieldValue": "={{ $json.icp.effectif_min }}"
},
{
"fieldId": "icp_effectif_max",
"fieldValue": "={{ $json.icp.ca_estime_min }}"
},
{
"fieldId": "icp_ca_estime_max",
"fieldValue": "={{ $json.icp.ca_estime_max }}"
},
{
"fieldId": "icp_zone_geo",
"fieldValue": "={{ $json.icp.zone_geo }}"
},
{
"fieldId": "icp_niveau_maturite",
"fieldValue": "={{ $json.icp.niveau_maturite }}"
},
{
"fieldId": "icp_budget_estime",
"fieldValue": "={{ $json.icp.budget_estime }}"
},
{
"fieldId": "icp_decisionnaire_principal",
"fieldValue": "={{ $json.icp.decisionnaire_principal }}"
},
{
"fieldId": "icp_signaux_achat",
"fieldValue": "={{ JSON.stringify($json.icp.signaux_achat) }}"
},
{
"fieldId": "uvp",
"fieldValue": "={{ $json.proposition_valeur.uvp }}"
},
{
"fieldId": "pitch_persona_1",
"fieldValue": "={{ $json.proposition_valeur.pitch_persona_1 }}"
},
{
"fieldId": "pitch_persona_2",
"fieldValue": "={{ $json.proposition_valeur.pitch_persona_2 }}"
},
{
"fieldId": "pitch_persona_3",
"fieldValue": "={{ $json.proposition_valeur.pitch_persona_3 }}"
},
{
"fieldId": "mots_cles_declencheurs",
"fieldValue": "={{ JSON.stringify($json.proposition_valeur.mots_cles_declencheurs) }}"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
560,
-576
],
"id": "728ddc94-9d77-4405-8e01-74e8a505c5ab",
"name": "Create a row",
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"tableId": "personas",
"dataToSend": "autoMapInputData",
"inputsToIgnore": "={{ $json.twitter }}{{ $json.first_name }}{{ $json.phone_number }}{{ $json.last_name }}{{ $json.position }}{{ $json.department }}{{ $json.position_raw }}{{ $json.linkedin }} {{ $json.seniority }} {{ $json.department }}{{ $json.verification }}"
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
3984,
-432
],
"id": "8755e27a-2875-4c7f-a7d0-fd5a1f7ea998",
"name": "Create a row1",
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
2840,
-608
],
"id": "10233722-82d8-4406-9dfb-b61bc5264799",
"name": "Google Gemini Chat Model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"tableId": "adresses_entreprises",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "latitude",
"fieldValue": "={{ $json.lattitude }}"
},
{
"fieldId": "longitude",
"fieldValue": "={{ $json.longtitude }}"
},
{
"fieldId": "adresse",
"fieldValue": "={{ $json.display_name }}"
},
{
"fieldId": "nom_entreprise",
"fieldValue": "={{ $json.nom_entreprise }}"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
3984,
-728
],
"id": "1ee32969-0dfb-4d60-9c6f-8f9ce9ab7fb7",
"name": "Create a row2",
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "a0a31652-2b25-4888-a623-cfbb9899b76f",
"leftValue": "={{ $json.etablissement.uniteLegale.denominationUniteLegale }}",
"rightValue": "=null",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
}
},
{
"id": "1ad00b24-cd5d-4fa4-bb9e-dd47336a1b96",
"leftValue": "={{ $json.etablissement.uniteLegale.denominationUniteLegale }}",
"rightValue": "[ND]",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "or"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
2256,
-476
],
"id": "9ed464d6-676b-4d93-985b-67349de2b459",
"name": "If1"
},
{
"parameters": {
"url": "https://nominatim.openstreetmap.org/search",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $json.adresse_complete }}"
},
{
"name": "format",
"value": "json"
},
{
"name": "limit",
"value": "3"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "n8n-workflow (tikinas.oughlis@epitech.eu)"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
3536,
-728
],
"id": "95fa6143-d1e8-4a4f-a4f2-86d0c11d43a8",
"name": "openstreetmap",
"retryOnFail": true
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "3323b15b-a4a8-48f9-b3d7-a3534228169c",
"name": "lattitude",
"value": "={{ $json.lat }}",
"type": "string"
},
{
"id": "f5d8eea8-88bc-4af8-9727-d396b09c40db",
"name": "longtitude",
"value": "={{ $json.lon }}",
"type": "string"
},
{
"id": "22ec793f-004b-496a-b1dd-371444653237",
"name": "display_name",
"value": "={{ $json.display_name }}",
"type": "string"
},
{
"id": "b1affe02-5213-46f2-9b35-7f7aecf52d7f",
"name": "nom_entreprise",
"value": "={{ $('Code in Python (Beta)3').item.json.nom_entreprise }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
3760,
-728
],
"id": "96b8ef17-b295-41cc-8523-29fccc7303ba",
"name": "Edit Fields3"
},
{
"parameters": {
"url": "https://api.insee.fr/api-sirene/3.11/siret?ApiKeyAuth=c97301a4-c943-45b4-b51e-31eb85c4af57",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "=activitePrincipaleUniteLegale:{{ $json.code_naf }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json;charset=utf-8;qs=1"
},
{
"name": "X-INSEE-Api-Key-Integration",
"value": "c97301a4-c943-45b4-b51e-31eb85c4af57"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
1808,
-136
],
"id": "da85cd08-200c-4ffc-973b-a0349c9c8c38",
"name": "Api Siren 1"
},
{
"parameters": {
"url": "=https://api.insee.fr/api-sirene/3.11/siret/{{ $json.etablissements[0].siret }}?ApiKeyAuth=c97301a4-c943-45b4-b51e-31eb85c4af57",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "=activitePrincipaleUniteLegale:{{ $json.code_naf }} "
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json;charset=utf-8;qs=1"
},
{
"name": "X-INSEE-Api-Key-Integration",
"value": "c97301a4-c943-45b4-b51e-31eb85c4af57"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
2256,
-284
],
"id": "c4385b4a-1ddc-496a-96a2-5e9701024236",
"name": "Api Siren 2"
},
{
"parameters": {
"promptType": "define",
"text": "=Tu es un assistant qui re\u00e7oit des informations d\u2019adresse s\u00e9par\u00e9es et doit les transformer en une seule adresse lisible pour g\u00e9ocodage. \n\nInputs disponibles : \n- numero : {{ $json.numero_voie }}\n- type : {{ $json.type_voie }}\n- libelle : {{ $json.libelle_voie }}\n- codePostal : {{ $json.code_postal }}\n\nInstructions : \n1. Concat\u00e8ne tous les champs non vides dans l\u2019ordre logique : numero, type, libelle, codePostal, ville, pays. \n2. S\u00e9pare chaque \u00e9l\u00e9ment par un espace. \n3. Ne laisse pas d\u2019espaces doubles ou de champs vides. \n5. Renvoie uniquement un JSON au format suivant pour chaque entreprise : \n\n{\n \"nom_entreprise\": \"{{ $json.nom_entreprise }}\",\n \"adresse_complete\": \"<adresse compl\u00e8te construite>\",\n\n}",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3,
"position": [
2832,
-832
],
"id": "54316bb8-dafa-44b9-af21-386287678c34",
"name": "Generation d'adresse"
},
{
"parameters": {
"modelId": {
"__rl": true,
"value": "gpt-4",
"mode": "list",
"cachedResultName": "GPT-4"
},
"responses": {
"values": [
{
"content": "=Tu es un assistant sp\u00e9cialis\u00e9 dans la recherche d'URLs d'entreprises.\n\nT\u00c2CHE : Pour chaque nom d'entreprise fourni, trouve l'URL officielle de son site web.\n\nENTREPRISES \u00c0 TRAITER :\n{{ $json.nom_entreprise }}\n\nINSTRUCTIONS :\n1. Utilise le web search pour trouver l'URL officielle de chaque entreprise\n2. V\u00e9rifie que l'URL commence par https:// ou http://\n3. Assure-toi que c'est bien le site officiel de l'entreprise\n\nFORMAT DE SORTIE (OBLIGATOIRE) :\nR\u00e9ponds UNIQUEMENT avec un JSON valide dans ce format exact, sans aucun texte avant ou apr\u00e8s :\n\n[\n {\n \"nom_entreprise\": \"Nom de l'entreprise\",\n \"url\": \"https://example.com\"\n }\n]\n\nSi tu ne trouves pas l'URL d'une entreprise, mets \"Non trouv\u00e9\" comme valeur.\n\nIMPORTANT : \n- Ne mets AUCUN texte explicatif\n- Ne mets PAS de balises markdown (```)\n- R\u00e9ponds UNIQUEMENT avec le JSON\n- Traite TOUTES les entreprises en une seule r\u00e9ponse"
}
]
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2,
"position": [
3184,
-432
],
"id": "9154ea4b-8ea5-4a1a-a85a-35a98c33c76a",
"name": "URL search",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "={{ $json.url }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
-352,
-552
],
"id": "2bbc046e-ec01-46fa-ab1a-0dac8b1b2142",
"name": "link to html"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
792,
40
],
"id": "9bcb382c-87f7-4cb6-be05-6bb6ddab2208",
"name": "Google Gemini Chat Model1",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sendTo": "=tikinasoughliss@gmail.com",
"subject": "liste de prospects ",
"emailType": "text",
"message": "Bonjour,\n\nVotre analyse est disponible ici : https://docs.google.com/spreadsheets/d/VOTRE_SHEET_ID \n\nCordialement, \nL'\u00e9quipe Arena Sales",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{
"property": "personas_data"
}
]
}
}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
4656,
-432
],
"id": "91cca902-d7c9-4a0a-ae3d-489517b2d12c",
"name": "Send a message",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "34c1f663-783a-4cd7-8038-7b740c386a7b",
"name": "id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "144de470-11ed-4cae-90ae-18ec2b51f077",
"name": "first_name",
"value": "={{ $json.first_name }}",
"type": "string"
},
{
"id": "31318720-c00a-4d3d-9fd7-8a59fa67a025",
"name": "last_name",
"value": "={{ $json.last_name }}",
"type": "string"
},
{
"id": "2128e952-5727-4569-a0ef-ae85c37aa295",
"name": "position",
"value": "={{ $json.position }}",
"type": "string"
},
{
"id": "487a995a-d189-4ec1-9101-e4ea1066ee22",
"name": "department",
"value": "={{ $json.department }}",
"type": "string"
},
{
"id": "6a9d9052-a9cb-4763-be1d-efe114655ae3",
"name": "phone_number",
"value": "={{ $json.phone_number }}",
"type": "string"
},
{
"id": "580fce4f-04d4-4246-985a-1b2556fa38ba",
"name": "email",
"value": "={{ $json.value }}",
"type": "string"
},
{
"id": "0dc01a40-26ff-4b81-bf96-13c56e587f01",
"name": "linkedin",
"value": "={{ $json.linkedin }}",
"type": "string"
},
{
"id": "6929ab04-d454-49d7-a4e4-564ee578977b",
"name": "nom_entreprise",
"value": "={{ $json.nom_entreprise }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
4208,
-432
],
"id": "ec9f7e2a-d016-43ca-a83d-c9be1e856981",
"name": "Edit Fields4"
},
{
"parameters": {
"binaryPropertyName": "personas_data",
"options": {}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
4432,
-432
],
"id": "85bb9a2d-9827-4862-bbd7-3fc62c002a7a",
"name": "Convert to File1"
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "={{ $('Code in Python (Beta)').item.json.spreadsheetId }}",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Sheet1",
"mode": "name"
},
"columns": {
"mappingMode": "autoMapInputData",
"value": {},
"matchingColumns": [],
"schema": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
2896,
-432
],
"id": "01155ba2-e485-4be8-9e5c-3f4351d3d967",
"name": "Append row in sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Simple Memory": {
"ai_memory": [
[
{
"node": "Agent D'analyse",
"type": "ai_memory",
"index": 0
}
]
]
},
"Code in Python (Beta)": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
},
{
"node": "Create a row",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory1": {
"ai_memory": [
[
{
"node": "Collecte data de Prospection",
"type": "ai_memory",
"index": 0
}
]
]
},
"Code in Python (Beta)1": {
"main": [
[
{
"node": "Code in Python (Beta)2",
"type": "main",
"index": 0
}
]
]
},
"Code in Python (Beta)2": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
],
[
{
"node": "Api Siren 1",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[
{
"node": "If1",
"type": "main",
"index": 0
}
],
[
{
"node": "Api Siren 2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Create spreadsheet in Google Sheets": {
"ai_tool": [
[
{
"node": "Agent D'analyse",
"type": "ai_tool",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "Generation d'adresse",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory2": {
"ai_memory": [
[
{
"node": "Generation d'adresse",
"type": "ai_memory",
"index": 0
}
]
]
},
"Agent D'analyse": {
"main": [
[
{
"node": "Code in Python (Beta)",
"type": "main",
"index": 0
}
]
]
},
"Collecte data de Prospection": {
"main": [
[
{
"node": "Code in Python (Beta)1",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "link to html",
"type": "main",
"index": 0
}
],
[
{
"node": "Agent D'analyse",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Agent D'analyse",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google Gemini Chat Model2": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Simple Memory3": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Collecte data de Prospection",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript1": {
"main": [
[
{
"node": "Hunter",
"type": "main",
"index": 0
}
]
]
},
"Hunter": {
"main": [
[
{
"node": "Create a row1",
"type": "main",
"index": 0
}
]
]
},
"Create a row": {
"main": [
[]
]
},
"AI Agent": {
"main": [
[]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Generation d'adresse",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Code in Python (Beta)3": {
"main": [
[
{
"node": "openstreetmap",
"type": "main",
"index": 0
}
]
]
},
"If1": {
"main": [
[],
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
},
{
"node": "Edit Fields2",
"type": "main",
"index": 0
},
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"openstreetmap": {
"main": [
[
{
"node": "Edit Fields3",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields3": {
"main": [
[
{
"node": "Create a row2",
"type": "main",
"index": 0
}
]
]
},
"Api Siren 1": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Api Siren 2": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Generation d'adresse": {
"main": [
[
{
"node": "Code in Python (Beta)3",
"type": "main",
"index": 0
}
]
]
},
"URL search": {
"main": [
[
{
"node": "Code in JavaScript1",
"type": "main",
"index": 0
}
]
]
},
"link to html": {
"main": [
[
{
"node": "Agent D'analyse",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "Collecte data de Prospection",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Create a row1": {
"main": [
[
{
"node": "Edit Fields4",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields4": {
"main": [
[
{
"node": "Convert to File1",
"type": "main",
"index": 0
}
]
]
},
"Convert to File1": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Append row in sheet": {
"main": [
[
{
"node": "URL search",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "ba0ac2db-49b7-40e7-9aa7-7f27b2430c22",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "olbZbH0Y12NtuBho",
"tags": []
}
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.
gmailOAuth2googlePalmApigoogleSheetsOAuth2ApihunterApiopenAiApisupabaseApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Agent D'analyse. Uses memoryBufferWindow, googleSheetsTool, agent, lmChatOpenAi. Webhook trigger; 42 nodes.
Source: https://github.com/Tikinasss/arena_sales/blob/cca226f794fa4fce0e02073059a0afdf32c4f592/ArenaAI.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.
VEP WAPP. Uses openAi, lmChatOpenAi, toolCalculator, agent. Webhook trigger; 100 nodes.
⏺ 🚀 How it works
Aura-bot. Uses postgres, lmChatOpenAi, memoryBufferWindow, httpRequest. Webhook trigger; 82 nodes.
Enhance your support, onboarding, and internal knowledge workflows with an intelligent RAG-powered chatbot that responds using live data stored in Google Sheets. 🤖📚 Built for teams that rely on struct
leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.