n8n Sharepoint Node File Filter Syntax

So filterst du nach Files in der n8n Sharepoint Node

Die n8n Sharepoint Node ist Fluch und Segen für alle Automatisierer, die gelegentlich ins Microsoft Ökosystem abtauchen müssen. Zum einen stellt die Sharepoint Infrastruktur nämlich viel Speicherplatz und Funktionalität sowie den direkten Draht in die Arbeitsumgebung nahezu aller Mitarbeiter dar. Zum anderen ist die Sharepoint / Graph API eher durchschnittlich dokumentiert und gespikt mit unintuitiven Syntax-Mustern. Insbesondere der List-API Endpunkt ist dabei an vielen Stellen eine Arbeitsbeschaffungsmaßnahme.

Deshalb nehmen wir von THE BIG C Agency die Zeit, dir eine kleine Filter-Syntax Notiz dazulassen.

Sharepoint n8n Node List Items Setup

Der Use Case ist simpel: Wir wollen innerhalb eines n8n Flows alle Dokumente in einem bestimmten Sharepoint-Bereich listen, die in einer bestimmten Time-Range bearbeitet wurden. Dies hilft gelegentlich dabei zu identifizieren an welchen Tagen an welchen Themen gearbeitet wurde.

Dazu braucht es innerhalb des Flows 2 Dinge:

  1. Eine n8n Sharepoint Node
  2. Ein Sharepoint Credential zur Authentifzierung von n8n an der Graph API (OAuth2)

Da die Erstellung von Sharepoint OAuth2 Credentials in Entra ID ein ganz eigenes Cluster-Fest ist, fokussieren wir hier erstmal auf das Setup der Sharepoint Node und gehen davon aus, dass ein Credential vorliegt.

Beachte dabei, dass wir bei der Konfiguration nicht direkt nach Files suchen, sondern eine Sharepoint Liste (Die Dokumenten-Liste auf der Projects-Site) nach einem Datei-Eintrag durchsuchen. Die wichtigen Konfigurationen sind:

  • Resource = Item
  • Operation = Get Many
  • Die Konfiguration der Sharepoint Site und dem List-Namen (Projects => Documents)
n8n Sharepoint node Setup

Sharepoint n8n Node Filter Syntax

Bei einer blanken Anfrage wie dieser gibt uns die Node sowohl Files als auch Folders in der Documents-Liste von allen Zeitpunkten zurück. Passend zu unserem Use Case müssen wir diesen Output nun zum Zeitpunkt der Abfrage vorfiltern. Wir hinterlegen:

  1. Einen Filter auf den Item Type = Document
  2. Einen Daterange Filter (z.B. zwischen 01.01.2026 und 31.01.2026)

Die resultierende Filter-Syntax sollte dabei wie folgt aussehen:

((fields/ContentType eq 'Document') and (fields/Modified ge '2026-01-05T00:00:00Z') and (fields/Modified le '2026-01-31T23:59:59Z'))
  • fields/ContentType drillt dabei in die Fields herein und definiert das Attribut „ContentType“. Fields/Modified beschreibt den letzten Bearbeitungszeitpunkt des Dokuments.
  • Die Klammern (Filter1 = Kondition) isolieren einzelne Filter Statements.
  • Die and / or Operatoren zwischen den Klammern verknüpfen die Expressions.
  • Die Operatoren „ge“ und „le“ sind spezielle Datumsoperatoren, die es erlauben Datumsbereiche zu filtern. „ge“ steht dabei für greater than or equal (größer als oder gleich) und „le“ steht für less than or equal (kleiner als oder gleich).
  • Man beachte zusätzlich die Timestamp Logik der Datumseingaben und die UTC-Angaben der Daterange-Parameter.

Es ist dabei innerhalb eines n8n Flows natürlich zu empfehlen, die Date-Ranges dynamisch bzw. mit Flow-Variablen zu definieren. Ein entsprechender Filter kann dabei wie foglt aussehen:

Dynamische n8n Node Sharepoint Filter

json.startDate und json.endDate sind in diesem Fall in der vorherigen Node definiert worden.

Einschränkungen der n8n Sharepoint Node

Als wäre die Filter-Syntax nicht schon Struggle genug, hat die Sharepoint n8n Node verschiedene Einschränkungen, die die Arbeit mit ihr deutlich erschweren.

  1. Listen bzw. List-Responses mit über 5.000 Einträgen können Probleme verursachen und nicht vollständig returned werden.
  2. Es kann nicht per default auf alle Felder eines Sharepoint-List-Eintrags gefiltert werden. Felder wie Document-Name oder Title müssen häufig manuell zur Indexierung in Sharepoint-Lists konfiguriert werden.
  3. Contains() oder Find() Funktionen funktionieren in den Sharepoint Node Filtern nicht.
  4. Filtern einiger Felder ist in der API nicht vorgesehen und verursacht Fehler-Responses von der Sharepoint Node / API.

An dieser Stelle, ist es wahrscheinlich sogar einfacher den Request mit einer HTTP Node selber zu bauen – just saying.

Wir hoffen, diese kleine Notiz konnte dir 10-60 Minuten Arbeit mit der fragwürdigen Sharepoint Node ersparen. Bis zum nächsten Mal, wenn es wieder heißt: Dinge, die nicht so funktionieren wie man denkt!