Workflow n8n

Automatisation Notion vers Vector Store avec n8n : chargement de contenu

Ce workflow n8n a pour objectif d'automatiser le processus de transfert de contenu depuis Notion vers un magasin de vecteurs, facilitant ainsi la gestion et l'analyse des données. Dans un contexte où les entreprises cherchent à optimiser leur gestion de contenu, ce workflow s'avère particulièrement utile pour les équipes de marketing, de développement de produits ou de gestion de projet qui utilisent Notion comme outil principal de documentation. En intégrant ce workflow, les utilisateurs peuvent s'assurer que chaque nouvelle page ajoutée dans Notion est automatiquement traitée et chargée dans un système de stockage de vecteurs, ce qui améliore l'accessibilité et l'analyse des informations.

  • Étape 1 : le déclencheur 'Notion - Page Added Trigger' détecte l'ajout d'une nouvelle page dans Notion.
  • Étape 2 : le contenu de la page est récupéré via le noeud 'Notion - Retrieve Page Content'.
  • Étape 3 : le 'Token Splitter' divise le contenu en segments gérables, tandis que le noeud 'Filter Non-Text Content' élimine les éléments non textuels.
  • Étape 4 : le contenu textuel est ensuite résumé et préparé pour le chargement.
  • Étape 5 : le noeud 'Embeddings Google Gemini' génère des embeddings pour le contenu, et enfin, le 'Pinecone Vector Store' charge ces données dans le magasin de vecteurs. Grâce à cette automatisation n8n, les entreprises peuvent réduire le temps consacré à la gestion manuelle des données et améliorer la qualité de leurs analyses, tout en assurant une mise à jour continue de leur contenu.
Tags clés :automatisationNotionvector storen8ngestion de contenu
Catégorie: Webhook · Tags: automatisation, Notion, vector store, n8n, gestion de contenu0

