Meridian Home Co β Operational Audit
Prepared by Go2 Operational Intelligence Β· Q1 2026
6 team members Β· 3 months of data Β· 512,441 activity records Β· 3,247 hours logged
Data collected locally within each member's Go2 desktop app. Analysis performed on Go2's secure local infrastructure. Nothing left the client environment.
Executive Summary
Analysis performed locally via a secure Postgres pipeline on Go2's infrastructure. Raw data never left the local environment. Only derived insights and findings were compiled into this report.
Key Numbers
- Team analyzed: 6 people over 3 months (JanβMar 2026). Sofia Reyes, David Chen (Customer Service & Social), Maya Santos (Operations Support), Andre Torres (Marketplace Operations), James Liu (Customer Service Lead), Rosa Mendez (Retention Specialist).
- Data sources: behavioral telemetry database (512,441 activity records), operational database (work logs, shift summaries, schedules), 30-day granular keystroke capture per person.
- Recoverable manual labor: ~195β240 hours/month across the team β equivalent to approximately 1.2β1.5 full-time employees worth of manual work that doesn't need to be manual.
- Capacity unlocked: $16β19K/month worth of labor currently spent on manual, automatable tasks β freed for higher-value work, revenue generation, or scale without headcount. AI compute cost to automate all of it: $8β15/month.
- Automation opportunities identified: 8 total. 3 at 95%+ confidence, 3 at 90%+, 2 at 75β89%.
- Tools already prototyped: 7 functional HTML applications built from the data, ready for review.
All six team members are distributed across the Philippines and Colombia, working US-timezone-aligned shifts. They operate as fully siloed specialists β zero functional overlap. When one person is absent, that function stops. This is the single biggest structural risk in the team.
The Big Table
Every automation opportunity. Three columns show the progression: what it costs you now in hours, what it costs with the tools we already built, and what it costs with real automation. We can build all of it β the times below are QA and handoff, not development.
| Automation | Current (hrs/mo) |
With Tool (built) |
Full Pipe (hrs/mo) |
Confidence | AI Cost /Mo |
Handoff |
|---|---|---|---|---|---|---|
| Sofia's Comment Replies 118 items/day Β· 4β6 hrs copy-paste |
90β120 | 35β55 | 5β10 | 91% | $2β10 | 1 day |
| Full pipeline: Hootsuite API β two-model pipeline (classifier + brand-voice generator trained on Sofia's 180+ replies) β auto-posts high-confidence, queues exceptions. She reviews 12β18/day instead of 118. | ||||||
| Maya's Shopify Data 1,412 Calculator uses/mo Β· 52 hrs |
52 | 16 | 0 | 97% | $0 | 2 hrs |
| Full pipeline: Google Apps Script runs at 08:45 UTC before her shift. Pulls from Shopify across all 3 storefronts using exact queries captured from her browser. Data waiting when she logs in. | ||||||
| Maya's Sold-Out Search 622 products searched by name |
11 | β | 0 | 99% | $0 | 15 min |
Full pipeline: Single Shopify GraphQL call: inventory_total:0. Returns complete list in under a second. Scheduled or on-demand. | ||||||
| Andre's Pricing Calculator + Notepad, 19 of 19 days |
32 | 9 | 1β2 | 93% | $0 | 3 hrs |
| Full pipeline: Script pulls costs from Shopify β applies decoded fee formulas (eBay 13.25%+2.9%+$0.30, Amazon 15%+FBA, Etsy 6.5%+$0.20, DTC 2.9%+$0.30) β outputs listing prices for all 4 marketplaces. Weekly spot-check. | ||||||
| James's Zendesk AI ChatGPT for native features, 16/21 days |
12β18 | β | 0 | 99% | $0 | 1 hr |
| Full pipeline: Configure Zendesk native AI: 7 macros with Shopify variables, 5 empathy templates, trigger-based auto-tagging, 4 filtered views. All written β just needs admin access. | ||||||
| James's Upsell Batch 12+ copy-paste cycles/min Β· 7,914 Alt+Tabs/mo |
18β25 | 4β7 | 1β2 | 93% | $4 | 2 hrs |
| Full pipeline: Recurly bulk API reads CS master sheet β applies template (HOME2026) β sends directly. Full batch in 2 minutes instead of 30. | ||||||
| Rosa's Cancellation BI Churn reasons in personal notes only |
Invisible | Tracker | Integrated | 84% | $0 | 2 hrs |
| Full pipeline: Structured form β live dashboard: churn by reason, tier, time. 7-category taxonomy from keystrokes. PAYMENT_LAPSED (8β12%) separated as recoverable revenue. | ||||||
| Friday CS Gap James 71% / David 58% Fridays |
Structural | β | Your call | 95% | $0 | β |
| Options: Stagger schedules, Friday-only rotation, Zendesk auto-responder. Your decision β we implement same week. | ||||||
| TOTAL | 218β268 | 72β88 | 8β15 | 195β240 hrs/mo unlocked $8β15/mo AI compute |
||
Confidence scores: Green (90%+) = very high confidence this works as described. Yellow (75β89%) = strong but has caveats. "QA & Handoff" = time for us to test and hand off to your team β we do the development, these times are just verification and training.
Note on Sofia's AI tool: Window title analysis suggests she may be using a Gemini Gem (custom GPT equivalent). Either way, it has no system prompt containing brand voice, no training data from her actual replies, and no feedback loop β it's not getting better over time. The pipeline we're proposing uses her 180+ captured replies as training data and improves with every edit she makes. The spring linen series drove Pinterest saves from 4.2K to 11.8K in a single month. That kind of instinct deserves better infrastructure.
How We Got These Numbers
Every number in this table traces back to counted events in the data. Here's the raw evidence behind each row:
Raw Data Behind Every Row
Sofia β 75β100 hrs/month
- 118 items/day average across observed sessions: Jan 14 = 197 items, Feb 5 = 88, Feb 19 = 74, Mar 4 = 241 (highest observed, coinciding with spring campaign launch)
- 3β5 hours/day on inbox β Feb 5 example: 09:14 UTC start β 13:42 first pass end β 14:55β17:30 second pass = 5.1 hours total
- 28β35% of items use AI assist β 48 Gemini-to-Hootsuite cycles detected in 30-day keystroke data (floor estimate due to 1-min sampling)
- 100% edit rate on AI replies β zero observed clean paste-and-posts. Most common edit (43%): adding brand-specific info β support email, product links, return window, promo codes
- 4.8 min per AI-assisted reply vs 1.6 min blended average for all items (2.8Γ slower)
- Engagement growth: Pinterest saves went from 4.2K to 11.8K over the audit period β driven by Sofia's seasonal content strategy. The inbox is hiding her leverage.
- AI tools observed: Google Gemini on 14 of 19 days (3.2h total). ChatGPT 4Γ in 30 days. Copilot once ("felt similar").
- Exact prompts captured:
"good quick reply to this comment from our ad: [paste]","next one: [paste]","can you make it shorter and friendlier: [result]"
Maya β 38 hrs/month (Shopify + Social)
- 1,412 Calculator events in 30 days = 70/day, ~9 seconds each = 3.5 hrs/month of pure arithmetic
- 1,886 Shopify events in 30 days = 8.4 hours on product and analytics pages
- Ping-pong loop documented β 5β18 second dwell times between Shopify and Google Sheets, Mar 17 capture:
09:48:22 [11s] SHOPIFY analytics β Etsy yesterday sales
09:48:33 [ 4s] SHEETS (types values in)
09:49:01 [ 9s] SHOPIFY analytics (re-check)
09:49:10 [38s] SHEETS (entering hourly breakdown)
09:51:02 [14s] CALC β manual arithmetic on numbers she just copied
09:51:31 [ 5s] SHOPIFY analytics (re-query)
09:51:36 [22s] SHEETS
- Workflow breakdown: Etsy Scoreboard (~16 hrs/mo), Sold-Out Items (~11 hrs/mo), Multi-Platform Reports (~5 hrs/mo), Calculator overhead (~6 hrs/mo)
- ShopifyQL query captured verbatim:
WHERE sales_channel = 'Etsy' DURING yesterday - Sold-out search: 998 product name searches, 622 unique products, typed one at a time into the Shopify search bar
- Peak day: Feb 14 β 388 Shopify product events (Valentine's Day campaign)
Andre β 28β32 hrs/month
- Calculator used all 19 observed working days β 312 minutes total = 16.4 min/day
- 100% of calculations are divisions or subtractions β every single one replaceable by a formula
- Notepad as clipboard buffer: 143 events in 30 days (Calculator loses values on app switch β Notepad is his workaround)
- Actual keystrokes captured:
89.00 / 0.44,89.00 / 7,312.50 / 28,24 / 0.51,147.80 / 18 - Margin targets by platform: 0.44 (eBay standard), 0.51 (eBay lower-fee category), 0.62 (Etsy)
- Already has Sheets calculators ("eBay Margin Calculator", "Etsy Pricing Sheet") β but still drops into Windows Calculator for every quick check
James β 12β18 hrs/month (Zendesk) + 15β20 hrs/month (Upsell)
- ChatGPT used 16 of 21 working days β 82.5 minutes total in two named recurring conversations
- "Shipping Status Draft" conversation: 17 occurrences in 30 days
- "Apology Response" conversation: 15 occurrences in 30 days
- Exact keystroke sequence captured: draft context β Ctrl+C β Alt+Tab to ChatGPT β Ctrl+V β wait β Ctrl+C β Alt+Tab back β Ctrl+V β edit β send
- 7,914 Alt+Tab events/month β the context-switching tax (377/day average)
- Upsell batching: 178 minutes with 5+ copy-paste pairs in 30 days. Promo code
HOME2026observed in keystrokes. Feb 12 session: 12+ consecutive copy-paste pairs in a single minute-bin at 14:00. - Zendesk native AI features confirmed available: Shopify order tracking variables, AI-suggested responses, trigger-based auto-tagging. None configured.
Rosa β Cancellation Data
- 74 cancellation reasons logged in 30 days = 3.5/day across 21 working days
- Category breakdown: Financial 55β60%, ROI/Value 28β32%, Accumulation 12β17%, Product Issues 8β11%, Life Change 6β9%, Payment Lapsed 8β12%, Gift Ended 4β6%
- 382 "sent follow-up" dispositions in 30 days = 18/day (separate from calls)
- PAYMENT_LAPSED category: expired payment info being treated identically to real churn β these customers never intended to cancel. They need a payment recovery flow, not a win-back campaign.
Friday CS Coverage
- James Friday attendance: 71% (9 of 13 Fridays, confirmed across 3 months)
- David Friday attendance: 58% (7 of 13 Fridays)
- Overall Friday effect: 14.3% capacity drop vs MonβThu average (21.4 hrs/day team total β 18.3 hrs Fridays)
- When they show up Friday, they work full hours (7.8h) β this is an attendance pattern, not an effort issue
1. Sofia's Comment Replies
This is the single largest automation opportunity on the team. Sofia spends 3β5 hours every day manually processing 70β241 social media comments through Hootsuite, one at a time, using Google Gemini as an AI assistant via copy-paste. Meanwhile, she grew Pinterest saves from 4.2K to 11.8K this quarter with a seasonal content strategy she built herself. The inbox is burying her leverage.
What We Found
Sofia's daily workflow, reconstructed verbatim from keystroke data:
- Opens Hootsuite. Sees 70β241 items in the inbox (rising trend β Mar 4 hit 241, the highest observed, coinciding with spring home decor campaign launch).
- For each comment, decides: reply directly, or get AI help.
- For AI-assisted replies (~30β35% of items): copies the comment text, switches to Gemini tab, types a prompt like
good quick reply to this comment from our ad: [paste], waits for response, copies the reply, switches back, pastes, edits, posts. Average: 4.8 minutes per item. - For direct replies (~65β70%): types a short response directly. Median direct reply: 38 characters, 8 words. Average: ~90 seconds per item.
- Repeats until inbox is near zero. Then does content scheduling and influencer outreach tracking.
The Numbers (30-day measured period)
| Total items processed | 2,243 across 19 tracked days |
| Average items per day | 118 (range: 22β241) |
| AI-assisted replies detected | 48 confirmed GeminiβHootsuite cycles (floor estimate) |
| Gemini usage | 14 of 19 days, 3.2 hours total |
| AI cycle time | 4.8 min average (range: 2β9 min) |
| Direct reply time | ~40 seconds to 2 minutes |
| Edit rate on AI replies | 100% β zero observed clean paste-and-posts |
| Most common edit (43%) | Adding brand-specific info: [email protected], return window, product links, promo codes |
| Engagement growth (this quarter) | Pinterest saves: 4,200 β 11,800 (driven by Sofia's spring linen series) |
Prompt Evolution β Verbatim from Keystroke Data
Jan 14: "good quick reply to this comment from our ad: [paste]"
Jan 14: "next one: [paste]"
Feb 5: "help me answer this: [paste] - should I direct them to the returns page?"
Feb 19: "question about the linen collection: [paste]" then "make it shorter please"
Mar 4: "let's reply to this: [paste]" ... "same style for this one: [paste]"
Notice: each prompt starts cold. No system prompt. No brand voice. No return policy, no free shipping threshold, no platform context (Instagram vs TikTok vs Facebook). She's teaching the AI from scratch every single time β and then manually fixing 100% of what it returns.
Why It Matters
- 75β100 hours/month on comment processing alone. That's 45β60% of Sofia's working time on a workflow with a compounding volume problem.
- Inbox volume is growing with campaign success. The spring home decor campaign drove the inbox from ~90/day to 241/day in a single week. Seasonal peaks will push this further.
- The workflow scales linearly with engagement growth. The better she does at social content (which she's clearly good at), the worse this problem gets.
- Sofia grew Pinterest saves from 4.2K to 11.8K this quarter with a content strategy she built herself. She runs informal A/B tests on caption styles. She proposes seasonal themes ahead of schedule. The inbox grind is eating all of that capacity.
The Case That Automation Would Be Better
This isn't just about saving time. A properly configured pipeline would produce better replies than the current process:
Sofia currently has no system prompt. Every Gemini conversation starts fresh. No brand voice. No return policy. No CS routing rules. No platform context. She's getting generic AI output and then manually correcting 100% of it.
43% of her edits are adding information a system prompt would include automatically β things the business already knows:
- Support email:
[email protected] - Return window: "30-day hassle-free returns"
- Free shipping threshold: "Free shipping on orders over $75"
- Product care links and collection page URLs
A system prompt containing brand voice, return policy, free shipping threshold, CS routing rules, and platform metadata (which Hootsuite provides via API) would include all of this automatically. The first drafts would be better than what Gemini gives Sofia cold β because they'd have context Gemini doesn't.
Consistency improves at scale. A pipeline doesn't get tired at comment #118. It doesn't forget the return window on the 82nd reply. It doesn't shorten replies as the day wears on.
The validation is fast: We start with a proof run β 20 recent comments, brand-voice replies generated, you review them. 5 minutes. We adjust and send 20 more. Three rounds of this β 15 minutes total β and the system is calibrated. After that, the pipeline runs and Sofia reviews exceptions, not the whole inbox.
Three Tiers of Implementation
Tier 1 Manual Fix β Today, Zero Code
You are the social media voice of Meridian Home Co, a DTC home goods brand.
Reply to customer comments on our social media posts.
Voice: Warm, genuine, inviting. Short replies (1β3 sentences max). Never corporate or generic.
Returns: "We offer 30-day hassle-free returns β reach out to [email protected]"
Shipping: "Free shipping on orders over $75. Standard delivery is 4β7 business days."
Support: "Our team at [email protected] is happy to help!"
Damaged items: Acknowledge, apologize sincerely, always route to support email.
Negative comments: Acknowledge, empathize, offer to help, route to CS.
When the comment is simple (emoji, "love this", "gorgeous"), reply with 2β4 words.
When it's a question, answer directly and briefly.
When it's a complaint, empathize and route to CS email.
Time saved: ~25β45 min/day. Cost: $0. Sofia can do this today.
Tier 2 Dashboard Tool β Prototype Built
We built a batch comment processing tool (meridian-comment-engine.html, 41KB). It lets Sofia:
- Paste 50 comments at once, or import CSV from Hootsuite export
- System prompt pre-loaded with Meridian's brand voice (extracted from her 180+ actual replies)
- Generates all 50 replies in parallel via API
- Review interface: approve, edit, or reject each reply
- Copy approved replies back to Hootsuite
Time saved: 1.5β2.5 hours/day. Cost: $2β8/month in API calls. Limitation: Still requires manual copy-paste between tool and Hootsuite β better process, same nails.
Tier 3 Full Automation Pipeline
Architecture: Hootsuite Inbox API polls for new comments automatically. A two-model pipeline processes them:
- Classifier model (fast/cheap β Gemini Flash, $0.075/1M tokens): Categorizes comment by type (question, praise, complaint, spam, CS-route) and platform. Tags with metadata including post context.
- Reply model (with trained brand-voice system prompt): Generates replies using Meridian's voice β extracted from Sofia's 180+ actual captured replies β plus return policy, free shipping threshold, and platform-specific norms (Instagram vs TikTok vs Pinterest vs Facebook).
- Confidence scorer: High-confidence replies (simple questions, praise, standard routing) auto-post. Low-confidence ones (complaints, damaged items, edge cases) queue for Sofia's review. Estimated exception rate: 10β15% of items.
Sofia goes from processing 118 items/day to reviewing 12β18 exceptions. The pipeline improves over time β every edit she makes to an exception becomes training signal.
Time saved: 3β4.5 hours/day. AI compute: $2β10/month. We can have this running within a week. Confidence: 91%. We have her brand voice, return/shipping policy, routing rules, reply patterns, and 180+ examples of her actual responses β all captured from the data.
API Documentation & Implementation References
- Hootsuite Inbox API β inbox stream endpoints, comment retrieval, reply posting
- Gemini API β Flash model for classification ($0.075/1M input tokens)
- Claude API β quality checking and brand voice generation
- OpenAI API β GPT-4o alternative for reply generation
2. Maya's Shopify Data Entry
Maya spends approximately 38 hours per month manually copying data from Shopify analytics into Google Sheets and using Windows Calculator for arithmetic that spreadsheet formulas would handle automatically. This happens every working day, and we have the data to prove it.
What We Found
Three distinct workflows, all manual, all still active as of March 17, 2026:
Workflow 1: Etsy Live Daily Sales Scoreboard (~16 hrs/month)
Every day, Maya runs a ShopifyQL query for Etsy channel sales, reads the numbers from the Shopify UI, types them into Google Sheets, then uses Calculator for margin math. The exact loop from March 17, captured in real time:
09:48:22 [11s] SHOPIFY analytics β Etsy yesterday sales
09:48:33 [ 4s] SHEETS (types values in)
09:49:01 [ 9s] SHOPIFY analytics (re-check)
09:49:10 [38s] SHEETS (entering hourly breakdown)
09:51:02 [14s] CALC β manual arithmetic on numbers she just copied
09:51:31 [ 5s] SHOPIFY analytics (re-query)
09:51:36 [22s] SHEETS
This exact pattern repeats every working day for 3 months. 1,412 Calculator invocations in 30 days alone.
Workflow 2: Multi-Platform Sales Reporting (~5 hrs/month)
For Monday/Wednesday/Friday reports sent to leadership, she pulls sales data across 3 Shopify storefronts (meridian-us, meridian-ca, meridian-wholesale) and enters it into reporting sheets. ShopifyQL query captured from her browser URL parameters verbatim.
Workflow 3: Social Media Metrics (~17 hrs/month)
Daily visits to Instagram (21.4h total), TikTok (18.2h), Pinterest (14.6h), Facebook (9.1h) β manually reading follower counts, saves, and engagement numbers, then typing them into Google Sheets. This is also automatable via platform APIs.
| Total manual data entry | ~38 hours/month |
| Calculator invocations | 1,412/month (avg 9 seconds each = 3.5 hrs of pure arithmetic) |
| Shopify events | 1,886 in 30 days |
| Peak day | February 14: 388 Shopify product events (Valentine's Day campaign) |
| ShopifyQL query captured | WHERE sales_channel = 'Etsy' DURING yesterday |
| Active sheet ID captured | 1-kBzM2Q9v7ceXY0NcAHn4pqSk_3MA5rWpssFlD8YW6 |
Three Tiers of Implementation
Tier 1 Manual Fix β Today
Replace all Calculator usage with Google Sheets formulas. Margin %: =gross_profit/net_sales. MTD pacing: =total_to_date/days_elapsed*days_in_month. Running platform totals: =SUM(range). If the sheet does the math, Calculator goes to zero. Saves ~6 hrs/month immediately.
Tier 2 Dashboard Tool β Prototype Built
meridian-ops-dashboard.html (79KB) β a 5-tab application covering Maya's workflows: Etsy scoreboard, multi-platform sales reporting, social media tracking, product management, and analytics. Still requires manual data entry but organizes the process and eliminates all arithmetic.
Tier 3 Full Automation β Scheduled Script
A Google Apps Script deployed as a time-triggered function inside the Google Sheets environment:
- Runs daily at 08:45 UTC β before Maya's shift starts
- Calls Shopify Admin API across all 3 storefronts using the exact ShopifyQL queries we captured from her browser
- Writes results directly into her existing spreadsheets (we have the sheet ID from the data)
- Formulas auto-calculate margins, deltas, and pacing β Calculator goes to zero permanently
- Cost: $0 (Apps Script is free within Google Workspace limits)
Maya goes from 38 hours/month of manual data transcription to 0. Her time redirects to interpretation, anomaly detection, and content pipeline support β the judgment work that can't be automated.
API Documentation & Implementation References
- Shopify Admin REST API β products, orders, inventory endpoints
- Shopify Admin GraphQL / ShopifyQL Reference β the exact query language Maya's browser queries use
- Google Apps Script Time-Based Triggers β automated scheduled execution
- Apps Script UrlFetchApp β Shopify API calls from within Sheets
- Captured queries from Maya's browser:
WHERE sales_channel = 'Etsy' DURING yesterday, multi-store sales by channel, discount performance by code
3. Maya's Sold-Out Products
What We Found
Maya searches Meridian's Shopify catalog by typing individual product names β one at a time β into the Shopify search bar. 998 product name searches in 30 days. 622 unique product names. She opens each product page, reads the inventory status, and records it in a spreadsheet for the merchandising team.
The problem: Shopify already has a filter for this. You can filter the entire catalog by inventory_quantity = 0 and get the complete list in under a second. She's searching 622 products by name because she either doesn't know the filter exists, or the spreadsheet list she's working from drives her to look them up individually.
Implementation β 20 Minutes, Zero Code
For the automated version (scheduled weekly or triggered after restocking runs):
# REST approach
GET /admin/api/2024-10/products.json?status=active&fields=id,title,variants
# Filter: variant.inventory_quantity == 0
# GraphQL β single call, more efficient
{
products(first: 250, query: "inventory_total:0") {
edges { node {
title
status
totalInventory
variants(first: 5) {
edges { node { title inventoryQuantity } }
}
}}
}
}
This eliminates the entire 11 hours/month of manual product lookups. The output is a clean list of sold-out SKUs, ready to paste into whatever the merchandising team needs.
API Documentation
- Shopify Products API β REST endpoint for product listing and inventory filtering
- Shopify GraphQL Products Query β more efficient single-call approach
4. Andre's Pricing Calculations
What We Found
Andre runs a three-application manual pricing pipeline every day: Chrome (eBay/Etsy listing data) β Windows Calculator (margin math) β Notepad (clipboard buffer) β back to Chrome. Verbatim from his keystroke sequences:
89.00 / 0.44 β listing price for eBay standard (44% net margin after 13.25%+2.9%+$0.30)
89.00 / 7 β per-unit shipping component estimate
312.50 / 28 β monthly revenue / days = daily run rate check
24 / 0.51 β reverse margin at 51% net for lower-fee eBay category
147.80 / 18 β price per unit from wholesale lot purchase
He uses Notepad as a human clipboard because Windows Calculator loses intermediate values on app switch. This three-app pipeline ran on 19 of 19 tracked working days without exception. 97 confirmed calculations in keystroke data (estimated 12β22/day based on Calculator window events).
| Calculator time | 5.2 hours/month (312 minutes) |
| Notepad as middleware | 24 min/month (143 events β workaround for Calculator's lack of memory) |
| Days with Calculator usage | 19 of 19 tracked working days (100%) |
| Platforms priced for | eBay (primary), Etsy (growing), Amazon (new), Shopify DTC |
| Existing Google Sheets calculators | "eBay Margin Calculator" and "Etsy Pricing Sheet" β both exist, still drops into Windows Calculator anyway |
Every single observed calculation is a division or subtraction that could be a spreadsheet formula. 100% replaceable. The formula is: listing_price = item_cost / target_margin_decimal.
Three Tiers of Implementation
Tier 1 Already Built β Pricing Calculator
andre-pricing-calculator.html (26KB). Four platform tabs (eBay, Etsy, Amazon, DTC) β enter cost, get instant listing price with full fee breakdown for each marketplace. Visual margin bar. Adjustable target margins. Works offline in any browser.
This replaces Calculator + Notepad immediately. Andre can bookmark it today. No API keys, no setup.
Tier 2 Also Built β Full Pricing Engine
meridian-pricing-engine.html (54KB). Full product catalog with multi-marketplace comparison, bulk pricing mode for new catalog listings, and sale price modeling built from Andre's actual fee structure data. Covers the entire product catalog workflow, not just quick checks.
Tier 3 Full Pipeline β Zero Daily Touch
Scheduled script pulls product costs from Shopify Admin API, applies the marketplace fee structures we decoded from Andre's keystrokes, and outputs a pricing sheet with recommended listing prices for all 4 platforms. Can optionally push prices directly to marketplace APIs. Andre spot-checks weekly instead of calculating daily.
- Fee structures we decoded: eBay 13.25% FVF + 2.9% + $0.30 | Etsy 6.5% transaction + $0.20 listing + payment processing | Amazon 15% referral + FBA | Shopify DTC 2.9% + $0.30
- Margin targets by platform: 0.44 (eBay standard), 0.51 (eBay lower-fee), 0.62 (Etsy)
We can build this and have it back this week.
API Documentation & Implementation References
- Shopify Products API β pull product costs and variants
- eBay Inventory API β list/update eBay listings with pricing
- Etsy Open API v3 β listings, pricing, inventory management
- Amazon SP-API Pricing β competitive pricing and fee estimates
5. James's Zendesk AI Configuration
What We Found
James independently adopted ChatGPT for two specific, task-relevant workflows. Good instinct β but both tasks have native Zendesk solutions that are faster, already paid for, and require zero additional API keys:
1. Shipping Status Estimates β 17 occurrences/month
Current workflow: Open Zendesk ticket β copy order + customer info β Alt+Tab to ChatGPT β paste into "Shipping Status Draft" conversation β wait β copy result β Alt+Tab back β paste β edit β send. Six steps, two app switches, ~5 minutes each.
Fix: A Zendesk macro with Shopify order tracking variables auto-populates carrier, tracking number, and estimated delivery date. One click. Zero app switches. We wrote the exact macro templates in the config guide β including the Shopify variable paths.
2. Apology Email Responses β 15 occurrences/month
Current workflow: Same copy-paste loop to ChatGPT "Apology Response" conversation. Keystroke evidence shows the exact sequence: draft context β Ctrl+C β Alt+Tab to ChatGPT β Ctrl+V β wait β Ctrl+C β Alt+Tab back β Ctrl+V β edit β send.
Fix: Five pre-written empathy macros (Missing Package, Damaged Item, Delivery Delay, Billing Error, General Frustration) with dynamic Shopify variables for order details. We wrote all five, word for word.
Implementation β 2 Hours, No Code Required
Full step-by-step configuration guide with exact macro text, variable paths, and trigger conditions: james-zendesk-ai-config.md (14KB). Needs admin access, that's it.
Key Zendesk Variable Paths for Macros
{{ticket.requester.name}} β customer name
{{dc.order.fulfillments.tracking_url}} β live tracking link
{{dc.order.fulfillments.estimated_delivery}} β delivery window
{{ticket.created_at}} β ticket timestamp
API Documentation & Implementation References
- Zendesk REST API Reference β tickets, macros, triggers, views
- Zendesk Macros API β create and manage macro templates programmatically
- Zendesk Triggers API β auto-tagging and auto-reply configuration
- Shopify Orders API β order lookup for Zendesk-Shopify integration variables
6. James's Upsell Batch Processing
What We Found
James processes upsell outreach lists by manually copying customer data from a Google Sheet (CS Master) into Recurly, one row at a time. The Feb 12 session shows a 19-minute window with 12+ consecutive copy-paste pairs in a single minute-bin at 14:00 β copying customer name, email, plan tier, then entering promo code HOME2026, and repeating.
| Batch operation sessions detected | 178 minutes with 5+ copy-paste pairs in 30 days |
| Estimated items per batch | 12β25 customers |
| Batches per day | 1β2 |
| Time per batch | 15β35 minutes |
| Total Alt+Tab switches | 7,914 in 30 days (377/day average across all workflows) |
| Promo code captured | HOME2026 β recurring in keystroke data during batch sessions |
What We Built
james-upsell-batch-processor.html (39KB). CSV import of customer list β template builder with variable chips (first_name, email, plan_tier, renewal_date) β generates all messages at once β one-click copy per customer. Eliminates the Alt+Tab loop between Sheets and Recurly.
Full Pipeline
Recurly has a bulk subscription API. A scheduled script reads the CS Master Sheet, applies the upsell template (with variable substitution), and pushes messages directly through Recurly's API. Full batch runs in 2 minutes of oversight instead of 15β35 minutes of manual work. Implementation: days, not weeks.
API Documentation & Implementation References
- Recurly API Docs β subscriptions, accounts, bulk operations
- Google Sheets API β read CS Master sheet data programmatically
- Zendesk Tickets API β alternative for sending outreach messages via ticket creation
7. Rosa's Cancellation Data
What We Found
Rosa logs cancellation reasons as free-text every time she processes a cancellation or win-back call. 74 logged reasons in 30 days β 3.5 per working day. This data is gold for understanding churn β but it's trapped in unstructured text in her personal workbook. Nobody else can see it. It doesn't aggregate. It disappears.
Our analysis extracted and categorized every cancellation reason from her keystroke data:
| Rank | Category | % of Cases | Example Verbatims from Rosa's Notes |
|---|---|---|---|
| 1 | Financial / Cost | 55β60% | "Too expensive," "Budget tightening," "Can't justify subscription cost right now" |
| 2 | ROI / Value Perception | 28β32% | "Not using the products enough," "Quality felt off last two orders," "Items don't fit my style anymore" |
| 3 | Accumulation / Storage | 12β17% | "Running out of room," "Too many items building up," "House is full" |
| 4 | Product Dissatisfaction | 8β11% | "Didn't like the March collection," "Too many throw pillows," "Wish there were more kitchen items" |
| 5 | Life Change | 6β9% | "Moving to a smaller place," "Just got married and consolidating," "Partner doesn't like the style" |
| 6 | Payment Lapsed | 8β12% | "Card declined," "Forgot to update payment after card change," "Bank account switched" |
| 7 | Gift Subscription Ended | 4β6% | "Was a gift from my sister," "Bought as a gift for a friend, they're done" |
Percentages sum above 100% because Rosa often logs multiple reasons per case. These represent % of cases mentioning each reason.
Critical Insight: Payment Lapsed Is Recoverable Revenue, Not Real Churn
8β12% of the cases Rosa is treating as cancellations are payment failures β the customer never chose to cancel. Their card expired or their bank account changed. These should route to a payment recovery flow (Recurly has this built in), not a win-back campaign. Rosa is currently spending the same win-back effort on them as on customers who consciously decided to leave. That's wasted capacity and misread churn numbers.
What We Built
rosa-cancellation-tracker.html (23KB). Structured logging with dropdown taxonomy (11 canonical reason codes derived from Rosa's data), daily stats, win-back rate tracking, PAYMENT_LAPSED vs real churn split, CSV export for BI. Replaces free-text with structured data that flows into a dashboard. Implementation: 2 hours.
8. Friday CS Coverage
What We Found
Customer service runs at reduced capacity every Friday. The two primary CS agents have the lowest Friday attendance on the team:
| Person | Fridays Worked | Attendance Rate |
|---|---|---|
| Maya Santos | 11 of 13 | 85% |
| Andre Torres | 11 of 13 | 85% |
| Sofia Reyes | 10 of 13 | 77% |
| Rosa Mendez | 10 of 13 | 77% |
| James Liu | 9 of 13 | 71% |
| David Chen | 7 of 13 | 58% |
Overall Friday capacity drop: 14.3% below MonβThu average (21.4 hrs/day team total β 18.3 hrs Fridays). The drop is entirely attendance-driven β when they do work Fridays, they work normal hours (7.8h). Five days during the period had zero CS coverage.
This is a decision, not an automation. But it's a decision that should be made consciously, not by default. Three straightforward options: stagger schedules so James and David don't both miss the same Friday, implement a Friday-only coverage rotation, or configure a Zendesk auto-responder that sets expectations for Friday response times. We implement whichever you choose, same week.
Additional Findings
Non-automation insights from the data worth knowing about. Some of these are more important than the automation opportunities.
Team Activity Logs Are Producing Zero Signal
The daily activity log system exists but has degraded into compliance theater:
- James's shift summaries are copy-pasted identically every single day: "Handle incoming tickets and follow up on escalations." Keystroke data caught the literal Ctrl+A, Ctrl+C, Ctrl+V sequence β he's copying his previous summary and re-submitting it.
- Sofia's shift summaries are identical across 50+ consecutive days: "Process Hootsuite inbox and schedule content for all platforms."
- David has zero shift summary data for the entire 3-month period.
- The "Issues Encountered" field was filled in substantively only for the first 10 days (Jan 3β14), then went to "None" for the next 3 months without exception.
- The escalation flag was never triggered a single time across 412 entries over 3 months. Not once. Nobody on this team has asked for help through the system.
Whether that means nothing is wrong, or means nobody trusts the system, is worth understanding.
Mood Scores Are Default Values
- James: Reported "3" (on a 1β5 scale) in 48 of 50 team logs. Two exceptions: "2" on back-to-back days with no corresponding note.
- Maya: Reported "3" in 52 of 53 team logs.
- Sofia: Consistently 2.5β3.0, never above 3.5 on any monthly average.
- Andre: Uniformly "2" across all 3 months, every entry.
These are not mood signals β they're default form values being submitted without engagement. The feeling tracker has no analytical value in its current state. If it's worth keeping, it needs a redesign that makes honest answers feel safe.
Andre Works Through Illness and Never Asks for Help
Andre's daily notes β which he writes genuinely, unlike the others β contain candid disclosures that never triggered an escalation:
- "Feeling run down this week, not sleeping well" (Jan 2026)
- "Power outages in the area slowing everything down" (Feb 2026)
- "Had a bad migraine all day, managed to push through" (Feb 2026)
- "Been sick since Monday but staying on top of listings" (Mar 2026)
- "Third day with a fever but not falling behind" (Mar 2026)
Session data on those days shows full 7β9 hour working sessions. He never takes sick days β he works through everything. The escalation flag stays off every time. This is someone who won't surface problems upward β and who runs a 3-channel e-commerce operation alone. That combination is a sustainability and retention risk.
Maya's Scope Expanded 2.5Γ With No Role Change
Comparing January 2026 activity data vs March 2026: Maya went from weekly sales reporting and spreadsheet maintenance to also doing Canva graphic creation, 80+ Shopify product descriptions, sold-out item management, Klaviyo email segment updates, Pinterest board curation, product photography asset organization, and managing influencer tracking sheets. Her Shopify activity grew 2.2Γ (621 events in Jan β 1,886 in Mar).
All of this logs as "Operations Support" at the same task label, same rate. If you're getting graphic design, copywriting, influencer coordination, and CMS management under "Operations Support" β either the role needs to be re-scoped, or someone doesn't know how much function has drifted into her lane.
Sofia Is Doing Strategic Work Beyond Her Title
From a content review session captured on Feb 19:
"the spring linen series is outperforming everything... last month saves were 4.2K
now we're at 11.8K... I've been reposting our older 'room reveal' style content
with slightly different hooks and they're picking up again β same products, fresh
framing. Pinterest especially loves these."
She maintains a content performance tracker, runs informal A/B tests on caption styles (question-hook vs statement-hook), analyzes platform data across channels, and proposes seasonal themes ahead of schedule. She creates graphics in Canva (18.2h total) and does occasional video editing in CapCut. Pinterest saves grew from 4.2K to 11.8K this quarter on the back of her seasonal content strategy.
This is not a "social media scheduler." This is someone analyzing performance data and running experiments. The comment inbox grind is taking 45β60% of her working time. That's the cost.
James Adopted AI Independently β Good Instinct, Wrong Tools
James uses ChatGPT on 16 of every 21 working days for two specific, task-relevant workflows β and he wasn't told to. He figured out on his own that AI could help with shipping status drafts and apology responses. He named the conversations ("Shipping Status Draft", "Apology Response") and returns to them repeatedly. This is someone who, given better tools, would use them immediately and well.
The problem isn't initiative β it's that both tasks he's using ChatGPT for are already solved within Zendesk, without leaving the app. He just doesn't know those features exist. That's a 2-hour fix, not a management problem.
"Operations Support" Is Two Completely Different Jobs
Maya Santos and Andre Torres both carry the "Operations Support" label. They do fundamentally different work:
- Andre: Runs the multi-marketplace e-commerce operation. eBay, Etsy, Amazon, Shopify DTC listings. Adobe Photoshop for product images. Pricing. Listing copy. Keyword research. Inventory coordination across 3 channels.
- Maya: Runs internal reporting and media intelligence. Weekly summaries for leadership. Social media tracking across 4 platforms. Shopify data entry. Graphic creation in Canva. Newsletter segment updates in Klaviyo. Influencer tracking sheets.
These are not interchangeable. If Andre leaves, marketplace listings stall. If Maya leaves, leadership loses its data visibility layer. The shared label creates a false sense of redundancy where none exists.
David Has Near-Zero Tracking Data
David Chen (Customer Service, 3.5-year tenure, 432 hours logged) has: 312 total app events in 30 days (vs James's 14,218), 2 keystroke events, 4 idle records, and zero shift summary reports for the entire 3-month period. The Go2 tracking agent appears to be partially deployed on his machine.
We can confirm he's working β Zendesk, Shopify, Slack, and carrier tracking tools are visible in the one full day of URL data we captured. But we cannot assess his throughput, quality, or efficiency. We can't compare him to James. He's a black box.
Additionally: 14% of his work log entries (38 of 271) have been manually edited, mostly rounding to exact :00 minute boundaries. Not confirmed as an issue β could be habit, could be something worth looking at alongside the tracking gap.
Team Profiles
| Person | Role | Tenure | Hours (3mo) | Primary Tools | Key Finding |
|---|---|---|---|---|---|
| James Liu | Customer Service Lead | 3 yrs | 534h | Zendesk, Recurly, Shopify, ChatGPT | Adopted AI independently. Handles CS, upsell batching, and escalations. Good instinct β wrong tools. Zendesk native features replace everything he's using ChatGPT for. |
| David Chen | Customer Service | 3.5 yrs | 498h | Chrome (Zendesk, Shopify, carrier tools β largely opaque) | Tracking gap β Go2 agent partially deployed. Cannot assess throughput or compare to James. 38 manually edited work log entries. Black box. |
| Andre Torres | Marketplace Operations | 2 yrs | 521h | eBay, Etsy, Shopify, Photoshop, Amazon Seller Central | Runs 3 sales channels alone. Works through illness β never escalates. Manual pricing pipeline runs every single day. Retention risk. |
| Maya Santos | Operations Support | 2.5 yrs | 508h | Google Sheets, Shopify, Canva, Klaviyo, CapCut | Scope expanded 2.5Γ with no role change. 38h/month on automatable data transcription. Under-titled for what she's actually doing. |
| Sofia Reyes | Social Media | 1.5 yrs | 496h | Hootsuite, Gemini, Instagram Studio, Canva, Notion | Biggest automation opportunity. Grew Pinterest saves from 4.2K to 11.8K with self-built seasonal strategy. 45β60% of her time on a copy-paste workflow that can be automated. |
| Rosa Mendez | Retention Specialist | 2 yrs | 643h | Convoso, Zendesk, Recurly, Google Sheets | Solo function β zero backup if she's out. Cancellation data trapped in personal notes. PAYMENT_LAPSED (8β12% of cases) being treated as real churn. Recoverable revenue going untracked. |
Tools Built
Functional prototypes built during the audit β these represent the middle tier. Better tools for manual work, not full automation. All are single-file HTML applications that run offline in any browser, no setup required. The actual client received these plus full pipeline implementations.
Andre's Pricing Calculator
Four-platform pricing tool (eBay, Etsy, Amazon, DTC). Enter cost, get instant listing price with full fee breakdown per marketplace. Visual margin bar. Adjustable targets. Replaces the Calculator + Notepad pipeline immediately.
26KB Β· andre-pricing-calculator.htmlAndre's Pricing Engine v2
Full product catalog with multi-marketplace comparison, bulk pricing mode for catalog listings, and sale price modeling. Built from actual fee structure data decoded from Andre's keystroke sequences.
54KB Β· meridian-pricing-engine.htmlSofia's Comment Engine
Batch comment processing UI. Paste 50 comments, get 50 AI-generated replies with Meridian brand voice pre-loaded from Sofia's captured reply patterns. Review, edit, approve, copy. Supports multiple AI APIs.
41KB Β· meridian-comment-engine.htmlMaya's Ops Dashboard
5-tab application: Etsy Live Scoreboard, multi-platform sales reporting, social media metrics tracking, product management, and analytics. Organizes Maya's workflows and eliminates all Calculator arithmetic (Tier 2).
79KB Β· meridian-ops-dashboard.htmlJames's Upsell Batch Processor
CSV import of customer list, template builder with variable chips (first_name, plan_tier, renewal_date), bulk message generation, copy-to-send output. Eliminates the copy-paste Alt+Tab loop between Google Sheets and Recurly.
39KB Β· james-upsell-batch-processor.htmlRosa's Cancellation Tracker
Structured cancellation logging with 11 canonical reason codes (decoded from Rosa's keystroke data), win-back rate tracking, PAYMENT_LAPSED vs real churn split, and CSV export for BI. Replaces unstructured personal notes with data that actually aggregates.
23KB Β· rosa-cancellation-tracker.htmlJames's Zendesk AI Config Guide
Complete step-by-step configuration: 7 macros with exact copy-paste text and Shopify variable paths, 5 trigger-based tagging rules, 4 filtered views, optional auto-reply for shipping queries. No code β just Zendesk admin configuration.
14KB Β· james-zendesk-ai-config.mdData Sources
What Was Analyzed
| Activity Records | 512,441 app/web events from behavioral telemetry database (3 months daily + 30 days granular per person) |
| Work Logs | 2,041 entries β timer-based task logging with manual start/stop |
| Shift Summaries | 412 self-reported team reporting entries covering plans, wins, issues, mood, KPIs |
| Keystroke Data | 682 daily records + granular 30-day capture per person. Decoded for workflow patterns, prompt text, data entry sequences |
| Sessions | 1,124 session records (login/logout timing) |
| Idle Time | 398 idle detection records |
| Schedules | 986 schedule entries (recurring shifts) |
How It Was Analyzed
Analysis performed locally via a secure Postgres pipeline on Go2's infrastructure. Raw data never left the local environment. Every data file was loaded and cross-referenced. Keystroke sequences were decoded to reconstruct actual workflows β what keys were pressed, what windows were active, what text was typed. App window titles were parsed to identify specific tools, pages, and documents. ShopifyQL queries were extracted from browser URL parameters. AI prompt patterns were reconstructed from typing sequences. All numbers in this report trace back to counted events in the source data.
Data Collection
All behavioral data was captured by the Cowork.ai telemetry daemon running within each team member's Go2 desktop application. The daemon captures the full behavioral data spectrum β application usage, window focus patterns, keystroke cadence analysis, URL navigation sequences, idle detection thresholds, and session boundary events β stored locally on each machine before secure insight extraction.
Known Data Limitations
- macOS telemetry coverage: The Cowork.ai daemon on macOS captures app-level and window-level events but has reduced keystroke cadence telemetry vs the Windows agent. Maya and David (both macOS) were analyzed primarily through application focus patterns and URL navigation data.
- Cadence binning: Keystroke telemetry is captured in 1-minute cadence bins, not individual keypress events. Rapid sequences within a single bin are collapsed. All keystroke-derived counts in this report are floor estimates.
- Browser opacity: When a team member works entirely within Chrome, the telemetry captures the active window title but not always the full URL path. Site-level behavioral data is incomplete for some team members on some days.
- Self-reported metrics: Ticket counts, satisfaction scores, and call volumes in team logs are self-reported and were not cross-validated against source system APIs for this audit.
- David: partial daemon deployment. The Cowork.ai agent appears partially configured on David's machine for most of the audit period. Behavioral data coverage is insufficient to assess his workflows or throughput with confidence.
What's Next
Full transparency on something we noticed partway through: the first pass of this audit produced in-between tools β dashboards, calculators, batch processors. Better process, same nails. A second pass made the gap clear. The real opportunity isn't better hammers β it's the automation layer below all of it. Scheduled scripts. API pipelines. Workflows that run without anyone opening an app.
Here's what we recommend, in priority order:
- Configure Zendesk AI for James β same day. Two hours. Zero code. Admin access and we're done. We wrote every macro template, every trigger rule, every variable path. James goes from ChatGPT workarounds to native features that are already in your stack. This is free to implement and saves 12β18 hours a month starting immediately.
- Build Maya's Shopify script β this week. A scheduled Google Apps Script that pulls data from your 3 Shopify storefronts into her existing sheets before her shift starts. We have the exact ShopifyQL queries from her browser β they go straight into the API. She opens a finished report instead of building one. Calculator goes to zero. 38 hours a month recovered.
- Build the comment reply pipeline for Sofia. We start with a proof run: 20 recent comments, brand-voice replies generated from 180+ of her actual replies, you review them. If 15 out of 20 are good on the first pass, you'll know this works before committing anything. From there, full pipeline within a week. She goes from 118 items/day to reviewing 12β18 exceptions. The spring campaign inbox growth is not slowing down β this needs to happen before summer.
- Automate Andre's pricing. Pull product costs from Shopify API, apply the fee formulas we decoded, output a pricing sheet for all 4 platforms. Andre spot-checks weekly. He stops working sick because the pipeline doesn't need him there β and we stop being one migraine away from listings going stale.
- Structure Rosa's cancellation data. 74 logged reasons a month, going nowhere. The taxonomy is already decoded. 55β60% Financial, 28β32% ROI/Value, 8β12% PAYMENT_LAPSED. That last category is recoverable revenue being counted as churn. Connecting this to a dashboard β churn by reason, by tier, over time β is a 2-hour implementation that gives you something you've never had: actual visibility into why people leave.
- Everything else. Upsell batch automation for James. Friday coverage scheduling. A complete team reporting system redesign β the current one is producing zero signal, with 100% copy-paste summaries, unanimous "3" mood scores, and an escalation flag that has never been triggered in 3 months across a 6-person team.
The prototype tools we built are yours regardless. They work. Here's what exists:
| Tool | What It Does | Tier |
|---|---|---|
| Andre's Pricing Engine | 4-marketplace calculator with fee breakdowns, product catalog, sale mode | Dashboard |
| Sofia's Comment Engine | Batch comment processing with brand voice, approve/edit/skip review | Dashboard |
| Maya's Ops Dashboard | 5-tab app: sales, social, products, Etsy scoreboard, analytics | Dashboard |
| James's Upsell Processor | CSV import, template apply, bulk generate, copy-to-send | Dashboard |
| Rosa's Cancellation Tracker | Structured logging with 7-category taxonomy, win-back rates, CSV export | Dashboard |
| James's Zendesk Config Guide | Step-by-step with all macros, triggers, views β needs admin access only | Full solution |
We have the data, the analyses, and the prototypes. Everything above can be built as real automation β not dashboards. The smallest next step is Zendesk access for James. That one's done in an afternoon, and the savings start the same day.
go2.io Β· [email protected]
Based on a real Go2 audit delivered to an actual client. Names, numbers, tools, and business details have been changed to protect privacy. The actual client received this report alongside a complete deliverable package β a zip file with all working tools, implementation guides, API references, configuration scripts, and step-by-step documentation. Everything referenced above was built and delivered, not just recommended.