<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harrison Hu</title>
    <description>The latest articles on DEV Community by Harrison Hu (@harrisonlineai).</description>
    <link>https://dev.to/harrisonlineai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4170874%2Fd5061ba0-b0c7-4505-8801-6d8f584a408e.png</url>
      <title>DEV Community: Harrison Hu</title>
      <link>https://dev.to/harrisonlineai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harrisonlineai"/>
    <language>en</language>
    <item>
      <title>Free vs Paid Chatbot Starter Kits for Home-Service Shops: What You Actually Need</title>
      <dc:creator>Harrison Hu</dc:creator>
      <pubDate>Fri, 09 Oct 2026 07:03:49 +0000</pubDate>
      <link>https://dev.to/harrisonlineai/free-vs-paid-chatbot-starter-kits-for-home-service-shops-what-you-actually-need-1gk1</link>
      <guid>https://dev.to/harrisonlineai/free-vs-paid-chatbot-starter-kits-for-home-service-shops-what-you-actually-need-1gk1</guid>
      <description>&lt;p&gt;Home-service shops such as aircon cleaning, house cleaning, moving and plumbing get the same message all day: "How much?" The honest answer is usually "it depends", on the unit type, the quantity, the area, the floor and whether there's an elevator. A quote bot asks those questions in order and replies with a price range, or hands the chat to a human when the job is risky.&lt;/p&gt;

&lt;p&gt;This article compares two AI-assisted starter kits from the same itch.io store: a free &lt;strong&gt;Lite&lt;/strong&gt; quote engine and the paid &lt;strong&gt;LINE AI Quote Helper Kit&lt;/strong&gt;. The goal is to help you pick the cheaper option whenever it's enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  First: what a "quote bot" needs to do
&lt;/h2&gt;

&lt;p&gt;Strip away the chat UI and a quote bot does four things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Collect inputs&lt;/strong&gt; in a fixed order: area, unit type, quantity, add-ons, floor or elevator, special conditions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply pricing rules&lt;/strong&gt; such as a price per unit, add-on fees, a bulk discount and a surcharge for stairs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Return a range, not a promise.&lt;/strong&gt; Something like "about NT$3,240–NT$3,960, final price confirmed on site".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hand off to a human&lt;/strong&gt; for anything it shouldn't price: out-of-area jobs, unusual units, or messages that mention discounts, warranties or leaks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Notice what's missing: a large language model. Neither kit calls an LLM. Quoting is deterministic rules in a JSON file, so the same inputs always give the same range, and you can test it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the free Lite kit covers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Lite = MIT-licensed quote engine + &lt;code&gt;rules.json&lt;/code&gt; + static demo.&lt;/strong&gt; It's the free cut of the paid kit:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://harrisonlineai.itch.io/line-ai-quote-helper-lite" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/line-ai-quote-helper-lite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on the package contents, Lite includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;web/rules.json&lt;/code&gt;&lt;/strong&gt;: every pricing and hand-off rule in one file. Fields include &lt;code&gt;units&lt;/code&gt; (price per unit type, or &lt;code&gt;human: true&lt;/code&gt; to always hand off), &lt;code&gt;outdoorAddonPerUnit&lt;/code&gt;, &lt;code&gt;bulkMinUnits&lt;/code&gt;, &lt;code&gt;bulkDiscountPerUnit&lt;/code&gt;, &lt;code&gt;noElevatorFloor&lt;/code&gt;, &lt;code&gt;noElevatorFee&lt;/code&gt;, &lt;code&gt;rangePct&lt;/code&gt;, &lt;code&gt;serviceAreas&lt;/code&gt; and &lt;code&gt;handoffKeywords&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;web/quote-engine.js&lt;/code&gt;&lt;/strong&gt;: a small, dependency-free function for the browser and Node. It checks hand-off conditions first and only calculates a range if none apply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;web/index.html&lt;/code&gt;&lt;/strong&gt;: a static demo with a simulated LINE-style chat and the owner's quote card. Serve it with &lt;code&gt;npx serve web&lt;/code&gt; or upload &lt;code&gt;web/&lt;/code&gt; to a static host such as Cloudflare Pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;test.js&lt;/code&gt;&lt;/strong&gt;: five logic tests you run with &lt;code&gt;node test.js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MIT license&lt;/strong&gt;: use, fork and ship it in your own projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sample shop and its prices are fictional.&lt;/p&gt;

