[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fen\u002Fdocs\u002Fcanaux\u002Femail":3,"docs-nav-en":489},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":483,"_id":484,"_source":485,"_file":486,"_stem":487,"_extension":488},"\u002Fen\u002Fdocs\u002Fcanaux\u002Femail","canaux",false,"","Email","Inbound email (IMAP) and outbound. Thread preservation, attachment parsing.",{"type":11,"children":12,"toc":473},"root",[13,29,36,41,69,74,80,125,142,148,161,227,233,269,275,288,294,299,393,420,426],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27],{"type":19,"value":20},"text","The ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"email",{"type":19,"value":28}," channel ingests your inbound emails and lets a pipeline reply, forward, or create downstream tasks.",{"type":14,"tag":30,"props":31,"children":33},"h2",{"id":32},"model",[34],{"type":19,"value":35},"Model",{"type":14,"tag":15,"props":37,"children":38},{},[39],{"type":19,"value":40},"Two complementary modules:",{"type":14,"tag":42,"props":43,"children":44},"ul",{},[45,58],{"type":14,"tag":46,"props":47,"children":48},"li",{},[49,56],{"type":14,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":19,"value":55},"email_inbound",{"type":19,"value":57}," — reception (IMAP)",{"type":14,"tag":46,"props":59,"children":60},{},[61,67],{"type":14,"tag":50,"props":62,"children":64},{"className":63},[],[65],{"type":19,"value":66},"email_outbound",{"type":19,"value":68}," — sending (configured operator, or relay via your SMTP)",{"type":14,"tag":15,"props":70,"children":71},{},[72],{"type":19,"value":73},"They are independent: you can use only the inbound module (to triage without replying), or only the outbound module (to send notifications from a pipeline triggered another way).",{"type":14,"tag":30,"props":75,"children":77},{"id":76},"setup",[78],{"type":19,"value":79},"Setup",{"type":14,"tag":81,"props":82,"children":83},"ol",{},[84,101,113],{"type":14,"tag":46,"props":85,"children":86},{},[87,92,94,99],{"type":14,"tag":22,"props":88,"children":89},{},[90],{"type":19,"value":91},"Settings → Services → Email",{"type":19,"value":93},", ",{"type":14,"tag":22,"props":95,"children":96},{},[97],{"type":19,"value":98},"Accounts",{"type":19,"value":100}," tab — connect an IMAP mailbox with its credentials.",{"type":14,"tag":46,"props":102,"children":103},{},[104,106,111],{"type":19,"value":105},"Map the mailbox to a ",{"type":14,"tag":22,"props":107,"children":108},{},[109],{"type":19,"value":110},"target pipeline",{"type":19,"value":112},".",{"type":14,"tag":46,"props":114,"children":115},{},[116,118,123],{"type":19,"value":117},"(Optional) Configure a ",{"type":14,"tag":22,"props":119,"children":120},{},[121],{"type":19,"value":122},"sender",{"type":19,"value":124}," (SMTP) to reply.",{"type":14,"tag":126,"props":127,"children":129},"alert",{"type":128},"info",[130],{"type":14,"tag":15,"props":131,"children":132},{},[133,135,140],{"type":19,"value":134},"For architectures that need to retain control of their mail servers, betool does ",{"type":14,"tag":22,"props":136,"children":137},{},[138],{"type":19,"value":139},"not",{"type":19,"value":141}," replace your MTA: we read and write via standard IMAP \u002F SMTP.",{"type":14,"tag":30,"props":143,"children":145},{"id":144},"what-the-pipeline-receives",[146],{"type":19,"value":147},"What the pipeline receives",{"type":14,"tag":15,"props":149,"children":150},{},[151,153,159],{"type":19,"value":152},"For each inbound email, a new ",{"type":14,"tag":50,"props":154,"children":156},{"className":155},[],[157],{"type":19,"value":158},"exchange",{"type":19,"value":160}," is created with:",{"type":14,"tag":42,"props":162,"children":163},{},[164,175,186,197,208],{"type":14,"tag":46,"props":165,"children":166},{},[167,173],{"type":14,"tag":50,"props":168,"children":170},{"className":169},[],[171],{"type":19,"value":172},"exchange.user_message",{"type":19,"value":174}," — email body (HTML → normalized text)",{"type":14,"tag":46,"props":176,"children":177},{},[178,184],{"type":14,"tag":50,"props":179,"children":181},{"className":180},[],[182],{"type":19,"value":183},"exchange.email.subject",{"type":19,"value":185}," — subject line",{"type":14,"tag":46,"props":187,"children":188},{},[189,195],{"type":14,"tag":50,"props":190,"children":192},{"className":191},[],[193],{"type":19,"value":194},"exchange.email.from",{"type":19,"value":196}," — normalized sender",{"type":14,"tag":46,"props":198,"children":199},{},[200,206],{"type":14,"tag":50,"props":201,"children":203},{"className":202},[],[204],{"type":19,"value":205},"exchange.email.thread_id",{"type":19,"value":207}," — thread identifier (useful for multi-turn context)",{"type":14,"tag":46,"props":209,"children":210},{},[211,217,219,225],{"type":14,"tag":50,"props":212,"children":214},{"className":213},[],[215],{"type":19,"value":216},"exchange.email.attachments",{"type":19,"value":218}," — list of ",{"type":14,"tag":50,"props":220,"children":222},{"className":221},[],[223],{"type":19,"value":224},"FileMetadata",{"type":19,"value":226}," (parsed attachments)",{"type":14,"tag":30,"props":228,"children":230},{"id":229},"attachments",[231],{"type":19,"value":232},"Attachments",{"type":14,"tag":15,"props":234,"children":235},{},[236,238,244,246,252,254,260,261,267],{"type":19,"value":237},"Attachments can be passed to the ",{"type":14,"tag":50,"props":239,"children":241},{"className":240},[],[242],{"type":19,"value":243},"file_transform",{"type":19,"value":245}," node: selectable text from a PDF (",{"type":14,"tag":50,"props":247,"children":249},{"className":248},[],[250],{"type":19,"value":251},"pdf_extract_text",{"type":19,"value":253},", no OCR — a scanned PDF yields no text), reading an Excel workbook as rows (",{"type":14,"tag":50,"props":255,"children":257},{"className":256},[],[258],{"type":19,"value":259},"xlsx_to_json",{"type":19,"value":93},{"type":14,"tag":50,"props":262,"children":264},{"className":263},[],[265],{"type":19,"value":266},"xls_to_json",{"type":19,"value":268},"), splitting a PDF or rendering it as images, extracting an archive. From there, your agent can work with them as text or structured data.",{"type":14,"tag":30,"props":270,"children":272},{"id":271},"threads-multi-turn-context",[273],{"type":19,"value":274},"Threads & multi-turn context",{"type":14,"tag":15,"props":276,"children":277},{},[278,280,286],{"type":19,"value":279},"When a customer replies to a previous response, betool recognizes the ",{"type":14,"tag":50,"props":281,"children":283},{"className":282},[],[284],{"type":19,"value":285},"thread_id",{"type":19,"value":287}," and restores the thread history in the agent's context. This is transparent to pipeline design.",{"type":14,"tag":30,"props":289,"children":291},{"id":290},"address-quality-and-bounces",[292],{"type":19,"value":293},"Address quality and bounces",{"type":14,"tag":15,"props":295,"children":296},{},[297],{"type":19,"value":298},"Three nodes protect your sender reputation:",{"type":14,"tag":42,"props":300,"children":301},{},[302,324,372],{"type":14,"tag":46,"props":303,"children":304},{},[305,314,316,322],{"type":14,"tag":22,"props":306,"children":307},{},[308],{"type":14,"tag":50,"props":309,"children":311},{"className":310},[],[312],{"type":19,"value":313},"email_check",{"type":19,"value":315}," — checks one or more addresses before sending: the organization's suppression list, syntax, then the domain's DNS (MX, or failing that A\u002FAAAA; a \"null MX\" counts as a refusal). It also flags, without changing the verdict, disposable addresses, generic mailboxes (",{"type":14,"tag":50,"props":317,"children":319},{"className":318},[],[320],{"type":19,"value":321},"info@",{"type":19,"value":323},"…) and risks (typo on a major provider, duplicated extension, \"catch-all\" server). It blocks nothing itself: it publishes the verdicts and the list of deliverable addresses. No SMTP probe is performed.",{"type":14,"tag":46,"props":325,"children":326},{},[327,336,338,343,344,349,350,355,357,363,365,370],{"type":14,"tag":22,"props":328,"children":329},{},[330],{"type":14,"tag":50,"props":331,"children":333},{"className":332},[],[334],{"type":19,"value":335},"email_list_clean",{"type":19,"value":337}," — qualifies an entire list (for example from an imported file) into three sheets: ",{"type":14,"tag":22,"props":339,"children":340},{},[341],{"type":19,"value":342},"clean",{"type":19,"value":93},{"type":14,"tag":22,"props":345,"children":346},{},[347],{"type":19,"value":348},"to review",{"type":19,"value":93},{"type":14,"tag":22,"props":351,"children":352},{},[353],{"type":19,"value":354},"rejected",{"type":19,"value":356},", ready to export with ",{"type":14,"tag":50,"props":358,"children":360},{"className":359},[],[361],{"type":19,"value":362},"data_to_file",{"type":19,"value":364},". Deduplication, the same checks as ",{"type":14,"tag":50,"props":366,"children":368},{"className":367},[],[369],{"type":19,"value":313},{"type":19,"value":371},", and analysis of the address's shape. Billed in credits per distinct address, balance checked before processing.",{"type":14,"tag":46,"props":373,"children":374},{},[375,384,386,391],{"type":14,"tag":22,"props":376,"children":377},{},[378],{"type":14,"tag":50,"props":379,"children":381},{"className":380},[],[382],{"type":19,"value":383},"email_bounce_parse",{"type":19,"value":385}," — reads a non-delivery report received in an inbound mailbox. Addresses are only taken from the report's structured fields, never from the free text. They are added to the ",{"type":14,"tag":22,"props":387,"children":388},{},[389],{"type":19,"value":390},"suppression list",{"type":19,"value":392},": a permanent failure blocks from the first occurrence; a temporary failure blocks after 3 occurrences, for 72 hours.",{"type":14,"tag":15,"props":394,"children":395},{},[396,398,403,405,411,413,418],{"type":19,"value":397},"Subsequent sends (",{"type":14,"tag":50,"props":399,"children":401},{"className":400},[],[402],{"type":19,"value":66},{"type":19,"value":404}," node and ",{"type":14,"tag":50,"props":406,"children":408},{"className":407},[],[409],{"type":19,"value":410},"email.send",{"type":19,"value":412}," tool) ",{"type":14,"tag":22,"props":414,"children":415},{},[416],{"type":19,"value":417},"automatically remove",{"type":19,"value":419}," suppressed addresses; if no recipient remains, nothing is sent. Only an administrator can lift a permanent block.",{"type":14,"tag":30,"props":421,"children":423},{"id":422},"known-limitations",[424],{"type":19,"value":425},"Known limitations",{"type":14,"tag":42,"props":427,"children":428},{},[429,441,468],{"type":14,"tag":46,"props":430,"children":431},{},[432,434,439],{"type":19,"value":433},"No native ",{"type":14,"tag":22,"props":435,"children":436},{},[437],{"type":19,"value":438},"MS Exchange EWS",{"type":19,"value":440}," support (you can expose Exchange over IMAP).",{"type":14,"tag":46,"props":442,"children":443},{},[444,446,451,453,458,460,466],{"type":19,"value":445},"Office 365 ingestion goes through ",{"type":14,"tag":22,"props":447,"children":448},{},[449],{"type":19,"value":450},"IMAP",{"type":19,"value":452},", not the Microsoft Graph API. (To ",{"type":14,"tag":22,"props":454,"children":455},{},[456],{"type":19,"value":457},"send",{"type":19,"value":459}," from a Microsoft mailbox via Graph, use the ",{"type":14,"tag":50,"props":461,"children":463},{"className":462},[],[464],{"type":19,"value":465},"microsoft_send_mail",{"type":19,"value":467}," node.)",{"type":14,"tag":46,"props":469,"children":470},{},[471],{"type":19,"value":472},"Parsing very old emails (nested Outlook 2003 RTF) may lose some formatting.",{"title":7,"searchDepth":474,"depth":474,"links":475},2,[476,477,478,479,480,481,482],{"id":32,"depth":474,"text":35},{"id":76,"depth":474,"text":79},{"id":144,"depth":474,"text":147},{"id":229,"depth":474,"text":232},{"id":271,"depth":474,"text":274},{"id":290,"depth":474,"text":293},{"id":422,"depth":474,"text":425},"markdown","content:en:docs:2.canaux:3.email.md","content","en\u002Fdocs\u002F2.canaux\u002F3.email.md","en\u002Fdocs\u002F2.canaux\u002F3.email","md",[490],{"title":491,"_path":492,"children":493},"En","\u002Fen",[494],{"title":495,"_path":496,"children":497},"Docs","\u002Fen\u002Fdocs",[498,511,537,565,578,594,607,668],{"title":499,"_path":500,"children":501},"Getting started","\u002Fen\u002Fdocs\u002Fdemarrer",[502,505,508],{"title":503,"_path":504},"Welcome","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":506,"_path":507},"Create an account","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":509,"_path":510},"Connect an LLM key","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":512,"_path":513,"children":514},"Channels","\u002Fen\u002Fdocs\u002Fcanaux",[515,518,521,522,525,528,531,534],{"title":516,"_path":517},"Channels overview","\u002Fen\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":519,"_path":520},"Real-time telephony","\u002Fen\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":8,"_path":4},{"title":523,"_path":524},"Web chat widget","\u002Fen\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":526,"_path":527},"HTTP Webhook","\u002Fen\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":529,"_path":530},"Messaging (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":532,"_path":533},"Meta Lead Ads","\u002Fen\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":535,"_path":536},"Schedule (cron)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":538,"_path":539,"children":540},"Pipelines","\u002Fen\u002Fdocs\u002Fpipelines",[541,544,547,550,553,556,559,562],{"title":542,"_path":543},"The Visual Editor","\u002Fen\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":545,"_path":546},"AI Agents","\u002Fen\u002Fdocs\u002Fpipelines\u002Fagents",{"title":548,"_path":549},"Deterministic Operators","\u002Fen\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":551,"_path":552},"Flow Control","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":554,"_path":555},"Code Steps","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":557,"_path":558},"Sub-pipelines","\u002Fen\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":560,"_path":561},"No-code actions","\u002Fen\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":563,"_path":564},"Knowledge base","\u002Fen\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":566,"_path":567,"children":568},"Supervision","\u002Fen\u002Fdocs\u002Fsupervision",[569,572,575],{"title":570,"_path":571},"Execution History","\u002Fen\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":573,"_path":574},"Credits & Metering","\u002Fen\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":576,"_path":577},"Benchmarks","\u002Fen\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":579,"_path":580,"children":581},"Security","\u002Fen\u002Fdocs\u002Fsecurite",[582,585,588,591],{"title":583,"_path":584},"Security principles","\u002Fen\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":586,"_path":587},"Strict multi-tenancy","\u002Fen\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":589,"_path":590},"GDPR audit & access log","\u002Fen\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":592,"_path":593},"Sovereign deployment","\u002Fen\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":595,"_path":596,"children":597},"Developers","\u002Fen\u002Fdocs\u002Fdeveloppeurs",[598,601,604],{"title":599,"_path":600},"Admin API","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":602,"_path":603},"Outbound webhooks","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":605,"_path":606},"Drive betool from Claude (MCP)","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":608,"_path":609,"children":610},"Integrations","\u002Fen\u002Fdocs\u002Fintegrations",[611,614,617,620,623,626,629,632,635,638,641,644,647,650,653,656,659,662,665],{"title":612,"_path":613},"Integrations overview","\u002Fen\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":615,"_path":616},"Stripe","\u002Fen\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":618,"_path":619},"GitHub","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":621,"_path":622},"Google","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":624,"_path":625},"LinkedIn Ads","\u002Fen\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":627,"_path":628},"Kavkom","\u002Fen\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":630,"_path":631},"Jira","\u002Fen\u002Fdocs\u002Fintegrations\u002Fjira",{"title":633,"_path":634},"Slack","\u002Fen\u002Fdocs\u002Fintegrations\u002Fslack",{"title":636,"_path":637},"SMS","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsms",{"title":639,"_path":640},"Enable Banking (open banking)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":642,"_path":643},"CRM, marketing & productivity","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":645,"_path":646},"HeyGen (video)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":648,"_path":649},"La Poste","\u002Fen\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":651,"_path":652},"Industry CRM (beTool Application, Qhare)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":654,"_path":655},"Mitti (field inspections)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":657,"_path":658},"Meta (Messenger, Pages, Meta Ads)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":660,"_path":661},"Onoff Business (Beta)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":663,"_path":664},"Smart Life \u002F Tuya (connected devices)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":666,"_path":667},"beTool products (Desktop, Kiosk, Terminal)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":669,"_path":670,"children":671},"Use cases","\u002Fen\u002Fdocs\u002Fcas-usage",[672,675,678,681,684,687],{"title":673,"_path":674},"Typical business agents","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":676,"_path":677},"CFO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":679,"_path":680},"COO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":682,"_path":683},"CTO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":685,"_path":686},"Product Manager IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":688,"_path":689},"Personal assistant","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]