{"id":4005,"date":"2026-08-09T22:51:17","date_gmt":"2026-08-10T02:51:17","guid":{"rendered":"https:\/\/suninsuranceservices.com\/?page_id=4005"},"modified":"2026-08-18T19:16:33","modified_gmt":"2026-08-18T23:16:33","slug":"comms","status":"publish","type":"page","link":"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/","title":{"rendered":"Comms"},"content":{"rendered":"\n\n<!-- Sun Central - Communications Admin v1.6 WordPress-safe -->\n\n<div id=\"sis-comms-admin-root\">\n<style>\n#sis-comms-admin-root{\n  --bg:#f8fafc;\n  --surface:#fff;\n  --text:#111827;\n  --muted:#64748b;\n  --border:#e2e8f0;\n  --yellow:#ffc400;\n  --purple:#5a18ff;\n  --green:#15803d;\n  --danger:#b91c1c;\n  --blue:#24547d;\n  width:100%;\n  padding:24px;\n  background:var(--bg);\n  color:var(--text);\n  font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Arial,sans-serif;\n  font-size:14px;\n  box-sizing:border-box;\n}\n#sis-comms-admin-root *{box-sizing:border-box}\n#sis-comms-admin-root .sis-shell{max-width:1360px;margin:0 auto}\n#sis-comms-admin-root .sis-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:14px}\n#sis-comms-admin-root h1{margin:0;color:#3b0764;font-size:27px;line-height:1.1;font-weight:800}\n#sis-comms-admin-root .sis-sub{margin-top:6px;color:var(--muted);font-size:12px}\n#sis-comms-admin-root .sis-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}\n#sis-comms-admin-root .sis-field{display:grid;gap:5px;color:#475569;font-size:11px;font-weight:800;text-transform:uppercase}\n#sis-comms-admin-root input[type=\"date\"]{width:155px;height:42px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}\n#sis-comms-admin-root button{height:42px;min-width:92px;padding:8px 15px;border:0;border-radius:8px;background:var(--yellow);color:#111827;font-weight:800;cursor:pointer}\n#sis-comms-admin-root button:disabled{opacity:.55}\n#sis-comms-admin-root .sis-status{min-height:22px;margin-bottom:10px;color:var(--muted);font-size:12px}\n#sis-comms-admin-root .sis-status.good{color:var(--green)}\n#sis-comms-admin-root .sis-status.error{color:var(--danger)}\n#sis-comms-admin-root .sis-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}\n#sis-comms-admin-root .sis-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}\n#sis-comms-admin-root .sis-metric-label{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}\n#sis-comms-admin-root .sis-metric{margin-top:5px;font-size:27px;font-weight:800}\n#sis-comms-admin-root .sis-metric-small{margin-top:3px;color:var(--muted);font-size:11px}\n#sis-comms-admin-root .sis-comparison-card{padding:0;margin-bottom:14px;overflow:hidden}\n#sis-comms-admin-root .sis-comparison-title{padding:12px 14px 10px;color:#3b0764;font-size:15px;font-weight:800}\n#sis-comms-admin-root .sis-scroll{width:100%;overflow-x:auto}\n#sis-comms-admin-root table{width:100%;margin:0;border-collapse:collapse;background:#fff;font-size:13px}\n#sis-comms-admin-root th,#sis-comms-admin-root td{padding:8px;border-top:1px solid #eef2f7;text-align:left;white-space:nowrap}\n#sis-comms-admin-root thead th{border-top:0;color:var(--muted);font-size:10px;text-transform:uppercase}\n#sis-comms-admin-root .sis-num{text-align:right}\n#sis-comms-admin-root .sis-comparison-table{min-width:860px}\n#sis-comms-admin-root .sis-comparison-table thead th{background:var(--blue);color:#fff;text-transform:none;font-size:11px;text-align:right}\n#sis-comms-admin-root .sis-comparison-table thead th:first-child,\n#sis-comms-admin-root .sis-comparison-table tbody td:first-child{text-align:left}\n#sis-comms-admin-root .sis-comparison-table tbody td{text-align:right;padding:6px 8px}\n#sis-comms-admin-root .sis-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:14px;margin-bottom:14px}\n#sis-comms-admin-root h2{margin:0 0 12px;color:#3b0764;font-size:16px}\n#sis-comms-admin-root .sis-bar-row{display:grid;grid-template-columns:92px minmax(80px,1fr) 52px;gap:9px;align-items:center;margin:8px 0;font-size:12px}\n#sis-comms-admin-root .sis-bar-track{height:9px;background:#edf1f5;border-radius:99px;overflow:hidden}\n#sis-comms-admin-root .sis-bar-fill{height:100%;background:var(--purple);border-radius:99px}\n#sis-comms-admin-root .positive{color:#166534}\n#sis-comms-admin-root .negative{color:#b91c1c}\n#sis-comms-admin-root .neutral{color:var(--muted)}\n\n@media(max-width:1050px){\n  #sis-comms-admin-root .sis-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}\n  #sis-comms-admin-root .sis-grid{grid-template-columns:1fr}\n}\n@media(max-width:640px){\n  #sis-comms-admin-root{padding:14px}\n  #sis-comms-admin-root .sis-filters{width:100%}\n  #sis-comms-admin-root .sis-field{flex:1 1 140px}\n  #sis-comms-admin-root input[type=\"date\"]{width:100%}\n  #sis-comms-admin-root button{width:100%}\n  #sis-comms-admin-root .sis-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}\n}\n<\/style>\n\n<div class=\"sis-shell\">\n\n<div class=\"sis-toolbar\">\n  <div>\n    <h1>Communications Admin<\/h1>\n    <div class=\"sis-sub\">Telephonics reporting from BigQuery \u00b7 Eastern Time<\/div>\n  <\/div>\n\n  <div class=\"sis-filters\">\n    <label class=\"sis-field\">\n      Start date\n      <input id=\"sis-comms-start\" type=\"date\">\n    <\/label>\n\n    <label class=\"sis-field\">\n      End date\n      <input id=\"sis-comms-end\" type=\"date\">\n    <\/label>\n\n    <button id=\"sis-comms-refresh\" type=\"button\">Refresh<\/button>\n  <\/div>\n<\/div>\n\n<div id=\"sis-comms-status\" class=\"sis-status\"><\/div>\n\n<div class=\"sis-metrics\">\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Total calls<\/div>\n  <div class=\"sis-metric\" id=\"sis-total-calls\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-direction-mix\"><\/div>\n<\/div>\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Answered<\/div>\n  <div class=\"sis-metric\" id=\"sis-answered\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-answer-rate\"><\/div>\n<\/div>\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Voicemail<\/div>\n  <div class=\"sis-metric\" id=\"sis-voicemail\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-voicemail-rate\"><\/div>\n<\/div>\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Not answered<\/div>\n  <div class=\"sis-metric\" id=\"sis-not-answered\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-missed-rate\"><\/div>\n<\/div>\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Talk time<\/div>\n  <div class=\"sis-metric\" id=\"sis-talk-time\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-avg-talk\"><\/div>\n<\/div>\n\n<div class=\"sis-card\">\n  <div class=\"sis-metric-label\">Texts<\/div>\n  <div class=\"sis-metric\" id=\"sis-total-messages\">&#8211;<\/div>\n  <div class=\"sis-metric-small\" id=\"sis-sms-mix\"><\/div>\n<\/div>\n\n<\/div>\n\n<section class=\"sis-card sis-comparison-card\">\n<div class=\"sis-comparison-title\" id=\"sis-monthly-agency-title\">Monthly Phone Activity<\/div>\n<div class=\"sis-scroll\">\n<table class=\"sis-comparison-table\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th id=\"sis-cur-month\">Current<\/th>\n<th id=\"sis-prev-month\">Previous<\/th>\n<th>MoM \u0394<\/th>\n<th>MoM %<\/th>\n<th id=\"sis-yoy-month\">Prior Year<\/th>\n<th>YoY \u0394<\/th>\n<th>YoY %<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"sis-monthly-agency-rows\"><\/tbody>\n<\/table>\n<\/div>\n<\/section>\n\n<section class=\"sis-card sis-comparison-card\">\n<div class=\"sis-comparison-title\">Producer Phone Activity<\/div>\n<div class=\"sis-scroll\">\n<table class=\"sis-comparison-table\">\n<thead>\n<tr>\n<th>Producer<\/th>\n<th>Total Calls<\/th>\n<th>Inbound<\/th>\n<th>Outbound<\/th>\n<th>Answered<\/th>\n<th>Missed<\/th>\n<th>Talk Time (hrs)<\/th>\n<th>Avg Duration (min)<\/th>\n<th>MoM \u0394 Total<\/th>\n<th>MoM %<\/th>\n<th>YoY \u0394 Total<\/th>\n<th>YoY %<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"sis-monthly-producer-rows\"><\/tbody>\n<\/table>\n<\/div>\n<\/section>\n\n<div class=\"sis-grid\">\n\n<section class=\"sis-card\">\n<h2>Daily Call Volume<\/h2>\n<div id=\"sis-daily-bars\"><\/div>\n<\/section>\n\n<section class=\"sis-card\">\n<h2>Call Outcomes<\/h2>\n<div id=\"sis-status-bars\"><\/div>\n<\/section>\n\n<\/div>\n\n<div class=\"sis-grid\">\n\n<section class=\"sis-card\">\n<h2>Staff Call Activity<\/h2>\n<div class=\"sis-scroll\">\n<table>\n<thead>\n<tr>\n<th>Employee<\/th>\n<th class=\"sis-num\">Answered<\/th>\n<th class=\"sis-num\">Inbound<\/th>\n<th class=\"sis-num\">Outbound<\/th>\n<th class=\"sis-num\">Talk Time<\/th>\n<th class=\"sis-num\">Avg<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"sis-agent-rows\"><\/tbody>\n<\/table>\n<\/div>\n<\/section>\n\n<section class=\"sis-card\">\n<h2>SMS Summary<\/h2>\n<table>\n<tbody id=\"sis-sms-rows\"><\/tbody>\n<\/table>\n<\/section>\n\n<\/div>\n\n<\/div>\n\n<script>\n(function(){\n'use strict';\n\nvar API_URL='https:\/\/script.google.com\/macros\/s\/AKfycbyytx_-s9jrPgbvJN8_1hEiBlZN9CaXtGEiNzZa8057GVt8reeNS4UB0sQeYblXwUwhUw\/exec';\nvar AMP=String.fromCharCode(38);\n\nfunction byId(x){\n  return document.getElementById(x);\n}\n\nfunction fmt(v){\n  return Number(v||0).toLocaleString();\n}\n\nfunction one(v){\n  return Number(v||0).toLocaleString(undefined,{\n    minimumFractionDigits:1,\n    maximumFractionDigits:1\n  });\n}\n\nfunction pct(v,t){\n  if(!Number(t)){\n    return '0.0%';\n  }\n  return ((Number(v||0)\/Number(t))*100).toFixed(1)+'%';\n}\n\nfunction pctValue(v){\n  if(v===null){\n    return 'N\/A';\n  }\n  if(v===undefined){\n    return 'N\/A';\n  }\n  return (Number(v)*100).toFixed(1)+'%';\n}\n\nfunction signed(v,d){\n  var n=Number(v||0);\n  var prefix='';\n  if(n>0){\n    prefix='+';\n  }\n  return prefix+n.toFixed(d||0);\n}\n\nfunction changeClass(v){\n  if(v===null){\n    return 'neutral';\n  }\n  if(v===undefined){\n    return 'neutral';\n  }\n  if(Number(v)===0){\n    return 'neutral';\n  }\n  if(Number(v)>0){\n    return 'positive';\n  }\n  return 'negative';\n}\n\nfunction duration(sec){\n  sec=Math.round(Number(sec||0));\n\n  var h=Math.floor(sec\/3600);\n  var m=Math.floor((sec%3600)\/60);\n  var s=sec%60;\n\n  if(h){\n    return h+'h '+m+'m';\n  }\n\n  if(m){\n    return m+'m '+s+'s';\n  }\n\n  return s+'s';\n}\n\nfunction esc(v){\n  var text='';\n\n  if(v!==undefined){\n    if(v!==null){\n      text=String(v);\n    }\n  }\n\n  return text\n    .replace(\/<\/g,'&lt;')\n    .replace(\/>\/g,'&gt;')\n    .replace(\/\"\/g,'&quot;')\n    .replace(\/'\/g,'&#039;');\n}\n\nfunction setText(x,v){\n  var el=byId(x);\n\n  if(!el){\n    return;\n  }\n\n  if(v===undefined){\n    el.textContent='';\n    return;\n  }\n\n  if(v===null){\n    el.textContent='';\n    return;\n  }\n\n  el.textContent=v;\n}\n\nfunction two(n){\n  if(n<10){\n    return '0'+n;\n  }\n  return String(n);\n}\n\nfunction isoDate(d){\n  return d.getFullYear()+'-'+two(d.getMonth()+1)+'-'+two(d.getDate());\n}\n\nfunction setMonthToDate(){\n  var now=new Date();\n  var start=new Date(now.getFullYear(),now.getMonth(),1);\n\n  byId('sis-comms-start').value=isoDate(start);\n  byId('sis-comms-end').value=isoDate(now);\n}\n\nfunction validRange(){\n  var start=byId('sis-comms-start').value;\n  var end=byId('sis-comms-end').value;\n  var status=byId('sis-comms-status');\n\n  if(!start){\n    status.className='sis-status error';\n    status.textContent='Choose a start date.';\n    return false;\n  }\n\n  if(!end){\n    status.className='sis-status error';\n    status.textContent='Choose an end date.';\n    return false;\n  }\n\n  if(start>end){\n    status.className='sis-status error';\n    status.textContent='Start date cannot be after end date.';\n    return false;\n  }\n\n  return true;\n}\n\nfunction loadDashboard(){\n  if(!validRange()){\n    return;\n  }\n\n  var start=byId('sis-comms-start').value;\n  var end=byId('sis-comms-end').value;\n  var button=byId('sis-comms-refresh');\n  var status=byId('sis-comms-status');\n\n  button.disabled=true;\n  status.className='sis-status';\n  status.textContent='Loading '+start+' through '+end+'...';\n\n  var url=\n    API_URL+\n    '?type=admin_communications_report'+\n    AMP+'startDate='+encodeURIComponent(start)+\n    AMP+'endDate='+encodeURIComponent(end);\n\n  fetch(url,{\n    method:'GET',\n    cache:'no-store'\n  })\n  .then(function(response){\n    if(!response.ok){\n      throw new Error('Server returned '+response.status);\n    }\n    return response.json();\n  })\n  .then(function(data){\n    if(!data){\n      throw new Error('Dashboard request returned no data.');\n    }\n\n    if(!data.ok){\n      throw new Error(data.error||'Dashboard request failed.');\n    }\n\n    render(data);\n\n    status.className='sis-status good';\n    status.textContent=\n      data.startDate+\n      ' through '+\n      data.endDate+\n      ' \u00b7 refreshed '+\n      new Date(data.generatedAt).toLocaleString();\n  })\n  .catch(function(err){\n    status.className='sis-status error';\n    status.textContent=err.message||String(err);\n  })\n  .then(function(){\n    button.disabled=false;\n  });\n}\n\nfunction render(data){\n  var s=data.summary||{};\n  var sms=data.smsSummary||{};\n\n  setText('sis-total-calls',fmt(s.totalCalls));\n  setText('sis-answered',fmt(s.answeredCalls));\n  setText('sis-voicemail',fmt(s.voicemailCalls));\n  setText('sis-not-answered',fmt(s.notAnsweredCalls));\n  setText('sis-talk-time',duration(s.talkSeconds));\n  setText('sis-total-messages',fmt(sms.totalMessages));\n\n  setText(\n    'sis-direction-mix',\n    fmt(s.inboundCalls)+' in \u00b7 '+fmt(s.outboundCalls)+' out'\n  );\n\n  setText(\n    'sis-answer-rate',\n    pct(s.answeredCalls,s.totalCalls)+' of calls'\n  );\n\n  setText(\n    'sis-voicemail-rate',\n    pct(s.voicemailCalls,s.totalCalls)+' of calls'\n  );\n\n  setText(\n    'sis-missed-rate',\n    pct(s.notAnsweredCalls,s.totalCalls)+' of calls'\n  );\n\n  setText(\n    'sis-avg-talk',\n    duration(s.avgAnsweredTalkSeconds)+' avg answered call'\n  );\n\n  setText(\n    'sis-sms-mix',\n    fmt(sms.inboundMessages)+' in \u00b7 '+fmt(sms.outboundMessages)+' out'\n  );\n\n  renderMonthlyAgency(data);\n  renderMonthlyProducers(data.monthlyProducers||[]);\n  renderBars('sis-daily-bars',data.dailyCalls||[],'date','totalCalls');\n  renderBars('sis-status-bars',data.statuses||[],'status','calls');\n  renderAgents(data.agents||[]);\n  renderSms(sms);\n}\n\nfunction monthParts(label){\n  var parts=String(label||'').split(' ');\n  var names=[\n    'Jan','Feb','Mar','Apr','May','Jun',\n    'Jul','Aug','Sep','Oct','Nov','Dec'\n  ];\n\n  return {\n    index:names.indexOf(parts[0]),\n    year:Number(parts[1]),\n    names:names\n  };\n}\n\nfunction shiftMonth(label,delta){\n  var p=monthParts(label);\n\n  if(p.index<0){\n    return '';\n  }\n\n  if(!p.year){\n    return '';\n  }\n\n  var d=new Date(p.year,p.index+delta,1);\n\n  return p.names[d.getMonth()]+' '+d.getFullYear();\n}\n\nfunction valueFmt(v,format){\n  if(format==='percent'){\n    return (Number(v||0)*100).toFixed(1)+'%';\n  }\n\n  if(format==='decimal'){\n    return one(v);\n  }\n\n  return fmt(v);\n}\n\nfunction deltaFmt(v,format){\n  if(format==='percent'){\n    return signed(Number(v||0)*100,1)+'%';\n  }\n\n  if(format==='decimal'){\n    return signed(Number(v||0),1);\n  }\n\n  return signed(Number(v||0),0);\n}\n\nfunction renderMonthlyAgency(data){\n  var label=data.comparisonMonth||'';\n  var rows=[];\n\n  if(data.monthlyAgency){\n    if(data.monthlyAgency.rows){\n      rows=data.monthlyAgency.rows;\n    }\n  }\n\n  setText('sis-monthly-agency-title','Phone activity for '+label);\n  setText('sis-cur-month',label);\n  setText('sis-prev-month',shiftMonth(label,-1));\n  setText('sis-yoy-month',shiftMonth(label,-12));\n\n  if(!rows.length){\n    byId('sis-monthly-agency-rows').innerHTML=\n      '<tr><td colspan=\"8\">No monthly comparison data.<\/td><\/tr>';\n    return;\n  }\n\n  byId('sis-monthly-agency-rows').innerHTML=\n    rows.map(function(r){\n      return '<tr>'+\n        '<td>'+esc(r.metric)+'<\/td>'+\n        '<td>'+valueFmt(r.current,r.format)+'<\/td>'+\n        '<td>'+valueFmt(r.previous,r.format)+'<\/td>'+\n        '<td class=\"'+changeClass(r.momDelta)+'\">'+deltaFmt(r.momDelta,r.format)+'<\/td>'+\n        '<td class=\"'+changeClass(r.momPct)+'\">'+pctValue(r.momPct)+'<\/td>'+\n        '<td>'+valueFmt(r.priorYear,r.format)+'<\/td>'+\n        '<td class=\"'+changeClass(r.yoyDelta)+'\">'+deltaFmt(r.yoyDelta,r.format)+'<\/td>'+\n        '<td class=\"'+changeClass(r.yoyPct)+'\">'+pctValue(r.yoyPct)+'<\/td>'+\n        '<\/tr>';\n    }).join('');\n}\n\nfunction renderMonthlyProducers(rows){\n  if(!rows.length){\n    byId('sis-monthly-producer-rows').innerHTML=\n      '<tr><td colspan=\"12\">No producer comparison data.<\/td><\/tr>';\n    return;\n  }\n\n  byId('sis-monthly-producer-rows').innerHTML=\n    rows.map(function(r){\n      return '<tr>'+\n        '<td>'+esc(r.producer)+'<\/td>'+\n        '<td>'+fmt(r.totalCalls)+'<\/td>'+\n        '<td>'+fmt(r.inboundCalls)+'<\/td>'+\n        '<td>'+fmt(r.outboundCalls)+'<\/td>'+\n        '<td>'+fmt(r.answeredCalls)+'<\/td>'+\n        '<td>'+fmt(r.missedCalls)+'<\/td>'+\n        '<td>'+one(r.talkHours)+'<\/td>'+\n        '<td>'+one(r.avgDurationMinutes)+'<\/td>'+\n        '<td class=\"'+changeClass(r.momDeltaTotal)+'\">'+signed(r.momDeltaTotal,0)+'<\/td>'+\n        '<td class=\"'+changeClass(r.momPct)+'\">'+pctValue(r.momPct)+'<\/td>'+\n        '<td class=\"'+changeClass(r.yoyDeltaTotal)+'\">'+signed(r.yoyDeltaTotal,0)+'<\/td>'+\n        '<td class=\"'+changeClass(r.yoyPct)+'\">'+pctValue(r.yoyPct)+'<\/td>'+\n        '<\/tr>';\n    }).join('');\n}\n\nfunction renderBars(elId,rows,labelKey,valueKey){\n  var el=byId(elId);\n\n  if(!rows.length){\n    el.innerHTML='<div class=\"sis-sub\">No records in this period.<\/div>';\n    return;\n  }\n\n  var visible=rows;\n\n  if(rows.length>45){\n    visible=rows.slice(-45);\n  }\n\n  var values=visible.map(function(r){\n    return Number(r[valueKey]||0);\n  });\n\n  values.push(1);\n\n  var max=Math.max.apply(null,values);\n\n  el.innerHTML=\n    visible.map(function(r){\n      var value=Number(r[valueKey]||0);\n      var width=Math.max(1,Math.round(value\/max*100));\n\n      return '<div class=\"sis-bar-row\">'+\n        '<div>'+esc(r[labelKey]||'')+'<\/div>'+\n        '<div class=\"sis-bar-track\">'+\n          '<div class=\"sis-bar-fill\" style=\"width:'+width+'%\"><\/div>'+\n        '<\/div>'+\n        '<div class=\"sis-num\">'+fmt(value)+'<\/div>'+\n        '<\/div>';\n    }).join('');\n}\n\nfunction renderAgents(rows){\n  var body=byId('sis-agent-rows');\n\n  if(!rows.length){\n    body.innerHTML=\n      '<tr><td colspan=\"6\">No answered employee calls in this period.<\/td><\/tr>';\n    return;\n  }\n\n  body.innerHTML=\n    rows.map(function(r){\n      return '<tr>'+\n        '<td>'+esc(r.employee||'')+'<\/td>'+\n        '<td class=\"sis-num\">'+fmt(r.answeredCalls)+'<\/td>'+\n        '<td class=\"sis-num\">'+fmt(r.inboundCalls)+'<\/td>'+\n        '<td class=\"sis-num\">'+fmt(r.outboundCalls)+'<\/td>'+\n        '<td class=\"sis-num\">'+duration(r.talkSeconds)+'<\/td>'+\n        '<td class=\"sis-num\">'+duration(r.avgTalkSeconds)+'<\/td>'+\n        '<\/tr>';\n    }).join('');\n}\n\nfunction renderSms(sms){\n  var rows=[\n    ['Total messages',sms.totalMessages],\n    ['Inbound',sms.inboundMessages],\n    ['Outbound',sms.outboundMessages],\n    ['Failed',sms.failedMessages],\n    ['MMS',sms.mmsMessages]\n  ];\n\n  byId('sis-sms-rows').innerHTML=\n    rows.map(function(r){\n      return '<tr>'+\n        '<td>'+r[0]+'<\/td>'+\n        '<td class=\"sis-num\">'+fmt(r[1])+'<\/td>'+\n        '<\/tr>';\n    }).join('');\n}\n\nfunction boot(){\n  setMonthToDate();\n\n  byId('sis-comms-refresh').addEventListener(\n    'click',\n    loadDashboard\n  );\n\n  byId('sis-comms-start').addEventListener(\n    'change',\n    loadDashboard\n  );\n\n  byId('sis-comms-end').addEventListener(\n    'change',\n    loadDashboard\n  );\n\n  loadDashboard();\n}\n\nif(document.readyState==='loading'){\n  document.addEventListener('DOMContentLoaded',boot);\n}else{\n  boot();\n}\n\n})();\n<\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Communications Admin Telephonics reporting from BigQuery \u00b7 Eastern Time Start date End date Refresh Total calls &#8211; Answered &#8211; Voicemail &#8211; Not answered &#8211; Talk time &#8211; Texts &#8211; Monthly Phone Activity Metric Current Previous MoM \u0394 MoM % Prior Year YoY \u0394 YoY % Producer Phone Activity Producer Total Calls Inbound Outbound Answered Missed&hellip; <a class=\"continue\" href=\"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/\">Continuar leyendo<span> Comms<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":3338,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-internal.php","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","hide_page_title":"","footnotes":""},"folder":[],"class_list":["post-4005","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business\" \/>\n<meta property=\"og:description\" content=\"Communications Admin Telephonics reporting from BigQuery \u00b7 Eastern Time Start date End date Refresh Total calls &#8211; Answered &#8211; Voicemail &#8211; Not answered &#8211; Talk time &#8211; Texts &#8211; Monthly Phone Activity Metric Current Previous MoM \u0394 MoM % Prior Year YoY \u0394 YoY % Producer Phone Activity Producer Total Calls Inbound Outbound Answered Missed&hellip; Continue Reading Comms\" \/>\n<meta property=\"og:url\" content=\"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/\" \/>\n<meta property=\"og:site_name\" content=\"Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/suninsurance\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-18T23:16:33+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/here-comes-the-sun\\\/comms\\\/\",\"url\":\"https:\\\/\\\/suninsuranceservices.com\\\/here-comes-the-sun\\\/comms\\\/\",\"name\":\"Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#website\"},\"datePublished\":\"2026-08-10T02:51:17+00:00\",\"dateModified\":\"2026-08-18T23:16:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/here-comes-the-sun\\\/comms\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/suninsuranceservices.com\\\/here-comes-the-sun\\\/comms\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/here-comes-the-sun\\\/comms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/suninsuranceservices.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protected: Sun Central\",\"item\":\"https:\\\/\\\/suninsuranceservices.com\\\/?page_id=3338\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/\",\"name\":\"Sun Insurance Services | Trusted Florida Insurance for Home & Business\",\"description\":\"Trusted Florida Insurance for Home &amp; Business\",\"publisher\":{\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#organization\"},\"alternateName\":\"Sun Insurance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#organization\",\"name\":\"Sun Insurance Services | Trusted Florida Insurance for Home & Business\",\"url\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/suninsuranceservices.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/cropped-web-logo-1-png.png\",\"contentUrl\":\"https:\\\/\\\/suninsuranceservices.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/cropped-web-logo-1-png.png\",\"width\":150,\"height\":150,\"caption\":\"Sun Insurance Services | Trusted Florida Insurance for Home & Business\"},\"image\":{\"@id\":\"https:\\\/\\\/suninsuranceservices.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/suninsurance\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/","og_locale":"es_ES","og_type":"article","og_title":"Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business","og_description":"Communications Admin Telephonics reporting from BigQuery \u00b7 Eastern Time Start date End date Refresh Total calls &#8211; Answered &#8211; Voicemail &#8211; Not answered &#8211; Talk time &#8211; Texts &#8211; Monthly Phone Activity Metric Current Previous MoM \u0394 MoM % Prior Year YoY \u0394 YoY % Producer Phone Activity Producer Total Calls Inbound Outbound Answered Missed&hellip; Continue Reading Comms","og_url":"https:\/\/suninsuranceservices.com\/es\/here-comes-the-sun\/comms\/","og_site_name":"Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business","article_publisher":"https:\/\/www.facebook.com\/suninsurance\/","article_modified_time":"2026-08-18T23:16:33+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/suninsuranceservices.com\/here-comes-the-sun\/comms\/","url":"https:\/\/suninsuranceservices.com\/here-comes-the-sun\/comms\/","name":"Comms - Sun Insurance Services | Trusted Florida Insurance for Home &amp; Business","isPartOf":{"@id":"https:\/\/suninsuranceservices.com\/es\/#website"},"datePublished":"2026-08-10T02:51:17+00:00","dateModified":"2026-08-18T23:16:33+00:00","breadcrumb":{"@id":"https:\/\/suninsuranceservices.com\/here-comes-the-sun\/comms\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/suninsuranceservices.com\/here-comes-the-sun\/comms\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/suninsuranceservices.com\/here-comes-the-sun\/comms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/suninsuranceservices.com\/"},{"@type":"ListItem","position":2,"name":"Protected: Sun Central","item":"https:\/\/suninsuranceservices.com\/?page_id=3338"},{"@type":"ListItem","position":3,"name":"Comms"}]},{"@type":"WebSite","@id":"https:\/\/suninsuranceservices.com\/es\/#website","url":"https:\/\/suninsuranceservices.com\/es\/","name":"Servicios de seguro solar | Seguros de confianza en Florida para el hogar y los negocios","description":"Seguros de confianza en Florida para el hogar y los negocios.","publisher":{"@id":"https:\/\/suninsuranceservices.com\/es\/#organization"},"alternateName":"Sun Insurance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/suninsuranceservices.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/suninsuranceservices.com\/es\/#organization","name":"Servicios de seguro solar | Seguros de confianza en Florida para el hogar y los negocios","url":"https:\/\/suninsuranceservices.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/suninsuranceservices.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/suninsuranceservices.com\/wp-content\/uploads\/2025\/03\/cropped-web-logo-1-png.png","contentUrl":"https:\/\/suninsuranceservices.com\/wp-content\/uploads\/2025\/03\/cropped-web-logo-1-png.png","width":150,"height":150,"caption":"Sun Insurance Services | Trusted Florida Insurance for Home & Business"},"image":{"@id":"https:\/\/suninsuranceservices.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/suninsurance\/"]}]}},"_links":{"self":[{"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/pages\/4005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/comments?post=4005"}],"version-history":[{"count":8,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/pages\/4005\/revisions"}],"predecessor-version":[{"id":4017,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/pages\/4005\/revisions\/4017"}],"up":[{"embeddable":true,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/pages\/3338"}],"wp:attachment":[{"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/media?parent=4005"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/suninsuranceservices.com\/es\/wp-json\/wp\/v2\/folder?post=4005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}