&lt;p&gt;A typical edit looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"units"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Split type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"human"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Ceiling concealed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"human"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"serviceAreas"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Taipei City"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"New Taipei City"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"handoffKeywords"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"discount"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"warranty"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"leak"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"rangePct"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(The shipped sample uses Traditional Chinese labels; English is shown for illustration.) Then update the expected values in &lt;code&gt;test.js&lt;/code&gt; and rerun it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the paid kit adds
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://harrisonlineai.itch.io/line-ai-quote-kit" rel="noopener noreferrer"&gt;LINE AI Quote Helper Kit (US$24)&lt;/a&gt; ships the same engine, &lt;code&gt;rules.json&lt;/code&gt;, tests and web demo. On top of that, it includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A real LINE Messaging API webhook&lt;/strong&gt; as a Cloudflare Worker. It verifies LINE's request signature, asks each question with quick-reply buttons and can remember each customer's progress with an optional Workers KV binding. It uses reply messages only, so it doesn't send pushed broadcasts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An owner-facing Excel rules sheet&lt;/strong&gt; with a built-in calculator. The owner fills in prices in a spreadsheet and you copy the numbers into &lt;code&gt;rules.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A client FAQ template&lt;/strong&gt; in Traditional Chinese for the shop owner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A bilingual setup SOP&lt;/strong&gt; (Chinese and English), which the README estimates at about 60–90 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A commercial license&lt;/strong&gt; to use and modify the kit for your own business and unlimited client projects, including paid ones. You can't resell or redistribute the kit itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It still needs basic terminal and Node.js comfort. No API keys are included; you create your own LINE channel and set secrets with &lt;code&gt;wrangler secret&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side-by-side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Free Lite&lt;/th&gt;
&lt;th&gt;Paid LINE kit (US$24)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quote engine + &lt;code&gt;rules.json&lt;/code&gt; + tests&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static web demo&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connects to a real LINE Official Account&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (Cloudflare Worker webhook)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quick-reply buttons and session memory in LINE&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (KV is optional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Owner Excel sheet with calculator&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client FAQ + setup SOP&lt;/td&gt;
&lt;td&gt;README only&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Commercial, unlimited client projects, no resale&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When the free kit is enough
&lt;/h2&gt;

&lt;p&gt;Pick Lite and don't pay for anything if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You only need a demo&lt;/strong&gt; to show an owner what a guided quote flow feels like.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're wiring the engine into your own stack&lt;/strong&gt;, such as a bot on another channel, a website form or your backend. It's a plain function.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want to settle the pricing logic first.&lt;/strong&gt; Many quoting problems are really rule problems, like a missing surcharge. Work them out in &lt;code&gt;rules.json&lt;/code&gt; and the tests before any chat platform is involved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You'd rather write the LINE integration yourself.&lt;/strong&gt; The Messaging API is well documented.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When the paid kit is worth it
&lt;/h2&gt;

&lt;p&gt;The paid kit makes more sense when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The target channel is specifically LINE&lt;/strong&gt; and you want a working webhook to adapt instead of writing one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A non-technical owner maintains the prices.&lt;/strong&gt; The Excel sheet with a calculator gives them a familiar place to change numbers and check results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need hand-over material&lt;/strong&gt;, such as an FAQ for the shop and a step-by-step setup guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If none of those apply, the free version is the better choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do this before using either kit
&lt;/h2&gt;

&lt;p&gt;The inputs matter more than the code. Before editing &lt;code&gt;rules.json&lt;/code&gt;, collect the shop's real price list, service areas, hours and the questions that must always go to a human. The &lt;a href="https://harrisonlineai.itch.io/ai-chatbot-intake-pack" rel="noopener noreferrer"&gt;Free AI Chatbot Client Intake Pack&lt;/a&gt; is a free questionnaire, knowledge-base CSV and go-live checklist for that step.&lt;/p&gt;

&lt;p&gt;Also: label the bot as an automated assistant, say the final price is confirmed on site, never let it promise discounts, and replay a few real past inquiries before going live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free Lite quote engine (MIT)&lt;/strong&gt;: &lt;a href="https://harrisonlineai.itch.io/line-ai-quote-helper-lite" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/line-ai-quote-helper-lite&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LINE AI Quote Helper Kit (US$24)&lt;/strong&gt;: &lt;a href="https://harrisonlineai.itch.io/line-ai-quote-kit" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/line-ai-quote-kit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free AI Chatbot Client Intake Pack&lt;/strong&gt;: &lt;a href="https://harrisonlineai.itch.io/ai-chatbot-intake-pack" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/ai-chatbot-intake-pack&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three are AI-assisted templates: starting points to review and adapt, not finished products or guarantees of results.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was written with AI assistance.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>smallbusiness</category>
      <category>chatbot</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Sell Fixed-Scope AI Chatbot Setup Packages to Small Shops (Without Selling Hours)</title>
      <dc:creator>Harrison Hu</dc:creator>
      <pubDate>Fri, 09 Oct 2026 05:04:48 +0000</pubDate>
      <link>https://dev.to/harrisonlineai/how-to-sell-fixed-scope-ai-chatbot-setup-packages-to-small-shops-without-selling-hours-p0f</link>
      <guid>https://dev.to/harrisonlineai/how-to-sell-fixed-scope-ai-chatbot-setup-packages-to-small-shops-without-selling-hours-p0f</guid>
      <description>&lt;p&gt;Small shops such as salons, cleaning companies and repair services often want "a chatbot" but rarely want to buy your hours. An hourly quote asks the owner to guess how long the work will take. A fixed-scope package fixes the outcome and the price, and shows where the work stops.&lt;/p&gt;

&lt;p&gt;Here is how to build those packages step by step. All prices below are placeholders; set them for your own market.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Define the scope boundary first
&lt;/h2&gt;

&lt;p&gt;Before you write any package, decide what one "unit" of chatbot work is. For small shops, a workable boundary usually looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One channel&lt;/strong&gt;: a website widget, LINE, WhatsApp, Messenger or Telegram. Pick one per package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One knowledge base&lt;/strong&gt; with a capped number of question–answer pairs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One hand-off path&lt;/strong&gt;: when the bot is unsure, it passes the conversation to a named person and notifies them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One training session&lt;/strong&gt; and a short owner guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write the boundary as nouns with numbers attached. Vague phrases like "full chatbot setup" are where unpaid hours come from.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Run an intake checklist before you quote
&lt;/h2&gt;

&lt;p&gt;Don't quote from the first message. Send an intake questionnaire and quote after it comes back. Collect at least:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What the business sells, where it operates and its opening hours&lt;/li&gt;
&lt;li&gt;The 10 questions customers ask most often, copied from real messages if possible&lt;/li&gt;
&lt;li&gt;Questions the bot must &lt;strong&gt;never&lt;/strong&gt; answer on its own (refunds, complaints, medical or legal topics)&lt;/li&gt;
&lt;li&gt;How the bot should reply to "how much?": with a public price list, "from" prices, or a hand-off&lt;/li&gt;
&lt;li&gt;Tone and languages&lt;/li&gt;
&lt;li&gt;Who takes over when the bot can't help, and during which hours&lt;/li&gt;
&lt;li&gt;Which channel accounts exist and who owns them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat the answers as your complexity signal. If the owner can't list their top questions, or prices change daily, the job is riskier than it looks. Sometimes the honest recommendation is the platform's built-in auto-reply feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Build two or three tiers, not ten
&lt;/h2&gt;

&lt;p&gt;Keep the menu small enough that an owner can choose in one read. One common structure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;What it covers&lt;/th&gt;
&lt;th&gt;Placeholder price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A: FAQ assistant&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1 channel, up to N Q&amp;amp;A pairs, human hand-off with notification, 1 training session&lt;/td&gt;
&lt;td&gt;$X–$Y, set for your market&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;B: Booking / quote intake&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A guided flow that collects job details (or a booking form), sends them to a spreadsheet and notifies the owner&lt;/td&gt;
&lt;td&gt;$X–$Y, set for your market&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;C: A + B combined&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Both, sharing one knowledge base and one notification flow&lt;/td&gt;
&lt;td&gt;Less than A + B bought separately&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Publish "from" prices if you like, but give the exact quote after intake.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Write down what is out of scope
&lt;/h2&gt;

&lt;p&gt;Out-of-scope items prevent more arguments than in-scope items do. Put them in every proposal, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment collection, POS or ERP integration&lt;/li&gt;
&lt;li&gt;More than one channel&lt;/li&gt;
&lt;li&gt;Outbound broadcasts or marketing campaigns&lt;/li&gt;
&lt;li&gt;Calendar sync across multiple calendars&lt;/li&gt;
&lt;li&gt;Writing the business's policies or prices (the client supplies all content, and you don't invent answers)&lt;/li&gt;
&lt;li&gt;Medical, legal or financial advice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also state that third-party costs (messaging-platform fees, AI API usage, domains) are paid from the &lt;strong&gt;client's own accounts&lt;/strong&gt;. Don't front them.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Handle change requests and add-ons explicitly
&lt;/h2&gt;

