SBS Sales Workspace

Smart quoting.
Simple business.

A secure workspace for the SBS team to build consistent, professional quotations and proposals.

Andy
Smart Business Systems · Internal Sales Platform

Welcome back

Sign in to access the SBS Quote Builder.

Temporary test access
Email: andrew@smart-systems.co.za
Password: SBS2026!
Demo only — removed before production deployment.
CONTRACT BUILDER

Build the complete contract pack.

Create a contract manually or load an accepted quotation. Select the legal schedules required, complete the commercial information and save one controlled contract record.

1 Customer2 Commercial3 Templates4 Review & Build5 Signature
↗
Accepted QuoteLoad the locked commercial snapshot from the Quote Register.
Quote → Contract journey: use Generate Contracts from an accepted quote for an immediate handoff, or select an approved quote here and click Load Quote. Both routes carry across all available customer/contact information and the approved Hardware & Software, Monthly Services and Once-Off Services commercial lines.
◎
Customer & Agreement DetailsInformation used across the MSA, Commercial Schedule and service schedules.
i
Company, Billing & Key ContactsAdditional fields required by the MSA and Commercial Schedule.
R
Commercial StructureOngoing service and maintenance charges only. This section contains Monthly Recurring Costs from the approved quote.
Approved quote auto-population: Monthly Services from the quote are carried into this section with their SBS2 SKU, description, quantity and accepted monthly sell price. Hardware, software and once-off implementation costs remain available to the Commercial Schedule from the quote source, but are not part of this ongoing service commercial structure.
Monthly Services (Monthly Recurring Cost)R0.00
Monthly Services (Monthly Recurring Cost)
Add Monthly ServiceSelect from the same Monthly Services catalogue used in the Quote Builder. Categories are collapsed by default.
SKUDescriptionQtyMonthly Ex VAT
Support Hours IncludedAutomatically calculated from the SLA-related Monthly Services above.
AUTO-TOTAL
On-Site Support Hours
hours / month
Auto-calculated
Remote Support Hours
hours / month
Auto-calculated
Enter custom hours at any time for bespoke SLA packages.
The default hours are calculated from the SLA-related Monthly Services above. You can manually override either On-Site or Remote Support Hours for a custom package. Manual values flow through to the Commercial Schedule and SLA.
✦
Service Configuration & Special TermsOperational information that may need to flow into individual service schedules.
✓
Signature & FinalisationPrepare the completed Contract Pack for digital signature. Zoho Sign connection will use these fields when the live integration is enabled.
CONTRACT NUMBERAssigned when contract is built
SIGNATURE STATUSDraft
SIGNING ORDERCustomer → SBS
1
Customer SignatoryFirst signer
2
SBS SignatorySecond signer
DraftPreparedSentViewedCustomer SignedSBS SignedCompleted
Zoho Sign readiness: V203 prepares the signing workflow and stores all required signatory information with the contract. No Zoho credentials are stored in this HTML file. The live Send with Zoho Sign action will be connected through a secure Zoho Function/API layer.
CONTRACT BUILDERComplete the customer and commercial information, then build the pack.

SBS Contracts Register

Contracts are generated from the locked snapshot of an accepted SBS quote.

Total Contracts0
Draft0
Awaiting Signature0
Signed / Active0
ContractCustomerSource QuoteMonthlyOnce-OffStatusCreatedActions
');d.close(); const styles=d.createElement('style');styles.textContent=visibleStyles();d.head.appendChild(styles);footerSafety(d); const root=d.createElement('main');root.id='sbsPrintDocument';root.className='preview'; pages.forEach(source=>{ const clone=d.importNode(source,true);clone.querySelectorAll('script,style,template,.no-print').forEach(n=>n.remove());cleanEscapedNewlineText(clone); clone.style.setProperty('width','210mm','important');clone.style.setProperty('height','296mm','important');clone.style.setProperty('min-height','0','important');clone.style.setProperty('max-height','296mm','important');clone.style.setProperty('margin','0','important');clone.style.setProperty('box-sizing','border-box','important');clone.style.setProperty('overflow','hidden','important');clone.style.setProperty('position','relative','important');clone.style.setProperty('break-inside','avoid','important');clone.style.setProperty('page-break-inside','avoid','important');clone.style.setProperty('break-after','page','important');clone.style.setProperty('page-break-after','always','important'); clone.style.setProperty('padding',clone.querySelector('.oneq')?'7mm 8mm':'10mm 9mm 17mm','important');root.appendChild(clone); }); d.body.appendChild(root); await Promise.all(Array.from(d.images).map(img=>img.complete?Promise.resolve():new Promise(resolve=>{img.onload=resolve;img.onerror=resolve;setTimeout(resolve,5000)}))); if(d.fonts)await d.fonts.ready;await new Promise(r=>requestAnimationFrame(()=>requestAnimationFrame(r))); title.textContent='Quotation — '+pages.length+' page'+(pages.length===1?'':'s');print.disabled=false; print.onclick=()=>{frame.contentWindow.focus();frame.contentWindow.print()};window.__sbsPrintFrame=frame; }catch(e){console.error('V230 quote print preview failed',e);alert('The quotation print preview could not be prepared. Please update the document preview and try again.')} finally{busy=false} } window.sbsPrintQuote=function(){ try{window.buildOutput()}catch(e){console.error(e)} requestAnimationFrame(()=>requestAnimationFrame(showQuote)); }; const previousPrint=window.print; window.print=function(){ const view=document.body.dataset.sbsView||''; if(view==='contracts'||view==='credit'||document.body.classList.contains('ca-printing')||document.body.classList.contains('v216-contract-template-print'))return previousPrint?.apply(this,arguments); return window.sbsPrintQuote(); }; })();