Internal toolsIn production
Sidekick + CS Dashboard
Building an AI assistant and the platform behind it.
Forge Notable Winner · US$10,000
- Of human-handled tickets used Sidekick
- 47%
- 6,593 of 13,951 tickets · June 1–September 29, 2026; Fin-resolved tickets excluded.
- Payment cases tracked in the shared CS and Operations pipeline
- 853
- All-time total as of September 29, 2026, including cases logged before the July spreadsheet cutover.
- To notify and close 74 incident tickets
- 7m 13s
- July 29, 2026 · Zero failed items in this run. Execution time for one audited batch, not the whole incident.
The short version
- The problem
- Conversation context, payment cases, and reporting lived across separate tools.
- What I built
- Sidekick, a Chrome extension that drafts replies inside Intercom, and CS Dashboard, a web platform for payment cases, analytics, and controlled bulk actions. I own development, AI integration, rollout, and measurement.

Live All Time view captured September 24, 2026, cropped to aggregate analytics; its drafting-time figure is modeled, not measured.
Sidekick: context handling and draft recovery
Sidekick is a Chrome extension that helps agents reply without leaving Intercom. It can draft a response from the active conversation, improve an existing draft, or prepare a structured escalation. The agent reviews the output and remains responsible for sending it.
Unfinished replies are preserved, and suggestions stay attached to the right case while agents switch conversations or keep typing during generation. Selected sensitive values are replaced in the browser before generation.
Sidekick has recorded 13,362 drafts sent as of September 29, 2026. Across all message sends, agents have sent 15,780 messages through Sidekick.

Sidekick prepares the reply, and the agent decides whether to insert, review, and send it in Intercom (LFG evidence packet, page 2).
All five rostered agents used Sidekick in the 30 days to August 31. In that window, 84% of scored sends needed no or light editing: 3,522 of 4,201.
CS Dashboard: backend services and telemetry
A React interface connects agents, managers, and Operations to Fastify services, PostgreSQL, and Redis. Overview shows workload, coverage, and emerging issues. Performance tracks response times, resolution effort, quality signals, and service levels.
Sidekick Analytics connects drafting activity, captured sends, and editing behavior. AI Coach assembles coaching reports, and Monthly Pulse turns capacity, coverage, and quality into a leadership readout.
Payment cases: transactions and concurrency
Replaced the team's payment-tracking spreadsheet with a shared workflow for Customer Support and Operations. The pipeline has tracked 853 cases, including 372 created automatically, and connects case ownership, resolution notes, customer follow-up and completion in one place.
Payment Issues became the system of record at the July 2026 cutover. The case history reaches further back, so the cumulative total includes cases logged before the spreadsheet was retired. Cases move through visible stages with ownership, payment details, activity history, and Slack updates, and Operations can work them without an Intercom seat.
Case changes and audit history are committed together. Duplicate-case checks handle competing requests, and stale edits are rejected.
When Operations resolves an eligible refund case, automation handles the customer notification, closes the ticket, and moves the card to Completed. Some cases deliberately complete without sending a message. Other payment resolutions stay with an agent: Sidekick prepares a case-specific reply from the case data and Operations notes, and the agent reviews and sends it before confirming completion.

Sanitized screenshot with fictional customer names, emails, and case IDs; workflow states, tags, counts, and timestamps are preserved (LFG evidence packet, page 3).
853 cases tracked as of September 29, 2026: 372 created automatically and 481 manually, so about 44% of recorded cases were created automatically. The operations dashboard shows 112 refund completion transitions: 67 notification outcomes and 45 automatic no-message skips.
Controlled automation for incident response
An incident first prompted a bulk-action script. I turned it into a dashboard workflow with marker-based selection, a mandatory preview, a per-run cap, duplicate-action controls, and audit records.
The largest audited run, on July 29, notified and closed 74 of 74 tickets with zero failed items in 7 minutes 13 seconds of execution time. Across three runs from June 30 through August 31, all 87 ticket work units reconciled.
- SelectMarker-based ticket selection
- PreviewReview scope before execution
- ExecuteCapped, duplicate-controlled actions
- ReconcilePer-item results and audit records