&lt;p&gt;Scope will be tested. Decide your rules in advance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The price covers exactly what is listed in the proposal.&lt;/li&gt;
&lt;li&gt;Anything new, such as another channel, another integration or more Q&amp;amp;A pairs than the cap, is quoted separately &lt;strong&gt;before&lt;/strong&gt; work starts.&lt;/li&gt;
&lt;li&gt;Content revisions during the build are capped at a stated number of rounds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Turn common requests into priced add-ons: "extra channel", "extra block of N Q&amp;amp;A pairs", "extra language", "after-hours reply flow". That turns "can you just…" into a yes with a price.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Agree on hand-over and acceptance criteria up front
&lt;/h2&gt;

&lt;p&gt;Fixed scope only works if "done" is defined. Attach an acceptance checklist the client ticks off, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] The bot answers the top 20 questions correctly in testing&lt;/li&gt;
&lt;li&gt;[ ] Unknown questions hand off to a human, and the owner receives the notification&lt;/li&gt;
&lt;li&gt;[ ] Hours, prices and address match the intake sheet&lt;/li&gt;
&lt;li&gt;[ ] The bot says it is an automated assistant when asked&lt;/li&gt;
&lt;li&gt;[ ] The owner can edit an answer using the owner guide&lt;/li&gt;
&lt;li&gt;[ ] The training session is complete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before go-live, replay real past customer messages and test on a phone. The client should own all admin accounts, with you on a removable staff role. Tie payment to milestones, such as a deposit to start and the balance on acceptance.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Offer a maintenance retainer as a separate product
&lt;/h2&gt;

