My Fantastic Handy Guide - Specialist Cleaning :root{ --pink:#E6007E; --pink-dark:#B00062; --navy:#2E3A4E; --grey-bg:#F5F6F8; } *{box-sizing:border-box;} body{ margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; background:#fff;color:var(--navy); } /* ============ PAGE ============ */ .hero{background:var(--grey-bg);text-align:center;padding:56px 20px 60px;} .hero h1{font-size:32px;margin:0 0 28px;color:var(--navy);} .hero .lead{color:var(--pink);font-weight:700;font-size:17px;margin:0 0 20px;} .hero p{max-width:660px;margin:0 auto 20px;font-weight:600;line-height:1.55;} section{max-width:860px;margin:0 auto;padding:44px 20px 8px;text-align:center;} section h2{font-size:26px;margin:0 0 6px;} .btn-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:24px;} .btn{ display:inline-block;text-decoration:none;font-weight:700;font-size:15px; padding:13px 24px;border-radius:8px;transition:transform .12s ease, box-shadow .12s ease; } .btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(230,0,126,.25);} .btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px;} .btn-solid{background:var(--pink);color:#fff;} .btn-line{border:2px solid var(--pink);color:var(--pink);background:#fff;} .note{color:#66707e;font-size:14px;max-width:640px;margin:26px auto 0;line-height:1.5;} footer{ margin-top:70px;background:var(--grey-bg);text-align:center; padding:26px 20px;font-size:13px;color:#66707e; } /* ============ FANTASTIC ASSISTANT WIDGET ============ */ #fa-launcher{ position:fixed;bottom:22px;right:22px;z-index:2147483000; width:62px;height:62px;border-radius:50%;border:none;cursor:pointer; background:var(--pink);color:#fff;font-size:26px; box-shadow:0 6px 20px rgba(230,0,126,.45); display:flex;align-items:center;justify-content:center; transition:transform .15s ease; } #fa-launcher:hover{transform:scale(1.07)} #fa-launcher:focus-visible{outline:3px solid var(--navy);outline-offset:2px} #fa-launcher .fa-badge{ position:absolute;top:-2px;right:-2px;background:var(--navy);color:#fff; font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px; display:flex;align-items:center;justify-content:center;padding:0 4px; } #fa-panel{ position:fixed;bottom:98px;right:22px;z-index:2147483000; width:370px;max-width:calc(100vw - 24px); height:540px;max-height:calc(100dvh - 130px); background:#fff;border-radius:16px;overflow:hidden; box-shadow:0 14px 44px rgba(46,58,78,.3); display:flex;flex-direction:column; opacity:0;transform:translateY(12px);pointer-events:none; transition:opacity .18s ease,transform .18s ease; } #fa-panel.open{opacity:1;transform:none;pointer-events:auto;} @media (prefers-reduced-motion:reduce){#fa-panel,#fa-launcher,.btn{transition:none}} @media (max-width:480px){#fa-panel{right:12px;bottom:90px;}} .fa-head{ background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff; padding:14px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0; } .fa-head .fa-dot{width:10px;height:10px;border-radius:50%;background:#4CD964;} .fa-head h2{font-size:15px;font-weight:700;margin:0;color:#fff;} .fa-head p{font-size:12px;margin:0;opacity:.9;color:#fff;} .fa-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:2px 6px;} #fa-msgs{ flex:1;overflow-y:auto;padding:14px 12px; display:flex;flex-direction:column;gap:8px;background:var(--grey-bg); } .fa-msg{ max-width:85%;padding:9px 12px;border-radius:14px;text-align:left; font-size:14px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word; } .fa-bot{align-self:flex-start;background:#fff;border:1px solid #e6e9ee;border-bottom-left-radius:4px;color:var(--navy);} .fa-user{align-self:flex-end;background:var(--pink);color:#fff;border-bottom-right-radius:4px;} .fa-bot a{color:var(--pink);font-weight:600;word-break:break-all;} .fa-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px;background:var(--grey-bg);} .fa-quick button{ border:1px solid var(--pink);background:#fff;color:var(--pink);font-weight:600; border-radius:16px;padding:6px 12px;font-size:12.5px;cursor:pointer; } .fa-quick button:hover{background:#fdeaf4} .fa-typing{display:flex;gap:4px;padding:11px 14px;align-self:flex-start;} .fa-typing span{width:6px;height:6px;border-radius:50%;background:#b3a0ab;animation:fablink 1.2s infinite;} .fa-typing span:nth-child(2){animation-delay:.2s} .fa-typing span:nth-child(3){animation-delay:.4s} @keyframes fablink{0%,80%,100%{opacity:.25}40%{opacity:1}} .fa-foot{display:flex;gap:8px;padding:10px;border-top:1px solid #e6e9ee;background:#fff;flex-shrink:0;} #fa-input{ flex:1;border:1px solid #cfd6df;border-radius:20px;padding:9px 14px; font-size:14px;font-family:inherit;outline:none;resize:none;max-height:90px; } #fa-input:focus{border-color:var(--pink)} #fa-send{ width:40px;height:40px;border-radius:50%;border:none;cursor:pointer; background:var(--pink);color:#fff;font-size:16px;flex-shrink:0;align-self:flex-end; } #fa-send:disabled{opacity:.5}

My Fantastic Handy Guide - Specialist Cleaning

Your go-to hub for all franchisee procedures!

Welcome to My Fantastic Handy Guide—your central hub for everything you need to run your branch smoothly. Each button below takes you directly to the information or resource you need.

Click, Learn, and Keep Things Fantastic!

Important ⚠️

How to ❔

📹 EOT Basics

📹 Property Condition Assessment Scale in EOT

📹 Personal Belongings & Guarantee in EOT

🔢 Procedures

When and How to Contact Us

Calls to our direct lines — each of us has a direct line in our email signature. Our team replies during working hours. Messages sent after hours or during the weekend will be addressed once we return.

Fantastic Services © 2026. All rights reserved.
(function(){ /* ============================================================ ⭐ TRAINING SECTION — add more Q&As in the same format ============================================================ */ var FAQ = [ { keywords: "detergent detergents consumables consumable chemicals supplies cleaning products order", answer: "You can order detergents and consumables with this form:\nhttps://www.surveygizmo.com/s3/5453316/ForestDale-orders" }, { keywords: "uniform uniforms clothes clothing workwear order", answer: "Order uniforms here:\nhttps://www.surveygizmo.com/s3/5485274/Uniforms-order-form" }, { keywords: "equipment check machine machines tools inspection", answer: "Please complete the Equipment Check form:\nhttps://survey.alchemer.com/s3/7274661/Equipment-check-New-Fzee-new-version" }, { keywords: "pro account form team account", answer: "The Pro Account Form is here:\nhttps://survey.alchemer.com/s3/6976671/PRO-Team-Account-Form" }, { keywords: "change price prices pricing bfantastic cost", answer: "This short video shows how to change a price in BFantastic:\nhttps://www.youtube.com/watch?v=bAiUvuBur4M" }, { keywords: "review reviews rating feedback client customer get", answer: "Here's how to get a review from a client:\nhttps://www.youtube.com/shorts/6Anmo4upAtU" }, { keywords: "eot basics end tenancy inspection prepare work areas leaving property videos training", answer: "EOT basics in 3 videos:\n1) Inspection & Service Explanation https://www.youtube.com/watch?v=aU_uCR-LI4o\n2) Prepare your work areas https://www.youtube.com/watch?v=EIqPFJDVanQ\n3) Leaving the property https://www.youtube.com/watch?v=zc5xRNCYEbw" }, { keywords: "property condition assessment scale standard doable makeover", answer: "Property Condition Assessment in EOT:\n1) Standard Condition https://www.youtube.com/shorts/CC4MfKYu4cY\n2) Doable Condition https://youtube.com/shorts/Suo87ogzcDo\n3) Property Makeover Required https://youtube.com/shorts/K6XpCPxNdlU" }, { keywords: "personal belongings guarantee waive guaranteed partial full onsite on-site", answer: "Personal Belongings & Guarantee in EOT:\n1) Standard EOT (Guaranteed) https://youtube.com/shorts/JdcZiockdSI\n2) Partial Guarantee Waive https://www.youtube.com/watch?v=FWQBA29Gqfg\n3) Full Guarantee Waive https://www.youtube.com/shorts/Fic28a7L3OQ\n4) EOT with belongings on-site https://www.youtube.com/watch?v=Zr55mEiVibo" }, { keywords: "no show noshow client not home nobody missed appointment", answer: "Follow the No Show procedure here:\nhttps://docs.google.com/presentation/d/1oyZwPm4Lu8YtyuaYzIKzSfJ3UaAC_U1ciM8u-jyeG9U/edit" }, { keywords: "schedule leakage no schedule procedure", answer: "The No Schedule Leakage procedure is here:\nhttps://docs.google.com/presentation/d/16J-vCQMoCvIvp2EjngLraoBcgtg5NGzHTfgbQRFmq5Q/edit" }, { keywords: "contact email phone whatsapp call reach team help support urgent", answer: "You can reach the team by email at specialist.cleaning@fantasticservices.com or WhatsApp message:\nhttps://wa.me/447441926317\n(07441 926317 — calls only if urgent). The team replies during working hours." }, /* ===== FZE Q&A — Customer Service ===== */ { keywords: "raised request customer service no response reply waiting agent case duplicate", answer: "Wait for assignment — once an agent is allocated, your case is being handled. Please avoid sending duplicate requests." }, { keywords: "how long wait cs before starting job clarification depends", answer: "If the job depends on CS clarification, wait for their response before proceeding." }, { keywords: "start job without cs confirmation issue problem scope begin", answer: "No — if there is a problem affecting the job scope, wait for CS guidance first before starting." }, { keywords: "cs slow respond responding during job escalation", answer: "Report it and wait — escalation is handled internally while CS contacts the client." }, { keywords: "property condition worse expected heavy dirt dirty pet hair stains soiled houses excessive", answer: "Report it immediately and request:\n• Price adjustment\n• Additional time approval\n• Warranty removal (if applicable)\nHeavily soiled properties may require extra charges, additional time, or warranty adjustments." }, { keywords: "extra payment charge money request during job approval", answer: "Yes — but only after reporting to CS and getting approval first." }, { keywords: "job taking longer time expected late overrun slow inform", answer: "Inform CS immediately — they will coordinate with the client for approval or next steps." }, { keywords: "leave job resolution walk away abandon quit unfinished", answer: "Only after reporting and giving CS time to respond. Do not leave without escalation." }, { keywords: "disagree cs handling complaint unfair decision escalate", answer: "Report the case calmly — the escalation will be reviewed internally." }, { keywords: "compensation extreme jobs paid extra approved", answer: "Compensation is only provided if approved by CS after assessment of the situation." }, { keywords: "accommodation company housing house live interested stay", answer: "Express your interest — the team will contact you directly with details about company accommodation." }, { keywords: "urgent support during job emergency help assist immediate", answer: "Contact CS and wait for response — an agent will be assigned to assist you." }, { keywords: "multiple follow ups followup followups same issue chase again", answer: "No need — once raised, your request is tracked and handled. Please don't send multiple follow-ups for the same issue." }, /* ===== FZE Q&A — Jobs, App & XRM ===== */ { keywords: "jobs app not see missing cant see dont show visible active team", answer: "If you don't see jobs in the app, you are not part of an active team. You can only access schedules via XRM." }, { keywords: "which system check jobs schedule xrm where access", answer: "Use XRM — it gives you full access to your team's schedule." }, { keywords: "on demand ondemand jobs accept anytime attend availability check assign handle", answer: "Only accept on-demand jobs you can actually attend — otherwise it disrupts the schedule. First check your team's availability in XRM, then accept and assign the job properly. On-demand jobs should go through you first, then be assigned to the relevant team." }, { keywords: "assign move jobs team manually transfer reassign", answer: "Jobs must be moved to a team manually via XRM." }, { keywords: "emergency notifications not receiving alerts push setup account app", answer: "You may not be properly set up or active in the system — check your app and account setup." }, { keywords: "which account email login log sign registered use", answer: "Use your registered email — the one confirmed in the system." }, { keywords: "overlapping jobs conflict double booking two same time", answer: "Accepting overlapping jobs creates scheduling conflicts and must be avoided." }, { keywords: "office working hours open time when monday saturday", answer: "Office working hours are Monday–Saturday, 6:30 AM – 3:30 PM." }, { keywords: "contact help outside procedures phone number call customer service press", answer: "For help outside procedures, contact Customer Service at 020 7846 2561 (press 4)." }, { keywords: "hello hi hey good morning afternoon evening thanks thank you", answer: "Hello! 👋 Happy to help. Ask me about order forms, EOT training videos, procedures, customer service, XRM, or on-demand jobs." } ]; var FALLBACK = "I'm not sure about that one yet. 🤔 You can email specialist.cleaning@fantasticservices.com or send a WhatsApp message:\nhttps://wa.me/447441926317"; /* Optional AI upgrade: paste your proxy URL here later. Empty = instant FAQ mode. */ var AI_PROXY_URL = ""; var panel = document.getElementById('fa-panel'); var launcher = document.getElementById('fa-launcher'); var closeBtn = document.getElementById('fa-close'); var msgs = document.getElementById('fa-msgs'); var input = document.getElementById('fa-input'); var sendBtn = document.getElementById('fa-send'); var quick = document.getElementById('fa-quick'); var history = []; var opened = false; setTimeout(function(){ if(!opened) openPanel(); }, 4000); function openPanel(){ panel.classList.add('open'); var b = launcher.querySelector('.fa-badge'); if(b) b.remove(); if(!opened){ opened = true; botSay("Hi! 👋 I'm the Fantastic Assistant. Ask me about any procedure, order form, or training video — I'll reply instantly."); } } launcher.addEventListener('click', function(){ if(panel.classList.contains('open')) panel.classList.remove('open'); else { openPanel(); input.focus(); } }); closeBtn.addEventListener('click', function(){ panel.classList.remove('open'); }); function linkify(text){ var frag = document.createDocumentFragment(); var parts = text.split(/(https?:\/\/[^\s]+)/g); parts.forEach(function(p){ if(/^https?:\/\//.test(p)){ var a = document.createElement('a'); a.href = p; a.textContent = p; a.target = '_blank'; a.rel = 'noopener'; frag.appendChild(a); } else frag.appendChild(document.createTextNode(p)); }); return frag; } function botSay(text){ var el = document.createElement('div'); el.className = 'fa-msg fa-bot'; el.appendChild(linkify(text)); msgs.appendChild(el); msgs.scrollTop = msgs.scrollHeight; } function userSay(text){ var el = document.createElement('div'); el.className = 'fa-msg fa-user'; el.textContent = text; msgs.appendChild(el); msgs.scrollTop = msgs.scrollHeight; } function typing(on){ var t = document.getElementById('fa-t'); if(on && !t){ t = document.createElement('div'); t.id = 'fa-t'; t.className = 'fa-typing'; t.innerHTML = ''; msgs.appendChild(t); msgs.scrollTop = msgs.scrollHeight; } else if(!on && t) t.remove(); } function matchFAQ(question){ var words = question.toLowerCase().replace(/[^a-z0-9\s]/g,' ').split(/\s+/).filter(function(w){return w.length > 2;}); var best = null, bestScore = 0; FAQ.forEach(function(item){ var kw = item.keywords.toLowerCase(); var score = 0; words.forEach(function(w){ if(kw.indexOf(w) !== -1) score++; }); if(score > bestScore){ bestScore = score; best = item; } }); return bestScore > 0 ? best.answer : null; } function askAIProxy(){ return fetch(AI_PROXY_URL, { method: "POST", headers: {"Content-Type":"application/json"}, body: JSON.stringify({messages: history}) }).then(function(r){ return r.json(); }) .then(function(d){ return (d.reply || "").trim(); }); } function send(text){ var q = (text !== undefined ? text : input.value).trim(); if(!q) return; input.value = ''; quick.style.display = 'none'; userSay(q); history.push({role:"user", content:q}); sendBtn.disabled = true; typing(true); function finish(reply){ typing(false); botSay(reply); history.push({role:"assistant", content:reply}); sendBtn.disabled = false; input.focus(); } if(AI_PROXY_URL){ askAIProxy().then(function(reply){ finish(reply || matchFAQ(q) || FALLBACK); }).catch(function(){ finish(matchFAQ(q) || FALLBACK); }); } else { setTimeout(function(){ finish(matchFAQ(q) || FALLBACK); }, 500); } } sendBtn.addEventListener('click', function(){ send(); }); input.addEventListener('keydown', function(e){ if(e.key === 'Enter' && !e.shiftKey){ e.preventDefault(); send(); } }); quick.addEventListener('click', function(e){ var b = e.target.closest('button[data-q]'); if(b) send(b.getAttribute('data-q')); }); })();
Domestic clients 020 3404 3444
Business clients 020 3746 1062

Skip the line, request and
book a service online

Book a service