{"id":544,"date":"2026-10-18T12:56:20","date_gmt":"2026-10-18T12:56:20","guid":{"rendered":"https:\/\/ongroundmedia.com\/?page_id=544"},"modified":"2026-10-18T12:57:42","modified_gmt":"2026-10-18T12:57:42","slug":"engagement-community-tools","status":"publish","type":"page","link":"https:\/\/ongroundmedia.com\/?page_id=544","title":{"rendered":"Engagement &#038; Community Tools"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"544\" class=\"elementor elementor-544\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c28e9a1 e-con e-atomic-element e-flexbox-base e-default-div e-29f9d2d \" data-id=\"c28e9a1\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"c28e9a1\">\n    \t\t<div class=\"elementor-element elementor-element-aa3140b elementor-widget elementor-widget-html\" data-id=\"aa3140b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>Engagement & Community Tools | Onground Media<\/title>\r\n<meta name=\"description\" content=\"Reply faster, run fair giveaways and turn comments into conversations and customers. Free social media engagement tools.\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bricolage+Grotesque:wght@600;700;800&family=Figtree:wght@400;500;600&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n:root{--ind:#4F46E5;--navy:#0F172A;--or:#FF6B35;--em:#10B981;--bg:#F8FAFC;--w:#fff;--tx:#1E293B;--mu:#64748B;--bd:#E2E8F0}\r\n*{box-sizing:border-box;margin:0}\r\nbody{font:16px\/1.6 Figtree,system-ui,sans-serif;background:var(--bg);color:var(--tx)}\r\nh1,h2,h3,.brand{font-family:'Bricolage Grotesque',Figtree,sans-serif;letter-spacing:-.02em}\r\n:focus-visible{outline:3px solid var(--or);outline-offset:2px}\r\n.wrap{max-width:1040px;margin:0 auto;padding:0 20px}\r\nheader{background:var(--navy);color:#fff}\r\nnav{display:flex;align-items:center;gap:10px;padding:16px 0}\r\n.brand{font-weight:700;font-size:1.15rem}\r\n.crumb{margin-left:auto;color:#94a3b8;font-size:.9rem}\r\n.hero{padding:40px 0 96px}\r\n.hero h1{font-size:clamp(2rem,5vw,3.3rem);line-height:1.08;font-weight:800;max-width:14em}\r\n.hero p{margin-top:16px;color:#cbd5e1;max-width:34em;font-size:1.1rem}\r\n.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:-64px}\r\n.tab{background:var(--w);border:2px solid var(--bd);border-radius:14px;padding:18px;text-align:left;cursor:pointer;font:inherit;color:var(--tx);box-shadow:0 8px 24px rgba(15,23,42,.1)}\r\n.tab b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;margin:8px 0 2px}\r\n.tab span{color:var(--mu);font-size:.92rem;line-height:1.4;display:block}\r\n.tab svg{width:26px;height:26px;stroke:var(--ind);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\r\n.tab[aria-selected=true]{border-color:var(--ind);background:#EEF2FF}\r\n.tab[aria-selected=true] svg{stroke:var(--or)}\r\n.panel{background:var(--w);border:1px solid var(--bd);border-radius:16px;margin:20px 0 56px;padding:28px}\r\n.panel h2{font-size:1.6rem}.panel>p.sub{color:var(--mu);margin:4px 0 22px}\r\n.grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}\r\nlabel{display:block;font-weight:600;font-size:.92rem;margin:14px 0 5px}\r\ninput,select,textarea{width:100%;font:inherit;color:var(--tx);background:var(--w);border:1.5px solid var(--bd);border-radius:10px;padding:10px 12px}\r\ninput:focus,select:focus,textarea:focus{border-color:var(--ind);outline:none;box-shadow:0 0 0 3px #c7d2fe}\r\ntextarea{min-height:190px;resize:vertical}\r\n.row{display:flex;gap:12px}.row>*{flex:1}\r\n.chk{display:flex;gap:8px;align-items:center;font-weight:500;margin:10px 0 0}.chk input{width:auto}\r\n.btn{background:var(--or);color:#fff;border:0;border-radius:10px;padding:12px 22px;font:600 1rem Figtree,sans-serif;cursor:pointer;margin-top:18px}\r\n.btn:hover{background:#e85a24}\r\n.btn.alt{background:var(--w);color:var(--ind);border:1.5px solid var(--ind);margin-left:8px;padding:10px 16px;font-size:.92rem}\r\n.btn.sm{padding:6px 12px;font-size:.85rem;margin:0;background:var(--w);color:var(--ind);border:1.5px solid var(--bd)}\r\n.btn.sm.ok{background:var(--em);color:#fff;border-color:var(--em)}\r\n.out{background:var(--bg);border:1.5px dashed var(--bd);border-radius:12px;padding:16px;min-height:200px}\r\n.empty{color:var(--mu);text-align:center;padding:50px 10px}\r\n.win{display:flex;align-items:center;gap:12px;background:var(--w);border:2px solid var(--em);border-radius:12px;padding:12px 16px;margin-bottom:10px;font-weight:600;font-size:1.1rem;word-break:break-all}\r\n.win i{font-style:normal;background:var(--em);color:#fff;border-radius:50%;min-width:30px;height:30px;display:grid;place-items:center;font-size:.9rem}\r\n.win.alt{border:1.5px solid var(--bd);font-size:.98rem;font-weight:500}.win.alt i{background:var(--mu)}\r\n.win.spin{border-color:var(--or);color:var(--or)}\r\n.note{color:var(--mu);font-size:.85rem;margin-top:10px}\r\n.err{color:#b91c1c;font-weight:500}\r\n.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}\r\n.chip{border:1.5px solid var(--bd);background:var(--w);border-radius:99px;padding:5px 14px;font:500 .9rem Figtree,sans-serif;cursor:pointer;color:var(--tx)}\r\n.chip[aria-pressed=true]{background:var(--ind);border-color:var(--ind);color:#fff}\r\n.tpl{border:1px solid var(--bd);border-radius:12px;padding:16px;margin-top:14px}\r\n.tpl h3{font-size:1.05rem}\r\n.tag{font-size:.8rem;font-weight:600;border-radius:99px;padding:2px 10px;margin-left:6px;background:#EEF2FF;color:var(--ind)}\r\n.tag.wa{background:#D1FAE5;color:#047857}\r\n.msg{background:var(--bg);border-radius:8px;padding:10px 12px;margin:8px 0;white-space:pre-wrap;font-size:.95rem}\r\n.msg small{display:flex;justify-content:space-between;align-items:center;color:var(--mu);font-weight:600;margin-bottom:6px}\r\n.rev{background:var(--w);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:12px}\r\n.rev p{white-space:pre-wrap;margin-bottom:10px}\r\nfooter{text-align:center;color:var(--mu);font-size:.85rem;padding:0 0 36px}\r\n@media(max-width:760px){.tabs,.grid{grid-template-columns:1fr}.tabs{margin-top:-56px}.crumb{display:none}}\r\n@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<header><div class=\"wrap\">\r\n<nav aria-label=\"Main\">\r\n<!-- Placeholder logo: replace this SVG with your uploaded logo file -->\r\n<svg width=\"38\" height=\"38\" viewBox=\"0 0 40 40\" aria-hidden=\"true\"><defs><linearGradient id=\"lg\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#FF6B35\"\/><stop offset=\"1\" stop-color=\"#E11D48\"\/><\/linearGradient><\/defs><circle cx=\"20\" cy=\"20\" r=\"16\" fill=\"none\" stroke=\"url(#lg)\" stroke-width=\"5\"\/><path d=\"M13 27v-4M19 27v-8M25 27v-12\" stroke=\"#fff\" stroke-width=\"3\" stroke-linecap=\"round\"\/><path d=\"M24 11h6v6M30 11l-8 8\" stroke=\"#FF6B35\" stroke-width=\"2.6\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\r\n<span class=\"brand\">Onground Media<\/span><span class=\"crumb\">Tools \/ Engagement &amp; Community<\/span>\r\n<\/nav>\r\n<div class=\"hero\"><h1>Engagement &amp; Community Tools<\/h1>\r\n<p>Reply faster, run fair giveaways and turn comments into conversations and customers.<\/p><\/div>\r\n<\/div><\/header>\r\n\r\n<main class=\"wrap\">\r\n<div class=\"tabs\" role=\"tablist\" aria-label=\"Engagement tools\">\r\n<button class=\"tab\" role=\"tab\" id=\"t-giveaway-winner-picker\" data-t=\"giveaway-winner-picker\"><svg viewBox=\"0 0 24 24\"><path d=\"M20 12v9H4v-9M2 7h20v5H2zM12 21V7M12 7H7.5a2.5 2.5 0 110-5C11 2 12 7 12 7zM12 7h4.5a2.5 2.5 0 100-5C13 2 12 7 12 7z\"\/><\/svg><b>Giveaway Winner Picker<\/b><span>Pick fair random winners from a list of names.<\/span><\/button>\r\n<button class=\"tab\" role=\"tab\" id=\"t-comment-to-dm-templates\" data-t=\"comment-to-dm-templates\"><svg viewBox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z\"\/><path d=\"M8 9h8M8 13h5\"\/><\/svg><b>Comment-to-DM &amp; Auto-Reply Templates<\/b><span>Copy ready templates for keyword triggers and auto-replies.<\/span><\/button>\r\n<button class=\"tab\" role=\"tab\" id=\"t-review-reply-generator\" data-t=\"review-reply-generator\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 2l3 6.5 7 .8-5.2 4.8 1.4 7L12 17.5 5.8 21l1.4-7L2 9.3l7-.8z\"\/><\/svg><b>Review Reply Generator<\/b><span>Write polite replies to Google and Facebook reviews.<\/span><\/button>\r\n<\/div>\r\n\r\n<!-- GIVEAWAY -->\r\n<section class=\"panel\" id=\"p-giveaway-winner-picker\" role=\"tabpanel\" aria-labelledby=\"t-giveaway-winner-picker\" hidden>\r\n<h2>Giveaway Winner Picker<\/h2><p class=\"sub\">Paste names or Instagram comments, then draw winners. Every valid entry has an equal chance.<\/p>\r\n<div class=\"grid\"><div>\r\n<label for=\"g-mode\">What are you pasting?<\/label>\r\n<select id=\"g-mode\"><option value=\"n\">A list of names (one per line)<\/option><option value=\"c\">Comments (username, then comment)<\/option><\/select>\r\n<label for=\"g-in\">Entries<\/label>\r\n<textarea id=\"g-in\" placeholder=\"Aarav&#10;Meera&#10;Rohan\"><\/textarea>\r\n<div class=\"row\"><div><label for=\"g-n\">Winners<\/label><input id=\"g-n\" type=\"number\" min=\"1\" value=\"1\"><\/div><div><label for=\"g-a\">Backup winners<\/label><input id=\"g-a\" type=\"number\" min=\"0\" value=\"0\"><\/div><\/div>\r\n<div id=\"g-c\" hidden><div class=\"row\"><div><label for=\"g-kw\">Must include word<\/label><input id=\"g-kw\" placeholder=\"e.g. done\"><\/div><div><label for=\"g-tag\">Min. @mentions<\/label><input id=\"g-tag\" type=\"number\" min=\"0\" value=\"0\"><\/div><\/div><p class=\"note\">Format each line as: username comment text. Example: @meera_k love this @riya @sam<\/p><\/div>\r\n<label for=\"g-ex\">Exclude accounts (comma separated)<\/label><input id=\"g-ex\" placeholder=\"your_brand, partner_account\">\r\n<label class=\"chk\"><input type=\"checkbox\" id=\"g-d\" checked> Count each person once<\/label>\r\n<button class=\"btn\" id=\"g-go\">Pick winners<\/button><button class=\"btn alt\" id=\"g-cp\" hidden>Copy results<\/button>\r\n<\/div><div><div class=\"out\" id=\"g-out\" aria-live=\"polite\"><div class=\"empty\">Your winners will appear here.<\/div><\/div><p class=\"note\" id=\"g-log\"><\/p><\/div><\/div>\r\n<\/section>\r\n\r\n<!-- TEMPLATES -->\r\n<section class=\"panel\" id=\"p-comment-to-dm-templates\" role=\"tabpanel\" aria-labelledby=\"t-comment-to-dm-templates\" hidden>\r\n<h2>Comment-to-DM &amp; Auto-Reply Templates<\/h2><p class=\"sub\">Fill in your details once. Every template updates instantly, then copy what you need.<\/p>\r\n<div class=\"row\"><div><label for=\"d-b\">Brand name<\/label><input id=\"d-b\" value=\"Your Brand\"><\/div><div><label for=\"d-k\">Trigger keyword<\/label><input id=\"d-k\" value=\"INFO\"><\/div><div><label for=\"d-o\">Offer name<\/label><input id=\"d-o\" value=\"free guide\"><\/div><div><label for=\"d-l\">Link<\/label><input id=\"d-l\" value=\"https:\/\/yoursite.com\/offer\"><\/div><\/div>\r\n<div class=\"chips\" role=\"group\" aria-label=\"Platform\"><button class=\"chip\" data-f=\"all\" aria-pressed=\"true\">All<\/button><button class=\"chip\" data-f=\"ig\" aria-pressed=\"false\">Instagram<\/button><button class=\"chip\" data-f=\"wa\" aria-pressed=\"false\">WhatsApp<\/button><\/div>\r\n<div id=\"d-list\"><\/div>\r\n<\/section>\r\n\r\n<!-- REVIEWS -->\r\n<section class=\"panel\" id=\"p-review-reply-generator\" role=\"tabpanel\" aria-labelledby=\"t-review-reply-generator\" hidden>\r\n<h2>Review Reply Generator<\/h2><p class=\"sub\">Choose the rating and what the customer mentioned. Get three professional replies you can edit.<\/p>\r\n<div class=\"grid\"><div>\r\n<div class=\"row\"><div><label for=\"r-p\">Platform<\/label><select id=\"r-p\"><option>Google<\/option><option>Facebook<\/option><\/select><\/div><div><label for=\"r-s\">Rating<\/label><select id=\"r-s\"><option value=\"5\">5 stars<\/option><option value=\"4\">4 stars<\/option><option value=\"3\">3 stars<\/option><option value=\"2\">2 stars<\/option><option value=\"1\">1 star<\/option><\/select><\/div><\/div>\r\n<div class=\"row\"><div><label for=\"r-b\">Business name<\/label><input id=\"r-b\" placeholder=\"Sharma Dental Care\"><\/div><div><label for=\"r-n\">Reviewer's first name<\/label><input id=\"r-n\" placeholder=\"Priya\"><\/div><\/div>\r\n<label>What did they mention?<\/label>\r\n<div class=\"chips\" id=\"r-t\"><\/div>\r\n<div class=\"row\"><div><label for=\"r-tone\">Tone<\/label><select id=\"r-tone\"><option value=\"0\">Warm<\/option><option value=\"1\">Professional<\/option><\/select><\/div><div><label for=\"r-c\">Contact (for 1 to 3 stars)<\/label><input id=\"r-c\" placeholder=\"care@yourbrand.com\"><\/div><\/div>\r\n<label for=\"r-sig\">Sign-off<\/label><input id=\"r-sig\" placeholder=\"Rahul, Owner\">\r\n<button class=\"btn\" id=\"r-go\">Write replies<\/button>\r\n<\/div><div><div id=\"r-out\"><div class=\"out empty\">Your replies will appear here.<\/div><\/div><p class=\"note\">Tip: reply within 24 hours, and never ask a customer to change their rating.<\/p><\/div><\/div>\r\n<\/section>\r\n<\/main>\r\n<footer>&copy; Onground Media. Free tools for digital marketers.<\/footer>\r\n\r\n<script>\r\nconst $=s=>document.querySelector(s),$$=s=>[...document.querySelectorAll(s)];\r\nconst esc=s=>s.replace(\/[&<>\"]\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]));\r\nconst rnd=n=>{const a=new Uint32Array(1);let m=Math.floor(2**32\/n)*n;do{crypto.getRandomValues(a)}while(a[0]>=m);return a[0]%n};\r\nconst pick=a=>a[rnd(a.length)];\r\nfunction copy(t,b){(navigator.clipboard?navigator.clipboard.writeText(t):Promise.reject()).catch(()=>{const x=document.createElement('textarea');x.value=t;document.body.append(x);x.select();document.execCommand('copy');x.remove()});const o=b.textContent;b.textContent='Copied';b.classList.add('ok');setTimeout(()=>{b.textContent=o;b.classList.remove('ok')},1400)}\r\n\r\n\/* Tabs + per-tool SEO *\/\r\nconst SEO={\r\n'giveaway-winner-picker':['Free Giveaway Winner Picker | Random Name Picker','Paste a list of names or comments and pick random winners fairly. Free giveaway picker for Instagram contests.'],\r\n'comment-to-dm-templates':['Comment-to-DM & Auto-Reply Templates | Free','Copy ready-made comment-to-DM flows and auto-reply messages for Instagram and WhatsApp. Free templates.'],\r\n'review-reply-generator':['Free Review Reply Generator | Google & Facebook','Write professional replies to positive and negative reviews on Google and Facebook. Free review response generator.']};\r\nfunction show(id,push){if(!SEO[id])id='giveaway-winner-picker';\r\n$$('.tab').forEach(t=>{const on=t.dataset.t===id;t.setAttribute('aria-selected',on);t.tabIndex=on?0:-1});\r\n$$('.panel').forEach(p=>p.hidden=p.id!=='p-'+id);\r\ndocument.title=SEO[id][0];$('meta[name=description]').content=SEO[id][1];\r\nif(push)history.replaceState(null,'','#'+id)}\r\n$$('.tab').forEach(t=>{t.onclick=()=>show(t.dataset.t,1);t.onkeydown=e=>{const a=$$('.tab'),i=a.indexOf(t);if(e.key==='ArrowRight'||e.key==='ArrowLeft'){const n=a[(i+(e.key==='ArrowRight'?1:2))%3];n.focus();show(n.dataset.t,1)}}});\r\naddEventListener('hashchange',()=>show(location.hash.slice(1)));\r\n\r\n\/* 1. Giveaway *\/\r\nconst gm=$('#g-mode');gm.onchange=()=>$('#g-c').hidden=gm.value!=='c';\r\nlet winners=[];\r\nfunction parse(){const mode=gm.value,once=$('#g-d').checked,ex=$('#g-ex').value.toLowerCase().split(',').map(s=>s.trim().replace(\/^@\/,'')).filter(Boolean);\r\nconst kw=$('#g-kw').value.trim().toLowerCase(),tg=+$('#g-tag').value||0;let raw=0,seen=new Set(),out=[];\r\n$('#g-in').value.split('\\n').map(l=>l.trim()).filter(Boolean).forEach(l=>{raw++;let name=l,txt='';\r\nif(mode==='c'){const m=l.match(\/^@?(\\S+)\\s*(.*)$\/);name=m[1];txt=m[2];if(kw&&!txt.toLowerCase().includes(kw))return;if((txt.match(\/@\\w+\/g)||[]).length<tg)return}\r\nelse name=name.replace(\/^@\/,'');const k=name.toLowerCase();if(ex.includes(k))return;\r\nif(once){if(seen.has(k))return;seen.add(k)}out.push(name)});return{list:out,raw}}\r\n$('#g-go').onclick=()=>{const{list,raw}=parse(),n=Math.max(1,+$('#g-n').value||1),a=Math.max(0,+$('#g-a').value||0),o=$('#g-out');\r\nif(!list.length){o.innerHTML='<div class=\"empty err\">No valid entries found. Add names, one per line.<\/div>';return}\r\nconst pool=list.slice(),res=[];while(res.length<n+a&&pool.length)res.push(pool.splice(rnd(pool.length),1)[0]);\r\nwinners=res;const rows=res.map((w,i)=>{const alt=i>=n;return`<div class=\"win spin ${alt?'alt':''}\"><i>${alt?'B'+(i-n+1):i+1}<\/i><span>${esc(list[rnd(list.length)])}<\/span><\/div>`}).join('');\r\no.innerHTML=rows;const spans=$$('#g-out .win span'),els=$$('#g-out .win');let t=0;\r\nconst iv=setInterval(()=>{t++;spans.forEach((s,i)=>{if(t<10+i*4)s.textContent=list[rnd(list.length)];else if(els[i].classList.contains('spin')){s.textContent=res[i];els[i].classList.remove('spin')}});if(t>10+res.length*4){clearInterval(iv)}},90);\r\n$('#g-cp').hidden=false;$('#g-go').textContent='Pick again';\r\n$('#g-log').textContent=`Drawn ${new Date().toLocaleString()} from ${list.length} valid entries (${raw-list.length} removed). Screenshot this for your records.`};\r\n$('#g-cp').onclick=e=>{const n=+$('#g-n').value||1;copy(winners.map((w,i)=>i<n?`Winner ${i+1}: ${w}`:`Backup ${i-n+1}: ${w}`).join('\\n'),e.target)};\r\n\r\n\/* 2. Templates *\/\r\nconst TP=[\r\n['ig','Lead magnet','Comment \"{k}\" to get the {o}','Sent! Check your DMs, {brand} just shared the {o}.','Hi! Thanks for commenting {k}. Here is your {o}: {l}\\n\\nWant tips like this every week? Follow @{brand_h} so you never miss one.'],\r\n['ig','Price enquiry','Comment \"PRICE\" for details','Just sent you the details in DM. Please check your inbox.','Hi! Thanks for your interest in {brand}. Our pricing starts at [amount]. Here is the full list: {l}\\n\\nWant help choosing a plan? Reply here and we will guide you.'],\r\n['ig','Giveaway entry','Comment \"WIN\" to enter','You are in! Check your DM for your entry confirmation.','You are entered into the {brand} giveaway! Winner is announced on [date]. Follow @{brand_h} so we can reach you if you win. Good luck.'],\r\n['ig','Booking link','Comment \"BOOK\" to reserve your slot','Sent you the booking link in DM.','Hi! Thanks for wanting to book with {brand}. Pick your slot here: {l}\\n\\nNeed another time? Reply with your preferred day and we will arrange it.'],\r\n['ig','Discount code','Comment \"OFFER\" for your code','Code sent! Look in your DMs.','Here is your {brand} code: [CODE]. It is valid till [date]. Use it here: {l}'],\r\n['ig','Follow-up after no reply','Send 24 hours after the first DM','','Hi! Just checking you got the {o} we sent. Anything we can clarify? Reply here and a real person from {brand} will help.'],\r\n['wa','Greeting message','Sent when a new customer messages you','','Hello and welcome to {brand}! Thanks for reaching out. How can we help you today?\\n\\n1. See our products\\n2. Pricing\\n3. Talk to our team'],\r\n['wa','Away message','Sent outside business hours','','Hi! Thanks for messaging {brand}. We are away right now. Our hours are [days, time]. We will reply as soon as we are back.'],\r\n['wa','Order confirmation','Quick reply after a purchase','','Hi [name], your order [#] with {brand} is confirmed. Expected delivery: [date]. Track it here: {l}\\n\\nThank you for shopping with us!'],\r\n['wa','FAQ quick reply','Answer common questions fast','','Thanks for your question! Our most asked answers are here: {l}\\n\\nIf you still need help, reply with \"AGENT\" and our team will join the chat.']];\r\nlet flt='all';\r\nfunction fill(s){const b=$('#d-b').value||'Your Brand',k=($('#d-k').value||'INFO').toUpperCase();return s.replace(\/\\{brand_h\\}\/g,b.toLowerCase().replace(\/\\s+\/g,'')).replace(\/\\{brand\\}\/g,b).replace(\/\\{k\\}\/g,k).replace(\/\\{o\\}\/g,$('#d-o').value||'offer').replace(\/\\{l\\}\/g,$('#d-l').value||'[link]').replace('\"WIN\"','\"WIN\"')}\r\nfunction renderT(){const h=TP.filter(t=>flt==='all'||t[0]===flt).map((t,i)=>{const parts=[['Post caption \/ trigger',t[2]],['Public reply',t[3]],['DM \/ message',t[4]]].filter(p=>p[1]);\r\nreturn`<div class=\"tpl\"><h3>${t[1]}<span class=\"tag ${t[0]}\">${t[0]==='ig'?'Instagram':'WhatsApp'}<\/span><\/h3>`+parts.map((p,j)=>`<div class=\"msg\"><small>${p[0]}<button class=\"btn sm\" data-c=\"${TP.indexOf(t)}-${j}\">Copy<\/button><\/small>${esc(fill(p[1]))}<\/div>`).join('')+'<\/div>'}).join('');\r\n$('#d-list').innerHTML=h}\r\n$('#d-list').onclick=e=>{const b=e.target.closest('[data-c]');if(b)copy(b.closest('.msg').textContent.replace(\/^.*?Copy\/,''),b)};\r\n$$('#p-comment-to-dm-templates input').forEach(i=>i.oninput=renderT);\r\n$$('.chip[data-f]').forEach(c=>c.onclick=()=>{flt=c.dataset.f;$$('.chip[data-f]').forEach(x=>x.setAttribute('aria-pressed',x===c));renderT()});\r\nrenderT();\r\n\r\n\/* 3. Reviews *\/\r\nconst TOP={service:'the service',staff:'our team',price:'the pricing',quality:'the quality',delivery:'the delivery',clean:'the cleanliness',wait:'the waiting time'};\r\nconst sel=new Set();\r\n$('#r-t').innerHTML=Object.entries(TOP).map(([k,v])=>`<button class=\"chip\" data-k=\"${k}\" aria-pressed=\"false\">${k==='clean'?'Cleanliness':k==='wait'?'Wait time':k[0].toUpperCase()+k.slice(1)}<\/button>`).join('');\r\n$('#r-t').onclick=e=>{const c=e.target.closest('.chip');if(!c)return;const k=c.dataset.k;sel.has(k)?sel.delete(k):sel.add(k);c.setAttribute('aria-pressed',sel.has(k))};\r\nconst OP={p:[['Thank you so much for the wonderful review, {n}!','Hi {n}, your kind words made our day!','Thank you for the {s}-star review, {n}. We truly appreciate it!'],['Thank you for your positive feedback, {n}.','Dear {n}, we appreciate you taking the time to review {b}.','Thank you for choosing {b} and for the {s}-star rating, {n}.']],\r\nu:[['Hi {n}, thank you for sharing your honest feedback.','Thanks for the review, {n}. We are glad to hear some of it worked for you.'],['Dear {n}, thank you for your feedback on {b}.','Thank you for reviewing {b}, {n}. We value your input.']],\r\ng:[['Hi {n}, we are really sorry your experience with {b} fell short.','Hi {n}, thank you for telling us, and we are sorry we let you down.'],['Dear {n}, we apologise that your experience did not meet expectations.','Dear {n}, thank you for the feedback. We regret your experience with {b}.']]};\r\nconst MID={p:t=>`We are delighted you enjoyed ${t}. It means a lot to the whole team.`,u:t=>`We are happy ${t} worked well, and we are working on improving the rest of the experience.`,g:t=>`We take your comments about ${t} seriously and are reviewing this with our team.`};\r\nconst CL={p:[['We look forward to welcoming you again soon!','See you again soon!'],['We look forward to serving you again.','Thank you again for your support.']],\r\nu:[['We would love a chance to make it a 5-star visit next time.','Please tell us what we could do better.'],['We hope to serve you better on your next visit.','Your suggestions help us improve.']],\r\ng:[['Please contact us at {c} so we can make this right.','We would like to resolve this personally. Reach us at {c}.'],['Please reach out at {c} so we can look into this and resolve it.','We would appreciate the chance to resolve this. Contact: {c}.']]};\r\n$('#r-go').onclick=()=>{const s=+$('#r-s').value,g=s>=4?'p':s===3?'u':'g',tn=+$('#r-tone').value,b=$('#r-b').value.trim()||'our business',nm=$('#r-n').value.trim()||'there',\r\nc=$('#r-c').value.trim()||'our support team',sig=$('#r-sig').value.trim();\r\nconst f=x=>x.replace(\/\\{n\\}\/g,nm).replace(\/\\{b\\}\/g,b).replace(\/\\{s\\}\/g,s).replace(\/\\{c\\}\/g,c);\r\nconst ts=[...sel].map(k=>TOP[k]),tx=ts.length?(ts.length>1?ts.slice(0,-1).join(', ')+' and '+ts.slice(-1):ts[0]):'';\r\nconst mk=(mid,short)=>f([pick(OP[g][tn]),mid&&tx?MID[g](tx):'',pick(CL[g][tn]).replace? pick(CL[g][tn]):''].filter(Boolean).join(' '))+(sig?`\\n\\n${sig}`:'');\r\nconst v=[mk(1),mk(0),mk(1)];\r\nconst u=[...new Set(v)];while(u.length<3)u.push(mk(Math.random()>.5));\r\n$('#r-out').innerHTML=u.slice(0,3).map((t,i)=>`<div class=\"rev\"><p>${esc(t)}<\/p><button class=\"btn sm\" data-r=\"${i}\">Copy reply<\/button><span class=\"note\"> ${t.length} characters<\/span><\/div>`).join('');\r\n$('#r-out').dataset.v=JSON.stringify(u.slice(0,3));$('#r-go').textContent='Write new replies'};\r\n$('#r-out').onclick=e=>{const b=e.target.closest('[data-r]');if(b)copy(JSON.parse($('#r-out').dataset.v)[+b.dataset.r],b)};\r\n\r\nshow(location.hash.slice(1),0);\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Engagement &#038; Community Tools | Onground Media Onground MediaTools \/ Engagement &amp; Community Engagement &amp; Community Tools Reply faster, run [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-544","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=544"}],"version-history":[{"count":4,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/544\/revisions"}],"predecessor-version":[{"id":548,"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=\/wp\/v2\/pages\/544\/revisions\/548"}],"wp:attachment":[{"href":"https:\/\/ongroundmedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}