[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Far\u002Fdocs\u002Fpipelines\u002Foperateurs":3,"docs-nav-ar":1356},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":1350,"_id":1351,"_source":1352,"_file":1353,"_stem":1354,"_extension":1355},"\u002Far\u002Fdocs\u002Fpipelines\u002Foperateurs","pipelines",false,"","المشغّلات الحتمية (Operators)","عُقد إجراء لا تمرّ عبر نموذج LLM — HTTP، قواعد البيانات، التحويلات، الحسابات — مع إدارة الأسرار وضمان عدم التكرار.",{"type":11,"children":12,"toc":1326},"root",[13,36,43,55,60,66,80,85,198,216,266,275,280,345,357,392,530,588,640,664,673,678,801,807,862,871,890,931,940,975,980,985,1017,1029,1038,1064,1070,1089,1094,1156,1169,1217,1257,1262,1268,1273,1301],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27,29,34],{"type":19,"value":20},"text","الـ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"operator",{"type":19,"value":28}," عقدة تنفّذ إجراءً ",{"type":14,"tag":22,"props":30,"children":31},{},[32],{"type":19,"value":33},"حتميًا",{"type":19,"value":35},": بلا LLM، وبلا عشوائية. ولأي إدخال معطى، يكون الإخراج متوقَّعًا.",{"type":14,"tag":37,"props":38,"children":40},"h2",{"id":39},"لماذا-تستخدمها",[41],{"type":19,"value":42},"لماذا تستخدمها",{"type":14,"tag":15,"props":44,"children":45},{},[46,48,53],{"type":19,"value":47},"أي منطق يمكن كتابته صراحةً ",{"type":14,"tag":22,"props":49,"children":50},{},[51],{"type":19,"value":52},"ينبغي",{"type":19,"value":54}," أن يُكتب كذلك. فنموذج LLM الذي «يحسب مجموعًا» أو «يهيّئ تاريخًا» هو نمط مضادّ: فهو أبطأ وأغلى وقد يخطئ.",{"type":14,"tag":15,"props":56,"children":57},{},[58],{"type":19,"value":59},"قاعدة عملية: إذا استطعت كتابة الدالة في 5 أسطر من Python، فهي operator — لا agent.",{"type":14,"tag":37,"props":61,"children":63},{"id":62},"الأنواع-المتاحة",[64],{"type":19,"value":65},"الأنواع المتاحة",{"type":14,"tag":67,"props":68,"children":70},"h3",{"id":69},"webhook_action-استدعاء-http",[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)",{"type":14,"tag":15,"props":81,"children":82},{},[83],{"type":19,"value":84},"يجري استدعاء HTTP صادرًا. التهيئة:",{"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، الطريقة، الترويسات ومعاملات الاستعلام (مع عناصر نائبة من السياق)",{"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},"المتن: ",{"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},"، أو ",{"type":14,"tag":72,"props":138,"children":140},{"className":139},[],[141],{"type":19,"value":142},"mapper",{"type":19,"value":144}," (متن تركّبه لغة الربط، انظر أدناه)",{"type":14,"tag":90,"props":146,"children":147},{},[148,150,156,157,163,164,170,172,178],{"type":19,"value":149},"المصادقة: ",{"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}," (ترويسة مخصّصة)، أو ",{"type":14,"tag":72,"props":173,"children":175},{"className":174},[],[176],{"type":19,"value":177},"oauth2",{"type":19,"value":179}," (انظر أدناه)",{"type":14,"tag":90,"props":181,"children":182},{},[183,185,191],{"type":19,"value":184},"حالات HTTP المقبولة، والمهلة القصوى، وعدد مرّات إعادة المحاولة (",{"type":14,"tag":72,"props":186,"children":188},{"className":187},[],[189],{"type":19,"value":190},"retry_count",{"type":19,"value":192},"، 0 افتراضيًا، تراجع أُسّي)",{"type":14,"tag":90,"props":194,"children":195},{},[196],{"type":19,"value":197},"مفتاح المخرج الذي تُنشَر تحته الاستجابة",{"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,221,226,228,233,235,241,243,248,250,256,258,264],{"type":19,"value":220},"تقرأ ",{"type":14,"tag":72,"props":222,"children":224},{"className":223},[],[225],{"type":19,"value":207},{"type":19,"value":227}," صفوفًا من قاعدة بيانات betool بلا كود أو من قاعدة بيانات خارجية (Postgres، MySQL، MongoDB) مُسجَّلة في ",{"type":14,"tag":22,"props":229,"children":230},{},[231],{"type":19,"value":232},"التطبيقات ← قواعد البيانات ← الاتصالات",{"type":19,"value":234},": مرشِّح ",{"type":14,"tag":72,"props":236,"children":238},{"className":237},[],[239],{"type":19,"value":240},"where",{"type":19,"value":242},"، بحث نصّي كامل، حدّ. وتكتب فيها ",{"type":14,"tag":72,"props":244,"children":246},{"className":245},[],[247],{"type":19,"value":215},{"type":19,"value":249}," (",{"type":14,"tag":72,"props":251,"children":253},{"className":252},[],[254],{"type":19,"value":255},"create",{"type":19,"value":257}," أو ",{"type":14,"tag":72,"props":259,"children":261},{"className":260},[],[262],{"type":19,"value":263},"update",{"type":19,"value":265},")، ويُركَّب المحتوى بلغة الربط.",{"type":14,"tag":67,"props":267,"children":269},{"id":268},"file_transform",[270],{"type":14,"tag":72,"props":271,"children":273},{"className":272},[],[274],{"type":19,"value":268},{"type":14,"tag":15,"props":276,"children":277},{},[278],{"type":19,"value":279},"يحوّل ملفًا. المحوّلات المدمجة:",{"type":14,"tag":86,"props":281,"children":282},{},[283,294,305,316,334],{"type":14,"tag":90,"props":284,"children":285},{},[286,292],{"type":14,"tag":72,"props":287,"children":289},{"className":288},[],[290],{"type":19,"value":291},"pdf_extract_text",{"type":19,"value":293}," — النصّ القابل للتحديد في ملف PDF (دون OCR: ملف PDF الممسوح لا يُعيد نصًّا)",{"type":14,"tag":90,"props":295,"children":296},{},[297,303],{"type":14,"tag":72,"props":298,"children":300},{"className":299},[],[301],{"type":19,"value":302},"pdf_split",{"type":19,"value":304}," — تقسيم ملف PDF",{"type":14,"tag":90,"props":306,"children":307},{},[308,314],{"type":14,"tag":72,"props":309,"children":311},{"className":310},[],[312],{"type":19,"value":313},"pdf_to_images",{"type":19,"value":315}," — تحويل صفحات ملف PDF إلى صور",{"type":14,"tag":90,"props":317,"children":318},{},[319,325,326,332],{"type":14,"tag":72,"props":320,"children":322},{"className":321},[],[323],{"type":19,"value":324},"xlsx_to_json",{"type":19,"value":209},{"type":14,"tag":72,"props":327,"children":329},{"className":328},[],[330],{"type":19,"value":331},"xls_to_json",{"type":19,"value":333}," — قراءة مصنّف Excel على شكل صفوف JSON",{"type":14,"tag":90,"props":335,"children":336},{},[337,343],{"type":14,"tag":72,"props":338,"children":340},{"className":339},[],[341],{"type":19,"value":342},"unzip",{"type":19,"value":344}," — استخراج أرشيف",{"type":14,"tag":67,"props":346,"children":348},{"id":347},"file_link-روابط-التنزيل",[349,355],{"type":14,"tag":72,"props":350,"children":352},{"className":351},[],[353],{"type":19,"value":354},"file_link",{"type":19,"value":356}," (روابط التنزيل)",{"type":14,"tag":15,"props":358,"children":359},{},[360,362,367,369,374,376,381,383,390],{"type":19,"value":361},"يُسلِّم ملفات إلى طرف ثالث ",{"type":14,"tag":22,"props":363,"children":364},{},[365],{"type":19,"value":366},"عبر رابط",{"type":19,"value":368},"، دون وضع محتواها في التدفّق: لكل ملف في قائمة من السياق (ملفات تنزيل، مرفقات مستلَمة، صور فحص…)، تُنتج عقدة ",{"type":14,"tag":22,"props":370,"children":371},{},[372],{"type":19,"value":373},"روابط التنزيل",{"type":19,"value":375}," ",{"type":14,"tag":22,"props":377,"children":378},{},[379],{"type":19,"value":380},"رابط تنزيل موقَّعًا",{"type":19,"value":382}," بمدّة صلاحية محدودة. وتتولّى خطوة لاحقة تأليف ما يتلقّاه المستلِم: استجابة ",{"type":14,"tag":384,"props":385,"children":387},"a",{"href":386},"\u002Far\u002Fdocs\u002Fcanaux\u002Fwebhook",[388],{"type":19,"value":389},"webhook وارد",{"type":19,"value":391},"، بريد إلكتروني…",{"type":14,"tag":393,"props":394,"children":395},"table",{},[396,415],{"type":14,"tag":397,"props":398,"children":399},"thead",{},[400],{"type":14,"tag":401,"props":402,"children":403},"tr",{},[404,410],{"type":14,"tag":405,"props":406,"children":407},"th",{},[408],{"type":19,"value":409},"الإعداد",{"type":14,"tag":405,"props":411,"children":412},{},[413],{"type":19,"value":414},"الدور",{"type":14,"tag":416,"props":417,"children":418},"tbody",{},[419,449,469,482,502],{"type":14,"tag":401,"props":420,"children":421},{},[422,436],{"type":14,"tag":423,"props":424,"children":425},"td",{},[426,428,434],{"type":19,"value":427},"قائمة الملفات المطلوب ربطها (",{"type":14,"tag":72,"props":429,"children":431},{"className":430},[],[432],{"type":19,"value":433},"input_path",{"type":19,"value":435},")",{"type":14,"tag":423,"props":437,"children":438},{},[439,441,447],{"type":19,"value":440},"موضع قراءة القائمة في التدفّق — يحمل كل إدخال ",{"type":14,"tag":72,"props":442,"children":444},{"className":443},[],[445],{"type":19,"value":446},"path",{"type":19,"value":448}," (مفتاح الملف في تخزين المؤسسة) واسم ملف اختياريًا. إلزامي.",{"type":14,"tag":401,"props":450,"children":451},{},[452,464],{"type":14,"tag":423,"props":453,"children":454},{},[455,457,463],{"type":19,"value":456},"المجلدات الفرعية المسموح بها (",{"type":14,"tag":72,"props":458,"children":460},{"className":459},[],[461],{"type":19,"value":462},"path_scope",{"type":19,"value":435},{"type":14,"tag":423,"props":465,"children":466},{},[467],{"type":19,"value":468},"اختياري: يقصر الملفات القابلة للتوقيع على مجلدات فرعية معيّنة من تخزين المؤسسة.",{"type":14,"tag":401,"props":470,"children":471},{},[472,477],{"type":14,"tag":423,"props":473,"children":474},{},[475],{"type":19,"value":476},"مدة صلاحية الروابط",{"type":14,"tag":423,"props":478,"children":479},{},[480],{"type":19,"value":481},"15 دقيقة افتراضيًا، من دقيقة واحدة إلى 24 ساعة.",{"type":14,"tag":401,"props":483,"children":484},{},[485,497],{"type":14,"tag":423,"props":486,"children":487},{},[488,490,496],{"type":19,"value":489},"الحد الأقصى لعدد الملفات (",{"type":14,"tag":72,"props":491,"children":493},{"className":492},[],[494],{"type":19,"value":495},"max_files",{"type":19,"value":435},{"type":14,"tag":423,"props":498,"children":499},{},[500],{"type":19,"value":501},"20 افتراضيًا، و100 كحدّ أقصى.",{"type":14,"tag":401,"props":503,"children":504},{},[505,517],{"type":14,"tag":423,"props":506,"children":507},{},[508,510,516],{"type":19,"value":509},"مفتاح الإخراج (",{"type":14,"tag":72,"props":511,"children":513},{"className":512},[],[514],{"type":19,"value":515},"output_key",{"type":19,"value":435},{"type":14,"tag":423,"props":518,"children":519},{},[520,522,528],{"type":19,"value":521},"الافتراضي ",{"type":14,"tag":72,"props":523,"children":525},{"className":524},[],[526],{"type":19,"value":527},"linked.files",{"type":19,"value":529},".",{"type":14,"tag":15,"props":531,"children":532},{},[533,535,541,543,549,551,557,559,565,567,573,574,580,581,587],{"type":19,"value":534},"يحتوي الإخراج على ",{"type":14,"tag":72,"props":536,"children":538},{"className":537},[],[539],{"type":19,"value":540},"files",{"type":19,"value":542}," (كل إدخال أصلي، مُثرًى بـ",{"type":14,"tag":72,"props":544,"children":546},{"className":545},[],[547],{"type":19,"value":548},"url",{"type":19,"value":550}," و",{"type":14,"tag":72,"props":552,"children":554},{"className":553},[],[555],{"type":19,"value":556},"expires_at",{"type":19,"value":558},")، و",{"type":14,"tag":72,"props":560,"children":562},{"className":561},[],[563],{"type":19,"value":564},"file_count",{"type":19,"value":566},"، و",{"type":14,"tag":72,"props":568,"children":570},{"className":569},[],[571],{"type":19,"value":572},"failed",{"type":19,"value":566},{"type":14,"tag":72,"props":575,"children":577},{"className":576},[],[578],{"type":19,"value":579},"requested",{"type":19,"value":566},{"type":14,"tag":72,"props":582,"children":584},{"className":583},[],[585],{"type":19,"value":586},"ttl_seconds",{"type":19,"value":529},{"type":14,"tag":86,"props":589,"children":590},{},[591,601,611,628],{"type":14,"tag":90,"props":592,"children":593},{},[594,599],{"type":14,"tag":22,"props":595,"children":596},{},[597],{"type":19,"value":598},"لا شيء خارج مؤسستك أبدًا",{"type":19,"value":600},": يُرفض أي ملف خارج تخزينها.",{"type":14,"tag":90,"props":602,"children":603},{},[604,609],{"type":14,"tag":22,"props":605,"children":606},{},[607],{"type":19,"value":608},"التحقّق من الوجود قبل التوقيع",{"type":19,"value":610},": لا يُوقَّع ملف غائب أبدًا.",{"type":14,"tag":90,"props":612,"children":613},{},[614,619,621,626],{"type":14,"tag":22,"props":615,"children":616},{},[617],{"type":19,"value":618},"لا شيء يُغفَل",{"type":19,"value":620},": الملف غير المربوط (خارج النطاق، غير موجود، بعد السقف، تعذّر التوقيع) يظهر في ",{"type":14,"tag":72,"props":622,"children":624},{"className":623},[],[625],{"type":19,"value":572},{"type":19,"value":627}," مع سببه.",{"type":14,"tag":90,"props":629,"children":630},{},[631,633,638],{"type":19,"value":632},"تُعاد إنشاء الروابط ",{"type":14,"tag":22,"props":634,"children":635},{},[636],{"type":19,"value":637},"عند كل تنفيذ",{"type":19,"value":639},"، ويُسجَّل كل رابط صادر.",{"type":14,"tag":641,"props":642,"children":644},"alert",{"type":643},"warning",[645],{"type":14,"tag":15,"props":646,"children":647},{},[648,650,655,657,662],{"type":19,"value":649},"الرابط ",{"type":14,"tag":22,"props":651,"children":652},{},[653],{"type":19,"value":654},"لحامله",{"type":19,"value":656}," (bearer): كل من يملكه ينزّل الملف حتى انتهاء صلاحيته. أبقِ المدّة قصيرة، واملأ ",{"type":14,"tag":22,"props":658,"children":659},{},[660],{"type":19,"value":661},"المجلدات الفرعية المسموح بها",{"type":19,"value":663}," بمجرّد أن تأتي القائمة من بيانات قابلة للتعديل (صفّ في جدول) — وإلّا فإنّ كل من يستطيع كتابة تلك البيانات قد يجعل رابطًا يُوقَّع نحو أي ملف في المؤسسة.",{"type":14,"tag":67,"props":665,"children":667},{"id":666},"compute",[668],{"type":14,"tag":72,"props":669,"children":671},{"className":670},[],[672],{"type":19,"value":666},{"type":14,"tag":15,"props":674,"children":675},{},[676],{"type":19,"value":677},"حسابات حتمية على بيانات السياق. العمليات المدمجة:",{"type":14,"tag":86,"props":679,"children":680},{},[681,713,724,735,746,757,768,779,790],{"type":14,"tag":90,"props":682,"children":683},{},[684,690,692,698,699,705,706,712],{"type":14,"tag":72,"props":685,"children":687},{"className":686},[],[688],{"type":19,"value":689},"column_stats",{"type":19,"value":691}," — لكل عمود من قائمة صفوف، كم منها يساوي قيمة معيّنة (",{"type":14,"tag":72,"props":693,"children":695},{"className":694},[],[696],{"type":19,"value":697},"count",{"type":19,"value":107},{"type":14,"tag":72,"props":700,"children":702},{"className":701},[],[703],{"type":19,"value":704},"total",{"type":19,"value":107},{"type":14,"tag":72,"props":707,"children":709},{"className":708},[],[710],{"type":19,"value":711},"pct",{"type":19,"value":435},{"type":14,"tag":90,"props":714,"children":715},{},[716,722],{"type":14,"tag":72,"props":717,"children":719},{"className":718},[],[720],{"type":19,"value":721},"compose_text",{"type":19,"value":723}," — تركيب نصّ انطلاقًا من قالب ومن قيم التدفّق",{"type":14,"tag":90,"props":725,"children":726},{},[727,733],{"type":14,"tag":72,"props":728,"children":730},{"className":729},[],[731],{"type":19,"value":732},"regex_extract",{"type":19,"value":734}," — استخراج قيم بتعبير نمطي",{"type":14,"tag":90,"props":736,"children":737},{},[738,744],{"type":14,"tag":72,"props":739,"children":741},{"className":740},[],[742],{"type":19,"value":743},"select_by_substring",{"type":19,"value":745}," — توزيع قائمة على مجموعات وفق مُسنَدات «يحتوي \u002F لا يحتوي»",{"type":14,"tag":90,"props":747,"children":748},{},[749,755],{"type":14,"tag":72,"props":750,"children":752},{"className":751},[],[753],{"type":19,"value":754},"list_compare",{"type":19,"value":756}," — اتّساق عدّة قوائم حسب مفتاح محوري",{"type":14,"tag":90,"props":758,"children":759},{},[760,766],{"type":14,"tag":72,"props":761,"children":763},{"className":762},[],[764],{"type":19,"value":765},"multi_source_compliance",{"type":19,"value":767}," — تدقيق امتثال متعدّد الأبعاد ومتعدّد المصادر",{"type":14,"tag":90,"props":769,"children":770},{},[771,777],{"type":14,"tag":72,"props":772,"children":774},{"className":773},[],[775],{"type":19,"value":776},"contact_extract",{"type":19,"value":778}," — عناوين البريد الإلكتروني وأرقام الهاتف الموجودة في نصّ، مع مصدرها",{"type":14,"tag":90,"props":780,"children":781},{},[782,788],{"type":14,"tag":72,"props":783,"children":785},{"className":784},[],[786],{"type":19,"value":787},"free_slots",{"type":19,"value":789}," — فترات فارغة مستنتَجة من فترات مشغولة",{"type":14,"tag":90,"props":791,"children":792},{},[793,799],{"type":14,"tag":72,"props":794,"children":796},{"className":795},[],[797],{"type":19,"value":798},"url_expand",{"type":19,"value":800}," — تركيب عناوين URL انطلاقًا من قواعد ومسارات",{"type":14,"tag":67,"props":802,"children":804},{"id":803},"لغة-الربط",[805],{"type":19,"value":806},"لغة الربط",{"type":14,"tag":15,"props":808,"children":809},{},[810,812,818,819,825,826,832,834,839,841,846,848,853,855,861],{"type":19,"value":811},"ليست عقدة: إنها اللغة التي تركّب حمولة إخراج من بيانات السياق (الدوال ",{"type":14,"tag":72,"props":813,"children":815},{"className":814},[],[816],{"type":19,"value":817},"$now",{"type":19,"value":107},{"type":14,"tag":72,"props":820,"children":822},{"className":821},[],[823],{"type":19,"value":824},"$uuid",{"type":19,"value":107},{"type":14,"tag":72,"props":827,"children":829},{"className":828},[],[830],{"type":19,"value":831},"$concat",{"type":19,"value":833},"…). وتُستخدَم في المتن ",{"type":14,"tag":72,"props":835,"children":837},{"className":836},[],[838],{"type":19,"value":142},{"type":19,"value":840}," لـ",{"type":14,"tag":72,"props":842,"children":844},{"className":843},[],[845],{"type":19,"value":77},{"type":19,"value":847},"، وفي المحتوى الذي تكتبه ",{"type":14,"tag":72,"props":849,"children":851},{"className":850},[],[852],{"type":19,"value":215},{"type":19,"value":854},"، وفي متغيّرات المكالمة الصادرة ",{"type":14,"tag":72,"props":856,"children":858},{"className":857},[],[859],{"type":19,"value":860},"phone_call",{"type":19,"value":529},{"type":14,"tag":67,"props":863,"children":865},{"id":864},"data_to_file",[866],{"type":14,"tag":72,"props":867,"children":869},{"className":868},[],[870],{"type":19,"value":864},{"type":14,"tag":15,"props":872,"children":873},{},[874,876,888],{"type":19,"value":875},"تُنتج ",{"type":14,"tag":22,"props":877,"children":878},{},[879,881,887],{"type":19,"value":880},"ملف Excel (",{"type":14,"tag":72,"props":882,"children":884},{"className":883},[],[885],{"type":19,"value":886},".xlsx",{"type":19,"value":435},{"type":19,"value":889}," من بيانات السياق — قائمة صفوف، أو شبكة، أو عدّة قوائم (ورقة لكل منها). الخيارات: اسم الملف (قابل للقولبة)، واسم الورقة، واختيار الأعمدة وترتيبها، وصفّ الترويسة. يُحفَظ الملف في مساحة التخزين الخاصة بمؤسستك، جاهزًا للإرسال بالبريد الإلكتروني أو للإيداع على Drive.",{"type":14,"tag":15,"props":891,"children":892},{},[893,895,901,902,908,909,915,916,922,924,929],{"type":19,"value":894},"لدواعٍ أمنية، تُكتَب الخلايا التي تبدأ بـ ",{"type":14,"tag":72,"props":896,"children":898},{"className":897},[],[899],{"type":19,"value":900},"=",{"type":19,"value":257},{"type":14,"tag":72,"props":903,"children":905},{"className":904},[],[906],{"type":19,"value":907},"+",{"type":19,"value":257},{"type":14,"tag":72,"props":910,"children":912},{"className":911},[],[913],{"type":19,"value":914},"-",{"type":19,"value":257},{"type":14,"tag":72,"props":917,"children":919},{"className":918},[],[920],{"type":19,"value":921},"@",{"type":19,"value":923}," بوصفها ",{"type":14,"tag":22,"props":925,"children":926},{},[927],{"type":19,"value":928},"نصًّا",{"type":19,"value":930}," افتراضيًا (لا حقن لصيغ). وعندما تفرض حدود Excel القطع، يُعلَّم الملف على أنّه مقتطَع.",{"type":14,"tag":67,"props":932,"children":934},{"id":933},"web_fetch",[935],{"type":14,"tag":72,"props":936,"children":938},{"className":937},[],[939],{"type":19,"value":933},{"type":14,"tag":15,"props":941,"children":942},{},[943,944,949,951,957,959,965,967,973],{"type":19,"value":220},{"type":14,"tag":22,"props":945,"children":946},{},[947],{"type":19,"value":948},"صفحة ويب",{"type":19,"value":950}," واحدة أو أكثر وتنشر نصّها المقروء في السياق (الافتراضي ",{"type":14,"tag":72,"props":952,"children":954},{"className":953},[],[955],{"type":19,"value":956},"web.pages",{"type":19,"value":958},"). الإعدادات: عدد الصفحات، والتزامن، والمهلة، والحجم الأقصى. يُحسَب حكم ",{"type":14,"tag":72,"props":960,"children":962},{"className":961},[],[963],{"type":19,"value":964},"robots.txt",{"type":19,"value":966}," دائمًا ويُبلَّغ عنه؛ ولا يُطبَّق إلا إذا فعّلته (",{"type":14,"tag":72,"props":968,"children":970},{"className":969},[],[971],{"type":19,"value":972},"respect_robots",{"type":19,"value":974},").",{"type":14,"tag":15,"props":976,"children":977},{},[978],{"type":19,"value":979},"لا تُنفَّذ الصفحات التي تُعرَض بواسطة JavaScript فقط: يُقرأ الـ HTML المُقدَّم وحده. وتُبلَّغ الصفحة الفاشلة في النتيجة، دون أن يفشل الـpipeline.",{"type":14,"tag":15,"props":981,"children":982},{},[983],{"type":19,"value":984},"من جهة الوكيل، أداتان مكافئتان:",{"type":14,"tag":86,"props":986,"children":987},{},[988,999],{"type":14,"tag":90,"props":989,"children":990},{},[991,997],{"type":14,"tag":72,"props":992,"children":994},{"className":993},[],[995],{"type":19,"value":996},"web_scrape.fetch_page",{"type":19,"value":998}," — تقرأ صفحة (العنوان، النص، روابط البريد الإلكتروني والهاتف الموجودة).",{"type":14,"tag":90,"props":1000,"children":1001},{},[1002,1008,1010,1015],{"type":14,"tag":72,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":19,"value":1007},"web_search.search",{"type":19,"value":1009}," — ",{"type":14,"tag":22,"props":1011,"children":1012},{},[1013],{"type":19,"value":1014},"البحث على الويب",{"type":19,"value":1016}," عبر محرّك SearXNG تستضيفه المنصّة ذاتيًا: حتى 5 نتائج (العنوان، URL، مقتطف).",{"type":14,"tag":15,"props":1018,"children":1019},{},[1020,1022,1027],{"type":19,"value":1021},"تمرّ جميع القراءات على الويب عبر حماية ",{"type":14,"tag":22,"props":1023,"children":1024},{},[1025],{"type":19,"value":1026},"anti-SSRF",{"type":19,"value":1028}," نفسها: تُرفَض العناوين الداخلية والخاصة وعناوين البيانات الوصفية السحابية بعد حلّ DNS، ويُعاد التحقّق من عمليات إعادة التوجيه عند كل قفزة.",{"type":14,"tag":67,"props":1030,"children":1032},{"id":1031},"code_step",[1033],{"type":14,"tag":72,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":19,"value":1031},{"type":14,"tag":15,"props":1039,"children":1040},{},[1041,1043,1048,1050,1055,1057,1063],{"type":19,"value":1042},"عندما يتجاوز المنطق الحتمي ما يستطيع ",{"type":14,"tag":72,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":19,"value":666},{"type":19,"value":1049}," التعامل معه، تنفّذ ",{"type":14,"tag":22,"props":1051,"children":1052},{},[1053],{"type":19,"value":1054},"خطوة كود",{"type":19,"value":1056}," كودًا مخصّصًا في sandbox من نوع Starlark — قابلة للتحرير مباشرةً، وتُنفَّذ فور الحفظ، ومقيّدة بقائمة بيضاء (allowlist) من الأدوات. راجع ",{"type":14,"tag":384,"props":1058,"children":1060},{"href":1059},"\u002Far\u002Fdocs\u002Fpipelines\u002Fcode-step",[1061],{"type":19,"value":1062},"خطوات الكود",{"type":19,"value":529},{"type":14,"tag":37,"props":1065,"children":1067},{"id":1066},"المصادقة-والأسرار",[1068],{"type":19,"value":1069},"المصادقة والأسرار",{"type":14,"tag":15,"props":1071,"children":1072},{},[1073,1075,1080,1082,1087],{"type":19,"value":1074},"المشغّلات التي تتواصل مع نظام خارجي (HTTP، DB) تشير إلى ",{"type":14,"tag":22,"props":1076,"children":1077},{},[1078],{"type":19,"value":1079},"حساب",{"type":19,"value":1081}," مُسجَّل داخل المؤسسة. ولا تكون بيانات الاعتماد مرئية ",{"type":14,"tag":22,"props":1083,"children":1084},{},[1085],{"type":19,"value":1086},"أبدًا",{"type":19,"value":1088}," داخل الـpipeline نفسه — بل يُشار إلى اسم حساب فقط.",{"type":14,"tag":15,"props":1090,"children":1091},{},[1092],{"type":19,"value":1093},"نتيجةً لذلك، فإنّ تدوير كلمة مرور لا يتطلّب أي تعديل على أي pipeline.",{"type":14,"tag":15,"props":1095,"children":1096},{},[1097,1099,1104,1106,1111,1113,1118,1120,1125,1127,1132,1134,1139,1141,1147,1149,1155],{"type":19,"value":1098},"عندما يُدخَل سرّ مباشرةً في عقدة (رمز ",{"type":14,"tag":72,"props":1100,"children":1102},{"className":1101},[],[1103],{"type":19,"value":155},{"type":19,"value":1105},"، أو كلمة مرور ",{"type":14,"tag":72,"props":1107,"children":1109},{"className":1108},[],[1110],{"type":19,"value":162},{"type":19,"value":1112},"، أو قيمة ",{"type":14,"tag":72,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":19,"value":169},{"type":19,"value":1119}," في ",{"type":14,"tag":72,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":19,"value":77},{"type":19,"value":1126},"، أو كلمة مرور PDF أو أرشيف مشفَّر لـ",{"type":14,"tag":72,"props":1128,"children":1130},{"className":1129},[],[1131],{"type":19,"value":268},{"type":19,"value":1133},")، فإنه ",{"type":14,"tag":22,"props":1135,"children":1136},{},[1137],{"type":19,"value":1138},"يُخفى",{"type":19,"value":1140}," فور حفظه: لا يُظهر المحرّر والـAPI وأدوات MCP سوى علامة. انظر ",{"type":14,"tag":384,"props":1142,"children":1144},{"href":1143},"\u002Far\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",[1145],{"type":19,"value":1146},"المحرّر المرئي",{"type":19,"value":1148},"، قسم ",{"type":14,"tag":1150,"props":1151,"children":1152},"em",{},[1153],{"type":19,"value":1154},"الأسرار",{"type":19,"value":529},{"type":14,"tag":67,"props":1157,"children":1159},{"id":1158},"oauth2-الصادر-client_credentials",[1160,1162,1168],{"type":19,"value":1161},"OAuth2 الصادر (",{"type":14,"tag":72,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":19,"value":1167},"client_credentials",{"type":19,"value":435},{"type":14,"tag":15,"props":1170,"children":1171},{},[1172,1174,1179,1181,1186,1188,1194,1195,1201,1202,1208,1209,1215],{"type":19,"value":1173},"بالنسبة إلى واجهات API التي تتطلّب رمز OAuth2 مميّزًا (السحابة المؤسسية، ERP، مزوّدو الطرف الثالث)، يدعم operator HTTP وضع ",{"type":14,"tag":72,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":19,"value":177},{"type":19,"value":1180},". تسجّل ",{"type":14,"tag":22,"props":1182,"children":1183},{},[1184],{"type":19,"value":1185},"بيانات اعتماد OAuth2",{"type":19,"value":1187}," في المؤسسة — ",{"type":14,"tag":72,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":19,"value":1193},"token_url",{"type":19,"value":107},{"type":14,"tag":72,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":19,"value":1200},"client_id",{"type":19,"value":107},{"type":14,"tag":72,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":19,"value":1207},"client_secret",{"type":19,"value":107},{"type":14,"tag":72,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":19,"value":1214},"scope",{"type":19,"value":1216}," — ولا تشير العقدة إلا إلى مُعرِّف غير حسّاس.",{"type":14,"tag":15,"props":1218,"children":1219},{},[1220,1222,1227,1229,1234,1235,1239,1241,1247,1249,1255],{"type":19,"value":1221},"عند وقت الاستدعاء، يحصل betool على رمز مميّز ويُعيد استخدامه ما دام صالحًا؛ ويجدّده ",{"type":14,"tag":22,"props":1223,"children":1224},{},[1225],{"type":19,"value":1226},"بكسل (lazily)",{"type":19,"value":1228}," عند انتهاء الصلاحية، بلا مهمّة في الخلفية. ولا يُعيد الـadministration API الـ",{"type":14,"tag":72,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":19,"value":1207},{"type":19,"value":375},{"type":14,"tag":22,"props":1236,"children":1237},{},[1238],{"type":19,"value":1086},{"type":19,"value":1240}," (بل يُعرَض مؤشّر ",{"type":14,"tag":72,"props":1242,"children":1244},{"className":1243},[],[1245],{"type":19,"value":1246},"has_secret",{"type":19,"value":1248}," فقط)، ويوضَع الرمز المميّز المُحصَّل عليه بصيغة ",{"type":14,"tag":72,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":19,"value":1254},"Authorization: Bearer …",{"type":19,"value":1256}," على الطلب الصادر.",{"type":14,"tag":15,"props":1258,"children":1259},{},[1260],{"type":19,"value":1261},"تدوير السرّ بعد تدوير على جانب المزوّد لا يتطلّب أي تعديل على الـpipeline: فالاستدعاء التالي يجدّده تلقائيًا.",{"type":14,"tag":37,"props":1263,"children":1265},{"id":1264},"الخاصّية-الاحترازية-idempotency",[1266],{"type":19,"value":1267},"الخاصّية الاحترازية (Idempotency)",{"type":14,"tag":15,"props":1269,"children":1270},{},[1271],{"type":19,"value":1272},"أي operator يُنتج أثرًا جانبيًا (HTTP POST، DB INSERT، إرسال بريد) يجب تصميمه ليكون احترازيًا على جانب الهدف. الممارسة المُوصى بها:",{"type":14,"tag":86,"props":1274,"children":1275},{},[1276,1296],{"type":14,"tag":90,"props":1277,"children":1278},{},[1279,1281,1287,1289,1295],{"type":19,"value":1280},"ضمِّن ",{"type":14,"tag":72,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":19,"value":1286},"idempotency_key",{"type":19,"value":1288}," في الحمولة (عادةً ",{"type":14,"tag":72,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":19,"value":1294},"exchange_id",{"type":19,"value":974},{"type":14,"tag":90,"props":1297,"children":1298},{},[1299],{"type":19,"value":1300},"تحقّق على جانب الهدف مما إذا كان المفتاح قد عُولِج بالفعل.",{"type":14,"tag":15,"props":1302,"children":1303},{},[1304,1306,1311,1312,1317,1319,1324],{"type":19,"value":1305},"خارج إعادات المحاولة التي تهيّئها صراحةً على ",{"type":14,"tag":72,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":19,"value":77},{"type":19,"value":249},{"type":14,"tag":72,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":19,"value":190},{"type":19,"value":1318},")، لا يُعيد betool تلقائيًا محاولة operator فاشل: بل من مسؤولية الـpipeline لديك تنسيق استراتيجية إعادة المحاولة. كما أنّ ",{"type":14,"tag":72,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":19,"value":77},{"type":19,"value":1325}," محمية من الإرسال المزدوج عند إعادة توزيع داخلية: الطلب الذي سبق تسليمه بحالة مقبولة لا يُعاد إرساله.",{"title":7,"searchDepth":1327,"depth":1327,"links":1328},2,[1329,1330,1345,1349],{"id":39,"depth":1327,"text":42},{"id":62,"depth":1327,"text":65,"children":1331},[1332,1335,1337,1338,1340,1341,1342,1343,1344],{"id":69,"depth":1333,"text":1334},3,"webhook_action (استدعاء HTTP)",{"id":200,"depth":1333,"text":1336},"database_query \u002F database_manage",{"id":268,"depth":1333,"text":268},{"id":347,"depth":1333,"text":1339},"file_link (روابط التنزيل)",{"id":666,"depth":1333,"text":666},{"id":803,"depth":1333,"text":806},{"id":864,"depth":1333,"text":864},{"id":933,"depth":1333,"text":933},{"id":1031,"depth":1333,"text":1031},{"id":1066,"depth":1327,"text":1069,"children":1346},[1347],{"id":1158,"depth":1333,"text":1348},"OAuth2 الصادر (client_credentials)",{"id":1264,"depth":1327,"text":1267},"markdown","content:ar:docs:3.pipelines:3.operateurs.md","content","ar\u002Fdocs\u002F3.pipelines\u002F3.operateurs.md","ar\u002Fdocs\u002F3.pipelines\u002F3.operateurs","md",[1357],{"title":1358,"_path":1359,"children":1360},"Ar","\u002Far",[1361],{"title":1362,"_path":1363,"children":1364},"Docs","\u002Far\u002Fdocs",[1365,1378,1405,1428,1441,1457,1470,1531],{"title":1366,"_path":1367,"children":1368},"البدء","\u002Far\u002Fdocs\u002Fdemarrer",[1369,1372,1375],{"title":1370,"_path":1371},"مرحبًا بك","\u002Far\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":1373,"_path":1374},"إنشاء حساب","\u002Far\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":1376,"_path":1377},"ربط مفتاح LLM","\u002Far\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":1379,"_path":1380,"children":1381},"القنوات","\u002Far\u002Fdocs\u002Fcanaux",[1382,1385,1388,1391,1394,1396,1399,1402],{"title":1383,"_path":1384},"نظرة عامة على القنوات","\u002Far\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":1386,"_path":1387},"الهاتف في الوقت الفعلي","\u002Far\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":1389,"_path":1390},"البريد الإلكتروني","\u002Far\u002Fdocs\u002Fcanaux\u002Femail",{"title":1392,"_path":1393},"أداة دردشة الويب","\u002Far\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":1395,"_path":386},"HTTP Webhook",{"title":1397,"_path":1398},"المراسلة (WhatsApp، Messenger، Telegram، Mattermost)","\u002Far\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":1400,"_path":1401},"Meta Lead Ads","\u002Far\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":1403,"_path":1404},"الجدولة (cron)","\u002Far\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":1406,"_path":1407,"children":1408},"Pipelines","\u002Far\u002Fdocs\u002Fpipelines",[1409,1410,1413,1414,1417,1419,1422,1425],{"title":1146,"_path":1143},{"title":1411,"_path":1412},"وكلاء الذكاء الاصطناعي","\u002Far\u002Fdocs\u002Fpipelines\u002Fagents",{"title":8,"_path":4},{"title":1415,"_path":1416},"التحكّم في التدفّق","\u002Far\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":1418,"_path":1059},"خطوات الكود (Code Steps)",{"title":1420,"_path":1421},"الـPipelines الفرعية","\u002Far\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":1423,"_path":1424},"إجراءات بلا كود","\u002Far\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":1426,"_path":1427},"قاعدة المعرفة","\u002Far\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":1429,"_path":1430,"children":1431},"الإشراف","\u002Far\u002Fdocs\u002Fsupervision",[1432,1435,1438],{"title":1433,"_path":1434},"سجلّ عمليات التنفيذ","\u002Far\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":1436,"_path":1437},"الأرصدة والقياس","\u002Far\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":1439,"_path":1440},"المعايير (Benchmarks)","\u002Far\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":1442,"_path":1443,"children":1444},"الأمن","\u002Far\u002Fdocs\u002Fsecurite",[1445,1448,1451,1454],{"title":1446,"_path":1447},"مبادئ الأمن","\u002Far\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":1449,"_path":1450},"تعدّد المستأجرين الصارم","\u002Far\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":1452,"_path":1453},"تدقيق GDPR وسجلّ الوصول","\u002Far\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":1455,"_path":1456},"النشر السيادي","\u002Far\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":1458,"_path":1459,"children":1460},"المطوّرون","\u002Far\u002Fdocs\u002Fdeveloppeurs",[1461,1464,1467],{"title":1462,"_path":1463},"واجهة برمجة تطبيقات الإدارة (Admin API)","\u002Far\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":1465,"_path":1466},"webhooks الصادرة","\u002Far\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":1468,"_path":1469},"قيادة betool من Claude (MCP)","\u002Far\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":1471,"_path":1472,"children":1473},"التكاملات","\u002Far\u002Fdocs\u002Fintegrations",[1474,1477,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528],{"title":1475,"_path":1476},"نظرة عامة على التكاملات","\u002Far\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":1478,"_path":1479},"Stripe","\u002Far\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":1481,"_path":1482},"GitHub","\u002Far\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":1484,"_path":1485},"Google","\u002Far\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":1487,"_path":1488},"LinkedIn Ads","\u002Far\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":1490,"_path":1491},"Kavkom","\u002Far\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":1493,"_path":1494},"Jira","\u002Far\u002Fdocs\u002Fintegrations\u002Fjira",{"title":1496,"_path":1497},"Slack","\u002Far\u002Fdocs\u002Fintegrations\u002Fslack",{"title":1499,"_path":1500},"الرسائل القصيرة","\u002Far\u002Fdocs\u002Fintegrations\u002Fsms",{"title":1502,"_path":1503},"Enable Banking (الخدمات المصرفية المفتوحة)","\u002Far\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":1505,"_path":1506},"CRM والتسويق والإنتاجية","\u002Far\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":1508,"_path":1509},"HeyGen (الفيديو)","\u002Far\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":1511,"_path":1512},"La Poste","\u002Far\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":1514,"_path":1515},"CRM متخصّص (beTool Application، Qhare)","\u002Far\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":1517,"_path":1518},"Mitti (الفحص الميداني)","\u002Far\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":1520,"_path":1521},"Meta (Messenger، الصفحات، Meta Ads)","\u002Far\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":1523,"_path":1524},"Onoff Business (Beta)","\u002Far\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":1526,"_path":1527},"Smart Life \u002F Tuya (الأجهزة المتّصلة)","\u002Far\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":1529,"_path":1530},"منتجات beTool (Desktop، Kiosk، Terminal)","\u002Far\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":1532,"_path":1533,"children":1534},"حالات الاستخدام","\u002Far\u002Fdocs\u002Fcas-usage",[1535,1538,1541,1544,1547,1550],{"title":1536,"_path":1537},"agents أعمال نموذجية","\u002Far\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":1539,"_path":1540},"CFO IA","\u002Far\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":1542,"_path":1543},"COO IA","\u002Far\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":1545,"_path":1546},"CTO IA","\u002Far\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":1548,"_path":1549},"Product Manager IA","\u002Far\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":1551,"_path":1552},"المساعد الشخصي","\u002Far\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]