[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fde\u002Fdocs\u002Fpipelines\u002Foperateurs":3,"docs-nav-de":1354},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":1348,"_id":1349,"_source":1350,"_file":1351,"_stem":1352,"_extension":1353},"\u002Fde\u002Fdocs\u002Fpipelines\u002Foperateurs","pipelines",false,"","Deterministische Operatoren","Aktionsknoten, die das LLM umgehen — HTTP, DB, Transformationen, Berechnungen.",{"type":11,"children":12,"toc":1324},"root",[13,36,43,55,60,66,80,85,198,216,263,272,277,342,354,389,527,584,636,660,669,674,797,803,858,867,886,927,936,972,977,982,1014,1026,1035,1061,1067,1086,1091,1153,1166,1213,1254,1259,1265,1270,1298],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27,29,34],{"type":19,"value":20},"text","Ein ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"Operator",{"type":19,"value":28}," ist ein Knoten, der eine ",{"type":14,"tag":22,"props":30,"children":31},{},[32],{"type":19,"value":33},"deterministische",{"type":19,"value":35}," Aktion ausführt: kein LLM, kein Zufall. Für eine gegebene Eingabe ist die Ausgabe vorhersehbar.",{"type":14,"tag":37,"props":38,"children":40},"h2",{"id":39},"warum-sie-verwenden",[41],{"type":19,"value":42},"Warum sie verwenden",{"type":14,"tag":15,"props":44,"children":45},{},[46,48,53],{"type":19,"value":47},"Jede Logik, die explizit geschrieben werden kann, ",{"type":14,"tag":22,"props":49,"children":50},{},[51],{"type":19,"value":52},"sollte",{"type":19,"value":54}," es auch. Ein LLM, das „eine Summe berechnet\" oder „ein Datum formatiert\", ist ein Anti-Muster: Es ist langsamer, teurer und kann Fehler machen.",{"type":14,"tag":15,"props":56,"children":57},{},[58],{"type":19,"value":59},"Praktische Regel: Wenn Sie die Funktion in 5 Zeilen Python schreiben können, ist es ein Operator — kein Agent.",{"type":14,"tag":37,"props":61,"children":63},{"id":62},"verfügbare-typen",[64],{"type":19,"value":65},"Verfügbare Typen",{"type":14,"tag":67,"props":68,"children":70},"h3",{"id":69},"webhook_action-http-aufruf",[71,78],{"type":14,"tag":72,"props":73,"children":75},"code",{"className":74},[],[76],{"type":19,"value":77},"webhook_action",{"type":19,"value":79}," (HTTP-Aufruf)",{"type":14,"tag":15,"props":81,"children":82},{},[83],{"type":19,"value":84},"Führt einen ausgehenden HTTP-Aufruf aus. Konfiguration:",{"type":14,"tag":86,"props":87,"children":88},"ul",{},[89,95,145,180,193],{"type":14,"tag":90,"props":91,"children":92},"li",{},[93],{"type":19,"value":94},"URL, Methode, Header und Query-Parameter (mit Platzhaltern aus dem Kontext)",{"type":14,"tag":90,"props":96,"children":97},{},[98,100,106,108,114,115,121,122,128,129,135,137,143],{"type":19,"value":99},"Body: ",{"type":14,"tag":72,"props":101,"children":103},{"className":102},[],[104],{"type":19,"value":105},"none",{"type":19,"value":107},", ",{"type":14,"tag":72,"props":109,"children":111},{"className":110},[],[112],{"type":19,"value":113},"json",{"type":19,"value":107},{"type":14,"tag":72,"props":116,"children":118},{"className":117},[],[119],{"type":19,"value":120},"form",{"type":19,"value":107},{"type":14,"tag":72,"props":123,"children":125},{"className":124},[],[126],{"type":19,"value":127},"raw",{"type":19,"value":107},{"type":14,"tag":72,"props":130,"children":132},{"className":131},[],[133],{"type":19,"value":134},"multipart",{"type":19,"value":136}," oder ",{"type":14,"tag":72,"props":138,"children":140},{"className":139},[],[141],{"type":19,"value":142},"mapper",{"type":19,"value":144}," (Body, der mit der Mapping-Sprache zusammengestellt wird, siehe unten)",{"type":14,"tag":90,"props":146,"children":147},{},[148,150,156,157,163,164,170,172,178],{"type":19,"value":149},"Authentifizierung: ",{"type":14,"tag":72,"props":151,"children":153},{"className":152},[],[154],{"type":19,"value":155},"bearer",{"type":19,"value":107},{"type":14,"tag":72,"props":158,"children":160},{"className":159},[],[161],{"type":19,"value":162},"basic",{"type":19,"value":107},{"type":14,"tag":72,"props":165,"children":167},{"className":166},[],[168],{"type":19,"value":169},"api_key_header",{"type":19,"value":171}," (benutzerdefinierter Header) oder ",{"type":14,"tag":72,"props":173,"children":175},{"className":174},[],[176],{"type":19,"value":177},"oauth2",{"type":19,"value":179}," (siehe unten)",{"type":14,"tag":90,"props":181,"children":182},{},[183,185,191],{"type":19,"value":184},"Akzeptierte HTTP-Status, maximale Dauer und Anzahl der Wiederholungen (",{"type":14,"tag":72,"props":186,"children":188},{"className":187},[],[189],{"type":19,"value":190},"retry_count",{"type":19,"value":192},", standardmäßig 0, exponentielles Backoff)",{"type":14,"tag":90,"props":194,"children":195},{},[196],{"type":19,"value":197},"Ausgabeschlüssel, unter dem die Antwort veröffentlicht wird",{"type":14,"tag":67,"props":199,"children":201},{"id":200},"database_query-database_manage",[202,208,210],{"type":14,"tag":72,"props":203,"children":205},{"className":204},[],[206],{"type":19,"value":207},"database_query",{"type":19,"value":209}," \u002F ",{"type":14,"tag":72,"props":211,"children":213},{"className":212},[],[214],{"type":19,"value":215},"database_manage",{"type":14,"tag":15,"props":217,"children":218},{},[219,224,226,231,233,239,241,246,248,254,255,261],{"type":14,"tag":72,"props":220,"children":222},{"className":221},[],[223],{"type":19,"value":207},{"type":19,"value":225}," liest Zeilen aus einer No-Code-Datenbank von betool oder aus einer externen Datenbank (Postgres, MySQL, MongoDB), die unter ",{"type":14,"tag":22,"props":227,"children":228},{},[229],{"type":19,"value":230},"Anwendungen → Datenbanken → Verbindungen",{"type":19,"value":232}," registriert ist: ",{"type":14,"tag":72,"props":234,"children":236},{"className":235},[],[237],{"type":19,"value":238},"where",{"type":19,"value":240},"-Filter, Volltextsuche, Limit. ",{"type":14,"tag":72,"props":242,"children":244},{"className":243},[],[245],{"type":19,"value":215},{"type":19,"value":247}," schreibt darin (",{"type":14,"tag":72,"props":249,"children":251},{"className":250},[],[252],{"type":19,"value":253},"create",{"type":19,"value":136},{"type":14,"tag":72,"props":256,"children":258},{"className":257},[],[259],{"type":19,"value":260},"update",{"type":19,"value":262},"), wobei der Inhalt mit der Mapping-Sprache zusammengestellt wird.",{"type":14,"tag":67,"props":264,"children":266},{"id":265},"file_transform",[267],{"type":14,"tag":72,"props":268,"children":270},{"className":269},[],[271],{"type":19,"value":265},{"type":14,"tag":15,"props":273,"children":274},{},[275],{"type":19,"value":276},"Transformiert eine Datei. Integrierte Transformatoren:",{"type":14,"tag":86,"props":278,"children":279},{},[280,291,302,313,331],{"type":14,"tag":90,"props":281,"children":282},{},[283,289],{"type":14,"tag":72,"props":284,"children":286},{"className":285},[],[287],{"type":19,"value":288},"pdf_extract_text",{"type":19,"value":290}," — auswählbarer Text eines PDF (kein OCR: ein gescanntes PDF liefert keinen Text)",{"type":14,"tag":90,"props":292,"children":293},{},[294,300],{"type":14,"tag":72,"props":295,"children":297},{"className":296},[],[298],{"type":19,"value":299},"pdf_split",{"type":19,"value":301}," — Aufteilen eines PDF",{"type":14,"tag":90,"props":303,"children":304},{},[305,311],{"type":14,"tag":72,"props":306,"children":308},{"className":307},[],[309],{"type":19,"value":310},"pdf_to_images",{"type":19,"value":312}," — Rendern der Seiten eines PDF als Bilder",{"type":14,"tag":90,"props":314,"children":315},{},[316,322,323,329],{"type":14,"tag":72,"props":317,"children":319},{"className":318},[],[320],{"type":19,"value":321},"xlsx_to_json",{"type":19,"value":209},{"type":14,"tag":72,"props":324,"children":326},{"className":325},[],[327],{"type":19,"value":328},"xls_to_json",{"type":19,"value":330}," — Lesen einer Excel-Arbeitsmappe als JSON-Zeilen",{"type":14,"tag":90,"props":332,"children":333},{},[334,340],{"type":14,"tag":72,"props":335,"children":337},{"className":336},[],[338],{"type":19,"value":339},"unzip",{"type":19,"value":341}," — Entpacken eines Archivs",{"type":14,"tag":67,"props":343,"children":345},{"id":344},"file_link-download-links",[346,352],{"type":14,"tag":72,"props":347,"children":349},{"className":348},[],[350],{"type":19,"value":351},"file_link",{"type":19,"value":353}," (Download-Links)",{"type":14,"tag":15,"props":355,"children":356},{},[357,359,364,366,371,373,378,380,387],{"type":19,"value":358},"Liefert Dateien ",{"type":14,"tag":22,"props":360,"children":361},{},[362],{"type":19,"value":363},"per Link",{"type":19,"value":365}," an Dritte, ohne ihren Inhalt in den Fluss zu legen: Für jede Datei einer Liste im Kontext (die Dateien eines Downloads, empfangene Anhänge, die Fotos einer Inspektion …) erzeugt der Knoten ",{"type":14,"tag":22,"props":367,"children":368},{},[369],{"type":19,"value":370},"Download-Links",{"type":19,"value":372}," einen ",{"type":14,"tag":22,"props":374,"children":375},{},[376],{"type":19,"value":377},"signierten Download-Link",{"type":19,"value":379}," mit begrenzter Gültigkeit. Ein nachfolgender Schritt stellt zusammen, was der Empfänger erhält: Antwort eines ",{"type":14,"tag":381,"props":382,"children":384},"a",{"href":383},"\u002Fde\u002Fdocs\u002Fcanaux\u002Fwebhook",[385],{"type":19,"value":386},"eingehenden Webhooks",{"type":19,"value":388},", E-Mail …",{"type":14,"tag":390,"props":391,"children":392},"table",{},[393,412],{"type":14,"tag":394,"props":395,"children":396},"thead",{},[397],{"type":14,"tag":398,"props":399,"children":400},"tr",{},[401,407],{"type":14,"tag":402,"props":403,"children":404},"th",{},[405],{"type":19,"value":406},"Einstellung",{"type":14,"tag":402,"props":408,"children":409},{},[410],{"type":19,"value":411},"Rolle",{"type":14,"tag":413,"props":414,"children":415},"tbody",{},[416,446,466,479,499],{"type":14,"tag":398,"props":417,"children":418},{},[419,433],{"type":14,"tag":420,"props":421,"children":422},"td",{},[423,425,431],{"type":19,"value":424},"Liste der zu verlinkenden Dateien (",{"type":14,"tag":72,"props":426,"children":428},{"className":427},[],[429],{"type":19,"value":430},"input_path",{"type":19,"value":432},")",{"type":14,"tag":420,"props":434,"children":435},{},[436,438,444],{"type":19,"value":437},"Wo die Liste im Fluss gelesen wird — jeder Eintrag trägt ",{"type":14,"tag":72,"props":439,"children":441},{"className":440},[],[442],{"type":19,"value":443},"path",{"type":19,"value":445}," (Schlüssel der Datei im Speicher der Organisation) und optional einen Dateinamen. Pflichtfeld.",{"type":14,"tag":398,"props":447,"children":448},{},[449,461],{"type":14,"tag":420,"props":450,"children":451},{},[452,454,460],{"type":19,"value":453},"Erlaubte Unterordner (",{"type":14,"tag":72,"props":455,"children":457},{"className":456},[],[458],{"type":19,"value":459},"path_scope",{"type":19,"value":432},{"type":14,"tag":420,"props":462,"children":463},{},[464],{"type":19,"value":465},"Optional: beschränkt die signierbaren Dateien auf bestimmte Unterordner des Speichers der Organisation.",{"type":14,"tag":398,"props":467,"children":468},{},[469,474],{"type":14,"tag":420,"props":470,"children":471},{},[472],{"type":19,"value":473},"Gültigkeit der Links",{"type":14,"tag":420,"props":475,"children":476},{},[477],{"type":19,"value":478},"Standardmäßig 15 Minuten, von 1 Minute bis 24 Stunden.",{"type":14,"tag":398,"props":480,"children":481},{},[482,494],{"type":14,"tag":420,"props":483,"children":484},{},[485,487,493],{"type":19,"value":486},"Maximale Anzahl Dateien (",{"type":14,"tag":72,"props":488,"children":490},{"className":489},[],[491],{"type":19,"value":492},"max_files",{"type":19,"value":432},{"type":14,"tag":420,"props":495,"children":496},{},[497],{"type":19,"value":498},"Standardmäßig 20, höchstens 100.",{"type":14,"tag":398,"props":500,"children":501},{},[502,514],{"type":14,"tag":420,"props":503,"children":504},{},[505,507,513],{"type":19,"value":506},"Ausgabeschlüssel (",{"type":14,"tag":72,"props":508,"children":510},{"className":509},[],[511],{"type":19,"value":512},"output_key",{"type":19,"value":432},{"type":14,"tag":420,"props":515,"children":516},{},[517,519,525],{"type":19,"value":518},"Standard ",{"type":14,"tag":72,"props":520,"children":522},{"className":521},[],[523],{"type":19,"value":524},"linked.files",{"type":19,"value":526},".",{"type":14,"tag":15,"props":528,"children":529},{},[530,532,538,540,546,548,554,556,562,563,569,570,576,577,583],{"type":19,"value":531},"Die Ausgabe enthält ",{"type":14,"tag":72,"props":533,"children":535},{"className":534},[],[536],{"type":19,"value":537},"files",{"type":19,"value":539}," (jeden ursprünglichen Eintrag, ergänzt um ",{"type":14,"tag":72,"props":541,"children":543},{"className":542},[],[544],{"type":19,"value":545},"url",{"type":19,"value":547}," und ",{"type":14,"tag":72,"props":549,"children":551},{"className":550},[],[552],{"type":19,"value":553},"expires_at",{"type":19,"value":555},"), ",{"type":14,"tag":72,"props":557,"children":559},{"className":558},[],[560],{"type":19,"value":561},"file_count",{"type":19,"value":107},{"type":14,"tag":72,"props":564,"children":566},{"className":565},[],[567],{"type":19,"value":568},"failed",{"type":19,"value":107},{"type":14,"tag":72,"props":571,"children":573},{"className":572},[],[574],{"type":19,"value":575},"requested",{"type":19,"value":547},{"type":14,"tag":72,"props":578,"children":580},{"className":579},[],[581],{"type":19,"value":582},"ttl_seconds",{"type":19,"value":526},{"type":14,"tag":86,"props":585,"children":586},{},[587,597,607,624],{"type":14,"tag":90,"props":588,"children":589},{},[590,595],{"type":14,"tag":22,"props":591,"children":592},{},[593],{"type":19,"value":594},"Nie außerhalb Ihrer Organisation",{"type":19,"value":596},": Eine Datei außerhalb ihres Speichers wird abgelehnt.",{"type":14,"tag":90,"props":598,"children":599},{},[600,605],{"type":14,"tag":22,"props":601,"children":602},{},[603],{"type":19,"value":604},"Existenz vor dem Signieren geprüft",{"type":19,"value":606},": Eine fehlende Datei wird nie signiert.",{"type":14,"tag":90,"props":608,"children":609},{},[610,615,617,622],{"type":14,"tag":22,"props":611,"children":612},{},[613],{"type":19,"value":614},"Nichts ausgelassen",{"type":19,"value":616},": Eine nicht verlinkte Datei (außerhalb des Bereichs, nicht gefunden, über der Obergrenze, Signatur unmöglich) erscheint in ",{"type":14,"tag":72,"props":618,"children":620},{"className":619},[],[621],{"type":19,"value":568},{"type":19,"value":623}," mit ihrem Grund.",{"type":14,"tag":90,"props":625,"children":626},{},[627,629,634],{"type":19,"value":628},"Die Links werden ",{"type":14,"tag":22,"props":630,"children":631},{},[632],{"type":19,"value":633},"bei jeder Ausführung neu erstellt",{"type":19,"value":635},", und jeder ausgegebene Link wird protokolliert.",{"type":14,"tag":637,"props":638,"children":640},"alert",{"type":639},"warning",[641],{"type":14,"tag":15,"props":642,"children":643},{},[644,646,651,653,658],{"type":19,"value":645},"Der Link ist ein ",{"type":14,"tag":22,"props":647,"children":648},{},[649],{"type":19,"value":650},"Inhaberlink",{"type":19,"value":652},": Wer ihn besitzt, lädt die Datei bis zu ihrem Ablauf herunter. Halten Sie die Gültigkeit kurz, und füllen Sie die ",{"type":14,"tag":22,"props":654,"children":655},{},[656],{"type":19,"value":657},"erlaubten Unterordner",{"type":19,"value":659}," aus, sobald die Liste aus einem änderbaren Datum stammt (einer Tabellenzeile) — sonst könnte jeder, der dieses Datum schreiben kann, einen Link zu einer beliebigen Datei der Organisation signieren lassen.",{"type":14,"tag":67,"props":661,"children":663},{"id":662},"compute",[664],{"type":14,"tag":72,"props":665,"children":667},{"className":666},[],[668],{"type":19,"value":662},{"type":14,"tag":15,"props":670,"children":671},{},[672],{"type":19,"value":673},"Deterministische Berechnungen über die Daten des Kontexts. Integrierte Operationen:",{"type":14,"tag":86,"props":675,"children":676},{},[677,709,720,731,742,753,764,775,786],{"type":14,"tag":90,"props":678,"children":679},{},[680,686,688,694,695,701,702,708],{"type":14,"tag":72,"props":681,"children":683},{"className":682},[],[684],{"type":19,"value":685},"column_stats",{"type":19,"value":687}," — pro Spalte einer Zeilenliste, wie viele einen bestimmten Wert haben (",{"type":14,"tag":72,"props":689,"children":691},{"className":690},[],[692],{"type":19,"value":693},"count",{"type":19,"value":107},{"type":14,"tag":72,"props":696,"children":698},{"className":697},[],[699],{"type":19,"value":700},"total",{"type":19,"value":107},{"type":14,"tag":72,"props":703,"children":705},{"className":704},[],[706],{"type":19,"value":707},"pct",{"type":19,"value":432},{"type":14,"tag":90,"props":710,"children":711},{},[712,718],{"type":14,"tag":72,"props":713,"children":715},{"className":714},[],[716],{"type":19,"value":717},"compose_text",{"type":19,"value":719}," — Zusammenstellung eines Texts aus einer Vorlage und Werten des Flusses",{"type":14,"tag":90,"props":721,"children":722},{},[723,729],{"type":14,"tag":72,"props":724,"children":726},{"className":725},[],[727],{"type":19,"value":728},"regex_extract",{"type":19,"value":730}," — Extraktion von Werten per regulärem Ausdruck",{"type":14,"tag":90,"props":732,"children":733},{},[734,740],{"type":14,"tag":72,"props":735,"children":737},{"className":736},[],[738],{"type":19,"value":739},"select_by_substring",{"type":19,"value":741}," — Aufteilung einer Liste in Gruppen nach Prädikaten „enthält \u002F enthält nicht“",{"type":14,"tag":90,"props":743,"children":744},{},[745,751],{"type":14,"tag":72,"props":746,"children":748},{"className":747},[],[749],{"type":19,"value":750},"list_compare",{"type":19,"value":752}," — Konsistenz mehrerer Listen über einen Pivotschlüssel",{"type":14,"tag":90,"props":754,"children":755},{},[756,762],{"type":14,"tag":72,"props":757,"children":759},{"className":758},[],[760],{"type":19,"value":761},"multi_source_compliance",{"type":19,"value":763}," — Konformitätsaudit über mehrere Dimensionen und Quellen",{"type":14,"tag":90,"props":765,"children":766},{},[767,773],{"type":14,"tag":72,"props":768,"children":770},{"className":769},[],[771],{"type":19,"value":772},"contact_extract",{"type":19,"value":774}," — in einem Text gefundene E-Mail-Adressen und Telefonnummern, mit ihrer Herkunft",{"type":14,"tag":90,"props":776,"children":777},{},[778,784],{"type":14,"tag":72,"props":779,"children":781},{"className":780},[],[782],{"type":19,"value":783},"free_slots",{"type":19,"value":785}," — freie Zeitfenster, abgeleitet aus belegten Zeiträumen",{"type":14,"tag":90,"props":787,"children":788},{},[789,795],{"type":14,"tag":72,"props":790,"children":792},{"className":791},[],[793],{"type":19,"value":794},"url_expand",{"type":19,"value":796}," — Zusammensetzen von URLs aus Basen und Pfaden",{"type":14,"tag":67,"props":798,"children":800},{"id":799},"mapping-sprache",[801],{"type":19,"value":802},"Mapping-Sprache",{"type":14,"tag":15,"props":804,"children":805},{},[806,808,814,815,821,822,828,830,835,837,842,844,849,851,857],{"type":19,"value":807},"Das ist kein Knoten: Es ist die Sprache, die eine Ausgabe-Nutzlast aus den Daten des Kontexts zusammenstellt (Funktionen ",{"type":14,"tag":72,"props":809,"children":811},{"className":810},[],[812],{"type":19,"value":813},"$now",{"type":19,"value":107},{"type":14,"tag":72,"props":816,"children":818},{"className":817},[],[819],{"type":19,"value":820},"$uuid",{"type":19,"value":107},{"type":14,"tag":72,"props":823,"children":825},{"className":824},[],[826],{"type":19,"value":827},"$concat",{"type":19,"value":829}," …). Sie dient dem Body ",{"type":14,"tag":72,"props":831,"children":833},{"className":832},[],[834],{"type":19,"value":142},{"type":19,"value":836}," von ",{"type":14,"tag":72,"props":838,"children":840},{"className":839},[],[841],{"type":19,"value":77},{"type":19,"value":843},", dem von ",{"type":14,"tag":72,"props":845,"children":847},{"className":846},[],[848],{"type":19,"value":215},{"type":19,"value":850}," geschriebenen Inhalt und den Variablen eines ausgehenden Anrufs ",{"type":14,"tag":72,"props":852,"children":854},{"className":853},[],[855],{"type":19,"value":856},"phone_call",{"type":19,"value":526},{"type":14,"tag":67,"props":859,"children":861},{"id":860},"data_to_file",[862],{"type":14,"tag":72,"props":863,"children":865},{"className":864},[],[866],{"type":19,"value":860},{"type":14,"tag":15,"props":868,"children":869},{},[870,872,884],{"type":19,"value":871},"Erzeugt eine ",{"type":14,"tag":22,"props":873,"children":874},{},[875,877,883],{"type":19,"value":876},"Excel-Datei (",{"type":14,"tag":72,"props":878,"children":880},{"className":879},[],[881],{"type":19,"value":882},".xlsx",{"type":19,"value":432},{"type":19,"value":885}," aus Daten des Kontexts — einer Liste von Zeilen, einem Raster oder mehreren Listen (je ein Tabellenblatt). Optionen: Dateiname (mit Vorlagen nutzbar), Name des Tabellenblatts, Auswahl und Reihenfolge der Spalten, Kopfzeile. Die Datei wird im Speicher Ihrer Organisation abgelegt, bereit zum Versand per E-Mail oder zur Ablage in einem Drive.",{"type":14,"tag":15,"props":887,"children":888},{},[889,891,897,898,904,905,911,912,918,920,925],{"type":19,"value":890},"Aus Sicherheitsgründen werden Zellen, die mit ",{"type":14,"tag":72,"props":892,"children":894},{"className":893},[],[895],{"type":19,"value":896},"=",{"type":19,"value":107},{"type":14,"tag":72,"props":899,"children":901},{"className":900},[],[902],{"type":19,"value":903},"+",{"type":19,"value":107},{"type":14,"tag":72,"props":906,"children":908},{"className":907},[],[909],{"type":19,"value":910},"-",{"type":19,"value":136},{"type":14,"tag":72,"props":913,"children":915},{"className":914},[],[916],{"type":19,"value":917},"@",{"type":19,"value":919}," beginnen, standardmäßig als ",{"type":14,"tag":22,"props":921,"children":922},{},[923],{"type":19,"value":924},"Text",{"type":19,"value":926}," geschrieben (keine eingeschleuste Formel). Wenn die Grenzen von Excel eine Kürzung erzwingen, wird die Datei als gekürzt markiert.",{"type":14,"tag":67,"props":928,"children":930},{"id":929},"web_fetch",[931],{"type":14,"tag":72,"props":932,"children":934},{"className":933},[],[935],{"type":19,"value":929},{"type":14,"tag":15,"props":937,"children":938},{},[939,941,946,948,954,956,962,964,970],{"type":19,"value":940},"Liest eine oder mehrere ",{"type":14,"tag":22,"props":942,"children":943},{},[944],{"type":19,"value":945},"Webseiten",{"type":19,"value":947}," und veröffentlicht ihren lesbaren Text im Kontext (Standard ",{"type":14,"tag":72,"props":949,"children":951},{"className":950},[],[952],{"type":19,"value":953},"web.pages",{"type":19,"value":955},"). Einstellungen: Anzahl der Seiten, Parallelität, Timeout, maximale Größe. Das ",{"type":14,"tag":72,"props":957,"children":959},{"className":958},[],[960],{"type":19,"value":961},"robots.txt",{"type":19,"value":963},"-Ergebnis wird stets berechnet und gemeldet; angewendet wird es nur, wenn Sie es aktivieren (",{"type":14,"tag":72,"props":965,"children":967},{"className":966},[],[968],{"type":19,"value":969},"respect_robots",{"type":19,"value":971},").",{"type":14,"tag":15,"props":973,"children":974},{},[975],{"type":19,"value":976},"Seiten, die ausschließlich per JavaScript gerendert werden, werden nicht ausgeführt: Nur das ausgelieferte HTML wird gelesen. Eine fehlgeschlagene Seite wird im Ergebnis gemeldet, ohne die Pipeline scheitern zu lassen.",{"type":14,"tag":15,"props":978,"children":979},{},[980],{"type":19,"value":981},"Auf Agent-Seite gibt es zwei gleichwertige Werkzeuge:",{"type":14,"tag":86,"props":983,"children":984},{},[985,996],{"type":14,"tag":90,"props":986,"children":987},{},[988,994],{"type":14,"tag":72,"props":989,"children":991},{"className":990},[],[992],{"type":19,"value":993},"web_scrape.fetch_page",{"type":19,"value":995}," — liest eine Seite (Titel, Text, gefundene E-Mail- und Telefon-Links).",{"type":14,"tag":90,"props":997,"children":998},{},[999,1005,1007,1012],{"type":14,"tag":72,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":19,"value":1004},"web_search.search",{"type":19,"value":1006}," — ",{"type":14,"tag":22,"props":1008,"children":1009},{},[1010],{"type":19,"value":1011},"Websuche",{"type":19,"value":1013}," über eine von der Plattform selbst gehostete SearXNG-Suchmaschine: bis zu 5 Ergebnisse (Titel, URL, Auszug).",{"type":14,"tag":15,"props":1015,"children":1016},{},[1017,1019,1024],{"type":19,"value":1018},"Alle Web-Lesezugriffe durchlaufen denselben ",{"type":14,"tag":22,"props":1020,"children":1021},{},[1022],{"type":19,"value":1023},"Anti-SSRF",{"type":19,"value":1025},"-Schutz: interne, private und Cloud-Metadaten-Adressen werden nach der DNS-Auflösung abgelehnt, Weiterleitungen bei jedem Sprung erneut geprüft.",{"type":14,"tag":67,"props":1027,"children":1029},{"id":1028},"code_step",[1030],{"type":14,"tag":72,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":19,"value":1028},{"type":14,"tag":15,"props":1036,"children":1037},{},[1038,1040,1045,1047,1052,1054,1060],{"type":19,"value":1039},"Wenn deterministische Logik über das hinausgeht, was ",{"type":14,"tag":72,"props":1041,"children":1043},{"className":1042},[],[1044],{"type":19,"value":662},{"type":19,"value":1046}," bewältigen kann, führt ein ",{"type":14,"tag":22,"props":1048,"children":1049},{},[1050],{"type":19,"value":1051},"Code-Step",{"type":19,"value":1053}," benutzerdefinierten Code in einer Starlark-Sandbox aus — direkt editierbar, ab dem Speichern ausgeführt und durch eine Werkzeug-Allowlist begrenzt. Siehe ",{"type":14,"tag":381,"props":1055,"children":1057},{"href":1056},"\u002Fde\u002Fdocs\u002Fpipelines\u002Fcode-step",[1058],{"type":19,"value":1059},"Code-Steps",{"type":19,"value":526},{"type":14,"tag":37,"props":1062,"children":1064},{"id":1063},"authentifizierung-secrets",[1065],{"type":19,"value":1066},"Authentifizierung & Secrets",{"type":14,"tag":15,"props":1068,"children":1069},{},[1070,1072,1077,1079,1084],{"type":19,"value":1071},"Operatoren, die mit einem externen System kommunizieren (HTTP, DB), referenzieren ein in der Organisation registriertes ",{"type":14,"tag":22,"props":1073,"children":1074},{},[1075],{"type":19,"value":1076},"Konto",{"type":19,"value":1078},". Zugangsdaten sind innerhalb der Pipeline selbst ",{"type":14,"tag":22,"props":1080,"children":1081},{},[1082],{"type":19,"value":1083},"niemals",{"type":19,"value":1085}," sichtbar — es wird nur ein Kontoname referenziert.",{"type":14,"tag":15,"props":1087,"children":1088},{},[1089],{"type":19,"value":1090},"Dadurch erfordert die Rotation eines Passworts keine Änderungen an irgendeiner Pipeline.",{"type":14,"tag":15,"props":1092,"children":1093},{},[1094,1096,1101,1103,1108,1110,1115,1117,1122,1124,1129,1131,1136,1138,1144,1146,1152],{"type":19,"value":1095},"Wird ein Secret direkt in einem Knoten eingegeben (",{"type":14,"tag":72,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":19,"value":155},{"type":19,"value":1102},"-Token, ",{"type":14,"tag":72,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":19,"value":162},{"type":19,"value":1109},"-Passwort oder ",{"type":14,"tag":72,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":19,"value":169},{"type":19,"value":1116},"-Wert von ",{"type":14,"tag":72,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":19,"value":77},{"type":19,"value":1123},", Passwort einer verschlüsselten PDF-Datei oder eines verschlüsselten Archivs für ",{"type":14,"tag":72,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":19,"value":265},{"type":19,"value":1130},"), wird es ab dem Speichern ",{"type":14,"tag":22,"props":1132,"children":1133},{},[1134],{"type":19,"value":1135},"maskiert",{"type":19,"value":1137},": Editor, API und MCP-Tools zeigen davon nur eine Markierung. Siehe ",{"type":14,"tag":381,"props":1139,"children":1141},{"href":1140},"\u002Fde\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",[1142],{"type":19,"value":1143},"Der visuelle Editor",{"type":19,"value":1145},", Abschnitt ",{"type":14,"tag":1147,"props":1148,"children":1149},"em",{},[1150],{"type":19,"value":1151},"Secrets",{"type":19,"value":526},{"type":14,"tag":67,"props":1154,"children":1156},{"id":1155},"ausgehendes-oauth2-client_credentials",[1157,1159,1165],{"type":19,"value":1158},"Ausgehendes OAuth2 (",{"type":14,"tag":72,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":19,"value":1164},"client_credentials",{"type":19,"value":432},{"type":14,"tag":15,"props":1167,"children":1168},{},[1169,1171,1176,1178,1183,1184,1190,1191,1197,1198,1204,1205,1211],{"type":19,"value":1170},"Für APIs, die ein OAuth2-Token erfordern (Enterprise-Cloud, ERP, Drittanbieter), unterstützt der HTTP-Operator den ",{"type":14,"tag":72,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":19,"value":177},{"type":19,"value":1177},"-Modus. Sie registrieren in der Organisation ein ",{"type":14,"tag":22,"props":1179,"children":1180},{},[1181],{"type":19,"value":1182},"OAuth2-Zugangsdatum",{"type":19,"value":1006},{"type":14,"tag":72,"props":1185,"children":1187},{"className":1186},[],[1188],{"type":19,"value":1189},"token_url",{"type":19,"value":107},{"type":14,"tag":72,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":19,"value":1196},"client_id",{"type":19,"value":107},{"type":14,"tag":72,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":19,"value":1203},"client_secret",{"type":19,"value":107},{"type":14,"tag":72,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":19,"value":1210},"scope",{"type":19,"value":1212}," — und der Knoten referenziert nur eine nicht sensible Kennung.",{"type":14,"tag":15,"props":1214,"children":1215},{},[1216,1218,1223,1225,1230,1232,1236,1238,1244,1246,1252],{"type":19,"value":1217},"Zum Zeitpunkt des Aufrufs holt betool ein Token und verwendet es wieder, solange es gültig bleibt; es wird bei Ablauf ",{"type":14,"tag":22,"props":1219,"children":1220},{},[1221],{"type":19,"value":1222},"lazy aktualisiert",{"type":19,"value":1224},", ohne Hintergrundaufgabe. Das ",{"type":14,"tag":72,"props":1226,"children":1228},{"className":1227},[],[1229],{"type":19,"value":1203},{"type":19,"value":1231}," wird von der Administrations-API ",{"type":14,"tag":22,"props":1233,"children":1234},{},[1235],{"type":19,"value":1083},{"type":19,"value":1237}," zurückgegeben (nur ein ",{"type":14,"tag":72,"props":1239,"children":1241},{"className":1240},[],[1242],{"type":19,"value":1243},"has_secret",{"type":19,"value":1245},"-Indikator wird bereitgestellt), und das erhaltene Token wird als ",{"type":14,"tag":72,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":19,"value":1251},"Authorization: Bearer …",{"type":19,"value":1253}," an die ausgehende Anfrage gesetzt.",{"type":14,"tag":15,"props":1255,"children":1256},{},[1257],{"type":19,"value":1258},"Die Rotation des Secrets nach einer anbieterseitigen Rotation erfordert keine Pipeline-Änderungen: Der nächste Aufruf aktualisiert es automatisch.",{"type":14,"tag":37,"props":1260,"children":1262},{"id":1261},"idempotenz",[1263],{"type":19,"value":1264},"Idempotenz",{"type":14,"tag":15,"props":1266,"children":1267},{},[1268],{"type":19,"value":1269},"Jeder Operator, der einen Seiteneffekt erzeugt (HTTP POST, DB INSERT, E-Mail-Versand), muss auf der Zielseite auf Idempotenz ausgelegt sein. Empfohlene Praxis:",{"type":14,"tag":86,"props":1271,"children":1272},{},[1273,1293],{"type":14,"tag":90,"props":1274,"children":1275},{},[1276,1278,1284,1286,1292],{"type":19,"value":1277},"Fügen Sie einen ",{"type":14,"tag":72,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":19,"value":1283},"idempotency_key",{"type":19,"value":1285}," in die Nutzlast ein (typischerweise ",{"type":14,"tag":72,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":19,"value":1291},"exchange_id",{"type":19,"value":971},{"type":14,"tag":90,"props":1294,"children":1295},{},[1296],{"type":19,"value":1297},"Prüfen Sie auf der Zielseite, ob der Schlüssel bereits verarbeitet wurde.",{"type":14,"tag":15,"props":1299,"children":1300},{},[1301,1303,1308,1310,1315,1317,1322],{"type":19,"value":1302},"Abgesehen von den Wiederholungen, die Sie explizit für ",{"type":14,"tag":72,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":19,"value":77},{"type":19,"value":1309}," konfigurieren (",{"type":14,"tag":72,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":19,"value":190},{"type":19,"value":1316},"), wiederholt betool einen fehlgeschlagenen Operator nicht automatisch: Es ist die Verantwortung Ihrer Pipeline, die Wiederholungsstrategie zu orchestrieren. ",{"type":14,"tag":72,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":19,"value":77},{"type":19,"value":1323}," ist zudem gegen doppelten Versand bei einem internen Re-Dispatch geschützt: Eine bereits mit akzeptiertem Status zugestellte Anfrage wird nicht erneut gesendet.",{"title":7,"searchDepth":1325,"depth":1325,"links":1326},2,[1327,1328,1343,1347],{"id":39,"depth":1325,"text":42},{"id":62,"depth":1325,"text":65,"children":1329},[1330,1333,1335,1336,1338,1339,1340,1341,1342],{"id":69,"depth":1331,"text":1332},3,"webhook_action (HTTP-Aufruf)",{"id":200,"depth":1331,"text":1334},"database_query \u002F database_manage",{"id":265,"depth":1331,"text":265},{"id":344,"depth":1331,"text":1337},"file_link (Download-Links)",{"id":662,"depth":1331,"text":662},{"id":799,"depth":1331,"text":802},{"id":860,"depth":1331,"text":860},{"id":929,"depth":1331,"text":929},{"id":1028,"depth":1331,"text":1028},{"id":1063,"depth":1325,"text":1066,"children":1344},[1345],{"id":1155,"depth":1331,"text":1346},"Ausgehendes OAuth2 (client_credentials)",{"id":1261,"depth":1325,"text":1264},"markdown","content:de:docs:3.pipelines:3.operateurs.md","content","de\u002Fdocs\u002F3.pipelines\u002F3.operateurs.md","de\u002Fdocs\u002F3.pipelines\u002F3.operateurs","md",[1355],{"title":1356,"_path":1357,"children":1358},"De","\u002Fde",[1359],{"title":1360,"_path":1361,"children":1362},"Docs","\u002Fde\u002Fdocs",[1363,1376,1403,1425,1438,1454,1467,1528],{"title":1364,"_path":1365,"children":1366},"Erste Schritte","\u002Fde\u002Fdocs\u002Fdemarrer",[1367,1370,1373],{"title":1368,"_path":1369},"Willkommen","\u002Fde\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":1371,"_path":1372},"Ein Konto erstellen","\u002Fde\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":1374,"_path":1375},"Einen LLM-Schlüssel anbinden","\u002Fde\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":1377,"_path":1378,"children":1379},"Kanäle","\u002Fde\u002Fdocs\u002Fcanaux",[1380,1383,1386,1389,1392,1394,1397,1400],{"title":1381,"_path":1382},"Überblick über die Kanäle","\u002Fde\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":1384,"_path":1385},"Echtzeit-Telefonie","\u002Fde\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":1387,"_path":1388},"E-Mail","\u002Fde\u002Fdocs\u002Fcanaux\u002Femail",{"title":1390,"_path":1391},"Web-Chat-Widget","\u002Fde\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":1393,"_path":383},"HTTP-Webhook",{"title":1395,"_path":1396},"Messaging (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fde\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":1398,"_path":1399},"Meta Lead Ads","\u002Fde\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":1401,"_path":1402},"Schedule (Cron)","\u002Fde\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":1404,"_path":1405,"children":1406},"Pipelines","\u002Fde\u002Fdocs\u002Fpipelines",[1407,1408,1411,1412,1415,1416,1419,1422],{"title":1143,"_path":1140},{"title":1409,"_path":1410},"KI-Agents","\u002Fde\u002Fdocs\u002Fpipelines\u002Fagents",{"title":8,"_path":4},{"title":1413,"_path":1414},"Flusssteuerung","\u002Fde\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":1059,"_path":1056},{"title":1417,"_path":1418},"Sub-Pipelines","\u002Fde\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":1420,"_path":1421},"No-Code-Aktionen","\u002Fde\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":1423,"_path":1424},"Wissensdatenbank","\u002Fde\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":1426,"_path":1427,"children":1428},"Überwachung","\u002Fde\u002Fdocs\u002Fsupervision",[1429,1432,1435],{"title":1430,"_path":1431},"Ausführungsverlauf","\u002Fde\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":1433,"_path":1434},"Credits & Metering","\u002Fde\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":1436,"_path":1437},"Benchmarks","\u002Fde\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":1439,"_path":1440,"children":1441},"Sicherheit","\u002Fde\u002Fdocs\u002Fsecurite",[1442,1445,1448,1451],{"title":1443,"_path":1444},"Sicherheitsprinzipien","\u002Fde\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":1446,"_path":1447},"Strikte Mandantentrennung","\u002Fde\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":1449,"_path":1450},"DSGVO-Audit & Zugriffsprotokoll","\u002Fde\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":1452,"_path":1453},"Souveräne Bereitstellung","\u002Fde\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":1455,"_path":1456,"children":1457},"Entwickler","\u002Fde\u002Fdocs\u002Fdeveloppeurs",[1458,1461,1464],{"title":1459,"_path":1460},"Admin-API","\u002Fde\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":1462,"_path":1463},"Ausgehende Webhooks","\u002Fde\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":1465,"_path":1466},"betool von Claude aus steuern (MCP)","\u002Fde\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":1468,"_path":1469,"children":1470},"Integrationen","\u002Fde\u002Fdocs\u002Fintegrations",[1471,1474,1477,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525],{"title":1472,"_path":1473},"Integrationen im Überblick","\u002Fde\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":1475,"_path":1476},"Stripe","\u002Fde\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":1478,"_path":1479},"GitHub","\u002Fde\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":1481,"_path":1482},"Google","\u002Fde\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":1484,"_path":1485},"LinkedIn Ads","\u002Fde\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":1487,"_path":1488},"Kavkom","\u002Fde\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":1490,"_path":1491},"Jira","\u002Fde\u002Fdocs\u002Fintegrations\u002Fjira",{"title":1493,"_path":1494},"Slack","\u002Fde\u002Fdocs\u002Fintegrations\u002Fslack",{"title":1496,"_path":1497},"SMS","\u002Fde\u002Fdocs\u002Fintegrations\u002Fsms",{"title":1499,"_path":1500},"Enable Banking (Open Banking)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":1502,"_path":1503},"CRM, Marketing & Produktivität","\u002Fde\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":1505,"_path":1506},"HeyGen (Video)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":1508,"_path":1509},"La Poste","\u002Fde\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":1511,"_path":1512},"Branchen-CRM (beTool Application, Qhare)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":1514,"_path":1515},"Mitti (Vor-Ort-Inspektionen)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":1517,"_path":1518},"Meta (Messenger, Seiten, Meta Ads)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":1520,"_path":1521},"Onoff Business (Beta)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":1523,"_path":1524},"Smart Life \u002F Tuya (vernetzte Geräte)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":1526,"_path":1527},"beTool-Produkte (Desktop, Kiosk, Terminal)","\u002Fde\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":1529,"_path":1530,"children":1531},"Anwendungsfälle","\u002Fde\u002Fdocs\u002Fcas-usage",[1532,1535,1538,1541,1544,1547],{"title":1533,"_path":1534},"Typische Fachagenten","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":1536,"_path":1537},"CFO IA","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":1539,"_path":1540},"COO IA","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":1542,"_path":1543},"CTO IA","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":1545,"_path":1546},"Product Manager IA","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":1548,"_path":1549},"Persönlicher Assistent","\u002Fde\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]