<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Practical Systems by Rose]]></title><description><![CDATA[Practical Systems by Rose]]></description><link>https://roseannong.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 10 Nov 2026 10:59:38 GMT</lastBuildDate><atom:link href="https://roseannong.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How I Built a Quotation App for Small Businesses with Google Apps Script]]></title><description><![CDATA[Many small service businesses still send quotes the slow way: typed into a chat, copied from an old message, or written up in a document every single time…]]></description><link>https://roseannong.hashnode.dev/how-i-built-a-quotation-app-for-small-businesses-with-google-apps-script</link><guid isPermaLink="true">https://roseannong.hashnode.dev/how-i-built-a-quotation-app-for-small-businesses-with-google-apps-script</guid><category><![CDATA[google apps script]]></category><category><![CDATA[Small business]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Rose Ann Ong]]></dc:creator><pubDate>Tue, 03 Nov 2026 22:19:45 GMT</pubDate><content:encoded><![CDATA[<h2>The problem</h2>
<p>Many small service businesses still send quotes the slow way: typed into a chat, copied from an old message, or written up in a document every single time. Once the quote is sent, it disappears into WhatsApp. Nobody remembers who said yes, who never replied, or which quote is about to go stale.</p>
<p>I work in operations and administration in Doha, so I see how much of a business runs on these small follow-ups. I wanted a tool that a cleaning company or any service business could open on a phone, send a clean quote in a few taps, and always know who to chase next. No monthly subscription, no new software to learn.</p>
<p>That became QuoteDesk, a quotation app built on Google Sheets and Google Apps Script.</p>
<p>I started building it to make quotations simpler: one place to create a quote for any kind of service, send it, and keep track of it until the client says yes or no.</p>
<h2>What QuoteDesk does</h2>
<p>The app has four screens: Home, Quotes, New quote and Price list.</p>
<ol>
<li><strong>Price list.</strong> Every service lives in one place, grouped by type (hourly, deep cleaning, post-construction, upholstery, add-ons), each with a rate and a unit like per job, per sqm or per hour. You set prices once.</li>
<li><strong>New quote.</strong> Pick the client, add services from the price list or a custom line, set a discount and a valid-until date. Totals add up on their own.</li>
<li><strong>Sending.</strong> The quote becomes a clean, branded quotation. It can go out on WhatsApp or as a client link, and the client sees a proper document, not a chat message.</li>
<li><strong>Tracking.</strong> Each quote moves through clear statuses: Draft, Sent, Viewed, Accepted, Booked, Declined or Expired. The app shows when a client opens the link.</li>
<li><strong>Follow-ups.</strong> The Home screen lists who to follow up today: quotes with no answer after 3 days, or about to expire. It also shows the amount won in the last 30 days, the win rate and how much is still waiting.</li>
</ol>
<h2>How it is built</h2>
<p>QuoteDesk has no paid hosting and no database to manage. Everything runs inside the business owner's own Google account.</p>
<ul>
<li><strong>Google Sheet as the data store.</strong> The price list, the quotes and the business details all live in a sheet the owner can open anytime.</li>
<li><strong>Apps Script behind the scenes.</strong> Scripts save quotes, update their status and keep the numbers on the Home screen current.</li>
<li><strong>An Apps Script web app on the phone.</strong> The app is built for mobile, so the owner can add it to the home screen and use it like a normal app.</li>
<li><strong>A client link for each quote.</strong> The client sees a clean quotation instead of a chat message, and the owner can see when it has been opened.</li>
<li><strong>A simple PIN screen</strong> in front of the app, so it is not open to anyone who has the link.</li>
</ul>
<p>The flow in one line: price list in the sheet, quote built in the app, link sent on WhatsApp, client opens it, status updates in the sheet, follow-up shows on Home.</p>
<h2>What I learned</h2>
<ul>
<li><strong>Start from the daily habit, not the feature list.</strong> Business owners already quote on WhatsApp, so the app sends to WhatsApp instead of asking them to change.</li>
<li><strong>Google Sheets is enough for a small business.</strong> It is free, the owner already understands it, and they can always see their own data.</li>
<li><strong>The follow-up list matters more than the quote itself.</strong> A good-looking quote helps, but knowing who to chase today is what saves the deal.</li>
<li><strong>Every lead deserves to be tracked.</strong> Big job or small, each quote is a possible client. Keeping all of them in view, not just the big ones, is what turns quotes into bookings.</li>
</ul>
<h2>What is next</h2>
<p>QuoteDesk is one of several small apps I build at Marca Studio, alongside a shop catalog with an order form, an inventory tracker and planners. You can try a live demo at <a href="https://marcastudio.qa">marcastudio.qa</a>.</p>
<p>If you run a service business, what is the one part of quoting or follow-ups that still takes you the most time?</p>
]]></content:encoded></item></channel></rss>