{"id":98286,"date":"2026-10-30T02:54:30","date_gmt":"2026-10-30T01:54:30","guid":{"rendered":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/"},"modified":"2026-10-30T03:34:05","modified_gmt":"2026-10-30T02:34:05","slug":"assistant-insights-staff-dashboard","status":"publish","type":"page","link":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/","title":{"rendered":"Assistant Insights \u2014 Staff Dashboard"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"98286\" class=\"elementor elementor-98286\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ac100001 e-con-full e-con\" data-id=\"ac100001\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;full&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac100002 elementor-widget elementor-widget-html\" data-id=\"ac100002\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<meta name=\"robots\" content=\"noindex,nofollow\"><iframe title=\"AlbanianBus Assistant Insights \u2014 secure staff dashboard\" id=\"ab-assistant-insights\" style=\"width:100%;height:100dvh;min-height:800px;display:block;border:0\" srcdoc=\"&lt;!doctype html&gt;&lt;html lang=&quot;en&quot;&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot;&gt;&lt;title&gt;AlbanianBus \u00b7 Assistant Insights&lt;\/title&gt;&lt;style&gt;\n:root{--purple:#713da5;--dark:#30203f;--muted:#756b7c;--line:#e6dcec;--bg:#f7f4fa}*{box-sizing:border-box}body{margin:0;font:15px\/1.5 system-ui,Arial;background:var(--bg);color:var(--dark)}header{background:#472466;color:white;padding:22px max(20px,calc((100vw - 1180px)\/2));display:flex;justify-content:space-between;align-items:center;gap:14px}header b{font-size:23px}header small{display:block;color:#e1cfea}.wrap{max-width:1220px;margin:auto;padding:28px 20px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px}h1{font-size:30px;margin:0 0 10px}h2{font-size:20px;margin:0 0 14px}h3{font-size:16px}p{margin:8px 0 16px}.muted,small{color:var(--muted)}.hide{display:none!important}button,input,select{font:inherit;border-radius:9px;padding:10px 12px;border:1px solid #d6c8e1}button{cursor:pointer;background:var(--purple);color:#fff;font-weight:650}button.secondary{background:#f0e8f7;color:var(--dark)}button:disabled{opacity:.5;cursor:wait}input,select{background:white;color:var(--dark);max-width:100%}label{display:grid;gap:5px;font-size:12px;font-weight:650}.filters{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.kpi strong{display:block;font-size:30px;color:var(--purple)}.kpi span{font-size:12px;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.barrow{display:grid;grid-template-columns:140px 1fr 40px;gap:9px;align-items:center;margin:10px 0;font-size:13px}.bar{height:9px;border-radius:10px;background:#f0e9f6}.bar i{display:block;background:var(--purple);height:100%;border-radius:10px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}th{font-size:11px;text-transform:uppercase;color:var(--muted)}td button{padding:7px 10px}.pill{display:inline-block;border-radius:15px;padding:3px 9px;font-size:11px;background:#eee6f6;color:#603784}.pill.likely_customer{background:#e3f4ec;color:#246547}.pill.staff_test,.pill.suspected_test{background:#fff0d7;color:#876025}.pill.bot{background:#f7e0e1;color:#963b40}.notice{border-left:4px solid var(--purple);padding:12px 16px;background:#f1eafa;margin:15px 0}.message{padding:14px;border-radius:12px;margin:10px 0;background:#f5f1f9;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{background:#eee2f8}.message b{display:block;font-size:12px;margin-bottom:5px}.overlay{position:fixed;inset:0;z-index:20;background:#22122b99;display:flex;justify-content:center;align-items:center;padding:18px}.dialog{max-width:850px;width:100%;max-height:92vh;overflow:auto;background:white;border-radius:18px;padding:25px}.login{max-width:440px;margin:6vh auto}.login label{margin:15px 0}.error{color:#a52c38}.foot{font-size:12px;margin:12px 0}.danger{background:#a32e45}ul{padding-left:22px}pre{white-space:pre-wrap;font:inherit}#status{margin:12px 0;color:var(--muted)}@media(max-width:800px){.filters{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.wrap{padding:18px 12px}.card{padding:17px}header{padding:17px}header b{font-size:19px}h1{font-size:25px}.barrow{grid-template-columns:120px 1fr 30px}.dialog{padding:18px}.overlay{padding:8px}}\n&lt;\/style&gt;&lt;\/head&gt;&lt;body&gt;&lt;header&gt;&lt;div&gt;&lt;b&gt;AlbanianBus \/ Assistant Insights&lt;\/b&gt;&lt;small&gt;Zana \u00b7 Udha \u00b7 Sata \u00b7 Festa&lt;\/small&gt;&lt;\/div&gt;&lt;button id=&quot;signout&quot; class=&quot;secondary hide&quot;&gt;Sign out&lt;\/button&gt;&lt;\/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;login&quot; class=&quot;card login&quot;&gt;&lt;h1&gt;Private staff dashboard&lt;\/h1&gt;&lt;p&gt;Sign in using your existing AlbanianBus staff calendar account. Only approved staff can access conversations.&lt;\/p&gt;&lt;form id=&quot;loginForm&quot;&gt;&lt;label&gt;Email address&lt;input id=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;username&quot; required&gt;&lt;\/label&gt;&lt;label&gt;Password&lt;input id=&quot;password&quot; type=&quot;password&quot; autocomplete=&quot;current-password&quot; required&gt;&lt;\/label&gt;&lt;button type=&quot;submit&quot;&gt;Sign in&lt;\/button&gt;&lt;\/form&gt;&lt;button id=&quot;magic&quot; class=&quot;secondary&quot; style=&quot;margin-top:14px&quot;&gt;Email me a sign-in link&lt;\/button&gt;&lt;p id=&quot;loginStatus&quot; role=&quot;status&quot;&gt;&lt;\/p&gt;&lt;\/section&gt;&lt;section id=&quot;app&quot; class=&quot;hide&quot;&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;div&gt;&lt;h1&gt;Understand your customer conversations&lt;\/h1&gt;&lt;p class=&quot;muted&quot;&gt;Usage, travel intent, friction and next steps. Reporting dates use New York time.&lt;\/p&gt;&lt;\/div&gt;&lt;button id=&quot;refresh&quot;&gt;Refresh&lt;\/button&gt;&lt;\/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;div class=&quot;filters&quot;&gt;&lt;label&gt;From&lt;input id=&quot;from&quot; type=&quot;date&quot;&gt;&lt;\/label&gt;&lt;label&gt;Through&lt;input id=&quot;through&quot; type=&quot;date&quot;&gt;&lt;\/label&gt;&lt;label&gt;Assistant&lt;select id=&quot;assistant&quot;&gt;&lt;option value=&quot;&quot;&gt;All assistants&lt;\/option&gt;&lt;option value=&quot;zana&quot;&gt;Zana \u00b7 Tours&lt;\/option&gt;&lt;option value=&quot;udha&quot;&gt;Udha \u00b7 Transfers&lt;\/option&gt;&lt;option value=&quot;sata&quot;&gt;Sata \u00b7 Buses&lt;\/option&gt;&lt;option value=&quot;festa&quot;&gt;Festa \u00b7 Events&lt;\/option&gt;&lt;\/select&gt;&lt;\/label&gt;&lt;label&gt;Traffic&lt;select id=&quot;traffic&quot;&gt;&lt;option value=&quot;&quot;&gt;All traffic&lt;\/option&gt;&lt;option value=&quot;likely_customer&quot;&gt;Likely customers&lt;\/option&gt;&lt;option value=&quot;unknown&quot;&gt;Uncertain \/ unclassified&lt;\/option&gt;&lt;option value=&quot;staff_test&quot;&gt;Staff tests&lt;\/option&gt;&lt;option value=&quot;suspected_test&quot;&gt;Suspected tests&lt;\/option&gt;&lt;option value=&quot;bot&quot;&gt;Automated traffic&lt;\/option&gt;&lt;\/select&gt;&lt;\/label&gt;&lt;label&gt;Country&lt;select id=&quot;country&quot;&gt;&lt;option value=&quot;&quot;&gt;All countries&lt;\/option&gt;&lt;option value=&quot;Unknown&quot;&gt;Unknown&lt;\/option&gt;&lt;\/select&gt;&lt;\/label&gt;&lt;\/div&gt;&lt;div class=&quot;row&quot; style=&quot;margin-top:14px&quot;&gt;&lt;label&gt;&lt;span&gt;&lt;input type=&quot;checkbox&quot; id=&quot;includeOpens&quot;&gt; Include sessions without a customer message&lt;\/span&gt;&lt;\/label&gt;&lt;button class=&quot;secondary&quot; id=&quot;markDevice&quot;&gt;Mark this device as staff \/ testing&lt;\/button&gt;&lt;button class=&quot;secondary&quot; id=&quot;unmarkDevice&quot;&gt;Stop marking this device&lt;\/button&gt;&lt;\/div&gt;&lt;small id=&quot;deviceStatus&quot;&gt;&lt;\/small&gt;&lt;\/div&gt;&lt;div id=&quot;status&quot; role=&quot;status&quot;&gt;&lt;\/div&gt;&lt;div id=&quot;kpis&quot; class=&quot;kpis&quot;&gt;&lt;\/div&gt;&lt;div class=&quot;grid&quot;&gt;&lt;section class=&quot;card&quot;&gt;&lt;h2&gt;Where conversations come from&lt;\/h2&gt;&lt;div id=&quot;countries&quot;&gt;&lt;\/div&gt;&lt;p class=&quot;foot&quot;&gt;Country is approximate when a network country header is available. Unknown means it was not recorded; it is never inferred from language or the requested destination.&lt;\/p&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;h2&gt;Customers versus testing&lt;\/h2&gt;&lt;div id=&quot;classes&quot;&gt;&lt;\/div&gt;&lt;p class=&quot;foot&quot;&gt;A staff device marker or explicit backend test mode confirms a test. AI can suggest \u201clikely customer\u201d or \u201csuspected test\u201d; it cannot prove a person\u2019s identity. You can correct each conversation.&lt;\/p&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;h2&gt;Conversations by assistant&lt;\/h2&gt;&lt;div id=&quot;assistants&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;h2&gt;Conversation trend&lt;\/h2&gt;&lt;div id=&quot;days&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;\/div&gt;&lt;section class=&quot;card&quot;&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;h2&gt;AI findings&lt;\/h2&gt;&lt;button id=&quot;analyze&quot;&gt;Analyze up to 5 waiting conversations&lt;\/button&gt;&lt;\/div&gt;&lt;p id=&quot;analysisStatus&quot; class=&quot;muted&quot;&gt;&lt;\/p&gt;&lt;div id=&quot;findings&quot;&gt;&lt;\/div&gt;&lt;p class=&quot;foot&quot;&gt;Analysis runs after 30 minutes of inactivity, at most 20 model requests per day. Staff tests and bots are skipped by scheduled analysis. Historical transcripts may contain only the last 30 messages. AI findings need human review.&lt;\/p&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;h2&gt;Transfer bookings&lt;\/h2&gt;&lt;span id=&quot;bookingTotal&quot;&gt;&lt;\/span&gt;&lt;\/div&gt;&lt;p class=&quot;muted&quot;&gt;Actual booking records and payment status, separate from link clicks. Uses the date range above and booking creation date; conversation filters do not apply. Live bookings only by default.&lt;\/p&gt;&lt;label&gt;&lt;span&gt;&lt;input type=&quot;checkbox&quot; id=&quot;includeTestBookings&quot;&gt; Include test bookings&lt;\/span&gt;&lt;\/label&gt;&lt;div class=&quot;tablewrap&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Reference \/ created&lt;\/th&gt;&lt;th&gt;Status&lt;\/th&gt;&lt;th&gt;Total&lt;\/th&gt;&lt;th&gt;Deposit \/ balance*&lt;\/th&gt;&lt;th&gt;Payment recorded&lt;\/th&gt;&lt;th&gt;Conversation&lt;\/th&gt;&lt;\/tr&gt;&lt;\/thead&gt;&lt;tbody id=&quot;bookingRows&quot;&gt;&lt;\/tbody&gt;&lt;\/table&gt;&lt;\/div&gt;&lt;p class=&quot;foot&quot;&gt;*Deposit and balance are the booking&#x27;s scheduled amounts, not a live calculation of the outstanding balance. A linked conversation identifies Udha; it does not prove the exact referring page.&lt;\/p&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;button id=&quot;bookingPrev&quot; class=&quot;secondary&quot;&gt;Previous bookings&lt;\/button&gt;&lt;span id=&quot;bookingPage&quot;&gt;&lt;\/span&gt;&lt;button id=&quot;bookingNext&quot; class=&quot;secondary&quot;&gt;Next bookings&lt;\/button&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;h2&gt;Conversations&lt;\/h2&gt;&lt;span id=&quot;total&quot;&gt;&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;tablewrap&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Assistant \/ date&lt;\/th&gt;&lt;th&gt;Conversation&lt;\/th&gt;&lt;th&gt;Country \/ device&lt;\/th&gt;&lt;th&gt;Traffic&lt;\/th&gt;&lt;th&gt;User messages&lt;\/th&gt;&lt;th&gt;Observed actions&lt;\/th&gt;&lt;th&gt;&lt;\/th&gt;&lt;\/tr&gt;&lt;\/thead&gt;&lt;tbody id=&quot;rows&quot;&gt;&lt;\/tbody&gt;&lt;\/table&gt;&lt;\/div&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between;margin-top:15px&quot;&gt;&lt;button id=&quot;prev&quot; class=&quot;secondary&quot;&gt;Previous&lt;\/button&gt;&lt;span id=&quot;pageLabel&quot;&gt;&lt;\/span&gt;&lt;button id=&quot;next&quot; class=&quot;secondary&quot;&gt;Next&lt;\/button&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;section class=&quot;card&quot;&gt;&lt;h2&gt;Three-month retention &amp; offline archives&lt;\/h2&gt;&lt;p id=&quot;retention&quot;&gt;&lt;\/p&gt;&lt;p&gt;Export conversations older than three months as a JSON file. Save it to your computer or offline drive, verify its checksum, then confirm deletion. The database keeps anonymous usage totals. Automatic deletion is blocked until you confirm the offline copy; no archive has been silently saved to your device.&lt;\/p&gt;&lt;button id=&quot;archive&quot;&gt;Download archive of eligible conversations&lt;\/button&gt;&lt;div id=&quot;archiveStatus&quot; class=&quot;notice hide&quot;&gt;&lt;\/div&gt;&lt;button id=&quot;purge&quot; class=&quot;danger hide&quot;&gt;I verified the offline copy \u2014 delete archived conversations&lt;\/button&gt;&lt;p class=&quot;foot&quot;&gt;Exports contain redacted conversation records and AI findings. Store them privately. Archived batches contain up to 50 conversations; repeat until the queue is empty.&lt;\/p&gt;&lt;\/section&gt;&lt;p class=&quot;foot&quot;&gt;A conversation starts with a customer message or journey choice. Opening an assistant is counted separately. Link clicks and form submissions are not completed bookings. Older records have no reliable visitor country or identity data.&lt;\/p&gt;&lt;\/section&gt;&lt;\/main&gt;&lt;div id=&quot;modal&quot; class=&quot;overlay hide&quot;&gt;&lt;section class=&quot;dialog&quot;&gt;&lt;div class=&quot;row&quot; style=&quot;justify-content:space-between&quot;&gt;&lt;h2&gt;Conversation detail&lt;\/h2&gt;&lt;button id=&quot;close&quot; class=&quot;secondary&quot; aria-label=&quot;Close conversation&quot;&gt;Close&lt;\/button&gt;&lt;\/div&gt;&lt;div id=&quot;detail&quot;&gt;&lt;\/div&gt;&lt;\/section&gt;&lt;\/div&gt;&lt;script src=&quot;https:\/\/cdn.jsdelivr.net\/npm\/@supabase\/supabase-js@2.95.0\/dist\/umd\/supabase.min.js&quot;&gt;&lt;\/script&gt;&lt;script&gt;\n(()=&gt;{&#x27;use strict&#x27;;const BASE=&#x27;https:\/\/eyhphryauiihzmnmcqlk.supabase.co&#x27;,API=BASE+&#x27;\/functions\/v1\/assistant-analytics&#x27;,KEY=&#x27;sb_publishable_NFysUe4qKtg420wU0PbVRw_Appl5waV&#x27;;const auth=supabase.createClient(BASE,KEY,{auth:{storageKey:&#x27;ab-assistant-insights-auth&#x27;}}),$=id=&gt;document.getElementById(id),esc=x=&gt;String(x??&#x27;&#x27;).replace(\/[&amp;&lt;&gt;&quot;&#x27;]\/g,c=&gt;({&#x27;&amp;&#x27;:&#x27;&amp;amp;&#x27;,&#x27;&lt;&#x27;:&#x27;&amp;lt;&#x27;,&#x27;&gt;&#x27;:&#x27;&amp;gt;&#x27;,&#x27;&quot;&#x27;:&#x27;&amp;quot;&#x27;,&quot;&#x27;&quot;:&#x27;&amp;#39;&#x27;}[c]));let bookingPage=0,session=null,page=0,currentRows=[],archive=null,loading=false;const names={zana:&#x27;Zana&#x27;,udha:&#x27;Udha&#x27;,sata:&#x27;Sata&#x27;,festa:&#x27;Festa&#x27;,likely_customer:&#x27;Likely customer&#x27;,unknown:&#x27;Uncertain&#x27;,staff_test:&#x27;Staff test&#x27;,suspected_test:&#x27;Suspected test&#x27;,bot:&#x27;Automated traffic&#x27;};const fmt=x=&gt;new Date(x).toLocaleString(&#x27;en-US&#x27;,{timeZone:&#x27;America\/New_York&#x27;,dateStyle:&#x27;medium&#x27;,timeStyle:&#x27;short&#x27;});function msg(t){$(&#x27;status&#x27;).textContent=t}async function api(action,data={}){const r=await fetch(API,{method:&#x27;POST&#x27;,headers:{&#x27;Content-Type&#x27;:&#x27;application\/json&#x27;,&#x27;Authorization&#x27;:&#x27;Bearer &#x27;+session.access_token},body:JSON.stringify({action,...data})}),v=await r.json();if(!r.ok)throw Error(v.error||&#x27;Request failed&#x27;);return v}function dates(){const from=new Date($(&#x27;from&#x27;).value+&#x27;T00:00:00&#x27;),to=new Date($(&#x27;through&#x27;).value+&#x27;T00:00:00&#x27;);to.setDate(to.getDate()+1);return{from:from.toISOString(),to:to.toISOString(),assistant:$(&#x27;assistant&#x27;).value,traffic_class:$(&#x27;traffic&#x27;).value,country:$(&#x27;country&#x27;).value}}function bars(id,items,key){const max=Math.max(1,...items.map(x=&gt;x.conversations));$(id).innerHTML=items.length?items.map(x=&gt;&#x27;&lt;div class=&quot;barrow&quot;&gt;&lt;span&gt;&#x27;+esc(names[x[key]]||x[key])+&#x27;&lt;\/span&gt;&lt;div class=&quot;bar&quot;&gt;&lt;i style=&quot;width:&#x27;+Math.max(1,x.conversations\/max*100)+&#x27;%&quot;&gt;&lt;\/i&gt;&lt;\/div&gt;&lt;b&gt;&#x27;+x.conversations+&#x27;&lt;\/b&gt;&lt;\/div&gt;&#x27;).join(&#x27;&#x27;):&#x27;&lt;p class=&quot;muted&quot;&gt;No recorded conversations for this filter.&lt;\/p&gt;&#x27;}function kpi(v,label){return &#x27;&lt;div class=&quot;kpi&quot;&gt;&lt;strong&gt;&#x27;+Number(v||0).toLocaleString()+&#x27;&lt;\/strong&gt;&lt;span&gt;&#x27;+label+&#x27;&lt;\/span&gt;&lt;\/div&gt;&#x27;}function analysisHtml(a){if(!a)return &#x27;&lt;p class=&quot;muted&quot;&gt;AI analysis pending.&lt;\/p&gt;&#x27;;return &#x27;&lt;p&gt;&#x27;+esc(a.summary)+&#x27;&lt;\/p&gt;&lt;p&gt;&lt;b&gt;Intent:&lt;\/b&gt; &#x27;+esc(a.intent)+&#x27; \u00b7 &lt;b&gt;Interests:&lt;\/b&gt; &#x27;+esc((a.destinations||[]).join(&#x27;, &#x27;)||&#x27;Not specified&#x27;)+&#x27;&lt;\/p&gt;&lt;p&gt;&lt;b&gt;Observed outcome:&lt;\/b&gt; &#x27;+esc(a.outcome)+&#x27;&lt;\/p&gt;&#x27;+((a.unanswered_questions||[]).length?&#x27;&lt;b&gt;Unanswered questions&lt;\/b&gt;&lt;ul&gt;&#x27;+a.unanswered_questions.map(x=&gt;&#x27;&lt;li&gt;&#x27;+esc(x)+&#x27;&lt;\/li&gt;&#x27;).join(&#x27;&#x27;)+&#x27;&lt;\/ul&gt;&#x27;:&#x27;&#x27;)+((a.friction||[]).length?&#x27;&lt;b&gt;Friction&lt;\/b&gt;&lt;ul&gt;&#x27;+a.friction.map(x=&gt;&#x27;&lt;li&gt;&#x27;+esc(x)+&#x27;&lt;\/li&gt;&#x27;).join(&#x27;&#x27;)+&#x27;&lt;\/ul&gt;&#x27;:&#x27;&#x27;)+&#x27;&lt;div class=&quot;notice&quot;&gt;&lt;b&gt;Suggested improvement&lt;\/b&gt;&lt;br&gt;&#x27;+esc(a.improvement)+&#x27;&lt;\/div&gt;&lt;small&gt;AI classification confidence: &#x27;+Math.round(Math.max(0,Math.min(1,a.confidence))*100)+&#x27;% \u00b7 &#x27;+esc(a.classification_reason)+&#x27;&lt;\/small&gt;&#x27;}const money=(n,c)=&gt;new Intl.NumberFormat(&#x27;en-US&#x27;,{style:&#x27;currency&#x27;,currency:c||&#x27;EUR&#x27;}).format((n||0)\/100);async function loadBookings(){try{const r=await api(&#x27;bookings&#x27;,{...dates(),page:bookingPage,test_mode:$(&#x27;includeTestBookings&#x27;).checked});$(&#x27;bookingRows&#x27;).innerHTML=r.rows.map(b=&gt;&#x27;&lt;tr&gt;&lt;td&gt;&lt;b&gt;&#x27;+esc(b.reference)+&#x27;&lt;\/b&gt;&#x27;+(b.test_mode?&#x27; &lt;span class=&quot;pill staff_test&quot;&gt;Test&lt;\/span&gt;&#x27;:&#x27;&#x27;)+&#x27;&lt;br&gt;&#x27;+fmt(b.created_at)+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+esc(b.status.replaceAll(&#x27;_&#x27;,&#x27; &#x27;))+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+esc(money(b.total_cents,b.currency))+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+esc(money(b.deposit_cents,b.currency))+&#x27; \/ &#x27;+esc(money(b.balance_cents,b.currency))+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+(b.paid_at?fmt(b.paid_at):&#x27;No payment recorded&#x27;)+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+(b.conversation_id?&#x27;&lt;button data-open=&quot;&#x27;+b.conversation_id+&#x27;&quot;&gt;Open conversation&lt;\/button&gt;&#x27;:&#x27;No retained conversation&#x27;)+&#x27;&lt;\/td&gt;&lt;\/tr&gt;&#x27;).join(&#x27;&#x27;)||&#x27;&lt;tr&gt;&lt;td colspan=&quot;6&quot;&gt;No bookings in this date range.&lt;\/td&gt;&lt;\/tr&gt;&#x27;;$(&#x27;bookingTotal&#x27;).textContent=r.total+&#x27; bookings&#x27;;$(&#x27;bookingPage&#x27;).textContent=&#x27;Page &#x27;+(bookingPage+1);$(&#x27;bookingPrev&#x27;).disabled=bookingPage===0;$(&#x27;bookingNext&#x27;).disabled=(bookingPage+1)*30&gt;=r.total}catch(e){$(&#x27;bookingRows&#x27;).textContent=&#x27;Could not load bookings: &#x27;+e.message}}async function load(){if(loading)return;loading=true;msg(&#x27;Loading recorded activity\u2026&#x27;);try{const f=dates(),[s,l]=await Promise.all([api(&#x27;summary&#x27;,f),api(&#x27;list&#x27;,{...f,page,engaged:!$(&#x27;includeOpens&#x27;).checked})]);const t=s.stats.totals;$(&#x27;kpis&#x27;).innerHTML=kpi(t.conversations,&#x27;Conversations started&#x27;)+kpi(t.sessions,&#x27;Recorded sessions \/ opens&#x27;)+kpi(t.user_messages,&#x27;Customer messages \/ choices&#x27;)+kpi(t.booking_clicks,&#x27;Booking-link clicks&#x27;)+kpi(t.whatsapp_clicks,&#x27;WhatsApp opens&#x27;)+kpi(t.form_submissions,&#x27;Recorded quote submissions&#x27;)+kpi(t.analyzed,&#x27;Conversations analyzed&#x27;)+kpi(t.pending_analysis,&#x27;Waiting for AI analysis&#x27;);bars(&#x27;countries&#x27;,s.stats.countries,&#x27;country&#x27;);bars(&#x27;classes&#x27;,s.stats.classes,&#x27;traffic_class&#x27;);bars(&#x27;assistants&#x27;,s.stats.assistants,&#x27;assistant&#x27;);bars(&#x27;days&#x27;,s.stats.days.slice(-14),&#x27;day_label&#x27;);if(!$(&#x27;country&#x27;).value){$(&#x27;country&#x27;).innerHTML=&#x27;&lt;option value=&quot;&quot;&gt;All countries&lt;\/option&gt;&#x27;+s.stats.countries.map(x=&gt;&#x27;&lt;option&gt;&#x27;+esc(x.country)+&#x27;&lt;\/option&gt;&#x27;).join(&#x27;&#x27;)}$(&#x27;analysisStatus&#x27;).textContent=s.usage+&#x27; of &#x27;+s.analysis_daily_limit+&#x27; daily model requests used. &#x27;+t.pending_analysis+&#x27; conversations need analysis; recent active chats wait until quiet.&#x27;;currentRows=l.rows;$(&#x27;rows&#x27;).innerHTML=l.rows.map(r=&gt;{const c=r.manual_class||r.traffic_class;return &#x27;&lt;tr&gt;&lt;td&gt;&lt;b&gt;&#x27;+names[r.assistant]+&#x27;&lt;\/b&gt;&lt;br&gt;&#x27;+fmt(r.last_active_at)+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+esc(r.title)+&#x27;&lt;br&gt;&lt;small&gt;&#x27;+esc(r.analysis?.intent||&#x27;Not analyzed&#x27;)+(r.source===&#x27;live_estimated_session&#x27;?&#x27; \u00b7 Estimated session grouping&#x27;:&#x27;&#x27;)+&#x27;&lt;\/small&gt;&lt;\/td&gt;&lt;td&gt;&#x27;+esc(r.country)+&#x27;&lt;br&gt;&lt;small&gt;&#x27;+esc(r.device||&#x27;Not recorded&#x27;)+&#x27;&lt;\/small&gt;&lt;\/td&gt;&lt;td&gt;&lt;span class=&quot;pill &#x27;+c+&#x27;&quot;&gt;&#x27;+names[c]+&#x27;&lt;\/span&gt;&#x27;+(r.manual_class?&#x27;&lt;br&gt;&lt;small&gt;Staff override&lt;\/small&gt;&#x27;:&#x27;&#x27;)+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+r.message_count+&#x27;&lt;\/td&gt;&lt;td&gt;&#x27;+r.booking_clicks+&#x27; booking clicks&lt;br&gt;&#x27;+r.whatsapp_clicks+&#x27; WhatsApp&lt;br&gt;&#x27;+r.form_submissions+&#x27; forms&lt;\/td&gt;&lt;td&gt;&lt;button data-open=&quot;&#x27;+r.id+&#x27;&quot;&gt;Open&lt;\/button&gt;&lt;\/td&gt;&lt;\/tr&gt;&#x27;}).join(&#x27;&#x27;)||&#x27;&lt;tr&gt;&lt;td colspan=&quot;7&quot;&gt;No conversations match these filters.&lt;\/td&gt;&lt;\/tr&gt;&#x27;;$(&#x27;total&#x27;).textContent=l.total+&#x27; records&#x27;;$(&#x27;pageLabel&#x27;).textContent=&#x27;Page &#x27;+(page+1);$(&#x27;prev&#x27;).disabled=page===0;$(&#x27;next&#x27;).disabled=(page+1)*30&gt;=l.total;$(&#x27;retention&#x27;).textContent=s.archive_due+&#x27; conversations are currently eligible for archival (last active more than three months ago).&#x27;;const findings=l.rows.filter(x=&gt;x.analysis).slice(0,5);$(&#x27;findings&#x27;).innerHTML=findings.length?findings.map(x=&gt;&#x27;&lt;details&gt;&lt;summary&gt;&#x27;+esc(names[x.assistant]+&#x27; \u00b7 &#x27;+x.title)+&#x27;&lt;\/summary&gt;&#x27;+analysisHtml(x.analysis)+&#x27;&lt;\/details&gt;&#x27;).join(&#x27;&#x27;):&#x27;&lt;p&gt;No AI findings in the displayed conversations yet. Run analysis or allow the scheduled queue to process.&lt;\/p&gt;&#x27;;msg(&#x27;Updated. &#x27;+t.country_unknown+&#x27; sessions have no recorded country. &#x27;+t.estimated_sessions+&#x27; use approximate session grouping.&#x27;);deviceStatus();await loadBookings()}catch(e){msg(e.message)}finally{loading=false}}async function open(id){const x=await api(&#x27;detail&#x27;,{id}),s=x.session,c=s.manual_class||s.traffic_class;$(&#x27;detail&#x27;).innerHTML=&#x27;&lt;h3&gt;&#x27;+esc(names[s.assistant]+&#x27; \u00b7 &#x27;+s.title)+&#x27;&lt;\/h3&gt;&lt;p&gt;&#x27;+fmt(s.opened_at)+&#x27; \u00b7 &#x27;+esc(s.country)+&#x27; \u00b7 &#x27;+esc(s.source)+&#x27;&lt;\/p&gt;&lt;label&gt;Traffic classification&lt;select id=&quot;changeClass&quot;&gt;&lt;option value=&quot;&quot;&gt;Use automatic classification&lt;\/option&gt;&#x27;+Object.keys(names).filter(k=&gt;![&#x27;zana&#x27;,&#x27;udha&#x27;,&#x27;sata&#x27;,&#x27;festa&#x27;].includes(k)).map(k=&gt;&#x27;&lt;option value=&quot;&#x27;+k+&#x27;&quot; &#x27;+(s.manual_class===k?&#x27;selected&#x27;:&#x27;&#x27;)+&#x27;&gt;&#x27;+names[k]+&#x27;&lt;\/option&gt;&#x27;).join(&#x27;&#x27;)+&#x27;&lt;\/select&gt;&lt;\/label&gt;&lt;p&gt;&lt;span class=&quot;pill &#x27;+c+&#x27;&quot;&gt;&#x27;+names[c]+&#x27;&lt;\/span&gt; &#x27;+esc(s.classification_reason)+&#x27;&lt;\/p&gt;&lt;div class=&quot;row&quot;&gt;&lt;button id=&quot;saveClass&quot;&gt;Save classification&lt;\/button&gt;&lt;button id=&quot;analyzeOne&quot; class=&quot;secondary&quot;&gt;Analyze this conversation&lt;\/button&gt;&lt;\/div&gt;&lt;h3&gt;AI analysis&lt;\/h3&gt;&#x27;+analysisHtml(s.analysis)+&#x27;&lt;h3&gt;Recorded transcript&lt;\/h3&gt;&#x27;+(s.source===&#x27;historical_transfer&#x27;?&#x27;&lt;p class=&quot;muted&quot;&gt;Historical import: last retained messages only. Individual message times were not recorded.&lt;\/p&gt;&#x27;:&#x27;&#x27;)+x.events.map(e=&gt;&#x27;&lt;div class=&quot;message &#x27;+esc(e.role)+&#x27;&quot;&gt;&lt;b&gt;&#x27;+esc(e.role||e.kind)+&#x27;&lt;\/b&gt;&#x27;+esc(e.content||e.kind)+(e.target?&#x27;&lt;br&gt;&lt;small&gt;&#x27;+esc(e.target)+&#x27;&lt;\/small&gt;&#x27;:&#x27;&#x27;)+&#x27;&lt;\/div&gt;&#x27;).join(&#x27;&#x27;);$(&#x27;modal&#x27;).classList.remove(&#x27;hide&#x27;);$(&#x27;saveClass&#x27;).onclick=async()=&gt;{try{await api(&#x27;classify&#x27;,{id,traffic_class:$(&#x27;changeClass&#x27;).value||null});await open(id);await load()}catch(e){alert(e.message)}};$(&#x27;analyzeOne&#x27;).onclick=async()=&gt;{$(&#x27;analyzeOne&#x27;).disabled=true;try{const r=await api(&#x27;analyze&#x27;,{id});if(r.results.some(x=&gt;x.error))alert(r.results.map(x=&gt;x.error||&#x27;Analyzed&#x27;).join(&#x27;\\n&#x27;));await open(id);await load()}catch(e){alert(e.message)}}}function deviceStatus(){let marked=false;try{marked=!!localStorage.getItem(&#x27;ab-analytics-staff&#x27;)}catch{}$(&#x27;deviceStatus&#x27;).textContent=marked?&#x27;This browser is marked as a staff testing device for up to 90 days. Use it when testing the assistants.&#x27;:&#x27;This browser is not marked as staff. Mark every staff browser used to test the assistants.&#x27;}async function enter(s){session=s;if(!s){$(&#x27;app&#x27;).classList.add(&#x27;hide&#x27;);$(&#x27;login&#x27;).classList.remove(&#x27;hide&#x27;);$(&#x27;signout&#x27;).classList.add(&#x27;hide&#x27;);return}try{await api(&#x27;summary&#x27;,{from:new Date().toISOString(),to:new Date(Date.now()+86400000).toISOString()});$(&#x27;login&#x27;).classList.add(&#x27;hide&#x27;);$(&#x27;app&#x27;).classList.remove(&#x27;hide&#x27;);$(&#x27;signout&#x27;).classList.remove(&#x27;hide&#x27;);await load()}catch(e){$(&#x27;loginStatus&#x27;).textContent=e.message}}$(&#x27;loginForm&#x27;).onsubmit=async e=&gt;{e.preventDefault();$(&#x27;loginStatus&#x27;).textContent=&#x27;Signing in\u2026&#x27;;const r=await auth.auth.signInWithPassword({email:$(&#x27;email&#x27;).value.trim(),password:$(&#x27;password&#x27;).value});$(&#x27;password&#x27;).value=&#x27;&#x27;;if(r.error)$(&#x27;loginStatus&#x27;).textContent=r.error.message};$(&#x27;magic&#x27;).onclick=async()=&gt;{if(!$(&#x27;email&#x27;).value){$(&#x27;loginStatus&#x27;).textContent=&#x27;Enter your staff email first.&#x27;;return}const r=await auth.auth.signInWithOtp({email:$(&#x27;email&#x27;).value.trim(),options:{shouldCreateUser:false,emailRedirectTo:window.parent.location.href.split(&#x27;#&#x27;)[0]}});$(&#x27;loginStatus&#x27;).textContent=r.error?r.error.message:&#x27;Check your email for a sign-in link.&#x27;};$(&#x27;signout&#x27;).onclick=()=&gt;auth.auth.signOut();$(&#x27;refresh&#x27;).onclick=load;for(const id of [&#x27;from&#x27;,&#x27;through&#x27;,&#x27;assistant&#x27;,&#x27;traffic&#x27;,&#x27;country&#x27;,&#x27;includeOpens&#x27;])$(id).onchange=()=&gt;{page=0;bookingPage=0;load()};$(&#x27;prev&#x27;).onclick=()=&gt;{page--;load()};$(&#x27;next&#x27;).onclick=()=&gt;{page++;load()};$(&#x27;rows&#x27;).onclick=e=&gt;{const b=e.target.closest(&#x27;[data-open]&#x27;);if(b)open(b.dataset.open).catch(e=&gt;msg(e.message))};$(&#x27;bookingRows&#x27;).onclick=e=&gt;{const b=e.target.closest(&#x27;[data-open]&#x27;);if(b)open(b.dataset.open).catch(e=&gt;msg(e.message))};$(&#x27;bookingPrev&#x27;).onclick=()=&gt;{bookingPage--;loadBookings()};$(&#x27;bookingNext&#x27;).onclick=()=&gt;{bookingPage++;loadBookings()};$(&#x27;includeTestBookings&#x27;).onchange=()=&gt;{bookingPage=0;loadBookings()};$(&#x27;close&#x27;).onclick=()=&gt;$(&#x27;modal&#x27;).classList.add(&#x27;hide&#x27;);$(&#x27;modal&#x27;).onclick=e=&gt;{if(e.target===$(&#x27;modal&#x27;))$(&#x27;modal&#x27;).classList.add(&#x27;hide&#x27;)};$(&#x27;markDevice&#x27;).onclick=async()=&gt;{try{const r=await api(&#x27;device&#x27;);localStorage.setItem(&#x27;ab-analytics-staff&#x27;,r.token);deviceStatus()}catch(e){msg(e.message)}};$(&#x27;unmarkDevice&#x27;).onclick=()=&gt;{localStorage.removeItem(&#x27;ab-analytics-staff&#x27;);deviceStatus()};$(&#x27;analyze&#x27;).onclick=async()=&gt;{$(&#x27;analyze&#x27;).disabled=true;msg(&#x27;Analyzing up to five quiet conversations\u2026&#x27;);try{const r=await api(&#x27;analyze&#x27;);await load();msg(r.results.length?r.results.map(x=&gt;x.ok?&#x27;Analyzed&#x27;:x.error).join(&#x27; \u00b7 &#x27;):&#x27;No eligible conversations waiting.&#x27;)}catch(e){msg(e.message)}finally{$(&#x27;analyze&#x27;).disabled=false}};$(&#x27;archive&#x27;).onclick=async()=&gt;{try{const r=await api(&#x27;archive&#x27;);if(r.empty){msg(r.message);return}archive=r.archive;const bytes=new TextEncoder().encode(r.payload),hash=[...new Uint8Array(await crypto.subtle.digest(&#x27;SHA-256&#x27;,bytes))].map(x=&gt;x.toString(16).padStart(2,&#x27;0&#x27;)).join(&#x27;&#x27;);if(hash!==archive.checksum)throw Error(&#x27;Archive verification failed. Nothing deleted.&#x27;);const blob=new Blob([bytes],{type:&#x27;application\/json&#x27;}),url=URL.createObjectURL(blob),a=document.createElement(&#x27;a&#x27;);a.href=url;a.download=&#x27;AlbanianBus-Assistant-Archive-&#x27;+archive.id+&#x27;.json&#x27;;a.click();setTimeout(()=&gt;URL.revokeObjectURL(url),60000);$(&#x27;archiveStatus&#x27;).textContent=archive.rows_count+&#x27; conversations exported. SHA-256: &#x27;+hash+&#x27;. Verify that the file is saved to your offline destination before deleting anything.&#x27;;$(&#x27;archiveStatus&#x27;).classList.remove(&#x27;hide&#x27;);$(&#x27;purge&#x27;).classList.remove(&#x27;hide&#x27;)}catch(e){msg(e.message)}};$(&#x27;purge&#x27;).onclick=async()=&gt;{if(!archive||!confirm(&#x27;Have you saved and verified the offline archive? This permanently deletes these conversation transcripts and AI findings from the online analytics database. Anonymous totals are retained.&#x27;))return;try{const r=await api(&#x27;purge&#x27;,{archive_id:archive.id,checksum:archive.checksum,offline_copy_verified:true});archive=null;$(&#x27;purge&#x27;).classList.add(&#x27;hide&#x27;);$(&#x27;archiveStatus&#x27;).textContent=r.deleted+&#x27; archived conversations removed from the online analytics database.&#x27;;load()}catch(e){msg(e.message)}};const now=new Date(),start=new Date(Date.now()-30*86400000),iso=d=&gt;d.getFullYear()+&#x27;-&#x27;+String(d.getMonth()+1).padStart(2,&#x27;0&#x27;)+&#x27;-&#x27;+String(d.getDate()).padStart(2,&#x27;0&#x27;);$(&#x27;from&#x27;).value=iso(start);$(&#x27;through&#x27;).value=iso(now);auth.auth.onAuthStateChange((_event,s)=&gt;{setTimeout(()=&gt;enter(s),0)});auth.auth.getSession().then(r=&gt;enter(r.data.session));})();\n&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\n\"><\/iframe>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","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":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-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":"","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-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":"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":""},"mobile":{"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":""}},"footnotes":""},"class_list":["post-98286","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Assistant Insights \u2014 Staff Dashboard - Albanian Bus<\/title>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Assistant Insights \u2014 Staff Dashboard - Albanian Bus\" \/>\n<meta property=\"og:url\" content=\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/\" \/>\n<meta property=\"og:site_name\" content=\"Albanian Bus\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-30T02:34:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/\",\"name\":\"Assistant Insights \u2014 Staff Dashboard - Albanian Bus\",\"isPartOf\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#website\"},\"datePublished\":\"2026-10-30T01:54:30+00:00\",\"dateModified\":\"2026-10-30T02:34:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/albanianbus.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Assistant Insights \u2014 Staff Dashboard\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#website\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/\",\"name\":\"Bus Tirana to Ksamil\",\"description\":\"Bus Service in Albania\",\"publisher\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#organization\"},\"alternateName\":\"Bus Tirana to Saranda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/albanianbus.com\/wordpress\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#organization\",\"name\":\"Albanianbus\",\"alternateName\":\"Albanian Riviera Bus\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png\",\"contentUrl\":\"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png\",\"width\":728,\"height\":543,\"caption\":\"Albanianbus\"},\"image\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Assistant Insights \u2014 Staff Dashboard - Albanian Bus","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_US","og_type":"article","og_title":"Assistant Insights \u2014 Staff Dashboard - Albanian Bus","og_url":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/","og_site_name":"Albanian Bus","article_modified_time":"2026-10-30T02:34:05+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/","url":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/","name":"Assistant Insights \u2014 Staff Dashboard - Albanian Bus","isPartOf":{"@id":"https:\/\/albanianbus.com\/wordpress\/#website"},"datePublished":"2026-10-30T01:54:30+00:00","dateModified":"2026-10-30T02:34:05+00:00","breadcrumb":{"@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/assistant-insights-staff-dashboard\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/albanianbus.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Assistant Insights \u2014 Staff Dashboard"}]},{"@type":"WebSite","@id":"https:\/\/albanianbus.com\/wordpress\/#website","url":"https:\/\/albanianbus.com\/wordpress\/","name":"Bus Tirana to Ksamil","description":"Bus Service in Albania","publisher":{"@id":"https:\/\/albanianbus.com\/wordpress\/#organization"},"alternateName":"Bus Tirana to Saranda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/albanianbus.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/albanianbus.com\/wordpress\/#organization","name":"Albanianbus","alternateName":"Albanian Riviera Bus","url":"https:\/\/albanianbus.com\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png","contentUrl":"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png","width":728,"height":543,"caption":"Albanianbus"},"image":{"@id":"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=98286"}],"version-history":[{"count":2,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98286\/revisions"}],"predecessor-version":[{"id":98292,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98286\/revisions\/98292"}],"wp:attachment":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=98286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}