Notion vers Calendar insertion multiple d'évènements

Bonsoir,

J’essaie de créer une intégration avec n8n que je trouve génial, mais qui demande pas mal d’effort d’apprentissage.

Mon projet est simple :
J’ai une database Notion dans lequel je m’organise.

Dans Notion : quand j’active la colonne « Event Status » sur « Programmé » je veux que l’entrée de la database soit insérer dans Google calendar.

Quand je modifie des informations dans la database Notion, je veux que cela se répercute dans l’évènement dans Google Calendar.

Pour le moment, j’arrive à faire fonctionner ces deux actions.

Mais, quand j’insère plusieurs pages dans la database Notion, seule la dernière page est insérer dans Google Calendar.

Dans mes recherches, j’ai bien compris qu’il fallait utiliser le node « SplintInBatches », mais j’ai testé dans tous les sens sans succès…

Une petite aide serait la bienvenue…

Merci

Bonjour Adrien,

Pourrais tu partager le workflow que tu as commencé ?

Bonjour Romain,

Merci de t’intéresser à mon problème…
Cependant, j’ai un peu avancé sur mon workflow et amené une solution concernant mon problème d’insertion uniquement du dernier item lors d’une insertion multiple d’items.

En effet, la mise en place du node « GetAll:databasePage » à la place du node « Notion Trigger » permet maintenant l’insertion dans Calendar de plusieurs items simultanés.

Mais, je me heurte à un autre problème, celui de la mise à jour d’un évènement existant dans Calendar.
Pour le moment, quand je procède à une mise à jour d’un évènnement déjà existant dans Calendar, n8n recréer un deuxième évènement mis à jour au-dessus du premier. c’est gênant.
Et là, je cale un peu. Pourrais-tu m’orienter vers une solution ?

Merci encore pour ton aide.

Adrien

Version n8n : 0.215.1
Système : macOS

Voici le workflow :

{
  "meta": {
    "instanceId": ""
  },
  "nodes": [
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "=Event Status",
              "value2": "Program"
            }
          ]
        }
      },
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        120,
        480
      ],
      "id": ""
    },
    {
      "parameters": {
        "calendar": "",
        "start": "={{ $json[\"Echeance\"][\"start\"] }}",
        "end": "={{ $json[\"Echeance\"][\"end\"] }}",
        "additionalFields": {
          "description": "={{$node[\"Notion Trigger\"].json[\"Description\"]}}",
          "id": "",
          "location": "={{$node[\"Notion Trigger\"].json[\"Location\"]}}",
          "summary": "={{ $json[\"Libelle\"] }}"
        }
      },
      "name": "GCal create Event",
      "type": "n8n-nodes-base.googleCalendar",
      "typeVersion": 1,
      "position": [
        400,
        340
      ],
      "id": "",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "3",
          "name": "Gcal account-160223"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "calendar": "xxxxxxxxx@xxxx.fr",
        "eventId": "={{ $node[\"Get Event ID\"].parameter[\"eventId\"] }}",
        "updateFields": {
          "description": "={{ $json.Description }}",
          "end": "={{ $json.Echeance.end }}",
          "location": "={{ $json.Location }}",
          "start": "={{ $json.Echeance.start }}",
          "summary": "={{ $json.Libelle }}"
        }
      },
      "id": "",
      "name": "Gcal Update",
      "type": "n8n-nodes-base.googleCalendar",
      "typeVersion": 1,
      "position": [
        400,
        600
      ],
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "3",
          "name": "Gcal account-160223"
        }
      }
    },
    {
      "parameters": {
        "operation": "get",
        "calendar": {
          "__rl": true,
          "value": "",
          "mode": "list",
          "cachedResultName": "xxxxxxxxx@xxxx.fr"
        },
        "eventId": "={{ $json[\"id\"] }}",
        "options": {}
      },
      "name": "Get Event ID",
      "type": "n8n-nodes-base.googleCalendar",
      "typeVersion": 1,
      "position": [
        620,
        340
      ],
      "id": "",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "3",
          "name": "Gcal account-160223"
        }
      }
    },
    {
      "parameters": {
        "resource": "databasePage",
        "operation": "update",
        "pageId": {
          "__rl": true,
          "value": "={{ $node[\"Notion Trigger (Beta)\"].json[\"id\"] }}",
          "mode": "id",
          "__regex": "^([0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12})"
        }
      },
      "name": "Notion Update Page",
      "type": "n8n-nodes-base.notion",
      "typeVersion": 1,
      "position": [
        840,
        340
      ],
      "id": "",
      "credentials": {
        "notionApi": {
          "id": "1",
          "name": "#15022023-API Key Notion"
        }
      }
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "databaseId": ""
      },
      "id": "",
      "name": "Notion Trigger (Beta)",
      "type": "n8n-nodes-base.notionTrigger",
      "typeVersion": 1,
      "position": [
        -120,
        480
      ],
      "credentials": {
        "notionApi": {
          "id": "1",
          "name": "#15022023-API Key Notion"
        }
      }
    }
  ],
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "GCal create Event",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Gcal Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GCal create Event": {
      "main": [
        [
          {
            "node": "Get Event ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Event ID": {
      "main": [
        [
          {
            "node": "Notion Update Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notion Trigger (Beta)": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}