AI & Automation

AI Agent Performance Dashboard

Marq has six AI helpers doing sales outreach on their own. I built the page where the team sees at a glance that all six are healthy and doing their job, without opening the tools they run in.

Client: Marq

Key Metrics

6/6 Agents Live
394 Runs, Last 30 Days
0% Error Rate, Last 7 Days
0 Secrets in the Browser

Project Details

Marq runs six AI agents that work its pipeline around the clock: qualifying new leads, reviving closed-lost deals, winning back churned customers, chasing demos that never got a follow-up. I built most of them, and the question that follows "it works" is always "is it still working?" This dashboard is Marq's answer: one page showing the whole fleet's health and output, refreshed automatically every morning, built with zero new infrastructure - no backend, no database, no framework. The week I took these screenshots it was tracking 394 runs over 30 days at a 0% error rate, readable by anyone at Marq in five seconds.

Challenge

  • Six agents, two runtimes, one blind spot. The fleet runs across n8n and GitHub Actions. Checking on it meant opening each workflow one at a time, in tools that need admin access most of the team does not have.
  • Quiet has two meanings. An event-driven agent that has not fired in days is healthy; a scheduled one that missed its slot is broken. Raw execution lists do not tell you which is which, so reading them required someone who knew every agent's trigger by heart.
  • History was evaporating. n8n cloud retains roughly 30 days of executions. Beyond that there was no durable record of what the fleet had done, awkward for a system whose value is measured over months.
  • "Is it running" is not "is it working". Run counts say nothing about pipeline. The team needed a place where business outcomes per agent, opportunities created and meetings booked, could be proposed and reviewed against real CRM data.

Approach

A status language humans can read

Every agent shows one of four states: Live, Live-Waiting, Stale, or Error. The one that matters is Stale, "scheduled but hasn't run when expected, worth a look", because that is the only state that actually needs a human. Event-driven agents show Live-Waiting so a quiet week reads as healthy instead of alarming. The legend sits at the top of the page, and nobody needs to know what n8n is to use it.

Git is the database

A scheduled n8n workflow pulls the fleet's run history from n8n's own executions API and GitHub Actions each morning, normalizes it, and commits the result as a JSON file to the dashboard's repo. Vercel redeploys on the push, and the page, about 600 lines of plain HTML, CSS, and JavaScript with Chart.js, simply reads the committed file. That one decision does three jobs at once: there is no backend or database to run, API keys never leave n8n so the browser is shipped zero secrets, and every refresh is a commit, turning git history into a permanent audit trail that outlives n8n's 30-day retention window.

Outcomes shown honestly, as a draft

The bottom of the page connects each agent to proposed business-outcome metrics pulled read-only from HubSpot: revival opportunities created and progressed for the deal agents, people in cadence and meetings booked for follow-ups. It is labeled a draft on purpose, definitions offered for the team to challenge rather than wins being claimed. Deal names are redacted at the source, so the dashboard holds run data and aggregates, never customer records.

Results

  • One page replaced six workflow checks. 6 of 6 agents live, 132 runs in the last 7 days, 394 over 30, 0% error rate, visible at a glance with no n8n or GitHub access required.
  • Silence is no longer ambiguous. The Live-Waiting and Stale split means the only agents that draw attention are the ones that genuinely missed a scheduled run.
  • The fleet has a permanent record. Every morning's refresh is a git commit, so run history accumulates indefinitely instead of expiring after 30 days.
  • ROI conversations happen over shared numbers. 57 revival opportunities from the closed-lost agent, 109 people in cadence and 3 meetings booked from missed follow-ups, each with its measurement definition printed on the page.
  • Zero new infrastructure. A static page, the n8n instance Marq already runs, and a Vercel deploy. Nothing new to maintain, secure, or pay for.

Four of the six agents on this page have their own case studies here: the lead qualifier, the closed-lost revival agent, the churn win-back agent, and the missed follow-up pipeline.

Tools Used

JavaScript (vanilla), Chart.js, n8n (scheduled data pulls committed to git), n8n Executions API, GitHub Actions run history, HubSpot CRM API (read-only), Vercel

Observability Dashboard AI Agents n8n GitHub Actions HubSpot Chart.js JavaScript Vercel Ops Reporting

Get Started

Looking to Hire?

I bring 19+ years of cross-functional experience to every role. Connect on LinkedIn to learn more.

Need a Consultant?

Whether it's a short sprint or a long-term engagement, I'm ready to help your team deliver better results.