Skip to content
All case studies
AI and Process InnovationSystems ArchitectureCampaign Operations

Marti — a MarOps AI teammate

Built an AI teammate for Marketing Operations that lives in Microsoft Teams — answering process questions accurately, querying Asana for status and blockers, and creating campaign operations tickets directly. Two-agent architecture separates reasoning from action, a three-tier knowledge model routes every answer to one source, and anti-fabrication guardrails keep it from inventing process. The connector layer is built to extend beyond Asana, so new systems join as tools rather than rebuilds.

Environment
Global B2B SaaS enterprise
Status
Pilot — enabled for a subset of Marketing
My role

Sole designer and builder, end-to-end: architecture, agent instructions, knowledge base authoring, platform configuration, test design, defect triage, and launch readiness.

The problem

The default had to move from “go DM someone” to “go ask Marti” — without shipping an assistant that invents process. In an operations context, a confidently wrong answer is worse than no assistant at all. Building it meant confronting how little existed to build on, which opened a broader question about how the organization should run an operations knowledge center globally.

Context

Campaign Operations ran on a rules-based intake process that lived almost entirely undocumented. The default way to get an answer was to DM whoever was most likely to know it — and across a globally distributed team, a question asked after someone's day ended waited until their next one, with the same few people in the path of every request. A parallel redesign was changing that process at the same time, which made enablement part of the problem: a team can only follow a process it can find.

What I did

How I approached it

  • 01Scoped the knowledge base to the rollout, not a wish listThe five domains matched what the parallel process redesign actually needed people to know at launch, not a theoretical map of everything Campaign Ops does.
  • 02Split reasoning from action, deliberatelyObservability and control mattered more than convenience — one agent doing both makes it impossible to audit which part failed, or improvised, and why.
  • 03Built within the platform already approvedMicrosoft Copilot Studio was the enterprise-sanctioned tool, so the agent split and the guardrails had to be achieved within its constraints, not a purpose-built stack.

What I built

Two agents, not one
Marti reasons, retrieves, and reads Asana. A second agent holds the only write capability, and it does one thing. Nothing can improvise a task.
Three tiers of knowledge
Live state comes from Asana. Reference values and rules live in knowledge files. State is never written into documentation, so it can never go stale there.
A knowledge base built for retrieval
Markdown across five domains, routed by frontmatter, one source per fact. Structure came first because accuracy depends on it.
Guardrails against fabrication
Inferred answers say they're inferred. Conflicts surface both sides and get flagged. Anything unknown is labeled not official process rather than guessed at.
A correction loop back to the source
Corrections route to Campaign Ops through a defined gate, so a fix lands in the knowledge base instead of in one person's memory.

Supporting materials

Marti's avatar — an illustrated inventor character

Walkthrough

Demo environment — sample data
Marti in conversation: policy answer from the knowledge layer, live task lookup, then a confirmation-gated write

Architecture

Supporting detail
Agent registry showing Agent Reasoning and a child Agent Task Creator triggered by it
The reasoning agent and its write-only child. New capabilities get added here as additional scoped agents behind the same Teams interface — a Marketo email performance agent is scoped next.

Diagrams and figures are representative. Proprietary architecture, internal system names, and confidential customer details are omitted or generalized.