Workflow n8n Notion, vector store, gestion de contenu : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Notion, vector store, gestion de contenu : détail des nœuds

  • Token Splitter

    Ce noeud divise le texte en tokens selon la taille et le chevauchement spécifiés.

  • Notion - Page Added Trigger

    Ce noeud déclenche le workflow lorsqu'une nouvelle page est ajoutée dans Notion.

  • Notion - Retrieve Page Content

    Ce noeud récupère le contenu d'une page spécifique dans Notion en utilisant l'identifiant du bloc.

  • Filter Non-Text Content

    Ce noeud filtre le contenu pour ne conserver que les éléments textuels selon les conditions définies.

  • Summarize - Concatenate Notion's blocks content

    Ce noeud concatène le contenu des blocs de Notion pour en faire un résumé.

  • Create metadata and load content

    Ce noeud crée des métadonnées et charge le contenu à partir des données JSON fournies.

  • Embeddings Google Gemini

    Ce noeud génère des embeddings en utilisant le modèle Google Gemini spécifié.

  • Pinecone Vector Store

    Ce noeud interagit avec la base de données vectorielle Pinecone pour stocker ou récupérer des vecteurs.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "vOSQYz747gtzj1zF",
  "meta": {
    "instanceId": "d16fb7d4b3eb9b9d4ad2ee6a7fbae593d73e9715e51f583c2a0e9acd1781c08e",
    "templateId": "2290"
  },
  "name": "Prod: Notion to Vector Store - Dimension 768",
  "tags": [
    {
      "id": "Vs70y1mj5s2XzUap",
      "name": "Production",
      "createdAt": "2024-12-24T14:42:00.549Z",
      "updatedAt": "2024-12-24T14:42:00.549Z"
    }
  ],
  "nodes": [
    {
      "id": "6d2579b8-376f-44c3-82e8-9dc608efd98b",
      "name": "Token Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter",
      "position": [
        2200,
        800
      ],
      "parameters": {
        "chunkSize": 256,
        "chunkOverlap": 30
      },
      "typeVersion": 1
    },
    {
      "id": "79b3c147-08ca-4db4-9116-958a868cbfd9",
      "name": "Notion - Page Added Trigger",
      "type": "n8n-nodes-base.notionTrigger",
      "position": [
        1080,
        360
      ],
      "parameters": {
        "simple": false,
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "17b11930-c10f-8000-a545-ece7cade03f9",
          "cachedResultUrl": "https://www.notion.so/17b11930c10f8000a545ece7cade03f9",
          "cachedResultName": "Embeddings"
        }
      },
      "credentials": {
        "notionApi": {
          "id": "oktwaKqpFztx5hYX",
          "name": "Auto: Notion"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e4a6f524-e3f5-4d02-949a-8523f2d21965",
      "name": "Notion - Retrieve Page Content",
      "type": "n8n-nodes-base.notion",
      "position": [
        1300,
        360
      ],
      "parameters": {
        "blockId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json.url }}"
        },
        "resource": "block",
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "notionApi": {
          "id": "oktwaKqpFztx5hYX",
          "name": "Auto: Notion"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "bfebc173-8d4b-4f8f-a625-4622949dd545",
      "name": "Filter Non-Text Content",
      "type": "n8n-nodes-base.filter",
      "position": [
        1520,
        360
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e5b605e5-6d05-4bca-8f19-a859e474620f",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.type }}",
              "rightValue": "image"
            },
            {
              "id": "c7415859-5ffd-4c78-b497-91a3d6303b6f",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.type }}",
              "rightValue": "video"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "b04939f9-355a-430b-a069-b11800066313",
      "name": "Summarize - Concatenate Notion's blocks content",
      "type": "n8n-nodes-base.summarize",
      "position": [
        1780,
        360
      ],
      "parameters": {
        "options": {
          "outputFormat": "separateItems"
        },
        "fieldsToSummarize": {
          "values": [
            {
              "field": "content",
              "separateBy": "\n",
              "aggregation": "concatenate"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0e64dbb5-20c1-4b90-b818-a1726aaf5112",
      "name": "Create metadata and load content",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        2180,
        600
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "pageId",
                "value": "={{ $('Notion - Page Added Trigger').item.json.id }}"
              },
              {
                "name": "createdTime",
                "value": "={{ $('Notion - Page Added Trigger').item.json.created_time }}"
              },
              {
                "name": "pageTitle",
                "value": "={{ $('Notion - Page Added Trigger').item.json.properties.Name.title[0].text.content }}"
              }
            ]
          }
        },
        "jsonData": "={{ $json.concatenated_content }}",
        "jsonMode": "expressionData"
      },
      "typeVersion": 1
    },
    {
      "id": "1f93c3e6-2d53-46b4-9ce9-1350e660ba82",
      "name": "Embeddings Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        1940,
        580
      ],
      "parameters": {
        "modelName": "models/text-embedding-004"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "9idxGZRZ3BAKDoxq",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b804b3fc-161c-40c1-ad9c-3022a09c4a0a",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        2060,
        360
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "notion-pages",
          "cachedResultName": "notion-pages"
        }
      },
      "credentials": {
        "pineconeApi": {
          "id": "R3QGXSEIRTEAZttK",
          "name": "Auto: PineconeApi"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "245f016a-7538-4f45-94f0-d8b7e5c9c891",
  "connections": {
    "Token Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Create metadata and load content",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Filter Non-Text Content": {
      "main": [
        [
          {
            "node": "Summarize - Concatenate Notion's blocks content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Notion - Page Added Trigger": {
      "main": [
        [
          {
            "node": "Notion - Retrieve Page Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notion - Retrieve Page Content": {
      "main": [
        [
          {
            "node": "Filter Non-Text Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create metadata and load content": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Summarize - Concatenate Notion's blocks content": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Notion, vector store, gestion de contenu : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes marketing, aux développeurs de produits et aux gestionnaires de projet qui utilisent Notion pour la documentation. Il est idéal pour les entreprises de taille moyenne à grande cherchant à automatiser leur gestion de contenu sans nécessiter de compétences techniques avancées.

Workflow n8n Notion, vector store, gestion de contenu : problème résolu

Ce workflow résout le problème de la gestion manuelle des données en automatisant le transfert de contenu depuis Notion vers un magasin de vecteurs. Cela élimine les frustrations liées à la saisie manuelle et réduit le risque d'erreurs. Les utilisateurs bénéficient d'un processus fluide et rapide, leur permettant de se concentrer sur l'analyse et l'utilisation des données plutôt que sur leur gestion.

Workflow n8n Notion, vector store, gestion de contenu : étapes du workflow

Étape 1 : le workflow commence avec le déclencheur 'Notion - Page Added Trigger' qui détecte l'ajout d'une nouvelle page.

  • Étape 1 : le noeud 'Notion - Retrieve Page Content' récupère le contenu de cette page.
  • Étape 2 : le 'Token Splitter' divise le contenu en morceaux plus petits pour un traitement efficace.
  • Étape 3 : le noeud 'Filter Non-Text Content' filtre les éléments non textuels.
  • Étape 4 : le contenu textuel est ensuite résumé avec 'Summarize - Concatenate Notion's blocks content'.
  • Étape 5 : le noeud 'Create metadata and load content' prépare les données pour le chargement.
  • Étape 6 : les embeddings sont générés via 'Embeddings Google Gemini'.
  • Étape 7 : enfin, le contenu est chargé dans le 'Pinecone Vector Store'.

Workflow n8n Notion, vector store, gestion de contenu : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'ID de la base de données dans le noeud 'Notion - Page Added Trigger' pour cibler une base spécifique. Ajustez également les paramètres du 'Token Splitter' pour adapter la taille des segments selon vos besoins. Si vous souhaitez utiliser un autre modèle d'embeddings, vous pouvez changer le 'modelName' dans le noeud 'Embeddings Google Gemini'. Assurez-vous que les configurations du 'Pinecone Vector Store' correspondent à votre index existant pour un chargement efficace des données. Enfin, surveillez le flux en utilisant les outils de monitoring intégrés à n8n pour garantir un fonctionnement optimal.