{"id":31636,"date":"2026-09-10T11:32:39","date_gmt":"2026-09-10T09:32:39","guid":{"rendered":"https:\/\/botnation.ai\/designing-a-chatbot\/"},"modified":"2026-09-10T11:43:17","modified_gmt":"2026-09-10T09:43:17","slug":"designing-a-chatbot","status":"publish","type":"post","link":"https:\/\/botnation.ai\/en\/designing-a-chatbot\/","title":{"rendered":"Designing a Chatbot: The Complete 7-Step Method (2026)"},"content":{"rendered":"<p><script>var s=document.createElement(\"style\");s.appendChild(document.createTextNode(`.bn-art{ --bn-cream:#faf8f2; --bn-card:#faf6ea; --bn-sand:#ebe3cb; --bn-sand-2:#f3ecd9; --bn-sand-zebra:#f6f0df; --bn-coral:#fe716b; --bn-coral-soft:#fdeeed; --bn-coral-line:#f6c9c6; --bn-coral-txt:#bd3a34; --bn-blue:#3358f0; --bn-blue-soft:#eef1fe; --bn-blue-line:#c9d4fb; --bn-green:#427632; --bn-green-soft:#eef6ea; --bn-ink:#3d351f; --bn-text:#414b56; --bn-muted:#6d6653; --bn-border:#e6dcc2; --bn-r:16px; --bn-r-sm:11px; --bn-sp:22px; --bn-sh:0 1px 2px rgba(61,53,31,.05),0 10px 26px rgba(61,53,31,.07); --bn-sh-sm:0 1px 2px rgba(61,53,31,.05),0 4px 12px rgba(61,53,31,.05); --bn-mono:'IBM Plex Mono','SFMono-Regular',ui-monospace,'Courier New',monospace; color:var(--bn-text); font-size:18px; line-height:1.75; max-width:820px; margin:0 auto; } .bn-art *{box-sizing:border-box} .bn-art p{margin:0 0 1.15em; color:var(--bn-text)} .bn-art h2{ color:var(--bn-ink); font-weight:700; line-height:1.25; font-size:1.72em; margin:2.2em 0 .7em; letter-spacing:-.01em; } .bn-art h3{color:var(--bn-ink); font-weight:700; font-size:1.22em; margin:1.8em 0 .5em} .bn-art a{color:#3f5cd6; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px} .bn-art a:hover{color:var(--bn-coral)} .bn-art strong{color:var(--bn-ink); font-weight:700} .bn-art ul,.bn-art ol{margin:0 0 1.3em; padding-left:1.25em} .bn-art li{margin:.4em 0} .bn-art ul li::marker{color:var(--bn-coral)} .bn-art ol li::marker{color:var(--bn-blue); font-weight:700} .bn-klabel{ display:inline-flex; align-items:center; gap:7px; font-family:var(--bn-mono); font-size:14px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--bn-coral); margin:0 0 .2em; } .bn-klabel svg{width:15px;height:15px;flex:none} .bn-tldr{ background:var(--bn-card); border:1px solid var(--bn-border); border-left:4px solid var(--bn-coral); border-radius:var(--bn-r); padding:20px 24px; margin:0 0 30px; box-shadow:var(--bn-sh-sm); } .bn-tldr p{margin:0; color:var(--bn-text)} .bn-tldr p+p{margin-top:.6em} .bn-toc{ background:var(--bn-sand-2); border:1px solid var(--bn-sand); border-radius:var(--bn-r); padding:18px 22px; margin:0 0 34px; } .bn-toc .bn-klabel{color:var(--bn-coral)} .bn-toc ol{margin:.4em 0 0; padding-left:1.2em; columns:2; column-gap:28px} .bn-toc li{margin:.25em 0; break-inside:avoid} .bn-toc a{color:var(--bn-ink); text-decoration:none; font-weight:600; font-size:.96em} .bn-toc a:hover{color:var(--bn-coral); text-decoration:underline} .bn-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px 0} .bn-stat{ background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:20px 18px; text-align:center; box-shadow:var(--bn-sh-sm); } .bn-stat b{display:block; font-size:2em; line-height:1.1; color:var(--bn-coral); font-weight:800; letter-spacing:-.02em} .bn-stat span{display:block; margin-top:6px; font-size:.86em; color:var(--bn-muted); line-height:1.45} .bn-stat:nth-child(2) b{color:var(--bn-blue)} .bn-stat:nth-child(3) b{color:var(--bn-ink)} .bn-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:26px 0} .bn-card{ background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:22px; box-shadow:var(--bn-sh-sm); } .bn-card h4{margin:.1em 0 .35em; color:var(--bn-ink); font-size:1.06em; font-weight:700; display:flex; gap:9px; align-items:center} .bn-card h4 svg{width:20px;height:20px;flex:none;color:var(--bn-coral)} .bn-card p{margin:0; font-size:.96em} .bn-ex{ background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:20px 0; box-shadow:var(--bn-sh); position:relative; } .bn-ex-h{display:flex; align-items:center; gap:13px; margin-bottom:14px} .bn-ex-n{ flex:none; width:38px; height:38px; border-radius:11px; background:var(--bn-coral-soft); color:var(--bn-coral); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.1em; font-family:var(--bn-mono); } .bn-ex-h h3{margin:0; font-size:1.18em} .bn-ex-tag{font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.1em; color:var(--bn-muted); display:block; margin-top:2px} .bn-ex p{margin:.2em 0 .9em} .bn-ex .bn-ba{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px} .bn-ba div{border-radius:var(--bn-r-sm); padding:13px 15px; font-size:.9em; line-height:1.5} .bn-ba .biz{background:var(--bn-blue-soft); border:1px solid var(--bn-blue-line)} .bn-ba .cli{background:var(--bn-green-soft); border:1px solid #cfe6c4} .bn-ba b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; color:var(--bn-muted)} .bn-tablewrap{overflow-x:auto; margin:26px 0; border-radius:var(--bn-r); border:1px solid var(--bn-border); box-shadow:var(--bn-sh-sm)} .bn-art table{width:100%; border-collapse:collapse; background:var(--bn-card); font-size:.94em; min-width:520px} .bn-art thead th{background:var(--bn-ink); color:#fbf7ec; text-align:left; font-weight:700; padding:13px 16px; font-size:16px} .bn-art tbody td{padding:12px 16px; border-top:1px solid var(--bn-border); color:var(--bn-text); vertical-align:top; font-size:16px} .bn-art tbody tr:nth-child(even){background:var(--bn-sand-zebra)} .bn-art tbody td:first-child{font-weight:700; color:var(--bn-ink)} .bn-cols{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:26px 0} .bn-col{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:22px; box-shadow:var(--bn-sh-sm)} .bn-col h4{margin:0 0 12px; font-size:1.05em; color:var(--bn-ink); display:flex; align-items:center; gap:9px} .bn-col h4 svg{width:20px;height:20px;flex:none} .bn-col.biz h4 svg{color:var(--bn-blue)} .bn-col.cli h4 svg{color:var(--bn-green)} .bn-col.warn h4 svg{color:var(--bn-coral)} .bn-col ul{margin:0; padding:0; list-style:none} .bn-col li{position:relative; padding-left:26px; margin:.55em 0; font-size:.96em} .bn-col li::before{content:\"\"; position:absolute; left:0; top:.5em; width:13px; height:13px; border-radius:50%; background:var(--bn-coral-soft); border:2px solid var(--bn-coral)} .bn-col.biz li::before{background:var(--bn-blue-soft); border-color:var(--bn-blue)} .bn-col.cli li::before{background:var(--bn-green-soft); border-color:var(--bn-green)} .bn-call{ display:flex; gap:14px; border-radius:var(--bn-r); padding:18px 20px; margin:24px 0; background:var(--bn-card); border:1px solid var(--bn-border); box-shadow:var(--bn-sh-sm); } .bn-call svg{width:22px; height:22px; flex:none; margin-top:1px} .bn-call b{color:var(--bn-ink)} .bn-call p{margin:0; font-size:.95em} .bn-call .bn-klabel{margin-bottom:3px} .bn-tip{border-left:4px solid var(--bn-green)} .bn-tip svg{color:var(--bn-green)} .bn-tip .bn-klabel{color:var(--bn-green)} .bn-warn{border-left:4px solid var(--bn-coral)} .bn-warn svg{color:var(--bn-coral)} .bn-warn .bn-klabel{color:var(--bn-coral)} .bn-info{border-left:4px solid var(--bn-blue)} .bn-info svg{color:var(--bn-blue)} .bn-info .bn-klabel{color:var(--bn-blue)} .bn-def{background:var(--bn-blue-soft); border:1px solid var(--bn-blue-line); border-radius:var(--bn-r); padding:20px 24px; margin:24px 0} .bn-def .bn-klabel{color:var(--bn-blue)} .bn-def p{margin:0} .bn-steps{counter-reset:s; list-style:none; padding:0; margin:24px 0} .bn-steps li{position:relative; padding:0 0 4px 56px; margin:0 0 18px; min-height:40px} .bn-steps li::before{ counter-increment:s; content:counter(s); position:absolute; left:0; top:0; width:40px; height:40px; border-radius:12px; background:var(--bn-coral); color:#fff; font-weight:800; font-family:var(--bn-mono); display:flex; align-items:center; justify-content:center; box-shadow:var(--bn-sh-sm); } .bn-steps li b{display:block; color:var(--bn-ink); margin-bottom:2px} .bn-check{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-check h3{margin:.1em 0 .3em} .bn-check>p{font-size:.95em; color:var(--bn-muted); margin-bottom:14px} .bn-check ul{list-style:none; padding:0; margin:0 0 18px} .bn-check li{margin:0; border-top:1px solid var(--bn-border)} .bn-check li:first-child{border-top:none} .bn-check label{display:flex; align-items:flex-start; gap:13px; padding:12px 2px; cursor:pointer; font-size:.97em; color:var(--bn-text)} .bn-check input{appearance:none; -webkit-appearance:none; flex:none; width:22px; height:22px; margin-top:1px; border:2px solid var(--bn-coral-line); border-radius:7px; background:#fff; cursor:pointer; position:relative; transition:.15s} .bn-check input:checked{background:var(--bn-coral); border-color:var(--bn-coral)} .bn-check input:checked::after{content:\"\"; position:absolute; left:6px; top:2px; width:6px; height:11px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg)} .bn-result{border-radius:var(--bn-r-sm); padding:16px 18px; background:var(--bn-coral-soft); border:1px solid var(--bn-coral-line); font-size:.96em} .bn-result b{color:var(--bn-ink)} .bn-result .bn-score{font-family:var(--bn-mono); font-weight:700; color:var(--bn-coral)} .bn-result .bnc-res{display:none; margin-top:10px} .bn-result .bnc-res.on{display:block} .bn-result .bnc-res p{margin:0; color:var(--bn-text)} .bn-faq{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); margin:0 0 12px; box-shadow:var(--bn-sh-sm); overflow:hidden} .bn-faq summary{cursor:pointer; padding:17px 20px; font-weight:700; color:var(--bn-ink); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px; font-size:1.03em} .bn-faq summary::-webkit-details-marker{display:none} .bn-faq summary::after{content:\"+\"; font-family:var(--bn-mono); font-size:1.5em; color:var(--bn-coral); flex:none; line-height:1; transition:transform .2s} .bn-faq[open] summary::after{transform:rotate(45deg)} .bn-faq .bn-faq-b{padding:0 20px 18px; color:var(--bn-text)} .bn-faq .bn-faq-b p{margin:0} .bn-fig{margin:30px 0; text-align:center} .bn-fig img{width:100%; height:auto; border-radius:var(--bn-r); box-shadow:var(--bn-sh); display:block} .bn-fig figcaption{margin-top:10px; font-size:.85em; color:var(--bn-muted); font-style:italic} .bn-cta{background:var(--bn-ink); border-radius:var(--bn-r); padding:34px 32px; margin:36px 0 12px; text-align:center} .bn-cta h3{color:#fff; margin:0 0 .4em; font-size:1.4em} .bn-cta p{color:#e9e2cf; margin:0 auto 20px; max-width:560px; font-size:1em} .bn-cta-btn{display:inline-block; background:var(--bn-coral); color:#332c19 !important; text-decoration:none !important; font-weight:800; padding:15px 34px; border-radius:999px; font-size:1.02em; box-shadow:0 8px 22px rgba(254,113,107,.35); transition:.15s} .bn-cta-btn:hover{background:#ff8782; color:#fff !important} .bn-quiz{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-quiz .bnq-q{padding:14px 0; border-top:1px solid var(--bn-border)} .bn-quiz .bnq-q:first-of-type{border-top:none; padding-top:4px} .bn-quiz .bnq-qt{font-weight:700; color:var(--bn-ink); margin:0 0 10px; font-size:1.02em} .bn-quiz .bnq-opt{display:flex; align-items:flex-start; gap:12px; padding:9px 12px; margin:6px 0; cursor:pointer; font-size:.96em; color:var(--bn-text); border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); background:#fff; transition:.15s} .bn-quiz .bnq-opt:hover{border-color:var(--bn-coral-line); background:var(--bn-coral-soft)} .bn-quiz .bnq-opt input{appearance:none; -webkit-appearance:none; flex:none; width:20px; height:20px; margin-top:1px; border:2px solid var(--bn-coral-line); border-radius:50%; background:#fff; cursor:pointer; position:relative; transition:.15s} .bn-quiz .bnq-opt input:checked{border-color:var(--bn-coral)} .bn-quiz .bnq-opt input:checked::after{content:\"\"; position:absolute; left:3px; top:3px; width:10px; height:10px; border-radius:50%; background:var(--bn-coral)} .bn-quiz .bnq-opt:has(input:checked){border-color:var(--bn-coral); background:var(--bn-coral-soft)} .bn-quiz .bnq-btn{margin-top:16px; display:inline-block; background:var(--bn-coral); color:#332c19; border:none; font-weight:800; font-size:1em; padding:13px 30px; border-radius:999px; cursor:pointer; box-shadow:0 6px 16px rgba(254,113,107,.28); transition:.15s; font-family:inherit} .bn-quiz .bnq-btn:hover{background:#ff8782} .bn-quiz .bnq-res{display:none; margin-top:18px; padding:18px 20px; border-radius:var(--bn-r-sm); background:var(--bn-blue-soft); border:1px solid var(--bn-blue-line)} .bn-quiz .bnq-res.on{display:block} .bn-quiz #bnq-agent{background:var(--bn-coral-soft); border-color:var(--bn-coral-line)} .bn-quiz #bnq-hybrid{background:var(--bn-green-soft); border-color:#cfe6c4} .bn-quiz .bnq-rt{font-weight:800; color:var(--bn-ink); margin:0 0 6px; font-size:1.08em} .bn-quiz .bnq-res p{margin:0} .bn-spectrum{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-spectrum h3{margin:.1em 0 .3em} .bn-spectrum>p{font-size:.95em; color:var(--bn-muted); margin:0 0 20px} .bn-spec-track{margin:26px 4px 4px} .bn-spec-range{-webkit-appearance:none; appearance:none; width:100%; height:8px; border-radius:999px; background:var(--bn-sand); outline:none; cursor:pointer; margin:0} .bn-spec-range::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:26px; height:26px; border-radius:50%; background:var(--bn-coral); border:3px solid #fff; box-shadow:var(--bn-sh-sm); cursor:pointer} .bn-spec-range::-moz-range-thumb{width:26px; height:26px; border-radius:50%; background:var(--bn-coral); border:3px solid #fff; box-shadow:var(--bn-sh-sm); cursor:pointer} .bn-spec-stops{display:flex; justify-content:space-between; margin-top:13px; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.07em; color:var(--bn-muted); gap:8px} .bn-spec-stops span{flex:1; cursor:pointer; transition:.15s; text-align:center} .bn-spec-stops span:first-child{text-align:left} .bn-spec-stops span:last-child{text-align:right} .bn-spec-stops span.on{color:var(--bn-coral); font-weight:700} .bns-pane{display:none; margin-top:22px; border-radius:var(--bn-r-sm); padding:20px 22px; background:var(--bn-sand-2); border:1px solid var(--bn-sand)} .bns-pane.on{display:block} .bns-pane h4{margin:0 0 3px; color:var(--bn-ink); font-size:1.14em} .bns-tag{font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.1em; color:var(--bn-coral); display:block; margin-bottom:11px} .bns-pane>p{margin:0; font-size:.96em; color:var(--bn-text)} .bns-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:15px} .bns-grid div{background:#fff; border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); padding:11px 14px; font-size:.9em; color:var(--bn-text)} .bns-grid b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.07em; color:var(--bn-muted); margin-bottom:3px} .bn-roi{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-roi h3{margin:.1em 0 .3em} .bn-roi>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-roi-fields{display:grid; grid-template-columns:1fr 1fr; gap:20px 28px; margin:18px 0 24px} .bn-roi-field:last-child{grid-column:1\/-1} .bn-roi-field label{display:block; font-size:.9em; color:var(--bn-text); font-weight:600; margin-bottom:11px} .bn-roi-field output{font-family:var(--bn-mono); font-weight:700; color:var(--bn-coral)} .bn-roi-out{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:4px} .bn-roi-stat{background:var(--bn-sand-2); border:1px solid var(--bn-sand); border-radius:var(--bn-r); padding:20px 16px; text-align:center} .bn-roi-stat b{display:block; font-size:1.85em; line-height:1.05; color:var(--bn-coral); font-weight:800; letter-spacing:-.02em; font-family:var(--bn-mono)} .bn-roi-stat:nth-child(2) b{color:var(--bn-blue)} .bn-roi-stat:nth-child(3) b{color:var(--bn-ink)} .bn-roi-stat span{display:block; margin-top:7px; font-size:.82em; color:var(--bn-muted); line-height:1.4} .bn-roi-note{font-size:16px; color:var(--bn-muted); margin:16px 0 0; font-style:italic} .bn-bot{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:22px 24px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-bot h3{margin:.1em 0 .3em} .bn-bot>p{font-size:.95em; color:var(--bn-muted); margin:0 0 16px} .bn-bot-win{border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); background:#fff; overflow:hidden} .bn-bot-bar{display:flex; align-items:center; gap:11px; padding:12px 16px; background:var(--bn-sand-2); border-bottom:1px solid var(--bn-border)} .bn-bot-ava{flex:none; width:32px; height:32px; border-radius:50%; background:var(--bn-coral-soft); display:flex; align-items:center; justify-content:center} .bn-bot-ava svg{width:19px; height:19px; color:var(--bn-coral)} .bn-bot-id b{display:block; color:var(--bn-ink); font-size:.95em; line-height:1.2} .bn-bot-id span{font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-green); display:inline-flex; align-items:center; gap:5px} .bn-bot-id span::before{content:\"\"; width:7px; height:7px; border-radius:50%; background:var(--bn-green)} .bn-bot-log{padding:16px; min-height:130px; max-height:320px; overflow-y:auto; display:flex; flex-direction:column; gap:10px} .bn-bot-msg{max-width:82%; padding:10px 14px; border-radius:15px; font-size:.95em; line-height:1.5} .bn-bot-msg.bot{align-self:flex-start; background:var(--bn-sand-2); color:var(--bn-text); border-bottom-left-radius:4px} .bn-bot-msg.user{align-self:flex-end; background:var(--bn-coral); color:#332c19; border-bottom-right-radius:4px} .bn-bot-quick{display:flex; flex-wrap:wrap; gap:8px; padding:2px 16px 14px} .bn-art .bn-bot-qbtn{font-family:inherit; font-size:16px; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:7px 14px; cursor:pointer; transition:.15s} .bn-art .bn-bot-qbtn:hover{background:var(--bn-coral-soft); border-color:var(--bn-coral)} .bn-bot-form{display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--bn-border); background:var(--bn-sand-2)} .bn-bot-input{flex:1; min-width:0; font-family:inherit; font-size:.95em; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-border); border-radius:999px; padding:10px 16px; outline:none} .bn-bot-input:focus{border-color:var(--bn-coral)} .bn-art .bn-bot-send{flex:none; font-family:inherit; font-weight:700; font-size:16px; color:#fff; background:var(--bn-coral); border:none; border-radius:999px; padding:10px 20px; cursor:pointer; transition:.15s} .bn-art .bn-bot-send:hover{background:#ff8782} .bn-art .bn-bot-note{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic} .bbot-kb,.bbot-fallback{display:none} .bn-shot{margin:16px 0 2px; border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); background:#fff; overflow:hidden} .bn-shot-bar{display:flex; align-items:center; gap:8px; padding:9px 13px; background:var(--bn-sand-2); border-bottom:1px solid var(--bn-border)} .bn-shot-dot{width:8px;height:8px;border-radius:50%;background:var(--bn-green);flex:none} .bn-shot-bar b{color:var(--bn-ink); font-size:.9em} .bn-shot-bar span{margin-left:auto; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--bn-muted)} .bn-shot-log{padding:13px 14px; display:flex; flex-direction:column; gap:8px} .bn-shot .bn-bot-msg{max-width:86%; font-size:.9em} .bn-shot-quick{display:flex; flex-wrap:wrap; gap:6px; margin-top:2px} .bn-shot-quick span{font-size:14px; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:4px 11px} .bn-exlink{margin:13px 0 0; font-weight:700; display:flex; align-items:center; gap:6px} .bn-exlink svg{width:16px;height:16px;flex:none;color:var(--bn-coral)} .bn-lb{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-lb h3{margin:.1em 0 .3em} .bn-lb>p{font-size:.95em; color:var(--bn-muted); margin:0 0 16px} .bn-lb-ctrl{display:flex; flex-wrap:wrap; gap:11px; align-items:center; margin:0 0 16px} .bn-lb-ctrl br{display:none} .bn-lb-search{flex:1; min-width:200px; font-family:inherit; font-size:16px; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-border); border-radius:999px; padding:11px 18px; outline:none} .bn-lb-search:focus{border-color:var(--bn-coral)} .bn-lb-filters{display:flex; flex-wrap:wrap; gap:8px} .bn-art .bn-lb-fbtn{font-family:inherit; font-size:16px; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:9px 16px; cursor:pointer; transition:.15s} .bn-art .bn-lb-fbtn:hover{background:var(--bn-coral-soft)} .bn-art .bn-lb-fbtn.on{background:var(--bn-coral); color:#fff; border-color:var(--bn-coral)} .bn-lb .bn-lb-th{cursor:pointer; user-select:none; white-space:nowrap} .bn-lb .bn-lb-th:hover{color:#fbf7ec; opacity:.85} .bn-lb-rank{font-family:var(--bn-mono); font-weight:700; color:var(--bn-coral); text-align:center} .bn-lb-score{font-family:var(--bn-mono); font-weight:700; color:var(--bn-ink); text-align:right; white-space:nowrap} .lb-empty{padding:16px; text-align:center; color:var(--bn-muted); font-size:.95em} .bn-lb-foot{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic} @media(max-width:680px){ .bn-art{font-size:17px} .bn-stats,.bn-grid,.bn-cols,.bn-ex .bn-ba,.bns-grid,.bn-roi-fields,.bn-roi-out{grid-template-columns:1fr} .bn-roi-field:last-child{grid-column:auto} .bn-toc ol{columns:1} .bn-art h2{font-size:1.5em} .bn-bot-msg{max-width:90%} } .bn-art sup,.bn-art sub{font-size:14px;line-height:0} .bn-klabel.hc{color:var(--bn-coral-txt)} .bn-cdc{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-cdc h3{margin:.1em 0 .3em} .bn-cdc>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-cdc br{display:none} .bn-cdc p:empty{display:none; margin:0} .cdc-q{padding:15px 0; border-top:1px solid var(--bn-border)} .cdc-q:first-of-type{border-top:none; padding-top:2px} .bn-art .cdc-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .cdc-chips{display:flex; flex-wrap:wrap; gap:8px} .cdc-chips p:not([class]){display:contents} .bn-art .cdc-chip{display:inline-flex; align-items:center; font-size:16px; line-height:1.35; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:9px 16px; cursor:pointer; transition:.15s} .bn-art .cdc-chip:hover{background:var(--bn-coral-soft)} .bn-art .cdc-chip:has(input:checked){background:var(--bn-coral); color:#332c19; border-color:var(--bn-coral); font-weight:700} .cdc-chip input{position:absolute; opacity:0; width:1px; height:1px; pointer-events:none} .cdc-out{margin:22px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .cdc-line{padding:14px 0; border-top:1px solid var(--bn-sand)} .cdc-line:first-of-type{border-top:none; padding-top:2px} .cdc-line p:not([class]){margin:0} .bn-art .cdc-line b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-coral-txt); margin-bottom:6px} .bn-art .cdc-line span{display:block; font-size:16px; line-height:1.62; color:var(--bn-text)} .bn-art .cdc-copy{margin-top:18px; display:inline-block; background:var(--bn-coral); color:#332c19; border:none; font-family:inherit; font-weight:800; font-size:16px; padding:13px 28px; border-radius:999px; cursor:pointer; box-shadow:0 6px 16px rgba(254,113,107,.28); transition:.15s} .bn-art .cdc-copy:hover{background:#ff8782} .bn-art .cdc-note{font-size:16px; color:var(--bn-muted); margin:12px 0 0; font-style:italic; min-height:1.5em} @media(max-width:680px){ .cdc-chips{flex-direction:column; align-items:stretch} .bn-art .cdc-chip{justify-content:flex-start} } .bn-niv{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-niv h3{margin:.1em 0 .3em} .bn-niv>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-niv br{display:none} .bn-niv p:empty{display:none; margin:0} .niv-q{padding:15px 0; border-top:1px solid var(--bn-border)} .niv-q:first-of-type{border-top:none; padding-top:2px} .bn-art .niv-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .niv-out{margin:24px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .bn-art .niv-score{display:flex; align-items:baseline; gap:10px; margin:0 0 13px} .bn-art .niv-score b{font-family:var(--bn-mono); font-size:2.1em; line-height:1; color:var(--bn-coral-txt); font-weight:800; letter-spacing:-.02em} .bn-art .niv-score span{font-size:16px; color:var(--bn-muted)} .niv-gauge{height:10px; border-radius:999px; background:var(--bn-sand); overflow:hidden; margin:0 0 18px} .niv-gauge p:not([class]){display:contents} .niv-gauge i{display:block; height:10px; background:var(--bn-coral); border-radius:999px; width:0} .nivv{display:none; border-radius:var(--bn-r-sm); padding:17px 19px; background:#fff; border:1px solid var(--bn-border)} .nivv.on{display:block} .bn-art .nivv b{display:block; font-size:1.08em; color:var(--bn-ink); margin-bottom:5px} .bn-art .nivv p{margin:0; font-size:16px; line-height:1.62} .bn-art .niv-weak{margin:15px 0 0; font-size:16px; color:var(--bn-text)} .bn-art .niv-weak b{font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-coral-txt); display:block; margin-bottom:4px} .bn-art blockquote{margin:26px 0; padding:18px 22px; background:var(--bn-card); border:1px solid var(--bn-border); border-left:4px solid var(--bn-blue); border-radius:var(--bn-r); box-shadow:var(--bn-sh-sm)} .bn-art blockquote p{margin:0; font-size:17px; line-height:1.65; color:var(--bn-text)} .bn-chk{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-chk h3{margin:.1em 0 .3em} .bn-chk>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-chk br{display:none} .bn-chk p:empty{display:none; margin:0} .chk-doc{border-radius:var(--bn-r-sm); background:#fff; border:1px solid var(--bn-border); padding:16px 18px; margin:0 0 6px} .bn-art .chk-doc b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-coral-txt); margin-bottom:6px} .bn-art .chk-doc span{display:block; font-size:16px; line-height:1.62; color:var(--bn-text)} .chk-q{padding:15px 0; border-top:1px solid var(--bn-border)} .bn-art .chk-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .chk-out{margin:22px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .chk-pieces{display:grid; gap:10px; margin:0 0 16px} .chk-piece{border-radius:var(--bn-r-sm); background:#fff; border:1px solid var(--bn-border); padding:12px 14px} .chk-piece.hit{border-color:var(--bn-green); background:var(--bn-green-soft)} .bn-art .chk-piece b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-muted); margin-bottom:5px} .bn-art .chk-piece.hit b{color:var(--bn-green)} .bn-art .chk-piece span{display:block; font-size:16px; line-height:1.6; color:var(--bn-text)} .bn-art .chk-verdict{border-radius:var(--bn-r-sm); padding:14px 16px; font-size:16px; line-height:1.55; background:var(--bn-green-soft); border:1px solid #cfe6c4; color:var(--bn-text); margin:0 0 12px} .bn-art .chk-verdict.ko{background:var(--bn-coral-soft); border-color:var(--bn-coral-line)} .bn-art .chk-stats{margin:0; font-size:16px; line-height:1.6; color:var(--bn-text)} .bn-art .chk-stats b{font-family:var(--bn-mono); color:var(--bn-coral-txt); font-weight:700} .bn-dev{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-dev h3{margin:.1em 0 .3em} .bn-dev>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-dev br{display:none} .bn-dev p:empty{display:none; margin:0} .dev-q{padding:15px 0; border-top:1px solid var(--bn-border)} .dev-q:first-of-type{border-top:none; padding-top:2px} .bn-art .dev-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .dev-out{margin:24px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .dev-tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 16px} .dev-stat{background:#fff; border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); padding:16px 12px; text-align:center} .bn-art .dev-stat b{display:block; font-family:var(--bn-mono); font-size:1.5em; line-height:1.12; font-weight:800; letter-spacing:-.02em; color:var(--bn-coral-txt)} .bn-art .dev-stat:nth-child(2) b{color:var(--bn-blue)} .bn-art .dev-stat:nth-child(3) b{color:var(--bn-green)} .bn-art .dev-stat:nth-child(4) b{color:var(--bn-ink)} .bn-art .dev-stat span{display:block; margin-top:7px; font-size:14px; color:var(--bn-muted); line-height:1.4} .bn-art .dev-line{margin:0 0 14px; font-size:16px; line-height:1.6; color:var(--bn-text)} .bn-art .dev-line b{font-family:var(--bn-mono); color:var(--bn-coral-txt); font-weight:700} .dvv{display:none; border-radius:var(--bn-r-sm); padding:16px 18px; background:#fff; border:1px solid var(--bn-border)} .dvv.on{display:block} .bn-art .dvv b{display:block; font-size:1.06em; color:var(--bn-ink); margin-bottom:5px} .bn-art .dvv p{margin:0; font-size:16px; line-height:1.62} @media(max-width:680px){ .dev-tiles{grid-template-columns:1fr 1fr} } .bn-fig.chat img{max-width:400px; margin:0 auto} .bn-fig.doc img{max-width:520px; margin:0 auto} .bn-nlu{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-nlu h3{margin:.1em 0 .3em} .bn-nlu>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-nlu br{display:none} .bn-nlu p:empty{display:none; margin:0} .nlu-q{padding:15px 0; border-top:1px solid var(--bn-border)} .nlu-q:first-of-type{border-top:none; padding-top:2px} .bn-art .nlu-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .bn-art .nlu-in{width:100%; font-family:inherit; font-size:16px; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-border); border-radius:999px; padding:12px 18px; outline:none} .bn-art .nlu-in:focus{border-color:var(--bn-coral)} .nlu-ex{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px} .nlu-ex p:not([class]){display:contents} .bn-art .nlu-exb{font-family:inherit; font-size:16px; line-height:1.35; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:9px 16px; cursor:pointer; transition:.15s; text-align:left} .bn-art .nlu-exb:hover{background:var(--bn-coral-soft)} .nlu-out{margin:24px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .bn-art .nlu-toks{margin:0 0 14px; font-size:16px; line-height:1.7; color:var(--bn-text)} .bn-art .nlu-toks b{font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bn-coral-txt); display:block; margin-bottom:8px} .bn-art .nlu-tk{display:inline-block; font-family:var(--bn-mono); font-size:14px; background:#fff; border:1px solid var(--bn-border); border-radius:999px; padding:3px 11px; margin:0 6px 6px 0; color:var(--bn-ink)} .nlu-row{display:grid; grid-template-columns:1fr 130px 54px; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--bn-sand)} .nlu-row:first-child{border-top:none} .bn-art .nlu-lab{font-size:16px; line-height:1.4; color:var(--bn-ink); font-weight:700} .nlu-bar{height:10px; border-radius:999px; background:var(--bn-sand); overflow:hidden} .nlu-bar i{display:block; height:10px; background:var(--bn-coral); border-radius:999px; width:0} .nlu-row.win .nlu-bar i{background:var(--bn-green)} .bn-art .nlu-sc{font-family:var(--bn-mono); font-size:16px; font-weight:700; color:var(--bn-coral-txt); text-align:right} .nlu-verdict{margin:16px 0 0; border-radius:var(--bn-r-sm); padding:16px 18px; background:#fff; border:1px solid var(--bn-border); border-left:4px solid var(--bn-green)} .nlu-verdict.ko{border-left-color:var(--bn-coral)} .bn-art .nlu-verdict b{display:block; font-size:1.06em; color:var(--bn-ink); margin-bottom:5px} .bn-art .nlu-verdict p{margin:0; font-size:16px; line-height:1.62} .bn-art .nlu-note{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic} @media(max-width:680px){ .nlu-row{grid-template-columns:minmax(0,1fr) 64px 48px; gap:9px} .bn-art .nlu-lab{font-size:16px} } @media(max-width:560px){ .nlu-row{grid-template-columns:minmax(0,1fr) auto; gap:7px 10px; padding:12px 0} .bn-art .nlu-lab{grid-column:1; grid-row:1} .bn-art .nlu-sc{grid-column:2; grid-row:1; text-align:right} .nlu-bar{grid-column:1\/3; grid-row:2} } .bn-art code{font-family:var(--bn-mono); font-size:16px; line-height:1.5; background:var(--bn-sand-2); border:1px solid var(--bn-sand); border-radius:6px; padding:1px 7px; color:var(--bn-ink); word-break:break-word} .bn-art pre{background:var(--bn-sand-2); border:1px solid var(--bn-sand); border-radius:var(--bn-r-sm); padding:16px 18px; overflow-x:auto; margin:22px 0} .bn-art pre code{background:none; border:none; padding:0; font-size:16px} .bn-hd{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-hd h3{margin:.1em 0 .3em} .bn-hd>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-hd br{display:none} .bn-hd p:empty{display:none; margin:0} .hd-q{padding:15px 0; border-top:1px solid var(--bn-border)} .hd-q:first-of-type{border-top:none; padding-top:2px} .bn-art .hd-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .hd-out{margin:22px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .hd-head{display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:18px; align-items:center} .hd-n{font-family:var(--bn-mono); font-weight:800; line-height:1; color:var(--bn-ink); white-space:nowrap} .bn-art .hd-n span{font-size:34px} .bn-art .hd-n i{font-style:normal; font-size:16px; color:var(--bn-muted); font-weight:600} .hd-track{position:relative; height:14px; border-radius:999px; background:#fff; border:1px solid var(--bn-sand); overflow:hidden} .hd-fill{position:absolute; left:0; top:0; bottom:0; width:0; background:var(--bn-coral); transition:width .18s} .hd-parts{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:16px} .hd-part{background:#fff; border:1px solid var(--bn-sand); border-radius:var(--bn-r-sm); padding:11px 8px; text-align:center} .bn-art .hd-part span{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--bn-muted); line-height:1.3} .bn-art .hd-part b{display:block; font-family:var(--bn-mono); font-size:20px; font-weight:800; color:var(--bn-coral-txt); margin-top:4px} .hdv{display:none; margin-top:18px; border-radius:var(--bn-r-sm); background:#fff; border:1px solid var(--bn-sand); padding:17px 19px} .hdv-1{display:block; border-left:4px solid var(--bn-green)} .hdv-2{border-left:4px solid var(--bn-blue)} .hdv-3{border-left:4px solid var(--bn-coral)} .hdv-4{border-left:4px solid var(--bn-ink)} .bn-art .hdv b{display:block; font-size:18px; line-height:1.4; color:var(--bn-ink); margin-bottom:7px} .bn-art .hdv p{margin:0; font-size:16px; line-height:1.62; color:var(--bn-text)} .bn-art .hd-note{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic; line-height:1.55} @media(max-width:680px){ .bn-hd{padding:20px 17px} .hd-out{padding:17px 15px} .hd-head{grid-template-columns:minmax(0,1fr); gap:12px} .hd-parts{grid-template-columns:repeat(2,minmax(0,1fr))} } .bn-tri{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-tri h3{margin:.1em 0 .3em} .bn-tri>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-tri br{display:none} .bn-tri p:empty{display:none; margin:0} .tri-q{padding:15px 0; border-top:1px solid var(--bn-border)} .tri-q:first-of-type{border-top:none; padding-top:2px} .bn-art .tri-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .tri-out{margin:22px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .triv{display:none; border-radius:var(--bn-r-sm); background:#fff; border:1px solid var(--bn-sand); padding:17px 19px} .triv-1{border-left:4px solid var(--bn-ink)} .triv-2{border-left:4px solid var(--bn-coral)} .triv-3{border-left:4px solid var(--bn-blue)} .triv-4{border-left:4px solid var(--bn-muted)} .triv-5{display:block; border-left:4px solid var(--bn-green)} .bn-art .triv em{display:block; font-style:normal; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--bn-coral-txt); margin-bottom:7px; line-height:1.4} .bn-art .triv b{display:block; font-size:18px; line-height:1.4; color:var(--bn-ink); margin-bottom:8px} .bn-art .triv p{margin:0 0 .7em; font-size:16px; line-height:1.62; color:var(--bn-text)} .bn-art .triv p:last-child{margin-bottom:0} .tri-lines{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px} .tri-line{background:#fff; border:1px solid var(--bn-sand); border-radius:var(--bn-r-sm); padding:13px 15px} .bn-art .tri-line span{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--bn-muted); line-height:1.3; margin-bottom:6px} .bn-art .tri-line b{display:block; font-size:16px; line-height:1.55; color:var(--bn-ink); font-weight:600} .bn-art .tri-note{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic; line-height:1.55} .bn-tri .bn-tablewrap{margin-top:22px} .bn-art .tri-load{font-family:var(--bn-mono); font-size:16px; line-height:1.2; color:var(--bn-ink); background:#fff; border:1px solid var(--bn-coral-line); border-radius:999px; padding:8px 15px; cursor:pointer; white-space:nowrap; transition:.15s} .bn-art .tri-load:hover{background:var(--bn-coral-soft)} @media(max-width:680px){ .bn-tri{padding:20px 17px} .tri-out{padding:17px 15px} .tri-lines{grid-template-columns:minmax(0,1fr)} } .bn-art .bn-steps ol{list-style:none;padding:0;margin:0} .bn-art .bn-tip,.bn-art .bn-warn,.bn-art .bn-info{background:var(--bn-card);border:1px solid var(--bn-border);border-radius:var(--bn-r);padding:18px 20px;margin:24px 0;box-shadow:var(--bn-sh-sm)} .bn-art .bn-tip{border-left:4px solid var(--bn-green)} .bn-art .bn-warn{border-left:4px solid var(--bn-coral)} .bn-art .bn-info{border-left:4px solid var(--bn-blue)} .bn-art .bn-tip .bn-klabel,.bn-art .bn-warn .bn-klabel,.bn-art .bn-info .bn-klabel{margin-bottom:6px} .bn-art .bn-tip p,.bn-art .bn-warn p,.bn-art .bn-info p{margin:0} .bn-art .bn-tri table{table-layout:fixed;min-width:640px} .bn-art .bn-tri th:nth-child(1),.bn-art .bn-tri td:nth-child(1){width:22%} .bn-art .bn-tri th:nth-child(2),.bn-art .bn-tri td:nth-child(2){width:14%} .bn-art .bn-tri th:nth-child(3),.bn-art .bn-tri td:nth-child(3){width:14%} .bn-art .bn-tri th:nth-child(4),.bn-art .bn-tri td:nth-child(4){width:13%} .bn-art .bn-tri th:nth-child(5),.bn-art .bn-tri td:nth-child(5){width:22%} .bn-art .bn-tri th:nth-child(6),.bn-art .bn-tri td:nth-child(6){width:15%} .bn-art .bn-tri thead th,.bn-art .bn-tri tbody td{padding:11px 8px} .bn-art .tri-load{padding:4px 10px} .bn-art .bn-cta-in{text-align:center;margin:26px 0} .bn-lng{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-lng h3{margin:.1em 0 .3em} .bn-lng>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-lng br{display:none} .bn-lng p:empty{display:none; margin:0} .lng-q{padding:15px 0; border-top:1px solid var(--bn-border)} .lng-q:first-of-type{border-top:none; padding-top:2px} .bn-art .lng-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .lng-out{margin:22px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .lng-lines{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px} .lng-line{background:#fff; border:1px solid var(--bn-sand); border-radius:var(--bn-r-sm); padding:13px 15px} .bn-art .lng-line b{display:block; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--bn-muted); line-height:1.3; margin-bottom:6px} .bn-art .lng-line span{display:block; font-size:16px; line-height:1.55; color:var(--bn-ink); font-weight:600} .lngv{display:none; margin-top:16px; border-radius:var(--bn-r-sm); background:#fff; border:1px solid var(--bn-sand); padding:17px 19px} .lngv-1{display:block; border-left:4px solid var(--bn-blue)} .lngv-2{border-left:4px solid var(--bn-coral)} .lngv-3{border-left:4px solid var(--bn-green)} .lngv-4{border-left:4px solid var(--bn-ink)} .bn-art .lngv em{display:block; font-style:normal; font-family:var(--bn-mono); font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--bn-coral-txt); margin-bottom:7px; line-height:1.4} .bn-art .lngv b{display:block; font-size:18px; line-height:1.4; color:var(--bn-ink); margin-bottom:8px} .bn-art .lngv p{margin:0 0 .7em; font-size:16px; line-height:1.62; color:var(--bn-text)} .bn-art .lngv p:last-child{margin-bottom:0} .bn-art .lng-note{font-size:16px; color:var(--bn-muted); margin:14px 0 0; font-style:italic; line-height:1.55} .bn-lng .bn-tablewrap{margin-top:22px} .bn-art .bn-lng table{table-layout:fixed; min-width:620px} .bn-art .bn-lng th:nth-child(1),.bn-art .bn-lng td:nth-child(1){width:26%} .bn-art .bn-lng th:nth-child(2),.bn-art .bn-lng td:nth-child(2){width:28%} .bn-art .bn-lng th:nth-child(3),.bn-art .bn-lng td:nth-child(3){width:32%} .bn-art .bn-lng th:nth-child(4),.bn-art .bn-lng td:nth-child(4){width:14%} .bn-art .bn-lng thead th,.bn-art .bn-lng tbody td{padding:11px 10px} @media(max-width:680px){ .bn-lng{padding:20px 17px} .lng-out{padding:17px 15px} .lng-lines{grid-template-columns:minmax(0,1fr)} } .bn-gem{background:var(--bn-card);border:1px solid var(--bn-border);border-radius:var(--bn-r);padding:24px 26px;margin:28px 0;box-shadow:var(--bn-sh)} .bn-gem h3{margin:.1em 0 .3em} .bn-gem>p{font-size:16px;color:var(--bn-muted);margin:0 0 18px} .bn-gem br{display:none} .bn-gem p:empty{display:none;margin:0} .gem-q{padding:15px 0;border-top:1px solid var(--bn-border)} .gem-q:first-of-type{border-top:none;padding-top:2px} .bn-art .gem-qt{font-weight:700;color:var(--bn-ink);margin:0 0 11px;font-size:16px;line-height:1.45} .gem-out{margin:22px 0 0;border-radius:var(--bn-r-sm);background:var(--bn-sand-2);border:1px solid var(--bn-sand);padding:20px 22px} .giv{display:none;border-radius:var(--bn-r-sm);background:#fff;border:1px solid var(--bn-sand);padding:17px 19px;border-left:4px solid var(--bn-coral)} .giv.on{display:block} .giv0{border-left-color:var(--bn-green)} .giv4{border-left-color:var(--bn-blue)} .bn-art .giv em{display:block;font-style:normal;font-family:var(--bn-mono);font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--bn-coral-txt);margin-bottom:7px;line-height:1.4} .bn-art .giv b{display:block;font-size:18px;line-height:1.4;color:var(--bn-ink);margin-bottom:8px} .bn-art .giv p{margin:0;font-size:16px;line-height:1.62;color:var(--bn-text)} .bn-gem .bn-tablewrap{margin-top:22px} @media(max-width:680px){.bn-gem{padding:20px 17px}.gem-out{padding:17px 15px}} .bn-gene{background:var(--bn-card); border:1px solid var(--bn-border); border-radius:var(--bn-r); padding:24px 26px; margin:28px 0; box-shadow:var(--bn-sh)} .bn-gene h3{margin:.1em 0 .3em} .bn-gene>p{font-size:.95em; color:var(--bn-muted); margin:0 0 18px} .bn-gene br{display:none} .bn-gene p:empty{display:none; margin:0} .gene-q{padding:15px 0; border-top:1px solid var(--bn-border)} .gene-q:first-of-type{border-top:none; padding-top:2px} .bn-art .gene-qt{font-weight:700; color:var(--bn-ink); margin:0 0 11px; font-size:16px; line-height:1.45} .gene-out{margin:24px 0 0; border-radius:var(--bn-r-sm); background:var(--bn-sand-2); border:1px solid var(--bn-sand); padding:20px 22px} .gene-tiles{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 16px} .gene-stat{background:#fff; border:1px solid var(--bn-border); border-radius:var(--bn-r-sm); padding:16px 12px; text-align:center} .bn-art .gene-stat b{display:block; font-family:var(--bn-mono); font-size:1.5em; line-height:1.12; font-weight:800; letter-spacing:-.02em; color:var(--bn-coral-txt)} .bn-art .gene-stat:nth-child(2) b{color:var(--bn-blue)} .bn-art .gene-stat:nth-child(3) b{color:var(--bn-green)} .bn-art .gene-stat span{display:block; margin-top:7px; font-size:14px; color:var(--bn-muted); line-height:1.4} .bn-art .gene-line{margin:0 0 14px; font-size:16px; line-height:1.6; color:var(--bn-text)} .bn-art .gene-line b{font-family:var(--bn-mono); color:var(--bn-coral-txt); font-weight:700} .gene-v{display:none; border-radius:var(--bn-r-sm); padding:16px 18px; background:#fff; border:1px solid var(--bn-border)} .gene-v.on{display:block} .bn-art .gene-v b{display:block; font-size:1.06em; color:var(--bn-ink); margin-bottom:5px} .bn-art .gene-v p{margin:0; font-size:16px; line-height:1.62} .bn-art .gene-note{margin:14px 0 0; font-size:16px; line-height:1.55; color:var(--bn-muted)} .bn-gene table.gene-data{margin:0 0 4px} .bn-art table.gene-data tbody tr.gene-hit td{background:var(--bn-green-soft)} @media(max-width:680px){ .gene-tiles{grid-template-columns:minmax(0,1fr)} }`));document.head.appendChild(s);<\/script><\/p>\n<div class=\"bn-art\">\n<div class=\"bn-tldr\">\n<p><span class=\"bn-klabel\">In brief<\/span><\/p>\n<p>Designing a chatbot means everything you decide <strong>before<\/strong> the first technical brick: the mission, the audience, the channel, the AI level, the conversation paths, the tone and the guardrails. Here is our complete 7-step method, from framing to the test set, with the full specification, an interactive framing selector and the obligations to build into the design from day one (AI Act Article 50 in force since August 2, 2026, GDPR).<\/p>\n<\/div>\n<p>\u201cDesigning a chatbot\u201d and \u201cbuilding a chatbot\u201d are two different jobs, and the second almost always fails when the first was rushed. Design is when you decide what your conversational assistant must achieve, for whom, on which channel, with what level of intelligence and under which limits. It is a job of framing, writing and arithmetic on your real demand, not a job of code.<\/p>\n<p>The topic has never been more current: according to Insee, the French national statistics institute (TIC 2025 survey, Insee Premi\u00e8re no. 2120, July 2026, published in French only), 18% of French companies with 10 or more employees used at least one artificial intelligence technology in 2025, up from 10% in 2024, and 43% of AI-using companies report using generative AI for text or speech. The chatbot is the most visible gateway to this adoption, and it is also the one where design mistakes show the most.<\/p>\n<p>This guide is the complete method: the framing decisions, the three technical levels, the 7 design steps, a worked example from start to finish, a tool to decide your own framing, and the specification section by section. If you are looking for how to technically build the bot once it is designed, our <a href=\"https:\/\/botnation.ai\/en\/how-to-develop-a-chatbot\/\">how to develop a chatbot<\/a> guide takes over where this one stops.<\/p>\n<div class=\"bn-stats\">\n<div class=\"bn-stat\"><b>18%<\/b><span>of companies with 10 or more employees used at least one AI technology in 2025 (Insee, TIC 2025 survey, July 2026)<\/span><\/div>\n<div class=\"bn-stat\"><b>43%<\/b><span>of AI-using companies report generative AI for text or speech (same source)<\/span><\/div>\n<div class=\"bn-stat\"><b>Aug 2, 2026<\/b><span>date Article 50 of the European AI Regulation entered into force: transparency is designed in, not bolted on<\/span><\/div>\n<\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_87_1 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Summary<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #3d351f;color:#3d351f\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #3d351f;color:#3d351f\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Designing_a_chatbot_what_this_stage_actually_covers\" >Designing a chatbot: what this stage actually covers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#The_4_decisions_that_frame_every_chatbot_design\" >The 4 decisions that frame every chatbot design<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#1_The_mission\" >1. The mission<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#2_The_audience\" >2. The audience<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#3_The_channel\" >3. The channel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#4_The_AI_level\" >4. The AI level<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Three_technical_levels_three_different_designs\" >Three technical levels, three different designs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#The_7-step_design_method\" >The 7-step design method<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_1_frame_the_mission_and_its_success_indicators\" >Step 1: frame the mission and its success indicators<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_2_map_the_real_demand\" >Step 2: map the real demand<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_3_draw_the_conversation_paths\" >Step 3: draw the conversation paths<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_4_write_the_personality_and_tone\" >Step 4: write the personality and tone<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_5_set_the_legal_and_safety_guardrails\" >Step 5: set the legal and safety guardrails<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_6_build_the_test_set_and_test\" >Step 6: build the test set and test<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Step_7_measure_feed_iterate\" >Step 7: measure, feed, iterate<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#A_complete_example_designing_a_customer_service_chatbot_for_an_e-commerce_retailer\" >A complete example: designing a customer service chatbot for an e-commerce retailer<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#The_design_on_one_page_from_framing_to_the_test_set\" >The design on one page, from framing to the test set<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Which_design_framing_fits_your_project\" >Which design framing fits your project?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Design_framing_selector\" >Design framing selector<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#The_design_specification_section_by_section\" >The design specification, section by section<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Who_designs_the_chatbot_in_autonomy_or_accompanied\" >Who designs the chatbot: in autonomy or accompanied?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#The_5_design_mistakes_that_cost_the_most\" >The 5 design mistakes that cost the most<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Framing_mistakes\" >Framing mistakes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Experience_mistakes\" >Experience mistakes<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#FAQ_on_designing_a_chatbot\" >FAQ on designing a chatbot<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#Conclusion_designing_means_deciding_before_building\" >Conclusion: designing means deciding before building<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/botnation.ai\/en\/designing-a-chatbot\/#From_design_to_go-live\" >From design to go-live<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 id=\"definition\"><span class=\"ez-toc-section\" id=\"Designing_a_chatbot_what_this_stage_actually_covers\"><\/span>Designing a chatbot: what this stage actually covers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"bn-def\">\n<p><span class=\"bn-klabel\">Definition<\/span><\/p>\n<p><strong>Chatbot design<\/strong> is the set of decisions that define what the assistant must do, for whom, with which knowledge and under which limits, <strong>before<\/strong> its technical implementation. It produces a specification and conversation paths; implementation produces a bot that runs. If you hesitate over the vocabulary (conversational agent, chatbot, AI assistant), our article on the <a href=\"https:\/\/botnation.ai\/en\/chatbot-definition-examples\/\">definition of a chatbot<\/a> sets the terms, and the guide on <a href=\"https:\/\/botnation.ai\/en\/conversational-agent\/\">designing a conversational agent<\/a> covers the assistant side of the intent.<\/p>\n<\/div>\n<p>Concretely, design covers four families of decisions:<\/p>\n<ul>\n<li><strong>the functional scope<\/strong>: which requests the bot handles, and above all which ones it does not;<\/li>\n<li><strong>the conversational experience<\/strong>: the paths, the tone, the personality, the escalation formulas toward a human;<\/li>\n<li><strong>the knowledge<\/strong>: where the answers come from (hand-written rules, your own content, free generation);<\/li>\n<li><strong>the guardrails<\/strong>: transparency about the bot\u2019s nature, personal data, forbidden topics, drift indicators.<\/li>\n<\/ul>\n<p>The international standard ISO 9241-210:2019 (\u201cErgonomics of human-system interaction, Part 210: Human-centred design for interactive systems\u201d, 2nd edition) sums up the spirit of the exercise: an interactive system is designed from an explicit understanding of the users, their tasks and their context, not from the capabilities of the technology. Applied to chatbots, this principle cuts short the market\u2019s number one mistake: starting from \u201cwe want a bot with AI\u201d and ending up with an assistant that impresses in the demo and solves nothing in production.<\/p>\n<h2 id=\"cadrage\"><span class=\"ez-toc-section\" id=\"The_4_decisions_that_frame_every_chatbot_design\"><\/span>The 4 decisions that frame every chatbot design<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before drawing a single conversation path, four decisions commit everything else. Each one is made <strong>with a reference number<\/strong>, otherwise it will be made again later, at a higher cost.<\/p>\n<div class=\"bn-grid\">\n<div class=\"bn-card\">\n<h4><span class=\"ez-toc-section\" id=\"1_The_mission\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><circle cx=\"12\" cy=\"12\" r=\"4\"><\/circle><circle cx=\"12\" cy=\"12\" r=\"1\"><\/circle><\/svg>1. The mission<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>One sentence, one verb, one beneficiary: \u201ctake order-tracking questions off the support team\u2019s plate for consumer customers\u201d. If the mission needs three verbs, plan three bots or three phases, never a three-headed bot.<\/p>\n<\/div>\n<div class=\"bn-card\">\n<h4><span class=\"ez-toc-section\" id=\"2_The_audience\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>2. The audience<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Consumers or business customers? Internal employees? Cold prospects? Vocabulary, channel and patience level all change completely: an employee accepts a button menu, a customer in a hurry does not.<\/p>\n<\/div>\n<div class=\"bn-card\">\n<h4><span class=\"ez-toc-section\" id=\"3_The_channel\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 2 11 13\"><\/path><path d=\"M22 2 15 22l-4-9-9-4Z\"><\/path><\/svg>3. The channel<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Website, WhatsApp, Messenger, Instagram, intranet: each channel imposes its formats (cards, persistent buttons, message lengths) and its responsiveness expectations. Our overview of <a href=\"https:\/\/botnation.ai\/en\/channels\/\">deployment channels<\/a> details the specifics.<\/p>\n<\/div>\n<div class=\"bn-card\">\n<h4><span class=\"ez-toc-section\" id=\"4_The_AI_level\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2a4 4 0 0 1 4 4c0 1.1-.45 2.1-1.17 2.83L14 10h-4l-.83-1.17A4 4 0 0 1 12 2Z\"><\/path><path d=\"M12 10v4\"><\/path><path d=\"M8 14h8v6a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2Z\"><\/path><\/svg>4. The AI level<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Written rules, generative AI grounded in your content, or free generation? This choice determines what you will have to design: a conversation tree, a knowledge base, or a prompt charter. The table below compares the three.<\/p>\n<\/div>\n<\/div>\n<p>A useful landmark for decision no. 1: Botnation\u2019s <a href=\"https:\/\/botnation.ai\/en\/products\/faq\/\">FAQ product page<\/a> describes the most frequent use case (making an FAQ conversational), which remains the best first chatbot project: bounded scope, content already written, fast ROI.<\/p>\n<h2 id=\"niveaux\"><span class=\"ez-toc-section\" id=\"Three_technical_levels_three_different_designs\"><\/span>Three technical levels, three different designs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The technical level is not an implementation detail: it changes <strong>what you design<\/strong>. Here is what each level requires at design time.<\/p>\n<div class=\"bn-tablewrap\">\n<table>\n<thead>\n<tr>\n<th>Level<\/th>\n<th>How it answers<\/th>\n<th>What you design upfront<\/th>\n<th>Ideal ground<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Rule-based (scripted) chatbot<\/td>\n<td>Fixed tree: buttons, menus, exact keywords<\/td>\n<td>The complete conversation tree, every button label, the escalation formulas<\/td>\n<td>Stable FAQ, guided journeys (order tracking, appointment booking)<\/td>\n<\/tr>\n<tr>\n<td>Generative AI on your content (RAG-style)<\/td>\n<td>Drafts its answers from your sources only<\/td>\n<td>The source inventory, its freshness, the answer guardrails, the imposed tone<\/td>\n<td>Rich documentation base: product docs, internal procedures, articles<\/td>\n<\/tr>\n<tr>\n<td>Open generation<\/td>\n<td>Improvises beyond your content<\/td>\n<td>The system prompt, the personality, the list of forbidden topics, supervision<\/td>\n<td>Experimentation bots, low-stakes topics<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>In customer production, level 2 is where serious projects concentrate today: it combines the AI\u2019s freedom of phrasing with grounding in your content. Our <a href=\"https:\/\/botnation.ai\/en\/rag-chatbot\/\">RAG chatbot<\/a> article details how this architecture works, what it really costs and where it breaks. Level 3, for its part, must be designed with all the more guardrails as it can assert false statements with confidence: it is an experimentation choice, not a default choice.<\/p>\n<div class=\"bn-call bn-warn\">\n<p><span class=\"bn-klabel\">Watch out<\/span><\/p>\n<p>Whatever the level, plan the clear disclosure of the automated nature of the interlocutor from the design stage onward. Article 50 of Regulation (EU) 2024\/1689 on artificial intelligence, applicable since August 2, 2026, requires providers and deployers to inform users that they are interacting with an AI system, unless this is obvious from the context. France\u2019s data protection authority CNIL was already saying so in its \u201cChatbots\u201d sheet of February 19, 2021 (published in French only): the user must know who they are talking to.<\/p>\n<\/div>\n<h2 id=\"methode\"><span class=\"ez-toc-section\" id=\"The_7-step_design_method\"><\/span>The 7-step design method<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Here is the method we apply on our own projects, from framing to the test set. Each step produces a written deliverable: that is what distinguishes a design from a brainstorm.<\/p>\n<ol class=\"bn-steps\">\n<li><b>Frame the mission and its indicators<\/b>One mission sentence and two or three quantified indicators, set before everything else.<\/li>\n<li><b>Map the real demand<\/b>Mine tickets, emails, FAQs and internal searches to prioritize what the bot must handle.<\/li>\n<li><b>Draw the conversation paths<\/b>The trees, the emergency exits and the route to a human.<\/li>\n<li><b>Write the personality and tone<\/b>A one-page editorial charter for the bot: form of address, length, humor, no-go areas.<\/li>\n<li><b>Set the legal and safety guardrails<\/b>Transparency, personal data, forbidden topics, human validation.<\/li>\n<li><b>Build the test set and test<\/b>The trap questions written in advance, the acceptance criteria.<\/li>\n<li><b>Measure, feed, iterate<\/b>The knowledge base is a living organism, not a frozen deliverable.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Step_1_frame_the_mission_and_its_success_indicators\"><\/span>Step 1: frame the mission and its success indicators<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The mission is written in one sentence with an action verb and a beneficiary. Then you set <strong>at most two or three indicators<\/strong>, each with a starting value and a target: resolution rate without human intervention, average response time, share of demand absorbed, satisfaction score (CSAT) at the end of the conversation. The ISO 9241-210 standard quoted above applies here word for word: start from the users and their tasks, not from the technology.<\/p>\n<p>Why indicators from step 1? Because a chatbot without success criteria can neither succeed nor fail: it will exist, consume credits and maintenance time, and nobody will be able to say whether it is useful. This is also what lets you cut the scope: any request that serves no indicator is out of version 1.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_2_map_the_real_demand\"><\/span>Step 2: map the real demand<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Design feeds on data, not impressions. Before writing a single answer, capture the actual demand volume over three months from your existing sources: support tickets, shared mailboxes, chat transcripts if you have any, questions typed into the internal search engine, sales team requests.<\/p>\n<p>Then classify each request by <strong>frequency<\/strong> (how many times per month) and by <strong>criticality<\/strong> (what happens if the answer is late or wrong). This crossing gives the bot\u2019s prioritization matrix: frequent and simple requests go into version 1; rare and complex requests stay with humans, with a clean escalation; frequent but sensitive requests (complaints, health topics, legal matters) go into version 1 <strong>with<\/strong> an immediate route to a human.<\/p>\n<p>Two symmetrical pitfalls to avoid: the \u201ccatalog\u201d bot that tries to handle everything and handles nothing well, and the \u201cshowcase\u201d bot that only handles three decorative questions. The demand map keeps both away, because it anchors every scenario in a real volume.<\/p>\n<figure class=\"bn-fig\">\n<img fetchpriority=\"high\" src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/botnation-ai-conception-chatbot-cartes.jpg\" alt=\"Hands sorting blank dialogue cards into rows on a desk, to prioritize the requests the chatbot will handle\" decoding=\"async\" width=\"1536\" height=\"1024\"><figcaption>Step 2\u2019s mapping is a sorting exercise: every card is a real request, ranked by frequency and by criticality.<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Step_3_draw_the_conversation_paths\"><\/span>Step 3: draw the conversation paths<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A conversation path is drawn like a flowchart: an entry intent (what the user wants), information collection steps, decision points, and endings. Two golden rules:<\/p>\n<ul>\n<li><strong>limit the depth<\/strong>: beyond three or four menu levels, users drop off; if a path needs more, what it needs is a free-form information capture (one open question), not menus;<\/li>\n<li><strong>every path has an exit<\/strong>: a complete answer, a transfer to a human, or a callback promise; never a dead end.<\/li>\n<\/ul>\n<p>Escalation to a human is a path in its own right: design its trigger (keyword, repeated dissatisfaction, explicit request), its schedule (what happens at 10 p.m.?) and its waiting message. Our article on <a href=\"https:\/\/botnation.ai\/en\/how-chatbots-work\/\">how chatbots work<\/a> shows what happens between the message and the reply: understanding this mechanics prevents designing paths the engine will hold poorly.<\/p>\n<figure class=\"bn-fig\">\n<img src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/botnation-ai-conception-chatbot-arbre.jpg\" alt=\"A conversation tree made physical: blank coral, blue and green cards hanging from the branches of a small sculpted tree\" decoding=\"async\" width=\"1536\" height=\"1024\"><figcaption>A conversation path is a tree: every card is a step, every thread a decision, and every branch must lead to an exit.<\/figcaption><\/figure>\n<p>To start faster, Botnation\u2019s <a href=\"https:\/\/botnation.ai\/en\/templates\/\">template gallery<\/a> exposes more than 150 ready-to-use chatbot templates (real estate, restaurants, lead qualification\u2026): picking a template does not replace design, but it provides proven paths to adapt rather than a blank page.<\/p>\n<figure class=\"bn-fig\">\n<img src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/cap-templates-en.jpg\" alt=\"Botnation template gallery: ready-to-use chatbot templates for various industries\" decoding=\"async\" width=\"1500\" height=\"950\"><figcaption>Botnation\u2019s template gallery: proven path templates to adapt instead of starting from a blank page.<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Step_4_write_the_personality_and_tone\"><\/span>Step 4: write the personality and tone<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The bot\u2019s personality is a one-page document, not an intuition. It sets: the form of address, the target answer length (usually one to three sentences), the familiarity level (bot first name or not, humor yes\/no\/for which brands), the forbidden formulations (promises, medical or legal opinions, off-grid prices) and the apology and recovery formulas after a misunderstanding.<\/p>\n<p>This charter matters even more with a generative AI bot: it feeds the system prompt and keeps the voice consistent between hand-written answers and the ones the model phrases. A bot that alternates between a notary\u2019s tone and an influencer\u2019s loses trust faster than a bot that makes a factual mistake.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_5_set_the_legal_and_safety_guardrails\"><\/span>Step 5: set the legal and safety guardrails<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Three parts, to be designed <strong>before<\/strong> development:<\/p>\n<ul>\n<li><strong>transparency<\/strong>: announce the automated nature of the chatbot and, when an answer is generated by AI, do not pass it off as a human text. Article 50 of Regulation (EU) 2024\/1689, applicable since August 2, 2026, makes this an obligation for providers and deployers; the penalties provided by the Regulation show this is not a cosmetic detail;<\/li>\n<li><strong>personal data<\/strong>: the chatbot will collect data (at minimum messages, often an email or an order number). CNIL, in its \u201cChatbots\u201d sheet of February 19, 2021 (published in French only), recalls the applicable principles: defined purpose, data minimization, set retention period, informing individuals. Design what the bot does not ask for: it is the best GDPR there is;<\/li>\n<li><strong>topic limits<\/strong>: black list of subjects where the bot apologizes and transfers (health, law, personal finance, serious complaints), and for an internal bot, vigilance over HR data.<\/li>\n<\/ul>\n<p>For an internal chatbot, the works council must moreover be informed of the introduction of a new digital tool within the scope of its consultative duties: our article on the <a href=\"https:\/\/botnation.ai\/en\/employee-support-chatbot\/\">employee support chatbot<\/a> details this step nobody mentions.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_6_build_the_test_set_and_test\"><\/span>Step 6: build the test set and test<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The test set is written <strong>from the step 2 mapping<\/strong>: the 30 to 60 most frequent real questions, declined into variants (typos, synonyms, casual phrasing, two-step questions). Add the trap questions: the out-of-scope question, the sensitive question, the malicious question, the question in a foreign language.<\/p>\n<p>Acceptance testing happens in two rounds: internal testing (project members try to break the bot), then external testing with five to ten people who did not work on the design: they ask the questions nobody planned. For each attempt you note: the answer obtained, the path followed, the need for escalation, and you compare against the indicators set in step 1.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_7_measure_feed_iterate\"><\/span>Step 7: measure, feed, iterate<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>An unattended chatbot degrades: content ages, new questions arrive, intents drift. Design must therefore plan its own maintenance from the start: a monthly review of unresolved conversations, a workflow to add a question-answer pair within minutes, a named owner (a person, not a committee).<\/p>\n<p>This is also where the knowledge base becomes an asset: every unresolved question is information about your customers that nobody ever told you this clearly. The questions the bot fails to handle feed the next version of the specification.<\/p>\n<h2 id=\"exemple\"><span class=\"ez-toc-section\" id=\"A_complete_example_designing_a_customer_service_chatbot_for_an_e-commerce_retailer\"><\/span>A complete example: designing a customer service chatbot for an e-commerce retailer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"bn-ex\">\n<div class=\"bn-ex-h\">\n<div class=\"bn-ex-n\">1<\/div>\n<div>\n<h3><span class=\"ez-toc-section\" id=\"The_design_on_one_page_from_framing_to_the_test_set\"><\/span>The design on one page, from framing to the test set<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span class=\"bn-ex-tag\">Worked example: cosmetics e-commerce, 40,000 customers<\/span>\n<\/p><\/div>\n<\/div>\n<p><strong>Step 1.<\/strong> Mission: \u201ctell consumer customers the status of their order and handle returns, without going through email support\u201d. Indicators: 60% of tracking requests resolved without a human at three months; response time under 30 seconds; CSAT above 4 out of 5.<\/p>\n<p><strong>Step 2.<\/strong> Three-month email mapping: order tracking (52% of requests), returns and refunds (21%), product advice (14%), complaints (8%), other (5%). Decision: version 1 = tracking + returns + escalation. Product advice moves to version 2 (it requires plugging into the product sheets).<\/p>\n<p><strong>Step 3.<\/strong> Three paths: \u201cWhere is my order?\u201d (number or email, answer from the carrier), \u201cI want to return a product\u201d (reason, eligibility, label), \u201cI want to talk to a human\u201d (time slots, callback within 2 business hours).<\/p>\n<p><strong>Step 4.<\/strong> Tone: polite form of address, bot first name, answers of two sentences maximum, no humor on complaints, no refund-timeline promise outside the official policy.<\/p>\n<p><strong>Step 5.<\/strong> Automated nature disclosed in the welcome message; collection limited to email and order number; conversations kept 12 months; immediate transfer for any mention of allergy or skin reaction.<\/p>\n<p><strong>Step 6.<\/strong> Test set: 45 real questions including 8 traps (\u201cmy cream damaged my skin\u201d, an order in German, a wrong number three times).<\/p>\n<div class=\"bn-ba\">\n<div class=\"biz\"><b>Company side<\/b>The spec is 6 pages: mission, indicators, 3 paths, tone charter, data rules, test set. It is signed before the editor\u2019s first screen.<\/div>\n<div class=\"cli\"><b>Customer side<\/b>A clear welcome, three buttons, a status answer in under 30 seconds, and a human reachable in one click at any hour, even if it means a callback.<\/div>\n<\/div>\n<\/div>\n<h2 id=\"outil\"><span class=\"ez-toc-section\" id=\"Which_design_framing_fits_your_project\"><\/span>Which design framing fits your project?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Five questions are enough to settle the dominant framing of your project. Check the situation closest to yours in each group: the verdict panel shows the framing to favor, with its design deliverables. In case of a tie, the tool keeps the lightest framing: it is always the right starting point.<\/p>\n<div class=\"bn-gem\" id=\"cpc-w\">\n<h3><span class=\"ez-toc-section\" id=\"Design_framing_selector\"><\/span>Design framing selector<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Answer with today\u2019s situation, not with the three-year ambition: a successful framing gets re-evaluated at every version.<\/p>\n<div class=\"gem-q\">\n<p class=\"gem-qt\">1. What is the chatbot\u2019s main mission?<\/p>\n<div class=\"cdc-chips\">\n<label class=\"cdc-chip\" for=\"cpc-1a\"><input type=\"radio\" name=\"cpc-1\" id=\"cpc-1a\" data-p=\"3-2-0-1\" checked>Answer frequent questions (FAQ, support)<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-1b\"><input type=\"radio\" name=\"cpc-1\" id=\"cpc-1b\" data-p=\"0-1-3-2\">Qualify prospects and book appointments<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-1c\"><input type=\"radio\" name=\"cpc-1\" id=\"cpc-1c\" data-p=\"2-2-0-2\">Support an internal workflow (HR, IT, helpdesk)<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-1d\"><input type=\"radio\" name=\"cpc-1\" id=\"cpc-1d\" data-p=\"0-2-1-3\">Advise on a complex catalog (e-commerce, products)<\/label>\n<\/div>\n<\/div>\n<div class=\"gem-q\">\n<p class=\"gem-qt\">2. How much existing content can you plug into the bot?<\/p>\n<div class=\"cdc-chips\">\n<label class=\"cdc-chip\" for=\"cpc-2a\"><input type=\"radio\" name=\"cpc-2\" id=\"cpc-2a\" data-p=\"3-0-1-1\">Little or no structured content<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-2b\"><input type=\"radio\" name=\"cpc-2\" id=\"cpc-2b\" data-p=\"2-3-0-1\" checked>A clear FAQ of 20 to 100 questions<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-2c\"><input type=\"radio\" name=\"cpc-2\" id=\"cpc-2c\" data-p=\"0-3-0-2\">Hundreds of pages (docs, procedures, articles)<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-2d\"><input type=\"radio\" name=\"cpc-2\" id=\"cpc-2d\" data-p=\"0-0-0-3\">I do not know yet<\/label>\n<\/div>\n<\/div>\n<div class=\"gem-q\">\n<p class=\"gem-qt\">3. Where will the chatbot mainly live?<\/p>\n<div class=\"cdc-chips\">\n<label class=\"cdc-chip\" for=\"cpc-3a\"><input type=\"radio\" name=\"cpc-3\" id=\"cpc-3a\" data-p=\"3-1-0-0\" checked>On the website only<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-3b\"><input type=\"radio\" name=\"cpc-3\" id=\"cpc-3b\" data-p=\"0-0-3-2\">Website + messaging apps (WhatsApp, Messenger, Instagram)<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-3c\"><input type=\"radio\" name=\"cpc-3\" id=\"cpc-3c\" data-p=\"1-1-0-2\">Inside an intranet or internal tool<\/label>\n<\/div>\n<\/div>\n<div class=\"gem-q\">\n<p class=\"gem-qt\">4. How strict is your answer reliability requirement?<\/p>\n<div class=\"cdc-chips\">\n<label class=\"cdc-chip\" for=\"cpc-4a\"><input type=\"radio\" name=\"cpc-4\" id=\"cpc-4a\" data-p=\"3-1-0-1\" checked>Fully controlled answers, no improvisation<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-4b\"><input type=\"radio\" name=\"cpc-4\" id=\"cpc-4b\" data-p=\"0-3-0-1\">Answers phrased from my content only<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-4c\"><input type=\"radio\" name=\"cpc-4\" id=\"cpc-4c\" data-p=\"0-0-2-3\">Open advice, natural tone, flexible scope<\/label>\n<\/div>\n<\/div>\n<div class=\"gem-q\">\n<p class=\"gem-qt\">5. Who will design and maintain the bot?<\/p>\n<div class=\"cdc-chips\">\n<label class=\"cdc-chip\" for=\"cpc-5a\"><input type=\"radio\" name=\"cpc-5\" id=\"cpc-5a\" data-p=\"2-2-1-0\" checked>Myself or my team, in autonomy<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-5b\"><input type=\"radio\" name=\"cpc-5\" id=\"cpc-5b\" data-p=\"0-0-0-4\">Experts who design it with us<\/label><br>\n<label class=\"cdc-chip\" for=\"cpc-5c\"><input type=\"radio\" name=\"cpc-5\" id=\"cpc-5c\" data-p=\"0-1-1-3\">Mixed: we frame it, an expert delivers it<\/label>\n<\/div>\n<\/div>\n<div class=\"gem-out\">\n<div class=\"giv on\">\n<em>Verdict: framing A<\/em><br>\n<b>Scripted FAQ chatbot<\/b>\n<p>Your project lives on a bounded scope and safe answers. To design: the conversation tree of the 20 to 60 most frequent questions, the button labels, the tone charter and the escalation path. This is the framing that is fastest to acceptance-test and simplest to maintain; it can be built entirely in autonomy on a no-code platform, including the free plan to start.<\/p>\n<\/div>\n<div class=\"giv\">\n<em>Verdict: framing B<\/em><br>\n<b>AI assistant grounded in your content<\/b>\n<p>Your wealth is your content: the bot must draw its answers from it. To design: the source inventory (FAQ, docs, articles) and its freshness, the guardrail rules (what the bot never says), the tone imposed on the model and the coverage indicators. Re-read our RAG chatbot guide before freezing the scope: how sources are chunked is the decision that weighs most on final quality.<\/p>\n<\/div>\n<div class=\"giv\">\n<em>Verdict: framing C<\/em><br>\n<b>Multi-channel qualification agent<\/b>\n<p>Your bot has a job: get the visitor talking, qualify and trigger the action (appointment, callback, cart). To design: the question funnel and its order, the scoring grid, the integrations (CRM, calendar) and each channel\u2019s specifics, from the website widget to WhatsApp. Data is at the center: define early which fields are collected, which are optional, and the retention period.<\/p>\n<\/div>\n<div class=\"giv\">\n<em>Verdict: framing D<\/em><br>\n<b>Accompanied custom project<\/b>\n<p>Your project crosses a complex catalog, several channels and a high result requirement: the framing is best made with chatbot creation experts, within an accompanied offer like Entreprise, on quote. To design with them: the complete specification (the 8 sections below), the acceptance milestones and the maintenance plan. The benefit of a team that designs and builds with the platform\u2019s publisher: no lossy translation between the spec and the delivery, and the account, the scenarios and the knowledge base remain in the editor under your name after delivery.<\/p>\n<\/div>\n<p class=\"gem-note\">The selector gives the dominant framing at the moment you answer: projects evolve, and a framing gets re-evaluated at every version.<\/p>\n<\/div>\n<div class=\"bn-tablewrap\">\n<table>\n<thead>\n<tr>\n<th>Framing<\/th>\n<th>Ideal for<\/th>\n<th>Key design deliverables<\/th>\n<th>Main watchpoint<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A. Scripted FAQ<\/td>\n<td>Stable FAQ, guided journeys<\/td>\n<td>Conversation tree, labels, escalation<\/td>\n<td>Do not underestimate question-answer maintenance<\/td>\n<\/tr>\n<tr>\n<td>B. AI assistant on content<\/td>\n<td>Rich documentation base<\/td>\n<td>Source inventory, guardrails, tone<\/td>\n<td>Source freshness conditions accuracy<\/td>\n<\/tr>\n<tr>\n<td>C. Qualification agent<\/td>\n<td>Leads, appointments, multi-channel<\/td>\n<td>Question funnel, scoring, integrations<\/td>\n<td>Data collection must stay minimal<\/td>\n<\/tr>\n<tr>\n<td>D. Accompanied project<\/td>\n<td>Complex catalog, high stakes<\/td>\n<td>Full spec, acceptance milestones, maintenance<\/td>\n<td>Write down who maintains the bot after delivery<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2 id=\"cahier-des-charges\"><span class=\"ez-toc-section\" id=\"The_design_specification_section_by_section\"><\/span>The design specification, section by section<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The specification is design\u2019s final deliverable: once this document is signed, development or configuration can start, in-house or with a provider. Eight sections are enough, in this order:<\/p>\n<ol>\n<li><strong>Context and mission<\/strong>: the original quantified problem, the mission sentence, the explicit scope of requests handled and not handled in version 1.<\/li>\n<li><strong>Audience and channels<\/strong>: the personas (consumer customer, employee, prospect), the target channels with their format constraints.<\/li>\n<li><strong>Demand mapping<\/strong>: the frequency x criticality table from step 2, with the starting volumes.<\/li>\n<li><strong>Conversation paths<\/strong>: the trees or scripts of the selected paths, with their exits and the escalation path.<\/li>\n<li><strong>Knowledge and AI level<\/strong>: the sources that will feed the bot, their owner, their update frequency, and the target technical level (rules, content, generation).<\/li>\n<li><strong>Personality and tone<\/strong>: the bot\u2019s editorial charter (one page).<\/li>\n<li><strong>Guardrails and compliance<\/strong>: disclosure of the automated nature, data collected and retention periods, forbidden topics, escalation and human validation workflow.<\/li>\n<li><strong>Indicators and acceptance<\/strong>: the step 1 targets, the test set, the production go-live criteria and the maintenance plan (monthly review, named owner).<\/li>\n<\/ol>\n<p>Our <a href=\"https:\/\/botnation.ai\/en\/how-to-develop-a-chatbot\/\">how to develop a chatbot<\/a> article offers an interactive specification generator that writes these sections from your answers: handy to get a first draft to rework.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Who_designs_the_chatbot_in_autonomy_or_accompanied\"><\/span>Who designs the chatbot: in autonomy or accompanied?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Two routes exist, and they do not oppose each other. The <strong>autonomous<\/strong> route: your team designs and builds on a no-code platform, with the subscription grid as the only cost known in advance. The <strong>accompanied<\/strong> route: chatbot creation experts design and build the bot with you, typically within an accompanied offer like Entreprise, on quote.<\/p>\n<p>Botnation holds both: the company publishes the no-code platform <strong>and<\/strong> builds custom chatbots for its clients through its Entreprise offer (on quote). The benefit of the second route is continuity: the team designing your bot is the one publishing the tool it runs on, so there is no middleman between the specification and the delivery; after delivery, the account, the scenarios and the knowledge base remain under your name in the editor. A third-party agency remains perfectly legitimate when a highly specialized craft, an on-site engagement or an integrator already in place calls for it: what matters is that the design specification stays written and signed on both sides.<\/p>\n<figure class=\"bn-fig\">\n<img loading=\"lazy\" src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/cap-offres-en.jpg\" alt=\"Botnation homepage: Self-Service Offer to build in autonomy and Dedicated Offer with chatbot creation experts\" decoding=\"async\" width=\"1500\" height=\"950\"><figcaption>Botnation\u2019s homepage shows both routes side by side: the Self-Service Offer to design in autonomy, and the Dedicated Offer where experts design with you.<\/figcaption><\/figure>\n<p>Here is the platform\u2019s public grid, captured on September 10, 2026 on the <a href=\"https:\/\/botnation.ai\/en\/pricing\/\">pricing<\/a> page (prices shown in euros, excl. tax, when opened from the European Union):<\/p>\n<div class=\"bn-tablewrap\">\n<table>\n<thead>\n<tr>\n<th>Plan<\/th>\n<th>Public price (captured 09\/10\/2026, excl. tax)<\/th>\n<th>What it covers for designing<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>For Free<\/td>\n<td>0 \u20ac per month<\/td>\n<td>Unlimited chatbots: design and prototype in full autonomy<\/td>\n<\/tr>\n<tr>\n<td>Basic<\/td>\n<td>39 \u20ac per month<\/td>\n<td>Full features, analytics, 500 users and 500 AI credits offered (one time)<\/td>\n<\/tr>\n<tr>\n<td>Pro<\/td>\n<td>59 \u20ac per month<\/td>\n<td>Same as Basic with 1,000 users and 1,000 AI credits offered (one time)<\/td>\n<\/tr>\n<tr>\n<td>Entreprise<\/td>\n<td>On demand, on quote<\/td>\n<td>Dedicated account manager, personalized onboarding, premium support, chatbot creation management<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>AI credits consumed beyond the allowances are bought in packs: 1,000 credits at 25 \u20ac, 5,000 at 100 \u20ac, 15,000 at 250 \u20ac, 60,000 at 900 \u20ac (same September 10, 2026 figures, excl. tax), and a user beyond the plan\u2019s quota costs 0.05 \u20ac per month. The cost of a custom accompanied build, for its part, is quoted only on request: any range circulating without commitment is not worth a signature.<\/p>\n<figure class=\"bn-fig\">\n<img loading=\"lazy\" src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/cap-pricing-en.jpg\" alt=\"Botnation pricing page: For Free 0 EUR, Basic 39 EUR, Pro 59 EUR and Entreprise on demand plans, captured on September 10, 2026\" decoding=\"async\" width=\"1500\" height=\"950\"><figcaption>Botnation\u2019s public grid captured on September 10, 2026: free to design in autonomy, Entreprise on demand for accompanied projects (prices in euros, excl. tax).<\/figcaption><\/figure>\n<figure class=\"bn-fig\">\n<img loading=\"lazy\" src=\"https:\/\/botnation.ai\/wp-content\/uploads\/2026\/09\/cap-credits-en.jpg\" alt=\"Botnation AI credit packs: 1,000 credits at 25 EUR, 5,000 at 100 EUR, 15,000 at 250 EUR and 60,000 at 900 EUR\" decoding=\"async\" width=\"1500\" height=\"950\"><figcaption>The AI credit packs, consumed when the design leans on generation (captured September 10, 2026, prices excl. tax).<\/figcaption><\/figure>\n<h2 id=\"erreurs\"><span class=\"ez-toc-section\" id=\"The_5_design_mistakes_that_cost_the_most\"><\/span>The 5 design mistakes that cost the most<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>We devote a full article to <a href=\"https:\/\/botnation.ai\/en\/chatbot-mistakes\/\">chatbot creation mistakes<\/a>; here are the ones that play out precisely at the design stage, where they are the most expensive to repair.<\/p>\n<div class=\"bn-cols\">\n<div class=\"bn-col warn\">\n<h4><span class=\"ez-toc-section\" id=\"Framing_mistakes\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\"><\/path><path d=\"M12 9v4\"><\/path><path d=\"M12 17h.01\"><\/path><\/svg>Framing mistakes<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li><strong>The elastic scope<\/strong>: \u201cit could also\u2026\u201d at every meeting; version 1 never ships.<\/li>\n<li><strong>No indicator<\/strong>: impossible to tell whether the bot is useful, hence impossible to defend it in a committee.<\/li>\n<li><strong>Designing for the demo<\/strong>: spectacular paths on nominal cases, nothing for real cases (typos, anger, off-topic).<\/li>\n<\/ul>\n<\/div>\n<div class=\"bn-col warn\">\n<h4><span class=\"ez-toc-section\" id=\"Experience_mistakes\"><\/span><svg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\"><\/path><path d=\"M12 9v4\"><\/path><path d=\"M12 17h.01\"><\/path><\/svg>Experience mistakes<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li><strong>No designed escalation<\/strong>: the user locked in a button menu with no human way out.<\/li>\n<li><strong>The default tone<\/strong>: the bot\u2019s voice decides itself answer after answer, often the last writer\u2019s.<\/li>\n<li><strong>Compliance as an afterthought<\/strong>: transparency and personal data thought about after going live, when everything must be rewritten.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>The common point of these five mistakes: they are invisible on launch day and get paid for during the first month of operation. This is why the method above puts indicators at step 1 and guardrails at step 5, before any development.<\/p>\n<h2 id=\"faq\"><span class=\"ez-toc-section\" id=\"FAQ_on_designing_a_chatbot\"><\/span>FAQ on designing a chatbot<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<details class=\"bn-faq\">\n<summary>Do you need to know how to code to design a chatbot?<\/summary>\n<div class=\"bn-faq-b\">\n<p>No. Design produces a specification, conversation paths and a tone charter: writing and analysis deliverables, not code. The implementation itself can be done without programming, on a no-code platform; our <a href=\"https:\/\/botnation.ai\/en\/how-to-develop-a-chatbot\/\">how to develop a chatbot<\/a> guide compares the three routes, including the code route for those who prefer it.<\/p>\n<\/div>\n<\/details>\n<details class=\"bn-faq\">\n<summary>What is the difference between designing and developing a chatbot?<\/summary>\n<div class=\"bn-faq-b\">\n<p>Design decides <strong>what<\/strong> the bot must do and within which limits; development builds <strong>how<\/strong> it does it (no-code configuration or code). The same person can carry both, but the deliverables differ: spec and paths on one side, scenarios and integrations on the other.<\/p>\n<\/div>\n<\/details>\n<details class=\"bn-faq\">\n<summary>How long does chatbot design take?<\/summary>\n<div class=\"bn-faq-b\">\n<p>As an order of magnitude: a few days for a bounded-scope scripted FAQ, a few weeks for an AI assistant grounded in a rich documentation base (sources must be inventoried and made reliable), and a proper workshop project for an accompanied multi-channel deployment. The variable that weighs most is not technical: it is the time to gather and stabilize your content and your demand map.<\/p>\n<\/div>\n<\/details>\n<details class=\"bn-faq\">\n<summary>How much does chatbot design cost?<\/summary>\n<div class=\"bn-faq-b\">\n<p>In autonomy on a no-code platform, the design cost is your working time: plans range from free (0 \u20ac) to the 39 \u20ac and 59 \u20ac monthly subscriptions (grid captured 09\/10\/2026, excl. tax), plus AI credits if you use generation. In an accompanied custom build, the cost depends on the scope and is quoted only on request.<\/p>\n<\/div>\n<\/details>\n<details class=\"bn-faq\">\n<summary>Must a chatbot say it is a robot?<\/summary>\n<div class=\"bn-faq-b\">\n<p>Yes, and this is designed into the very first message. Article 50 of Regulation (EU) 2024\/1689 on AI, applicable since August 2, 2026, requires informing the user that they are interacting with an AI, unless it is obvious from the context; CNIL already recommended it in its \u201cChatbots\u201d sheet of February 19, 2021 (published in French only). In practice: one clear welcome sentence, and no generated answer passed off as a human text.<\/p>\n<\/div>\n<\/details>\n<details class=\"bn-faq\">\n<summary>Where to start when you have no data on the demand?<\/summary>\n<div class=\"bn-faq-b\">\n<p>From the sources you already have: shared mailbox, support tickets, questions asked to your sales teams, the site\u2019s internal searches. Failing that, one week of systematic logging is enough to surface the first recurring questions: three months of imperfect data beat an imagination workshop.<\/p>\n<\/div>\n<\/details>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion_designing_means_deciding_before_building\"><\/span>Conclusion: designing means deciding before building<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A successful chatbot is first a well-designed chatbot: a one-sentence mission, indicators set before the first answer, paths with exits, a written tone, guardrails laid before launch and a named maintenance plan. The technical part, for its own, has never been so accessible: the choice now plays out between autonomy on a no-code platform and a custom build accompanied by a team of experts, and the two routes can follow each other on the same project.<\/p>\n<div class=\"bn-cta\">\n<h3><span class=\"ez-toc-section\" id=\"From_design_to_go-live\"><\/span>From design to go-live<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Design your chatbot in autonomy on the platform, from the free plan to the Basic and Pro offers, or entrust the design and the build to our chatbot creation experts: in both cases, the specification above remains your best launching ramp.<\/p>\n<p><a class=\"bn-cta-btn\" href=\"https:\/\/botnation.ai\/en\/contact\/\">Request a chatbot creation quote<\/a><\/p>\n<p><a href=\"https:\/\/botnation.ai\/en\/pricing\/\">Or see the platform pricing<\/a><\/p>\n<\/div>\n<\/div>\n<p><script>(function(){var w=document.getElementById(\"cpc-w\");if(!w)return;var ps=w.querySelectorAll(\".giv\");function upd(){var t=[0,0,0,0];var rs=w.querySelectorAll(\"input:checked\");for(var i=0;rs.length>i;i++){var p=(rs[i].getAttribute(\"data-p\")||\"\").split(\"-\");for(var k=0;4>k;k++){t[k]+=(p.length>k)?(parseInt(p[k],10)||0):0}}var bi=0;for(var k=1;4>k;k++){if(t[k]>t[bi]){bi=k}}for(var j=0;ps.length>j;j++){if(j==bi){ps[j].classList.add(\"on\")}else{ps[j].classList.remove(\"on\")}}}var is=w.querySelectorAll(\"input\");for(var i2=0;is.length>i2;i2++){is[i2].addEventListener(\"change\",upd)}upd()})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In brief Designing a chatbot means everything you decide before the first technical brick: the mission, the audience, the channel, the AI level, the conversation paths, the tone and the guardrails. Here is our complete 7-step method, from framing to the test set, with the full specification, an interactive framing selector and the obligations to [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":31624,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[362],"tags":[],"class_list":["post-31636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chatbot-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/posts\/31636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/comments?post=31636"}],"version-history":[{"count":1,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/posts\/31636\/revisions"}],"predecessor-version":[{"id":31637,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/posts\/31636\/revisions\/31637"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/media\/31624"}],"wp:attachment":[{"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/media?parent=31636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/categories?post=31636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/botnation.ai\/en\/wp-json\/wp\/v2\/tags?post=31636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}