Daniel Reyes
This desk is carrying four jobs at once: ticket queue, upsell batch processing, Etsy Live support and selling, and end-of-day reporting. The useful truth is not that Daniel uses a lot of tools. It is that the stack keeps forcing him to reassemble customer context by hand, all day, across systems that should already be connected.
At a Glance
Two weeks of behavioral telemetry from one person. No surveys, no self-reporting, no interviews. The data tells the story.
How to read this: the observed numbers come directly from tool usage, window titles, and keystroke patterns. The time recovery estimates are modeled from those observed loops. The point is not perfect accounting. The point is to show exactly where the desk is getting fragmented and what to install first.
A Real Day On The Desk
This is the fast way to understand the role. Not “customer support” in the abstract. The actual workday: ticket handling, reporting, batch processing, live selling support, and follow-up all colliding on the same screen.
Shipping or apology reply, before the install
Same workflow, after the first fixes land
Top Findings
Seven behavioral patterns identified from 11 working days of activity data. Each one ties the visible mess to a specific install path so the page reads like a real operator report, not a summary of problems.
1 AI Workarounds for Native Zendesk Features
The Pattern
Daniel uses the ChatGPT desktop app on 8 of 11 working days, with two recurring conversation threads that appear across every tracked session. He independently adopted ChatGPT for two specific, high-frequency CS workflows. The initiative is impressive. The problem: Zendesk already has both features built in, and nobody has configured them.
| ChatGPT Conversation | Sessions (11 days) | What's Happening | Time Per Cycle |
|---|---|---|---|
| "Shipping Estimate" | 10 sessions | Copy customer address + package weight into ChatGPT → wait for estimate → switch back → paste into ticket | ~4 min (macro: 20 sec) |
| "Apology Email Response" | 9 sessions | Draft in Zendesk → copy to ChatGPT for rewrite → copy result back → edit → send | ~5 min (macro: 30 sec) |
Decoded Workflow (Timestamped)
This is the actual keystroke sequence the data captured on a typical afternoon — this pattern repeated 9-10 times per week:
14:28:12 — Zendesk ticket #4871 active, typing draft response 14:28:41 — Ctrl+A, Ctrl+C (select all, copy draft) 14:28:44 — Alt+Tab to ChatGPT desktop app 14:28:47 — Ctrl+V (paste draft into "Apology Email Response" thread) 14:28:49 — Enter (submit to ChatGPT) 14:29:31 — Waiting... (42 seconds idle while ChatGPT generates) 14:29:34 — Triple-click, Ctrl+C (select and copy ChatGPT output) 14:29:37 — Alt+Tab back to Zendesk 14:29:39 — Ctrl+A, Ctrl+V (replace draft with ChatGPT version) 14:29:42 — Manual editing begins (fixing tone, adding order number) 14:31:18 — Click "Submit as Solved" Total: 3 minutes 6 seconds. With a macro: one click, auto-populated, 20 seconds to review and send.
Why This Matters
At 19 occurrences across 11 days, this pattern burns ~4.5 hours per week on tasks that Zendesk handles natively — the copy-paste cycles, the ChatGPT wait time, the tab switching, and the focus cost of breaking flow each time. Daniel is already trying to improve his workflow. The tools just aren't configured to support him.
What's Built
Seven Zendesk macros, ready to paste. Plus three auto-tagging triggers that surface the right macro based on ticket content. Total setup time: under 30 minutes.
Macro 1: Shipping Status Update
MACRO: Shipping Status Update
Subject: Update on Your Order — {{ticket.requester.first_name}}
Hi {{ticket.requester.first_name}},
Thanks for reaching out. Your order was fulfilled on {{ticket.customer.integrations.shopify.orders[0].created_at}} and is currently showing as:
Status: {{ticket.customer.integrations.shopify.orders[0].fulfillments[0].shipment_status}}
Carrier: {{ticket.customer.integrations.shopify.orders[0].fulfillments[0].tracking_company}}
Tracking: {{ticket.customer.integrations.shopify.orders[0].fulfillments[0].tracking_url}}
If tracking hasn't updated in 72 hours, reply here and we'll escalate with the carrier directly.
Best,
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 2: Missing Package / Delivery Issue
MACRO: Missing Package / Delivery Issue
Subject: We're On It — {{ticket.requester.first_name}}
Hi {{ticket.requester.first_name}},
I'm really sorry your order hasn't arrived. That's frustrating, and I want to get this sorted right now.
I've pulled up your order ({{ticket.customer.integrations.shopify.orders[0].name}}) and I'm investigating. I'll follow up within 24 hours with either a resolution or a replacement shipped. You shouldn't have to chase us on this.
Thank you for your patience,
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 3: Late Delivery Apology
MACRO: Late Delivery Apology
Subject: Apology — Your Order Is Running Late
Hi {{ticket.requester.first_name}},
I owe you an apology. Your order ({{ticket.customer.integrations.shopify.orders[0].name}}) is taking longer than it should, and I know that's not the experience you expected from us.
Here's what I know right now:
- Last carrier scan: {{ticket.customer.integrations.shopify.orders[0].fulfillments[0].shipment_status}}
- Expected delivery window: [UPDATE THIS]
I'm keeping an eye on this personally. If it doesn't move in the next 48 hours, I'll escalate directly with the carrier and get you a concrete answer.
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 4: Subscription Change Confirmation (Recharge)
MACRO: Subscription Change Confirmation
Subject: Your Subscription Has Been Updated
Hi {{ticket.requester.first_name}},
Done! I've made the changes to your subscription. Here's what's updated:
[DESCRIBE CHANGE]
Your next charge date is [DATE]. If anything looks off, reply here and I'll fix it immediately.
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 5: Refund Processed
MACRO: Refund Processed
Subject: Your Refund Is On Its Way
Hi {{ticket.requester.first_name}},
Your refund of [AMOUNT] has been processed. It typically takes 5-10 business days to appear on your statement, depending on your bank.
If it hasn't shown up after 10 business days, reply here and I'll trace it.
Thank you for your patience with this,
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 6: Product Exchange / Return Instructions
MACRO: Product Exchange / Return
Subject: Your Return — Here's What to Do
Hi {{ticket.requester.first_name}},
Happy to help with this. Here's how to get your return started:
1. Use this prepaid label: [GENERATE LABEL LINK]
2. Pack the item in its original packaging if possible
3. Drop it at any [CARRIER] location
4. Once we receive it, your [exchange/refund] will be processed within 2 business days
I'll keep this ticket open so you can reply with any questions.
{{current_user.first_name}}
Customer Service — Pinewood & Co
Macro 7: General Empathy Response (Catch-All)
MACRO: General Empathy Response
Subject: Re: {{ticket.title}}
Hi {{ticket.requester.first_name}},
I hear you, and I'm sorry this hasn't been a smooth experience. Let me dig into this and get you a real answer.
I'm looking into [BRIEF DESCRIPTION] now and will reply within [TIMEFRAME] with next steps. You won't need to follow up — I'll come to you.
{{current_user.first_name}}
Customer Service — Pinewood & Co
Auto-Tagging Triggers (paste into Zendesk Admin → Business Rules → Triggers)
TRIGGER 1: Tag Shipping Inquiries Conditions: Ticket subject or description contains ANY of: "where is my order", "tracking", "shipping status", "when will it arrive", "hasn't arrived", "delivery update", "ship date" Actions: Add tag "shipping-inquiry" + Suggest macro "Shipping Status Update" TRIGGER 2: Tag Complaints / Apologies Needed Conditions: Ticket subject or description contains ANY of: "disappointed", "frustrated", "terrible", "worst", "unacceptable", "never ordering again", "waiting forever", "still waiting" Actions: Add tag "needs-empathy" + Set priority to High TRIGGER 3: Tag Subscription Issues Conditions: Ticket subject or description contains ANY of: "cancel subscription", "skip delivery", "change frequency", "pause", "billing", "charged twice", "subscription" Actions: Add tag "subscription-issue" + Suggest macro "Subscription Change Confirmation"
2 Upsell Batch Processing — Manual Assembly Line
The Pattern
Once or twice daily, Daniel runs what the data shows as a "upsell batch" — a session where he processes a list of customers for an upgrade or promotional offer. The keystroke data captured a 22-minute session with 13 consecutive Ctrl+C / Alt+Tab / Ctrl+V cycles in a single minute-bin. He copies customer records from a Google Sheet one row at a time, switches to Recharge, enters a promotional code, and repeats.
| Metric | Value | Source |
|---|---|---|
| Batch sessions detected (11 days) | 18 sessions | Minutes with 5+ copy-paste pairs in keystroke data |
| Copy-paste pairs per minute (peak) | 13 | Direct keystroke event count, single minute-bin |
| Items per batch | 15–28 | Copy-paste density extrapolation |
| Batches per day | 1–2 | Promo code string recurrence in keystroke data |
| Time per batch | 22–38 minutes | Continuous copy-paste window duration |
| Total Alt+Tab events (11 days) | 4,487 | Keystroke event count |
Decoded Workflow (Timestamped)
Raw keystroke capture from a batch session on Day 6:
10:14:03 — Google Sheets active: "Upsell List - March"
10:14:05 — Click cell B14, Ctrl+C (copy customer email)
10:14:07 — Alt+Tab to Recharge admin panel
10:14:09 — Ctrl+V (paste email into customer search)
10:14:12 — Enter (search), click customer result
10:14:18 — Tab to discount field, type "PINE20"
10:14:21 — Click "Apply Discount", wait for confirmation
10:14:24 — Alt+Tab back to Google Sheets
10:14:26 — Arrow down to next row, Ctrl+C
... (repeats 15-28 times per batch, 45-60 seconds per customer)
The same promo code (a team-specific string) appears in the keystroke data on every batch day. This is a campaign-based promo, not custom-per-customer — meaning the entire batch is templated and predictable.
Why This Matters
At 22-38 minutes per batch, 1-2 batches per day, this is 30-75 minutes of pure mechanical copy-paste daily. Lower bound: 2.5 hours per week. Upper bound: 6+ hours. This is not customer service — it is data entry. Recharge has an API. The entire workflow runs as a script.
What's Built
A Google Apps Script that reads the upsell Sheet, calls the Recharge API for each row, applies the promo code, and logs results back to the Sheet. Daniel clicks one button and reviews a summary. Zero copy-paste.
The Script (Paste Into Google Apps Script)
// === CONFIG ===
const RECHARGE_API_KEY = 'YOUR_RECHARGE_API_KEY_HERE';
const RECHARGE_BASE_URL = 'https://api.rechargeapps.com';
const PROMO_CODE = 'PINE20'; // Change per campaign
const EMAIL_COLUMN = 2; // Column B = customer email
const STATUS_COLUMN = 5; // Column E = result status
const HEADER_ROWS = 1;
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Upsell Tools')
.addItem('Run Upsell Batch', 'runUpsellBatch')
.addToUi();
}
function runUpsellBatch() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
let processed = 0, failed = 0, skipped = 0;
for (let i = HEADER_ROWS; i < data.length; i++) {
const email = data[i][EMAIL_COLUMN - 1];
const status = data[i][STATUS_COLUMN - 1];
if (!email || status === 'Applied' || status === 'Failed') {
skipped++;
continue;
}
try {
// Find customer in Recharge
const custResp = UrlFetchApp.fetch(
RECHARGE_BASE_URL + '/customers?email=' + encodeURIComponent(email),
{ headers: { 'X-Recharge-Access-Token': RECHARGE_API_KEY } }
);
const customers = JSON.parse(custResp.getContentText()).customers;
if (!customers || customers.length === 0) {
sheet.getRange(i + 1, STATUS_COLUMN).setValue('Not found');
failed++;
continue;
}
// Apply discount to first active subscription
const subResp = UrlFetchApp.fetch(
RECHARGE_BASE_URL + '/subscriptions?customer_id=' + customers[0].id + '&status=active',
{ headers: { 'X-Recharge-Access-Token': RECHARGE_API_KEY } }
);
const subs = JSON.parse(subResp.getContentText()).subscriptions;
if (!subs || subs.length === 0) {
sheet.getRange(i + 1, STATUS_COLUMN).setValue('No active sub');
failed++;
continue;
}
// Apply the discount
UrlFetchApp.fetch(
RECHARGE_BASE_URL + '/discounts',
{
method: 'post',
headers: {
'X-Recharge-Access-Token': RECHARGE_API_KEY,
'Content-Type': 'application/json'
},
payload: JSON.stringify({
discount: {
code: PROMO_CODE,
value: 20,
value_type: 'percentage',
applies_to_id: subs[0].id,
applies_to_resource: 'subscription'
}
})
}
);
sheet.getRange(i + 1, STATUS_COLUMN).setValue('Applied');
sheet.getRange(i + 1, STATUS_COLUMN + 1).setValue(new Date().toISOString());
processed++;
} catch (e) {
sheet.getRange(i + 1, STATUS_COLUMN).setValue('Error: ' + e.message.substring(0, 50));
failed++;
}
Utilities.sleep(500); // Rate limiting
}
SpreadsheetApp.getUi().alert(
'Batch Complete\n\n' +
'Processed: ' + processed + '\n' +
'Failed: ' + failed + '\n' +
'Skipped: ' + skipped
);
}
3 Unmeasured Revenue Channel — Zero Visibility
The Pattern
Every single working day, Daniel spends time in an Etsy Live seller dashboard — a live-stream commerce channel that does not integrate with Zendesk. It generates its own inbox that he manually monitors. It produces zero metrics anywhere.
| Metric | Value | What This Means |
|---|---|---|
| Etsy Live window events | 324 in 11 days | ~29 events per day — consistent, not occasional |
| Days appearing | 11 of 11 working days | This is not a side project. It's a daily workflow. |
| Zendesk tickets from Etsy | Zero | Channel has no integration. All customer work is invisible. |
| Revenue attribution | Zero | No tracking of what this channel generates |
Decoded Workflow (Timestamped)
The data shows Etsy Live seller hub appearing in three distinct blocks daily:
09:12 — Etsy Seller Hub active (pre-session: checking messages, reviewing scheduled stream) 09:18 — Alt+Tab to Zendesk (handle incoming ticket) 09:24 — Alt+Tab back to Etsy (reply to customer DM) ... (morning block: ~30 min of monitoring interleaved with Zendesk) 13:04 — Etsy Live session begins (seller dashboard active, stream monitoring) 13:08 — Alt+Tab to Shopify (check product stock for live viewer question) 13:11 — Alt+Tab back to Etsy (respond in live chat) ... (afternoon block: 1.5-2 hours of active live session work) 16:22 — Etsy Seller Hub (post-session: handling follow-up messages, checking orders) 16:34 — Google Sheets (logging daily activity — Etsy numbers entered manually)
Why This Matters
This is a customer-facing sales channel that Daniel works every single day, and it generates zero metrics in any reporting system. Headcount decisions, workload assessments, and capacity planning are all being made with this channel completely invisible. If Pinewood & Co's Etsy Live business grows, Daniel's workload grows with it — but nobody can see it happening.
What's Built
A Zendesk channel tag, a Zapier zap config for routing Etsy messages into Zendesk, and a tracking setup that makes this channel visible in reporting within one week.
Zapier Integration Steps
4 Metric Inflation — The Numbers Don't Add Up
The Pattern
The ticket count data shows a split personality. On normal days, Daniel handles 40-110 tickets at 8-12 minutes each — reasonable for genuine customer interactions. But on "high" days, the count jumps to 400+. At 8 hours of work, that's under 1.2 minutes per ticket — physically impossible for work that involves reading, reasoning, and writing.
| Day Type | Ticket Count | Hours Worked | Min/Ticket | Plausible? |
|---|---|---|---|---|
| Normal (7 of 11 days) | 42–108 | 7.5–8.5h | 8–12 min | Yes |
| Medium (2 of 11 days) | 156–193 | 8–9h | 2.5–3 min | Borderline |
| High (2 of 11 days) | 387, 412 | 8h | <1.2 min | No |
What's Actually Happening on High Days
Two patterns in the data explain the inflation, both visible in the keystroke sequences:
- Batch operations inflate counts. The upsell batch sessions (Finding 2) generate a ticket-touch event in Zendesk for each row processed. 28 upsell items at 2 batches/day = 56 "tickets" that aren't customer interactions.
- "Touched" counts as "handled." The data shows inbox-scanning patterns where 200+ tickets are opened and triaged (snoozed, re-prioritized, or tagged) in rapid succession. Opening a ticket isn't handling it.
What's Built
A Zendesk Explore report configuration that separates real interactions from batch operations, plus tagging rules to keep the metrics clean going forward.
Zendesk Explore Report Setup
5 Context-Switching Tax — The Hidden Time Drain
The Pattern
App-switching is the single most common event in Daniel's data. 4,487 Alt+Tab switches in 11 working days — 408 per workday. The window title data confirms these aren't random: each ticket requires 4-6 separate app visits because the tools don't talk to each other.
| Workflow | Switches Required | Frequency | Daily Switch Cost |
|---|---|---|---|
| Handle a shipping inquiry | Zendesk → Shopify → carrier site → Zendesk | ~25x/day | ~100 switches |
| Process an upsell item | Sheet → Recharge → Sheet | ~22x/batch | ~66 switches |
| AI-assisted response | Zendesk → ChatGPT → Zendesk + edit | ~9x/day | ~36 switches |
| Subscription check | Zendesk → Recharge → Zendesk | ~15x/day | ~30 switches |
| Etsy Live monitoring | Zendesk → Etsy → Zendesk | ~10x/day | ~20 switches |
This Is a System Problem, Not a People Problem
4,487 Alt+Tab events could look like distraction. The data shows the opposite: every switch is purposeful. Daniel is not inefficient — he is bridging gaps between systems that should be integrated. Each ticket genuinely requires touching multiple tools, and none of them share data.
What's Built
Three integration configs that collapse six tabs into one. Total setup time: under an hour for Shopify + Recharge. The Etsy integration uses the Zapier config from Finding 3.
Integration 1: Zendesk + Shopify (10 minutes)
Integration 2: Zendesk + Recharge (15 minutes)
Integration 3: Etsy → Zendesk (see Finding 3)
The Zapier zap from Finding 3 routes Etsy messages into Zendesk as tickets. Combined with the Shopify and Recharge sidebar integrations, Zendesk becomes the single workspace for all customer channels.
The Pattern
Daniel spends 25-40 minutes every morning in Google Sheets manually entering ticket counts, resolution times, and upsell conversion numbers. The keystroke data shows it clearly: Zendesk tab → read number → Sheets tab → type number → repeat. On top of that, Calculator appeared 187 times in 11 working days — 17 times per day — for arithmetic that spreadsheet formulas handle instantly.
Evidence
| Metric | Value | What It Tells Us |
|---|---|---|
| Calculator opens | 187 in 11 days (17/day avg) | Simple division, percentages, averages done by hand |
| Sheets data entry sessions | 11 sessions (one per working day) | 25-40 min each, always between 9:15-10:00 AM |
| Common calculations | Ticket-to-resolution ratios, upsell %, daily averages | All replaceable by =COUNTIF and =AVERAGEIF |
| Weekly time cost | ~3.5 hours (2.5h entry + 1h calculator) | Eliminated entirely with the script below |
Decoded Workflow (Timestamped)
09:17 — Google Sheets active: "CS Tracker 2024" 09:17 — Alt+Tab to Zendesk Explore (check yesterday's solved count) 09:18 — Alt+Tab to Sheets (type "87" into cell C14) 09:18 — Alt+Tab to Zendesk (check average resolution time) 09:19 — Alt+Tab to Calculator (type "487 / 87") 09:19 — Alt+Tab to Sheets (type "5.6" into cell D14) 09:20 — Alt+Tab to Recharge (check upsell conversion count) 09:21 — Alt+Tab to Calculator (type "23 / 87") 09:21 — Alt+Tab to Sheets (type "26.4%" into cell E14) ... (repeats for 25-40 minutes every single morning)
What's Built
A Google Apps Script that pulls yesterday's ticket data from the Zendesk API at 7:45 AM, calculates all the metrics, populates the tracking Sheet, and posts a Slack summary. Daniel starts his day with the report already done.
The Script (Paste Into Google Apps Script)
// === CONFIG === const ZENDESK_SUBDOMAIN = 'pinewoodco'; // your-subdomain.zendesk.com const ZENDESK_EMAIL = '[email protected]'; const ZENDESK_API_TOKEN = 'YOUR_ZENDESK_API_TOKEN'; const SLACK_WEBHOOK_URL = 'YOUR_SLACK_WEBHOOK_URL'; // optional const SHEET_NAME = 'Daily Metrics'; function pullDailyMetrics() { const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); const dateStr = Utilities.formatDate(yesterday, 'America/New_York', 'yyyy-MM-dd'); const auth = Utilities.base64Encode(ZENDESK_EMAIL + '/token:' + ZENDESK_API_TOKEN); const headers = { 'Authorization': 'Basic ' + auth }; // Get solved tickets from yesterday const query = encodeURIComponent('type:ticket status:solved solved:' + dateStr); const resp = UrlFetchApp.fetch( 'https://' + ZENDESK_SUBDOMAIN + '.zendesk.com/api/v2/search.json?query=' + query, { headers: headers } ); const data = JSON.parse(resp.getContentText()); const tickets = data.results || []; const ticketCount = tickets.length; // Calculate avg resolution time (hours) let totalResolutionHrs = 0; tickets.forEach(t => { if (t.created_at && t.updated_at) { const created = new Date(t.created_at); const solved = new Date(t.updated_at); totalResolutionHrs += (solved - created) / 3600000; } }); const avgResolution = ticketCount ? (totalResolutionHrs / ticketCount).toFixed(1) : 0; // Write to sheet const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const newRow = sheet.getLastRow() + 1; sheet.getRange(newRow, 1).setValue(dateStr); sheet.getRange(newRow, 2).setValue(ticketCount); sheet.getRange(newRow, 3).setValue(avgResolution + 'h'); sheet.getRange(newRow, 4).setValue(new Date().toISOString()); // Optional: Slack summary if (SLACK_WEBHOOK_URL && SLACK_WEBHOOK_URL !== 'YOUR_SLACK_WEBHOOK_URL') { UrlFetchApp.fetch(SLACK_WEBHOOK_URL, { method: 'post', contentType: 'application/json', payload: JSON.stringify({ text: 'Daily CS Report for ' + dateStr + '\nTickets solved: ' + ticketCount + '\nAvg resolution: ' + avgResolution + 'h' }) }); } } // Set this as a daily time-driven trigger at 7:45 AM
This isn't an efficiency finding — it's a revenue finding. Daniel's Etsy Live sessions appear in the behavioral data every single working day. He spends 1.5-2 hours daily in the Etsy Live seller dashboard — preparing, running, and following up on live selling sessions. His daily activity logs mention it as a highlight nearly every day.
But here's the thing: there are zero metrics being tracked on this channel. No ticket attribution, no revenue attribution, no conversion tracking. We can see from the window titles that he's active in the Etsy seller dashboard, but there's no integration between Etsy and Zendesk — so any customer questions from Etsy Live don't flow into his ticket metrics.
What the data shows:
| Etsy Live sessions detected | 11 of 11 working days (100%) |
| Daily time in Etsy seller dashboard | 1.5-2 hours |
| Etsy Live events in telemetry | 320+ in 11 days |
| Revenue attribution | Zero — not tracked anywhere |
| Customer follow-up flow | Manual — separate from Zendesk |
This is a person generating direct revenue through live commerce and nobody can see it. If his Etsy Live sessions are driving even $500/week in sales (conservative for an active live seller), that's $26K/year from a channel with zero visibility. The actual number could be significantly higher.
What to do:
- Track Etsy Live revenue. Connect Etsy's analytics to your reporting. Know what Daniel is generating.
- Route Etsy customer questions into Zendesk. Right now they're handled separately — which means they don't count in his ticket metrics and he's doing more work than the numbers show.
- Consider giving Daniel MORE Etsy Live time, not less. If the automation in Findings 1-6 frees up 20+ hours/week of his time, the highest-value use of that recovered time might be more live selling — not more tickets. That's a revenue decision, not an efficiency decision.
The bigger point: This discovery found 22+ hours/week of recoverable time. Most of that comes from automating the grunt work. But the real ROI isn't in the hours saved — it's in where those hours go next. Daniel is already proving he can drive revenue through live commerce. Free him from the copy-paste and let him do more of what makes money.
Daniel's Typical Day
Reconstructed from 11 working days of behavioral data. Not self-reported — this is what the window title and keystroke sequence data shows, day after day.
Tools Used
Ranked by estimated time share across the 2-week period. Based on window title frequency and duration data.
Note: All 6 tools above are accessed through Chrome. The website-level breakdown from URL-level tracking is a floor — Chrome is tracked as a single process, so Zendesk session time is almost certainly higher than the 42h shown. These numbers represent minimum confirmed time, not total time.
Time Recovery Summary
What changes, what it takes, and what it's worth. These are conservative estimates — we used lower bounds from the observed data ranges.
| Finding | Current Hrs/Wk | After Fix | Hours Recovered | Confidence | Turnaround |
|---|---|---|---|---|---|
| AI Workarounds → Zendesk Macros | 4.5 h | 0.5 h | 4.0 h | 99% | Same day |
| Upsell Batch → Script | 5.0 h | 0.3 h | 4.7 h | 93% | Back to you this week |
| Etsy Live → Zendesk Integration | 3.0 h (est.) | 1.5 h | 1.5 h | Medium | This week |
| Context-Switching → Integrations | 6.0 h | 2.0 h | 4.0 h | Medium | This week |
| Manual Reporting → Automated | 3.5 h | 0 h | 3.5 h | 95% | This week |
| Metric Cleanup → Zendesk Reports | — | — | 0 direct, high indirect | High | Same day |
| Revenue: Etsy Live Channel Visibility | — | — | Revenue upside (est. $26K+/yr) | Revenue | This week |
| Total | ~25 h/wk | ~3.8 h/wk | ~22 h/wk recovered + revenue upside | — | Most done this week |
This Is One Desk, Not The Whole Machine
What you just read came from 11 worked days on one customer-support operator. The value is not the headline hour count by itself. The value is that the desk is now legible: what is real service work, what is manual bridge work, what is invisible channel work, and what should be installed first.
A similar team should keep more than a report. The point is to leave with a working macro layer, one live batch fix, and a channel-routing decision that can be tested immediately.
A full team discovery goes wider and nastier: cross-person pattern overlap, shared bottlenecks, role-specific installs, and the actual capacity unlock once the same loops are removed across the whole team.
Request Full Team DiscoveryWhat the Full Discovery Adds
| This Pilot | Full Team Discovery | |
|---|---|---|
| Employees covered | 1 | Your whole team |
| Data window | 11 working days | 30+ days |
| Findings | 7 | 15–40 (depends on team size) |
| Tools delivered | Guides only | Working code + configs |
| Cross-team patterns | No | Yes — who shares the same bottleneck |
| ROI model | Estimates | Precise, per-person, per-workflow |
| Implementation support | No | Yes |
Data Sources
All findings in this report are derived from behavioral telemetry collected by the Go2 desktop app (powered by Cowork.ai telemetry capture) installed on the employee's workstation during the 2-week pilot period.
Privacy & Data Handling
The Go2 desktop app captures behavioral metadata — what tools are used and how they are used — not content. Ticket content, customer names, order data, and communications are never captured. Keystroke data captures sequences and patterns, not the full text of messages composed. All telemetry is stored locally and transmitted only via encrypted connection to your organization's discovery account. The employee in this pilot was informed of the monitoring per Pinewood & Co's monitoring disclosure policy.
Go2 Operational Intelligence — go2.io — [email protected]