&lt;p&gt;Prices, hours and promotions will change after launch. Offer an optional monthly care plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Up to N knowledge-base edits per month&lt;/li&gt;
&lt;li&gt;A basic uptime or function check&lt;/li&gt;
&lt;li&gt;A short monthly summary&lt;/li&gt;
&lt;li&gt;A clear cancellation notice period&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Price it as &lt;strong&gt;$X–$Y per month, set for your market&lt;/strong&gt;. A client who declines still gets a working hand-over and owner guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Pricing logic: what actually drives the number
&lt;/h2&gt;

&lt;p&gt;You still need a way to reach a number. A simple worksheet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Estimate your honest delivery hours for each package.&lt;/li&gt;
&lt;li&gt;Multiply by your target day or hourly rate.&lt;/li&gt;
&lt;li&gt;Add a risk buffer for revisions and client delays.&lt;/li&gt;
&lt;li&gt;Round up to a published "from" price.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then adjust for the factors that really change effort and risk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Number of intents / Q&amp;amp;A pairs&lt;/strong&gt;: more topics mean more content to write, review and test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Number of channels&lt;/strong&gt;: each channel adds its own setup, testing and quirks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Languages&lt;/strong&gt;: each language needs its own tone review and testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hand-off complexity&lt;/strong&gt;: one owner's phone is simple, while routing across a team of staff is not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quote logic&lt;/strong&gt;: price ranges that depend on area, unit type or add-ons need rules and testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, sanity-check against value: what does the owner hope to get back (fewer repeated replies, fewer missed after-hours inquiries)? You can't promise those outcomes, but they help both sides judge the price.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;If you want templates for these steps, the following are AI-assisted templates from the harrisonlineai itch.io store. They are starting points to edit, not guarantees:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free AI Chatbot Client Intake Pack&lt;/strong&gt;: a 25-question intake questionnaire, a knowledge-base CSV and a 15-point go-live checklist. &lt;a href="https://harrisonlineai.itch.io/ai-chatbot-intake-pack" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/ai-chatbot-intake-pack&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Chatbot Service Starter Kit (US$9)&lt;/strong&gt;: three fixed-scope package outlines, a pricing worksheet, a discovery-call script, a one-page proposal template, scope and acceptance rules, a client FAQ and reply templates. &lt;a href="https://harrisonlineai.itch.io/ai-chatbot-service-kit" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/ai-chatbot-service-kit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LINE AI Quote Helper Kit (US$24)&lt;/strong&gt;: a quote-flow template for home-service businesses on LINE, with a web demo, a Cloudflare Worker webhook, a rules file and Excel sheet, and a setup SOP. It needs basic Node.js and terminal comfort, and you bring your own API keys. &lt;a href="https://harrisonlineai.itch.io/line-ai-quote-kit" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/line-ai-quote-kit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This article was written with AI assistance.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>business</category>
      <category>freelancing</category>
      <category>ai</category>
    </item>
    <item>
      <title>A practical WhatsApp Business auto-reply pack for small shops (no API required)</title>
      <dc:creator>Harrison Hu</dc:creator>
      <pubDate>Fri, 09 Oct 2026 04:34:36 +0000</pubDate>
      <link>https://dev.to/harrisonlineai/a-practical-whatsapp-business-auto-reply-pack-for-small-shops-no-api-required-276e</link>
      <guid>https://dev.to/harrisonlineai/a-practical-whatsapp-business-auto-reply-pack-for-small-shops-no-api-required-276e</guid>
      <description>&lt;p&gt;If you run a cafe, a cleaning service, a clinic front desk, or a repair shop, customers already message you on WhatsApp. The official &lt;strong&gt;WhatsApp Business&lt;/strong&gt; app (the free one, not the Cloud API) lets you set a welcome message, an away message, and saved replies. You do not need a developer or a monthly bot SaaS to cover the first 80% of questions.&lt;/p&gt;

