[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fen\u002Fdocs\u002Fpipelines\u002Factions-no-code":3,"docs-nav-en":360},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":354,"_id":355,"_source":356,"_file":357,"_stem":358,"_extension":359},"\u002Fen\u002Fdocs\u002Fpipelines\u002Factions-no-code","pipelines",false,"","No-code actions","The actions an agent can trigger without writing code — write to a database, send an email, collect payment, transfer a call.",{"type":11,"children":12,"toc":343},"root",[13,29,36,48,106,128,135,154,160,189,195,208,247,259,265,293,299],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27],{"type":19,"value":20},"text","An agent doesn't just respond: it can ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"act",{"type":19,"value":28},". betool provides a set of ready-to-use actions that an agent node calls when relevant — without a single line of code.",{"type":14,"tag":30,"props":31,"children":33},"h2",{"id":32},"writing-to-a-database",[34],{"type":19,"value":35},"Writing to a database",{"type":14,"tag":15,"props":37,"children":38},{},[39,41,46],{"type":19,"value":40},"From a betool database (",{"type":14,"tag":22,"props":42,"children":43},{},[44],{"type":19,"value":45},"Applications → Databases",{"type":19,"value":47},"), an agent can:",{"type":14,"tag":49,"props":50,"children":51},"ul",{},[52,63,73],{"type":14,"tag":53,"props":54,"children":55},"li",{},[56,61],{"type":14,"tag":22,"props":57,"children":58},{},[59],{"type":19,"value":60},"Create a row",{"type":19,"value":62}," — record a lead, a request, an appointment.",{"type":14,"tag":53,"props":64,"children":65},{},[66,71],{"type":14,"tag":22,"props":67,"children":68},{},[69],{"type":19,"value":70},"Update a row",{"type":19,"value":72}," — change a status, fill in a field.",{"type":14,"tag":53,"props":74,"children":75},{},[76,90,92,97,99,104],{"type":14,"tag":22,"props":77,"children":78},{},[79,81,88],{"type":19,"value":80},"Claim a row (",{"type":14,"tag":82,"props":83,"children":85},"code",{"className":84},[],[86],{"type":19,"value":87},"claim_row",{"type":19,"value":89},")",{"type":19,"value":91}," — an ",{"type":14,"tag":22,"props":93,"children":94},{},[95],{"type":19,"value":96},"atomic",{"type":19,"value":98}," \"compare-and-set\" operation: a field only moves from the expected value to the new value if it still holds the expected value. Only one caller wins the claim: the same task is processed only ",{"type":14,"tag":22,"props":100,"children":101},{},[102],{"type":19,"value":103},"once",{"type":19,"value":105},", even if several executions are running in parallel (exactly-once). Available on betool no-code databases.",{"type":14,"tag":107,"props":108,"children":110},"alert",{"type":109},"info",[111],{"type":14,"tag":15,"props":112,"children":113},{},[114,119,121,126],{"type":14,"tag":82,"props":115,"children":117},{"className":116},[],[118],{"type":19,"value":87},{"type":19,"value":120}," is the building block of a reliable ",{"type":14,"tag":22,"props":122,"children":123},{},[124],{"type":19,"value":125},"task queue",{"type":19,"value":127},": a watcher detects new rows to process, claims them one by one, and no one processes the same row twice.",{"type":14,"tag":129,"props":130,"children":132},"h3",{"id":131},"bulk-import",[133],{"type":19,"value":134},"Bulk import",{"type":14,"tag":15,"props":136,"children":137},{},[138,140,145,147,152],{"type":19,"value":139},"To seed a database, a ",{"type":14,"tag":22,"props":141,"children":142},{},[143],{"type":19,"value":144},"3-step",{"type":19,"value":146}," assistant (file, columns, result) imports an ",{"type":14,"tag":22,"props":148,"children":149},{},[150],{"type":19,"value":151},"xlsx \u002F csv",{"type":19,"value":153}," file, with column mapping. Handy for loading a history or a contact list.",{"type":14,"tag":30,"props":155,"children":157},{"id":156},"sending-an-email",[158],{"type":19,"value":159},"Sending an email",{"type":14,"tag":15,"props":161,"children":162},{},[163,165,171,173,178,180,187],{"type":19,"value":164},"The ",{"type":14,"tag":82,"props":166,"children":168},{"className":167},[],[169],{"type":19,"value":170},"email.send",{"type":19,"value":172}," tool lets an agent ",{"type":14,"tag":22,"props":174,"children":175},{},[176],{"type":19,"value":177},"send an email",{"type":19,"value":179}," (report, confirmation, follow-up) from one of the organization's connected email accounts. Combined with the ",{"type":14,"tag":181,"props":182,"children":184},"a",{"href":183},"\u002Fen\u002Fdocs\u002Fcanaux\u002Fschedule",[185],{"type":19,"value":186},"Schedule",{"type":19,"value":188}," channel, it is the basis of a recurring report.",{"type":14,"tag":30,"props":190,"children":192},{"id":191},"collecting-payment-payment-link",[193],{"type":19,"value":194},"Collecting payment (payment link)",{"type":14,"tag":15,"props":196,"children":197},{},[198,200,206],{"type":19,"value":199},"With the ",{"type":14,"tag":181,"props":201,"children":203},{"href":202},"\u002Fen\u002Fdocs\u002Fintegrations\u002Fstripe",[204],{"type":19,"value":205},"Stripe",{"type":19,"value":207}," integration, an agent can:",{"type":14,"tag":49,"props":209,"children":210},{},[211,229],{"type":14,"tag":53,"props":212,"children":213},{},[214,219,221,227],{"type":14,"tag":22,"props":215,"children":216},{},[217],{"type":19,"value":218},"Generate a payment link",{"type":19,"value":220}," with Stripe Checkout (",{"type":14,"tag":82,"props":222,"children":224},{"className":223},[],[225],{"type":19,"value":226},"stripe.create_payment_link",{"type":19,"value":228},").",{"type":14,"tag":53,"props":230,"children":231},{},[232,237,239,245],{"type":14,"tag":22,"props":233,"children":234},{},[235],{"type":19,"value":236},"Verify the payment",{"type":19,"value":238}," (",{"type":14,"tag":82,"props":240,"children":242},{"className":241},[],[243],{"type":19,"value":244},"stripe.check_payment",{"type":19,"value":246},") before confirming an action.",{"type":14,"tag":15,"props":248,"children":249},{},[250,252,257],{"type":19,"value":251},"Typical use: have an appointment ",{"type":14,"tag":22,"props":253,"children":254},{},[255],{"type":19,"value":256},"prepaid",{"type":19,"value":258}," before placing it on the calendar.",{"type":14,"tag":30,"props":260,"children":262},{"id":261},"transferring-a-call",[263],{"type":19,"value":264},"Transferring a call",{"type":14,"tag":15,"props":266,"children":267},{},[268,270,276,278,283,285,291],{"type":19,"value":269},"On the ",{"type":14,"tag":181,"props":271,"children":273},{"href":272},"\u002Fen\u002Fdocs\u002Fcanaux\u002Ftelephone",[274],{"type":19,"value":275},"Telephony",{"type":19,"value":277}," channel, an agent can ",{"type":14,"tag":22,"props":279,"children":280},{},[281],{"type":19,"value":282},"transfer the ongoing call",{"type":19,"value":284}," to another number (",{"type":14,"tag":82,"props":286,"children":288},{"className":287},[],[289],{"type":19,"value":290},"phone_gateway.transfer_call",{"type":19,"value":292}," tool, SIP REFER) — for example, routing a VIP caller to a direct line. The target number is expected in E.164 format; the transfer is issued after the agent's reply has finished.",{"type":14,"tag":30,"props":294,"children":296},{"id":295},"why-it-is-safe",[297],{"type":19,"value":298},"Why it is safe",{"type":14,"tag":49,"props":300,"children":301},{},[302,314,333],{"type":14,"tag":53,"props":303,"children":304},{},[305,307,312],{"type":19,"value":306},"Sending an email is ",{"type":14,"tag":22,"props":308,"children":309},{},[310],{"type":19,"value":311},"idempotent",{"type":19,"value":313},": in the event of a redeployment or a retry of the same turn, the message is not sent twice.",{"type":14,"tag":53,"props":315,"children":316},{},[317,319,324,326,331],{"type":19,"value":318},"The Stripe payment link uses ",{"type":14,"tag":22,"props":320,"children":321},{},[322],{"type":19,"value":323},"your",{"type":19,"value":325}," organization's Stripe key: you are the one collecting, and the payment is verified (",{"type":14,"tag":82,"props":327,"children":329},{"className":328},[],[330],{"type":19,"value":244},{"type":19,"value":332},") before triggering the action.",{"type":14,"tag":53,"props":334,"children":335},{},[336,341],{"type":14,"tag":82,"props":337,"children":339},{"className":338},[],[340],{"type":19,"value":87},{"type":19,"value":342}," makes it possible to guarantee that a task from a database queue is processed only once.",{"title":7,"searchDepth":344,"depth":344,"links":345},2,[346,350,351,352,353],{"id":32,"depth":344,"text":35,"children":347},[348],{"id":131,"depth":349,"text":134},3,{"id":156,"depth":344,"text":159},{"id":191,"depth":344,"text":194},{"id":261,"depth":344,"text":264},{"id":295,"depth":344,"text":298},"markdown","content:en:docs:3.pipelines:7.actions-no-code.md","content","en\u002Fdocs\u002F3.pipelines\u002F7.actions-no-code.md","en\u002Fdocs\u002F3.pipelines\u002F7.actions-no-code","md",[361],{"title":362,"_path":363,"children":364},"En","\u002Fen",[365],{"title":366,"_path":367,"children":368},"Docs","\u002Fen\u002Fdocs",[369,382,408,434,447,463,476,535],{"title":370,"_path":371,"children":372},"Getting started","\u002Fen\u002Fdocs\u002Fdemarrer",[373,376,379],{"title":374,"_path":375},"Welcome","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":377,"_path":378},"Create an account","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":380,"_path":381},"Connect an LLM key","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":383,"_path":384,"children":385},"Channels","\u002Fen\u002Fdocs\u002Fcanaux",[386,389,391,394,397,400,403,406],{"title":387,"_path":388},"Channels overview","\u002Fen\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":390,"_path":272},"Real-time telephony",{"title":392,"_path":393},"Email","\u002Fen\u002Fdocs\u002Fcanaux\u002Femail",{"title":395,"_path":396},"Web chat widget","\u002Fen\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":398,"_path":399},"HTTP Webhook","\u002Fen\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":401,"_path":402},"Messaging (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":404,"_path":405},"Meta Lead Ads","\u002Fen\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":407,"_path":183},"Schedule (cron)",{"title":409,"_path":410,"children":411},"Pipelines","\u002Fen\u002Fdocs\u002Fpipelines",[412,415,418,421,424,427,430,431],{"title":413,"_path":414},"The Visual Editor","\u002Fen\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":416,"_path":417},"AI Agents","\u002Fen\u002Fdocs\u002Fpipelines\u002Fagents",{"title":419,"_path":420},"Deterministic Operators","\u002Fen\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":422,"_path":423},"Flow Control","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":425,"_path":426},"Code Steps","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":428,"_path":429},"Sub-pipelines","\u002Fen\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":8,"_path":4},{"title":432,"_path":433},"Knowledge base","\u002Fen\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":435,"_path":436,"children":437},"Supervision","\u002Fen\u002Fdocs\u002Fsupervision",[438,441,444],{"title":439,"_path":440},"Execution History","\u002Fen\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":442,"_path":443},"Credits & Metering","\u002Fen\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":445,"_path":446},"Benchmarks","\u002Fen\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":448,"_path":449,"children":450},"Security","\u002Fen\u002Fdocs\u002Fsecurite",[451,454,457,460],{"title":452,"_path":453},"Security principles","\u002Fen\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":455,"_path":456},"Strict multi-tenancy","\u002Fen\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":458,"_path":459},"GDPR audit & access log","\u002Fen\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":461,"_path":462},"Sovereign deployment","\u002Fen\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":464,"_path":465,"children":466},"Developers","\u002Fen\u002Fdocs\u002Fdeveloppeurs",[467,470,473],{"title":468,"_path":469},"Admin API","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":471,"_path":472},"Outbound webhooks","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":474,"_path":475},"Drive betool from Claude (MCP)","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":477,"_path":478,"children":479},"Integrations","\u002Fen\u002Fdocs\u002Fintegrations",[480,483,484,487,490,493,496,499,502,505,508,511,514,517,520,523,526,529,532],{"title":481,"_path":482},"Integrations overview","\u002Fen\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":205,"_path":202},{"title":485,"_path":486},"GitHub","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":488,"_path":489},"Google","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":491,"_path":492},"LinkedIn Ads","\u002Fen\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":494,"_path":495},"Kavkom","\u002Fen\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":497,"_path":498},"Jira","\u002Fen\u002Fdocs\u002Fintegrations\u002Fjira",{"title":500,"_path":501},"Slack","\u002Fen\u002Fdocs\u002Fintegrations\u002Fslack",{"title":503,"_path":504},"SMS","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsms",{"title":506,"_path":507},"Enable Banking (open banking)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":509,"_path":510},"CRM, marketing & productivity","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":512,"_path":513},"HeyGen (video)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":515,"_path":516},"La Poste","\u002Fen\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":518,"_path":519},"Industry CRM (beTool Application, Qhare)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":521,"_path":522},"Mitti (field inspections)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":524,"_path":525},"Meta (Messenger, Pages, Meta Ads)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":527,"_path":528},"Onoff Business (Beta)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":530,"_path":531},"Smart Life \u002F Tuya (connected devices)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":533,"_path":534},"beTool products (Desktop, Kiosk, Terminal)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":536,"_path":537,"children":538},"Use cases","\u002Fen\u002Fdocs\u002Fcas-usage",[539,542,545,548,551,554],{"title":540,"_path":541},"Typical business agents","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":543,"_path":544},"CFO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":546,"_path":547},"COO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":549,"_path":550},"CTO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":552,"_path":553},"Product Manager IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":555,"_path":556},"Personal assistant","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]