Selection, action scope, and a required preview are explicit before a run can proceed (LFG evidence packet, page 4).
Analytics & reporting
I developed recurring Voice of the Customer reports from conversation data and followed up with targeted investigations. The July report reconciled 5,964 conversations against Intercom totals.
I also delivered a 90-day corpus of 9,642 categorized, PII-redacted messages to Growth, and a 94-record migration-risk snapshot that my manager made a standing CS workflow feeding Risk reporting.
Decisions & evidence
Engineering decisions
Keep assistance inside the workflow
Sidekick works in Intercom, operational updates reach Slack, and managers use shared reporting. The tools follow how the team already works.
Use explicit rules for operational actions
AI helps with language and synthesis. Payment state transitions, eligibility checks, audit records, and bulk-action controls use defined application logic.
Preserve human review
Agents review replies and escalations, managers review coaching reports, and higher-impact bulk operations require a preview before execution.
Redact before generation
The security review documents client-side tokenization, a server-side redaction backstop, and a reversal map kept in the browser. Pattern-based redaction has limits, so it is one layer alongside restricted access and human review.
Make audit logging a precondition
The documented backend wrappers record a redaction audit event before calling the model. If that write fails, the request is aborted. AI output has no autonomous operational write authority.
Treat safeguards as product
Team feedback shaped draft recovery, visible automation failures, and required previews. Those controls earn trust as much as the AI generation does.
Recognition & broader contribution
Forge Notable Winner
The combined Sidekick + CS Dashboard submission received a US$10,000 award.
Frontline delivery alongside the build
From January to August 2026 I also sent 4,088 customer replies, closed 2,879 conversations, and held a 4.8 dashboard CSAT while developing and operating these tools.
Documented security review
The security review records GREEN outcomes for both repositories on May 15, 2026, following remediation. Governance and employee-privacy workstreams are tracked separately.
Measurement & source notes
Ticket coverage
6,593 of 13,951 human-handled tickets (47%, rounded), June 1–September 29, 2026, excluding Fin-resolved tickets. This overlaps the earlier January–August 28% figure; it is not a before-and-after comparison.
Drafting figures
The 84% figure concerns scored sends, not all generated drafts or factual accuracy. Captured sends are events, not unique drafts or customers, and each measure uses its own denominator. The 13,362 drafts sent are reported separately from total message sends; neither count represents unique tickets. The 15,780 messages sent through Sidekick are an all-time count of send events as of September 29, 2026, not unique customers or tickets. Drafting time saved is modeled, not observed labor savings, and the live All Time screenshot covers a different range from these historical windows.
Payment case figures
The 853 cases are an all-time total as of September 29, 2026 and include cases from before the July cutover. The 44% share describes how cases were created, not how many were resolved automatically.
Refund automation figures
The 112 refund completion transitions come from the operations dashboard. Of those, 67 had a notification outcome and 45 were automatic no-message skips, so the transitions are not all customer notifications. These are workflow records, not confirmed inbox deliveries.
Bulk-run figures
7m 13s is the execution time for the audited July 29 batch, separate from the June 5 incident. It excludes surrounding incident and operator work. Counts are ticket work units, not unique customers.
Reporting figures
The Voice of the Customer report, Growth corpus, and migration-risk snapshot had different or overlapping populations, so they are not one combined reach figure.
Sources
My LFG 2026 Evidence Packet (pages 2–6, definitions on page 8) and Forge product submission. The packet's cutoff is August 31, 2026 at 21:10:30 UTC, so August 31 is partial. Ticket coverage and the drafts-sent total were updated with owner-supplied figures on September 29, 2026. Current payment and refund totals come from the CS Dashboard operations view on September 29, 2026.
Figures come from my LFG evidence packet, the Forge product submission, the security review, the September 24 case study, and the CS Dashboard operations view on September 29, 2026.
Let's
talk.
Looking for someone who can build the whole thing?
Software engineering, applied AI, and thoughtful product work. I'd like to hear what you're building.
