[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fen\u002Fdocs\u002Fpipelines\u002Fsous-pipelines":3,"docs-nav-en":657},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":651,"_id":652,"_source":653,"_file":654,"_stem":655,"_extension":656},"\u002Fen\u002Fdocs\u002Fpipelines\u002Fsous-pipelines","pipelines",false,"","Sub-pipelines","A pipeline can call another as a function — to factor out reusable logic or share a capability across organisations, with a full audit trail.",{"type":11,"children":12,"toc":640},"root",[13,35,40,102,116,128,205,218,230,242,254,338,366,372,384,464,486,492,497,536,542,601,607],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,26,28,33],{"type":19,"value":20},"text","Beyond a certain point, copying the same sequence of nodes across ten pipelines becomes technical debt. ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":8},{"type":19,"value":27}," allow a pipeline to ",{"type":14,"tag":22,"props":29,"children":30},{},[31],{"type":19,"value":32},"call another as a function",{"type":19,"value":34},": define a piece of logic once, reuse it everywhere — including across organisations.",{"type":14,"tag":15,"props":36,"children":37},{},[38],{"type":19,"value":39},"Two symmetric building blocks:",{"type":14,"tag":41,"props":42,"children":43},"ul",{},[44,81],{"type":14,"tag":45,"props":46,"children":47},"li",{},[48,58,60,65,67,72,74,79],{"type":14,"tag":22,"props":49,"children":50},{},[51],{"type":14,"tag":52,"props":53,"children":55},"code",{"className":54},[],[56],{"type":19,"value":57},"pipeline_callable",{"type":19,"value":59}," (a receiver, declared on the Start node) ",{"type":14,"tag":22,"props":61,"children":62},{},[63],{"type":19,"value":64},"exposes",{"type":19,"value":66}," a pipeline behind a URL, with a typed ",{"type":14,"tag":22,"props":68,"children":69},{},[70],{"type":19,"value":71},"input",{"type":19,"value":73}," and ",{"type":14,"tag":22,"props":75,"children":76},{},[77],{"type":19,"value":78},"output",{"type":19,"value":80}," contract.",{"type":14,"tag":45,"props":82,"children":83},{},[84,93,95,100],{"type":14,"tag":22,"props":85,"children":86},{},[87],{"type":14,"tag":52,"props":88,"children":90},{"className":89},[],[91],{"type":19,"value":92},"pipeline_call",{"type":19,"value":94}," (a node) ",{"type":14,"tag":22,"props":96,"children":97},{},[98],{"type":19,"value":99},"calls",{"type":19,"value":101}," that pipeline: it maps its inputs from the current context and stores the result in an output key.",{"type":14,"tag":103,"props":104,"children":106},"h2",{"id":105},"exposing-a-pipeline-pipeline_callable",[107,109,114],{"type":19,"value":108},"Exposing a pipeline (",{"type":14,"tag":52,"props":110,"children":112},{"className":111},[],[113],{"type":19,"value":57},{"type":19,"value":115},")",{"type":14,"tag":15,"props":117,"children":118},{},[119,121,126],{"type":19,"value":120},"On the \"service\" pipeline, you add a ",{"type":14,"tag":52,"props":122,"children":124},{"className":123},[],[125],{"type":19,"value":57},{"type":19,"value":127}," receiver that declares:",{"type":14,"tag":41,"props":129,"children":130},{},[131,141,151,169,195],{"type":14,"tag":45,"props":132,"children":133},{},[134,139],{"type":14,"tag":22,"props":135,"children":136},{},[137],{"type":19,"value":138},"Inputs",{"type":19,"value":140}," — the list of expected parameters (name, type, required or optional).",{"type":14,"tag":45,"props":142,"children":143},{},[144,149],{"type":14,"tag":22,"props":145,"children":146},{},[147],{"type":19,"value":148},"Outputs",{"type":19,"value":150}," — the keys of the returned result.",{"type":14,"tag":45,"props":152,"children":153},{},[154,159,161,167],{"type":14,"tag":22,"props":155,"children":156},{},[157],{"type":19,"value":158},"Response key",{"type":19,"value":160}," — which context value constitutes the response (",{"type":14,"tag":52,"props":162,"children":164},{"className":163},[],[165],{"type":19,"value":166},"exchange.result",{"type":19,"value":168}," by default).",{"type":14,"tag":45,"props":170,"children":171},{},[172,177,179,185,187,193],{"type":14,"tag":22,"props":173,"children":174},{},[175],{"type":19,"value":176},"Response mode",{"type":19,"value":178}," — ",{"type":14,"tag":52,"props":180,"children":182},{"className":181},[],[183],{"type":19,"value":184},"sync",{"type":19,"value":186}," (the caller waits for a JSON response) or ",{"type":14,"tag":52,"props":188,"children":190},{"className":189},[],[191],{"type":19,"value":192},"stream",{"type":19,"value":194}," (real-time progress).",{"type":14,"tag":45,"props":196,"children":197},{},[198,203],{"type":14,"tag":22,"props":199,"children":200},{},[201],{"type":19,"value":202},"Time budget",{"type":19,"value":204}," — maximum execution time (60 s by default, 300 s maximum).",{"type":14,"tag":15,"props":206,"children":207},{},[208,210,216],{"type":19,"value":209},"An input declared as required and missing from the call makes the call fail (",{"type":14,"tag":52,"props":211,"children":213},{"className":212},[],[214],{"type":19,"value":215},"400",{"type":19,"value":217},").",{"type":14,"tag":15,"props":219,"children":220},{},[221,223,228],{"type":19,"value":222},"The pipeline then receives a public URL (with a token) to share with the calling pipeline. The token is ",{"type":14,"tag":22,"props":224,"children":225},{},[226],{"type":19,"value":227},"rotatable",{"type":19,"value":229}," at any time to revoke access.",{"type":14,"tag":103,"props":231,"children":233},{"id":232},"calling-a-pipeline-pipeline_call",[234,236,241],{"type":19,"value":235},"Calling a pipeline (",{"type":14,"tag":52,"props":237,"children":239},{"className":238},[],[240],{"type":19,"value":92},{"type":19,"value":115},{"type":14,"tag":15,"props":243,"children":244},{},[245,247,252],{"type":19,"value":246},"On the \"consumer\" pipeline, the ",{"type":14,"tag":52,"props":248,"children":250},{"className":249},[],[251],{"type":19,"value":92},{"type":19,"value":253}," node is configured with:",{"type":14,"tag":41,"props":255,"children":256},{},[257,269,281,299],{"type":14,"tag":45,"props":258,"children":259},{},[260,262,267],{"type":19,"value":261},"The ",{"type":14,"tag":22,"props":263,"children":264},{},[265],{"type":19,"value":266},"URL",{"type":19,"value":268}," of the target pipeline (fixed, not templatable: it is analyzed on save to detect loops).",{"type":14,"tag":45,"props":270,"children":271},{},[272,274,279],{"type":19,"value":273},"An ",{"type":14,"tag":22,"props":275,"children":276},{},[277],{"type":19,"value":278},"input mapping",{"type":19,"value":280}," — for each expected parameter, the context selector that supplies it.",{"type":14,"tag":45,"props":282,"children":283},{},[284,285,290,292,298],{"type":19,"value":261},{"type":14,"tag":22,"props":286,"children":287},{},[288],{"type":19,"value":289},"output key",{"type":19,"value":291}," where the result is stored (",{"type":14,"tag":52,"props":293,"children":295},{"className":294},[],[296],{"type":19,"value":297},"exchange.subresult",{"type":19,"value":168},{"type":14,"tag":45,"props":300,"children":301},{},[302,303,308,310,315,317,323,324,329,331,336],{"type":19,"value":261},{"type":14,"tag":22,"props":304,"children":305},{},[306],{"type":19,"value":307},"mode",{"type":19,"value":309}," (",{"type":14,"tag":52,"props":311,"children":313},{"className":312},[],[314],{"type":19,"value":184},{"type":19,"value":316},", ",{"type":14,"tag":52,"props":318,"children":320},{"className":319},[],[321],{"type":19,"value":322},"ack",{"type":19,"value":316},{"type":14,"tag":52,"props":325,"children":327},{"className":326},[],[328],{"type":19,"value":192},{"type":19,"value":330},") and a ",{"type":14,"tag":22,"props":332,"children":333},{},[334],{"type":19,"value":335},"timeout",{"type":19,"value":337}," (30 s by default, 300 s maximum).",{"type":14,"tag":15,"props":339,"children":340},{},[341,343,348,350,356,358,364],{"type":19,"value":342},"On failure (timeout, error, malformed response), the pipeline ",{"type":14,"tag":22,"props":344,"children":345},{},[346],{"type":19,"value":347},"continues",{"type":19,"value":349},": the output key receives ",{"type":14,"tag":52,"props":351,"children":353},{"className":352},[],[354],{"type":19,"value":355},"null",{"type":19,"value":357}," and a ",{"type":14,"tag":52,"props":359,"children":361},{"className":360},[],[362],{"type":19,"value":363},"._error",{"type":19,"value":365}," key describes what happened. It is your pipeline's responsibility to orchestrate the fallback (fallback branch, alert).",{"type":14,"tag":103,"props":367,"children":369},{"id":368},"cross-organisation-calls-opt-in-and-audited",[370],{"type":19,"value":371},"Cross-organisation calls: opt-in and audited",{"type":14,"tag":15,"props":373,"children":374},{},[375,377,382],{"type":19,"value":376},"A sub-pipeline can be called by a ",{"type":14,"tag":22,"props":378,"children":379},{},[380],{"type":19,"value":381},"different organisation",{"type":19,"value":383}," — this is the foundation for sharing capabilities between entities. The model remains strict:",{"type":14,"tag":41,"props":385,"children":386},{},[387,404,447],{"type":14,"tag":45,"props":388,"children":389},{},[390,395,397,403],{"type":14,"tag":22,"props":391,"children":392},{},[393],{"type":19,"value":394},"Rejected by default.",{"type":19,"value":396}," Cross-organisation calls are only possible if the administrator of the exposed pipeline explicitly authorises it (",{"type":14,"tag":52,"props":398,"children":400},{"className":399},[],[401],{"type":19,"value":402},"allow_cross_org",{"type":19,"value":217},{"type":14,"tag":45,"props":405,"children":406},{},[407,412,414,420,422,428,430,437,439,445],{"type":14,"tag":22,"props":408,"children":409},{},[410],{"type":19,"value":411},"HMAC signature recommended.",{"type":19,"value":413}," Once a cross-org call is opened, a shared secret is activated on both sides: every request is signed (",{"type":14,"tag":52,"props":415,"children":417},{"className":416},[],[418],{"type":19,"value":419},"X-Pipeline-Signature",{"type":19,"value":421}," header), and the receiver rejects any absent or invalid signature (",{"type":14,"tag":52,"props":423,"children":425},{"className":424},[],[426],{"type":19,"value":427},"401",{"type":19,"value":429},"). Once saved, this secret is never displayed again, on either side (see ",{"type":14,"tag":431,"props":432,"children":434},"a",{"href":433},"\u002Fen\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",[435],{"type":19,"value":436},"The visual editor",{"type":19,"value":438},", section ",{"type":14,"tag":440,"props":441,"children":442},"em",{},[443],{"type":19,"value":444},"Secrets",{"type":19,"value":446},"); removing it on the caller side removes the signature, removing it on the exposed side removes the verification.",{"type":14,"tag":45,"props":448,"children":449},{},[450,455,457,462],{"type":14,"tag":22,"props":451,"children":452},{},[453],{"type":19,"value":454},"Everything is traced.",{"type":19,"value":456}," Each invocation writes an audit record (calling organisation, node, depth, latency, status) — ",{"type":14,"tag":22,"props":458,"children":459},{},[460],{"type":19,"value":461},"before",{"type":19,"value":463}," execution, so that a trace exists even in the event of an incident. Both parties can consult their own logs (caller side and callee side), in accordance with GDPR access rights.",{"type":14,"tag":465,"props":466,"children":468},"alert",{"type":467},"warning",[469],{"type":14,"tag":15,"props":470,"children":471},{},[472,477,479,484],{"type":14,"tag":22,"props":473,"children":474},{},[475],{"type":19,"value":476},"Billing",{"type":19,"value":478},": the ",{"type":14,"tag":22,"props":480,"children":481},{},[482],{"type":19,"value":483},"called",{"type":19,"value":485}," organisation pays for the resources (LLM, voice…) consumed during execution. Guest logic: you use your host's resources.",{"type":14,"tag":103,"props":487,"children":489},{"id":488},"loop-prevention",[490],{"type":19,"value":491},"Loop prevention",{"type":14,"tag":15,"props":493,"children":494},{},[495],{"type":19,"value":496},"A pipeline that called itself, directly or through a chain, would consume credits indefinitely. Two protections:",{"type":14,"tag":41,"props":498,"children":499},{},[500,526],{"type":14,"tag":45,"props":501,"children":502},{},[503,508,510,516,518,524],{"type":14,"tag":22,"props":504,"children":505},{},[506],{"type":19,"value":507},"Static detection at registration",{"type":19,"value":509}," (within an organisation): the editor refuses to publish a direct cycle (",{"type":14,"tag":52,"props":511,"children":513},{"className":512},[],[514],{"type":19,"value":515},"A → A",{"type":19,"value":517},") or indirect cycle (",{"type":14,"tag":52,"props":519,"children":521},{"className":520},[],[522],{"type":19,"value":523},"A → B → C → A",{"type":19,"value":525},"), citing the offending chain.",{"type":14,"tag":45,"props":527,"children":528},{},[529,534],{"type":14,"tag":22,"props":530,"children":531},{},[532],{"type":19,"value":533},"Runtime guard",{"type":19,"value":535}," (across organisations, where static visibility is impossible): each call propagates its depth; beyond 10 levels, the call is refused.",{"type":14,"tag":103,"props":537,"children":539},{"id":538},"execution-modes",[540],{"type":19,"value":541},"Execution modes",{"type":14,"tag":41,"props":543,"children":544},{},[545,561,577],{"type":14,"tag":45,"props":546,"children":547},{},[548,553,554,559],{"type":14,"tag":22,"props":549,"children":550},{},[551],{"type":19,"value":552},"Synchronous",{"type":19,"value":309},{"type":14,"tag":52,"props":555,"children":557},{"className":556},[],[558],{"type":19,"value":184},{"type":19,"value":560},") — the node waits for the complete response. Suited to short-running operations.",{"type":14,"tag":45,"props":562,"children":563},{},[564,569,570,575],{"type":14,"tag":22,"props":565,"children":566},{},[567],{"type":19,"value":568},"No wait",{"type":19,"value":309},{"type":14,"tag":52,"props":571,"children":573},{"className":572},[],[574],{"type":19,"value":322},{"type":19,"value":576},") — the call is launched and the calling pipeline continues immediately; the output key stays empty.",{"type":14,"tag":45,"props":578,"children":579},{},[580,585,586,591,593,599],{"type":14,"tag":22,"props":581,"children":582},{},[583],{"type":19,"value":584},"Streaming",{"type":19,"value":309},{"type":14,"tag":52,"props":587,"children":589},{"className":588},[],[590],{"type":19,"value":192},{"type":19,"value":592},") — for a long-running sub-pipeline (LLM reasoning, batch processing), progress is received in real time (under ",{"type":14,"tag":52,"props":594,"children":596},{"className":595},[],[597],{"type":19,"value":598},"\u003Coutput key>._progress",{"type":19,"value":600},"); the timeout then applies to the maximum delay without an event, not to the total duration.",{"type":14,"tag":103,"props":602,"children":604},{"id":603},"when-to-use-it",[605],{"type":19,"value":606},"When to use it",{"type":14,"tag":41,"props":608,"children":609},{},[610,620,630],{"type":14,"tag":45,"props":611,"children":612},{},[613,618],{"type":14,"tag":22,"props":614,"children":615},{},[616],{"type":19,"value":617},"Factor out",{"type":19,"value":619}," a sequence reused by multiple pipelines (summarise a thread, qualify a lead, verify a document).",{"type":14,"tag":45,"props":621,"children":622},{},[623,628],{"type":14,"tag":22,"props":624,"children":625},{},[626],{"type":19,"value":627},"Share a capability",{"type":19,"value":629}," between organisations — one entity exposes \"validate an invoice against the ERP\", another consumes it, with an audit trail on both sides.",{"type":14,"tag":45,"props":631,"children":632},{},[633,638],{"type":14,"tag":22,"props":634,"children":635},{},[636],{"type":19,"value":637},"Parallelise",{"type":19,"value":639}," a fan-out of independent sub-tasks from a loop.",{"title":7,"searchDepth":641,"depth":641,"links":642},2,[643,645,647,648,649,650],{"id":105,"depth":641,"text":644},"Exposing a pipeline (pipeline_callable)",{"id":232,"depth":641,"text":646},"Calling a pipeline (pipeline_call)",{"id":368,"depth":641,"text":371},{"id":488,"depth":641,"text":491},{"id":538,"depth":641,"text":541},{"id":603,"depth":641,"text":606},"markdown","content:en:docs:3.pipelines:6.sous-pipelines.md","content","en\u002Fdocs\u002F3.pipelines\u002F6.sous-pipelines.md","en\u002Fdocs\u002F3.pipelines\u002F6.sous-pipelines","md",[658],{"title":659,"_path":660,"children":661},"En","\u002Fen",[662],{"title":663,"_path":664,"children":665},"Docs","\u002Fen\u002Fdocs",[666,679,707,732,745,761,774,835],{"title":667,"_path":668,"children":669},"Getting started","\u002Fen\u002Fdocs\u002Fdemarrer",[670,673,676],{"title":671,"_path":672},"Welcome","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":674,"_path":675},"Create an account","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":677,"_path":678},"Connect an LLM key","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":680,"_path":681,"children":682},"Channels","\u002Fen\u002Fdocs\u002Fcanaux",[683,686,689,692,695,698,701,704],{"title":684,"_path":685},"Channels overview","\u002Fen\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":687,"_path":688},"Real-time telephony","\u002Fen\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":690,"_path":691},"Email","\u002Fen\u002Fdocs\u002Fcanaux\u002Femail",{"title":693,"_path":694},"Web chat widget","\u002Fen\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":696,"_path":697},"HTTP Webhook","\u002Fen\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":699,"_path":700},"Messaging (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":702,"_path":703},"Meta Lead Ads","\u002Fen\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":705,"_path":706},"Schedule (cron)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":708,"_path":709,"children":710},"Pipelines","\u002Fen\u002Fdocs\u002Fpipelines",[711,713,716,719,722,725,726,729],{"title":712,"_path":433},"The Visual Editor",{"title":714,"_path":715},"AI Agents","\u002Fen\u002Fdocs\u002Fpipelines\u002Fagents",{"title":717,"_path":718},"Deterministic Operators","\u002Fen\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":720,"_path":721},"Flow Control","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":723,"_path":724},"Code Steps","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":8,"_path":4},{"title":727,"_path":728},"No-code actions","\u002Fen\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":730,"_path":731},"Knowledge base","\u002Fen\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":733,"_path":734,"children":735},"Supervision","\u002Fen\u002Fdocs\u002Fsupervision",[736,739,742],{"title":737,"_path":738},"Execution History","\u002Fen\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":740,"_path":741},"Credits & Metering","\u002Fen\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":743,"_path":744},"Benchmarks","\u002Fen\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":746,"_path":747,"children":748},"Security","\u002Fen\u002Fdocs\u002Fsecurite",[749,752,755,758],{"title":750,"_path":751},"Security principles","\u002Fen\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":753,"_path":754},"Strict multi-tenancy","\u002Fen\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":756,"_path":757},"GDPR audit & access log","\u002Fen\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":759,"_path":760},"Sovereign deployment","\u002Fen\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":762,"_path":763,"children":764},"Developers","\u002Fen\u002Fdocs\u002Fdeveloppeurs",[765,768,771],{"title":766,"_path":767},"Admin API","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":769,"_path":770},"Outbound webhooks","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":772,"_path":773},"Drive betool from Claude (MCP)","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":775,"_path":776,"children":777},"Integrations","\u002Fen\u002Fdocs\u002Fintegrations",[778,781,784,787,790,793,796,799,802,805,808,811,814,817,820,823,826,829,832],{"title":779,"_path":780},"Integrations overview","\u002Fen\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":782,"_path":783},"Stripe","\u002Fen\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":785,"_path":786},"GitHub","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":788,"_path":789},"Google","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":791,"_path":792},"LinkedIn Ads","\u002Fen\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":794,"_path":795},"Kavkom","\u002Fen\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":797,"_path":798},"Jira","\u002Fen\u002Fdocs\u002Fintegrations\u002Fjira",{"title":800,"_path":801},"Slack","\u002Fen\u002Fdocs\u002Fintegrations\u002Fslack",{"title":803,"_path":804},"SMS","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsms",{"title":806,"_path":807},"Enable Banking (open banking)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":809,"_path":810},"CRM, marketing & productivity","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":812,"_path":813},"HeyGen (video)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":815,"_path":816},"La Poste","\u002Fen\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":818,"_path":819},"Industry CRM (beTool Application, Qhare)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":821,"_path":822},"Mitti (field inspections)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":824,"_path":825},"Meta (Messenger, Pages, Meta Ads)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":827,"_path":828},"Onoff Business (Beta)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":830,"_path":831},"Smart Life \u002F Tuya (connected devices)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":833,"_path":834},"beTool products (Desktop, Kiosk, Terminal)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":836,"_path":837,"children":838},"Use cases","\u002Fen\u002Fdocs\u002Fcas-usage",[839,842,845,848,851,854],{"title":840,"_path":841},"Typical business agents","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":843,"_path":844},"CFO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":846,"_path":847},"COO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":849,"_path":850},"CTO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":852,"_path":853},"Product Manager IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":855,"_path":856},"Personal assistant","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]