&lt;p&gt;This post is the structure I use before wiring anything fancy.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Welcome message (under 300 characters)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Who you are&lt;/li&gt;
&lt;li&gt;What you can help with in chat&lt;/li&gt;
&lt;li&gt;How to reach a human (&lt;code&gt;type /human&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Reminder that prices may need an on-site quote&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Away message
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;When you are closed&lt;/li&gt;
&lt;li&gt;When you will reply&lt;/li&gt;
&lt;li&gt;Emergency / urgent path if you have one (or say you do not)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Slash quick replies (start with these 12)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;/hours&lt;/code&gt; &lt;code&gt;/address&lt;/code&gt; &lt;code&gt;/services&lt;/code&gt; &lt;code&gt;/price&lt;/code&gt; &lt;code&gt;/book&lt;/code&gt; &lt;code&gt;/cancel&lt;/code&gt; &lt;code&gt;/pay&lt;/code&gt; &lt;code&gt;/invoice&lt;/code&gt; &lt;code&gt;/promo&lt;/code&gt; &lt;code&gt;/human&lt;/code&gt; &lt;code&gt;/sorry&lt;/code&gt; &lt;code&gt;/stop&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For &lt;code&gt;/price&lt;/code&gt;: never invent a firm number if you quote on-site. Reply with a range or "we confirm after a short checklist" and offer to collect details.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Hand-off rules (write these down)
&lt;/h2&gt;

&lt;p&gt;The bot / quick-reply layer must &lt;strong&gt;not&lt;/strong&gt; decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Medical, legal, or refund outcomes&lt;/li&gt;
&lt;li&gt;Custom discounts&lt;/li&gt;
&lt;li&gt;Anything that needs looking at a photo of damage&lt;/li&gt;
&lt;li&gt;Complaints that sound angry — go straight to &lt;code&gt;/human&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Tags inside WhatsApp Business
&lt;/h2&gt;

&lt;p&gt;Create tags such as &lt;code&gt;new-lead&lt;/code&gt;, &lt;code&gt;booked&lt;/code&gt;, &lt;code&gt;waiting-quote&lt;/code&gt;, &lt;code&gt;vip&lt;/code&gt;, &lt;code&gt;do-not-message&lt;/code&gt;. Tag every chat before you archive it.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Fifteen-minute go-live checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Welcome + away saved&lt;/li&gt;
&lt;li&gt;Twelve quick replies pasted and named&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/human&lt;/code&gt; reaches a real phone that is on&lt;/li&gt;
&lt;li&gt;Test from a second phone&lt;/li&gt;
&lt;li&gt;Prices language reviewed by the owner&lt;/li&gt;
&lt;li&gt;Privacy: do not ask for ID documents in chat unless required&lt;/li&gt;
&lt;li&gt;Add a short "AI / template assisted replies" note if your market expects disclosure&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;I published a ready-made &lt;strong&gt;eight-industry&lt;/strong&gt; version of this pack (cafe, home service, salon, clinic desk, ecommerce, rental, tutoring, repair) on itch.io if you want to skip the typing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pack: &lt;a href="https://harrisonlineai.itch.io/whatsapp-business-auto-reply-pack" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/whatsapp-business-auto-reply-pack&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Free chatbot client intake checklist: &lt;a href="https://harrisonlineai.itch.io/ai-chatbot-intake-pack" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/ai-chatbot-intake-pack&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LINE-focused quote kit (Taiwan / home-service): &lt;a href="https://harrisonlineai.itch.io/line-ai-quote-kit" rel="noopener noreferrer"&gt;https://harrisonlineai.itch.io/line-ai-quote-kit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Written with AI assistance; you still own the edits for your shop.&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>whatsapp</category>
      <category>chatbot</category>
      <category>smallbusiness</category>
    </item>
    <item>
      <title>25 questions to ask a small business before you build their chatbot</title>
      <dc:creator>Harrison Hu</dc:creator>
      <pubDate>Thu, 08 Oct 2026 09:40:33 +0000</pubDate>
      <link>https://dev.to/harrisonlineai/25-questions-to-ask-a-small-business-before-you-build-their-chatbot-4ik7</link>
      <guid>https://dev.to/harrisonlineai/25-questions-to-ask-a-small-business-before-you-build-their-chatbot-4ik7</guid>
      <description>&lt;p&gt;If you build chatbots for small businesses (a cafe, a cleaning service, a clinic front desk, a repair shop), the hard part is usually not the bot logic. It's getting the owner's answers in one place before you start. Without them you end up rebuilding the flow three times because "oh, we don't actually show prices online" shows up in week two.&lt;/p&gt;

&lt;p&gt;Here is an intake list to send before kickoff. Copy it, change it, use it on client work.&lt;/p&gt;

&lt;h2&gt;
  
  
  A. The business
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Business name, and how customers usually refer to you.&lt;/li&gt;
&lt;li&gt;What do you sell? List your main services or products.&lt;/li&gt;
&lt;li&gt;Where do you operate (address, or the areas you cover)?&lt;/li&gt;
&lt;li&gt;Opening hours, including holidays and days off.&lt;/li&gt;
&lt;li&gt;Who are your typical customers?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  B. What customers ask
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The 10 questions customers ask most often (real messages if possible).&lt;/li&gt;
&lt;li&gt;Questions the bot must &lt;strong&gt;never&lt;/strong&gt; answer by itself (medical, legal, refunds, complaints).&lt;/li&gt;
&lt;li&gt;Do you show prices publicly? If not, how should the bot reply to "how much?"&lt;/li&gt;
&lt;li&gt;Are any prices "from" prices that depend on a site visit or a quote?&lt;/li&gt;
&lt;li&gt;Current promotions, and when they end.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  C. Tone and language
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Which languages should the bot reply in?&lt;/li&gt;
&lt;li&gt;Formal or friendly? Paste 2–3 replies you have written that sound like you.&lt;/li&gt;
&lt;li&gt;Words, emoji or claims the bot must avoid.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  D. Handing off to a human
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Who takes over when the bot can't help? Name and working hours.&lt;/li&gt;
&lt;li&gt;How should the bot hand off (tag staff, send an alert, ask for a phone number)?&lt;/li&gt;
&lt;li&gt;What should the bot say outside working hours?&lt;/li&gt;
&lt;li&gt;What must the bot collect before handing off (name, phone, address, date, photos)?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  E. Channels and accounts
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Which channels: LINE, WhatsApp, Messenger, website chat, Instagram?&lt;/li&gt;
&lt;li&gt;Who owns the admin login for each channel? (The client keeps ownership; you get a staff role.)&lt;/li&gt;
&lt;li&gt;Any booking, order or spreadsheet system the bot should read from or write to?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  F. Success and limits
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What would make this bot a success after 30 days?&lt;/li&gt;
&lt;li&gt;Roughly how many customer messages per day?&lt;/li&gt;
&lt;li&gt;Any data the bot must not store (ID numbers, card numbers, health details)?&lt;/li&gt;
&lt;li&gt;Who on the client's side approves the final answers before launch?&lt;/li&gt;
&lt;li&gt;Target launch date.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Three rules that save the most rework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. The bot never invents a price.&lt;/strong&gt; If question 8 says prices aren't public, the bot collects the job details and hands off. A wrong quote in writing is worse than a slow reply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Every "never answer" topic from question 7 has a hand-off line written in advance.&lt;/strong&gt; Write the exact sentence the bot says, for example: "That one needs a person. I've passed it to our team and they'll reply during opening hours."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The owner signs off on the answers, not on the tech.&lt;/strong&gt; Question 24 matters more than it looks. Get one named person to approve the final FAQ, and launch only after they have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before go-live
&lt;/h2&gt;

&lt;p&gt;A short checklist to run before switching a bot on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask it the 10 real questions from item 6 and compare with the owner's answers.&lt;/li&gt;
&lt;li&gt;Ask it something from the "never answer" list and confirm it hands off.&lt;/li&gt;
&lt;li&gt;Message it outside opening hours.&lt;/li&gt;
&lt;li&gt;Ask "how much?" with missing details and confirm it asks follow-up questions instead of guessing.&lt;/li&gt;
&lt;li&gt;Confirm the hand-off alert actually reaches the right person's phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Free download
&lt;/h2&gt;

&lt;p&gt;The questionnaire above, a knowledge-base intake CSV (with a "needs a human" column) and a 15-point go-live checklist are packaged as a free zip, pay-what-you-want with $0 allowed:&lt;br&gt;
&lt;a href="https://harrisonlineai.itch.io/ai-chatbot-intake-pack" rel="noopener noreferrer"&gt;Free AI Chatbot Client Intake Pack on itch.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: this post and the templates were written with AI assistance and reviewed before publishing. The same shop also sells paid template packs; the download above is free.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>freelancing</category>
    </item>
  </channel>
</rss>
