Comparateur de devis de fournisseurs avec tableau de résumé intelligent et IA
Ceci est unDocument Extraction, AI Summarizationworkflow d'automatisation du domainecontenant 9 nœuds.Utilise principalement des nœuds comme Wait, Webhook, Function, EmailSend, HttpRequest. Comparer les devis des fournisseurs et exporter vers Google Sheets et e-mail avec Grok AI
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (9)
Catégorie
{
"id": "I7WH7YAkU7thNKGJ",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "Vendor Quotation Comparator with Smart AI Summary Table",
"tags": [],
"nodes": [
{
"id": "f13d14c0-5c12-49dc-8fdc-09374c800045",
"name": "Télécharger les Devis",
"type": "n8n-nodes-base.webhook",
"position": [
-480,
-140
],
"webhookId": "vendor-quote-upload",
"parameters": {
"path": "vendor-quote-upload",
"options": {}
},
"typeVersion": 1
},
{
"id": "3d583a32-3731-4b44-98b0-b90866128a54",
"name": "Extraire les Données des Fichiers",
"type": "n8n-nodes-base.function",
"position": [
-260,
-140
],
"parameters": {
"functionCode": "return items.map(item => {\n const file = item.binary['data'];\n return {\n json: {\n fileName: file.fileName,\n fileData: file.data\n }\n };\n});"
},
"typeVersion": 1
},
{
"id": "bd191a98-5b73-4732-bffa-1c9d09faadb4",
"name": "Synthèse par IA",
"type": "n8n-nodes-base.httpRequest",
"position": [
-40,
-140
],
"parameters": {
"url": "https://api.grok.xai.com/summarize",
"options": {}
},
"typeVersion": 1
},
{
"id": "616fcc3f-2c98-4816-ad3a-5285e47322f5",
"name": "Formater la Synthèse",
"type": "n8n-nodes-base.function",
"position": [
400,
-140
],
"parameters": {
"functionCode": "return items.map(item => {\n const summary = item.json;\n return {\n json: {\n vendor: summary.vendor || 'Unknown',\n price: summary.price || 0,\n deliveryTime: summary.deliveryTime || 'N/A',\n features: summary.features || []\n }\n };\n});"
},
"typeVersion": 1
},
{
"id": "e322b3b3-3b5e-4a2b-b734-6d3c2a8a7a51",
"name": "Journaliser vers Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
620,
-140
],
"parameters": {
"range": "QuotationSummary!A:D",
"options": {},
"sheetId": "your-google-sheet-id",
"operation": "append"
},
"credentials": {
"googleApi": {
"id": "ScSS2KxGQULuPtdy",
"name": "Google Sheets- test"
}
},
"typeVersion": 1
},
{
"id": "9e515cef-d701-47d3-b1a8-6b5e235ab5bf",
"name": "Attendre une Réponse",
"type": "n8n-nodes-base.wait",
"position": [
180,
-140
],
"webhookId": "4d3d095b-db33-4a57-a49b-bb0314c6c54b",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "6a812cc2-8d22-4e08-83af-0f0bafe66ac4",
"name": "Envoyer un email",
"type": "n8n-nodes-base.emailSend",
"position": [
840,
-140
],
"webhookId": "98e88dd5-5189-4451-bdcc-7e4077b7d221",
"parameters": {
"text": "json: {\n vendor: summary.vendor || 'Unknown',\n price: summary.price || 0,\n deliveryTime: summary.deliveryTime || 'N/A',\n features: summary.features || []\n }",
"options": {},
"subject": "Vendor Quotation Comparison",
"toEmail": "team@gmail.com",
"fromEmail": "admin@gmail.com",
"emailFormat": "text"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "54b92d68-e46a-4af9-8fd2-c4cd16c36316",
"name": "Note Adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
300,
-560
],
"parameters": {
"color": 4,
"width": 580,
"height": 260,
"content": "## Minimal Google Sheet Columns (Top 5):\n\n**Vendor Name** – Name of the vendor\n\n**Total Amount** – Final quoted price\n\n**Delivery Timeline** – Estimated delivery time\n\n**AI Summary** – Key points from the quotation\n\n**Status** – e.g., Logged, Reviewed, Selected"
},
"typeVersion": 1
},
{
"id": "ccf6e6a7-6e08-4cc5-ada8-5e70dd688ef1",
"name": "Note Adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-500,
-740
],
"parameters": {
"width": 680,
"height": 560,
"content": "### 🧷 **Notes for Each Node:**\n1. **Upload Quotes** (Webhook Trigger)\n 📌 *Triggers the workflow when vendor quote files are uploaded (via webhook).*\n ➤ Accepts input like PDF, Excel, or other documents.\n\n2. **Extract File Data** (Code/Function Node)\n 📌 *Parses and extracts key data from uploaded quote files.*\n ➤ Converts file contents to structured text or JSON.\n\n3. **AI Summarization** (HTTP Request to Grok API)\n 📌 *Sends the extracted data to an AI model to generate a comparison summary.*\n ➤ Uses Grok or another LLM to create a smart summary.\n\n4. **Wait For Reply** (Wait Node)\n 📌 *Waits for the AI response before proceeding.*\n ➤ Ensures no step runs before the summary is ready.\n\n5. **Format Summary** (Code/Function Node)\n 📌 *Cleans and formats the AI response into a readable comparison table.*\n ➤ Converts raw AI output into structured rows/columns.\n\n6. **Log to Google Sheets** (Google Sheets Node)\n 📌 *Appends the formatted summary into a Google Sheet.*\n ➤ Maintains a log of all vendor comparisons for easy tracking.\n\n7. **Send Email** (Email Node)\n 📌 *Emails the formatted summary to stakeholders or procurement team.*\n ➤ Sends decision-ready content to the right people."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "5b1389b3-0c98-4fb8-8ac1-ba2de9c736c9",
"connections": {
"f13d14c0-5c12-49dc-8fdc-09374c800045": {
"main": [
[
{
"node": "3d583a32-3731-4b44-98b0-b90866128a54",
"type": "main",
"index": 0
}
]
]
},
"616fcc3f-2c98-4816-ad3a-5285e47322f5": {
"main": [
[
{
"node": "e322b3b3-3b5e-4a2b-b734-6d3c2a8a7a51",
"type": "main",
"index": 0
}
]
]
},
"9e515cef-d701-47d3-b1a8-6b5e235ab5bf": {
"main": [
[
{
"node": "616fcc3f-2c98-4816-ad3a-5285e47322f5",
"type": "main",
"index": 0
}
]
]
},
"bd191a98-5b73-4732-bffa-1c9d09faadb4": {
"main": [
[
{
"node": "9e515cef-d701-47d3-b1a8-6b5e235ab5bf",
"type": "main",
"index": 0
}
]
]
},
"3d583a32-3731-4b44-98b0-b90866128a54": {
"main": [
[
{
"node": "bd191a98-5b73-4732-bffa-1c9d09faadb4",
"type": "main",
"index": 0
}
]
]
},
"e322b3b3-3b5e-4a2b-b734-6d3c2a8a7a51": {
"main": [
[
{
"node": "6a812cc2-8d22-4e08-83af-0f0bafe66ac4",
"type": "main",
"index": 0
}
]
]
}
}
}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é ?
Intermédiaire - Extraction de documents, Résumé IA
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.
Workflows recommandés
Oneclick AI Squad
@oneclick-aiThe AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.
Partager ce workflow