# AI agent spec cards for marketing agencies: 15 workflows to build, with gates, costs and failure modes

RevSmith, updated 4 November 2026. The printable companion to [AI agents for marketing agencies](https://revsmith.in/guides/ai-agents-for-marketing-agencies). Written to be built in any tool: an automation platform, an AI assistant with tools, or an agency operating system.

## How to use these cards

1. Pick one card. Start where hours are high, the steps repeat, and a mistake stays inside the agency (cards 1, 12 and 13 are good first builds).
2. Copy the card into your own build doc and fill the blanks for your agency: thresholds, owners, channels, tools.
3. Before switching it on, record the baseline (minutes per task today) for two cycles.
4. Run it on one client in a test mode that holds every send. Read every output for two cycles.
5. Widen to more clients only when errors caught at the gate are falling and none have reached a client.

Pair every card with the agent permission policy (`agent-permission-policy.md`).

## The fields

| Field | What to write |
|---|---|
| Trigger | What starts a run: a schedule, an event, a form, a person |
| Data it reads | Every source, by name. If it is not listed, the run does not read it |
| Agent or step | Workflow (fixed steps) or agent (chooses its steps), which steps are code and which are AI |
| Human gate | Who approves what, before what happens |
| Output | What the run produces and where it lands |
| Cost per run | Run size and its range at a dated list price (see below) |
| ROI metric | The one number that says whether the card earns its keep |
| Failure modes | What goes wrong, and the check that catches it |
| Variants by agency type | How performance, SEO, social and creative agencies change it |

## Cost per run: the method

For each AI call in a run: input tokens × input price + output tokens × output price, divided by 1,000,000. Add up the calls. An agent costs more than a workflow because every tool call is a new AI call that re-reads the instructions and everything found so far.

Worked once, on Claude Sonnet 5.5 at $2 input and $10 output per million tokens (Anthropic list price, checked 4 November 2026): a run that reads 40,000 tokens and writes 3,000 costs $0.08 + $0.03 = **$0.11**. If 30,000 of the input tokens are a cached prefix read at $0.10 per million (Anthropic's pricing page, opened 5 November 2026), it costs $0.003 + $0.02 + $0.03 = **$0.053**, after a cache write of $0.075 that lasts five minutes (so caching pays off on calls close together, such as the steps of one run).

| Run size | Tokens in | Tokens out | Sonnet 5.5 list price |
|---|---|---|---|
| Small: one short AI call (a note, a classification) | 5,000 to 25,000 | 500 to 2,000 | $0.015 to $0.07 |
| Medium: a drafted document over a few calls | 30,000 to 120,000 | 2,000 to 6,000 | $0.08 to $0.30 |
| Large: an agent loop or a long transcript | 150,000 to 500,000 | 5,000 to 15,000 | $0.35 to $1.15 |

These are estimates, not measurements. Prices change: re-check https://platform.claude.com/docs/en/about-claude/pricing (or your provider's page) on the day you budget. Monthly figures below assume an example agency with 18 retainers.

## Blank card

| Field | Value |
|---|---|
| Trigger | |
| Data it reads | |
| Agent or step | |
| Human gate | |
| Output | |
| Cost per run | |
| ROI metric | |
| Failure modes | |
| Variants by agency type | |

Owner: ______  Clients in scope: ______  Baseline recorded on: ______  Go-live date: ______  Next review: ______

---

## The 15 cards

### 1. Monthly report draft

| Field | Value |
|---|---|
| Trigger | Schedule: the 1st of the month, per client, after the overnight data pull has finished |
| Data it reads | Last month and the month before per channel, from stored numbers (not live calls); goals and targets; last month's approved report; notes from the month's calls; open promises |
| Agent or step | Workflow, three steps. Code totals every figure and works out each change. One AI step writes the words around those figures: what moved, why, what we do next. A check step compares every number in the draft with the code's table and drops any line it cannot match |
| Human gate | The account manager approves the words before anything reaches the client. The send follows your rule for client sends |
| Output | A draft summary waiting for approval, next to the figures it describes |
| Cost per run | Medium: $0.08 to $0.30. 18 clients: $1.44 to $5.40 a month |
| ROI metric | Minutes from "data ready" to "approved", per client; share of drafts approved with light edits only |
| Failure modes | A figure invented or misread (code makes every figure; the check drops strays). A source that stopped reading overnight (refuse to draft when a source's last read is older than a day, and say which). A cause nobody confirmed (a cause must cite a note or a call; otherwise write "cause not known") |
| Variants by agency type | Performance: spend, CPA, ROAS by campaign, with pacing. SEO: clicks, impressions and the pages that rose or fell. Social: reach, engagement and best posts. Creative: deliverables shipped and approval rounds, not media numbers |

### 2. Weekly client update

| Field | Value |
|---|---|
| Trigger | Schedule: Thursday afternoon in the client's time zone, per client |
| Data it reads | Tasks done this week and due next; approvals waiting on the client; client dependencies due; the week's key numbers against last week; notes from this week's calls |
| Agent or step | Workflow, two steps. Code gathers the lists. One AI step writes five to eight lines in the agency's voice: done, next, what we need from you |
| Human gate | The account manager reads and sends, every time. Keep the gate even when drafts are good: a weekly update is where a wrong promise does the most harm |
| Output | A draft email or Slack message in the client's usual channel |
| Cost per run | Small: $0.015 to $0.07. 78 runs (18 clients, weekly): $1.17 to $5.46 a month |
| ROI metric | Share of updates out by Friday noon; minutes per update; "where are we on X?" messages from clients (should fall) |
| Failure modes | A task that was only moved reported as done. A date nobody agreed (take dates only from task due dates). Another client's item (one client per run). Tone drifting from the agency's voice |
| Variants by agency type | Performance: spend against pace. SEO: content published and indexed. Social: posts scheduled and awaiting approval. Creative: rounds and what sits with the client |

### 3. Performance watch and anomaly alert

| Field | Value |
|---|---|
| Trigger | Daily after the data pull. AI runs only when a code rule trips: for example CPA over target by your threshold three days running, spend with zero conversions, or spend stopping |
| Data it reads | Daily figures by account and campaign; targets; a 28-day baseline; the team's change log (what changed and when); known events such as sales and holidays |
| Agent or step | Code detects. An agent with read-only tools diagnoses: checks recent changes, splits the data by campaign, device and region, tests for broken tracking first, and writes a short note with a proposed fix |
| Human gate | The media buyer reviews the note and makes any change in the ad platform. The agent never changes bids, budgets or status |
| Output | An internal alert: what moved, the likely cause with evidence, the proposed fix, and how sure it is |
| Cost per run | Code checks: no AI cost. Diagnosis: Large, $0.35 to $1.15 per alert. 10 alerts: $3.50 to $11.50 a month. Calling AI daily on every client instead (540 Small runs) would cost $8.10 to $37.80 a month and tell you nothing new on most days |
| ROI metric | Hours from anomaly to a person acting; false alerts a week (few enough that people still read them); spend wasted before detection |
| Failure modes | Alert fatigue (tune thresholds; review false alerts weekly). Broken conversion tracking read as a performance drop (check tracking first). A confident cause with no evidence. Stale data |
| Variants by agency type | Performance: CPA, ROAS, spend. SEO: clicks falling in Search Console, pages dropping out of the index. Social: engagement rate drops, a post flagged. Creative: approval turnaround slipping |

### 4. Budget pacing check

| Field | Value |
|---|---|
| Trigger | Daily (or every Monday), per account with a monthly budget |
| Data it reads | Month-to-date spend per account; the month's budget; days gone; planned heavy weeks; budget changes agreed with the client in writing |
| Agent or step | Workflow. Code works out pace = share of budget spent ÷ share of the month gone, and flags accounts off by more than your threshold. One small AI step writes a note for flagged accounts only, with the daily spend that lands on budget. Example: $6,200 of $10,000 spent by day 15 of 30 is 62% of budget in 50% of the month, 124% of pace; landing on budget needs ($10,000 − $6,200) ÷ 15 = $253.33 a day, against the $413.33 a day run so far |
| Human gate | The media buyer changes budgets in the platform. Any spend above the client's agreed budget needs the client's written yes |
| Output | A list of off-pace accounts with the daily spend needed to land on budget |
| Cost per run | Code: none. Note: Small, $0.015 to $0.07 per flagged account. 20 notes: $0.30 to $1.40 a month |
| ROI metric | Accounts ending the month within your threshold of budget; overspend credits given back; minutes per pacing check |
| Failure modes | An out-of-date budget figure (keep budgets in one place, dated). Planned heavy weeks ignored. Platform reporting delay. Currencies mixed across accounts |
| Variants by agency type | Performance and paid social: core. SEO: content hours used against the retainer's allowance. Creative: production spend against the approved quote |

### 5. Ad copy variants from the brief

| Field | Value |
|---|---|
| Trigger | By hand, when a campaign brief or test plan is approved |
| Data it reads | The approved brief; brand voice and banned words; past winners and losers with their numbers; platform character limits; claims the client may not make (health, finance, "best", prices) |
| Agent or step | Workflow. One AI step writes variants per angle. A check step tests character limits, banned words and restricted claims, and returns a table |
| Human gate | The copywriter or account lead picks. The client approves before anything goes live. Nothing is uploaded to the ad platform by the run |
| Output | A variants table: headline, primary text, angle, the hypothesis it tests, character counts |
| Cost per run | Medium: $0.08 to $0.30 per batch |
| ROI metric | Variants approved per batch; minutes per approved variant; share of tests that produce a winner |
| Failure modes | Claims the client cannot make. Over the character limit. The same idea in five wordings. Copy for the wrong market or language |
| Variants by agency type | Performance: search and paid social ads. SEO: title tags and meta descriptions. Social: post captions with hooks. Creative: taglines and concept lines |

### 6. Creative brief from client context

| Field | Value |
|---|---|
| Trigger | By hand, when a request is accepted as in scope or a campaign is approved |
| Data it reads | The client's brand, audience and offer; past results and lessons for this client only; the request itself; deliverable specs; deadline; budget |
| Agent or step | Workflow. One AI step fills a fixed brief template. Gaps are listed as questions, never guessed |
| Human gate | The account lead edits and signs off before the creative team starts. The client sees it only if your process shares briefs |
| Output | A one-page brief: objective, audience, single-minded message, mandatories, deliverables with specs, dates, open questions |
| Cost per run | Medium: $0.08 to $0.30 |
| ROI metric | Revision rounds per deliverable (should fall); briefs sent back by the creative team for missing information |
| Failure modes | Plausible guesses filling gaps (an unknown stays a question). Lessons from another client. Old brand facts (the brief shows where each fact came from) |
| Variants by agency type | Performance: ad sets and sizes. SEO: page brief (card 8). Social: monthly content themes. Creative: campaign concept brief |

### 7. UGC script (creator brief)

| Field | Value |
|---|---|
| Trigger | By hand, when a creator is booked or a UGC batch is planned |
| Data it reads | Product facts; claims allowed; customers' own words from reviews and comments the client supplies; platform format; the creator's style; usage rights terms in the contract |
| Agent or step | Workflow. One AI step writes three hooks and one or two scripts per angle, with shot notes. A check step tests claims and the required ad disclosure |
| Human gate | The account lead approves; the client approves claims; the creator may adapt the wording in their own voice |
| Output | Script with hook, body and call to action; shot list; on-screen text; disclosure; a do-not-say list |
| Cost per run | Medium: $0.08 to $0.30 |
| ROI metric | Scripts the creator films without a rewrite; days from booking to script; the hook rate of the resulting ads, if you track it |
| Failure modes | Sounds like an ad, not a person. Claims the product cannot support. Missing ad disclosure. Usage beyond what the contract allows |
| Variants by agency type | Performance: hooks tied to the test plan. Social: organic creator posts. Creative: campaign hero scripts. SEO: how-to video scripts |

### 8. SEO content brief

| Field | Value |
|---|---|
| Trigger | By hand, when a keyword or topic is approved for the month's plan |
| Data it reads | Target query and its intent; the current top results' headings from your SEO tool's export; the client's existing pages on the topic (to avoid two pages chasing one keyword); Search Console queries the site already gets; the client's expertise and proof; internal pages to link |
| Agent or step | Agent with read-only research tools, or a workflow if the data is pasted in. Writes the brief in a fixed template |
| Human gate | The SEO lead approves before a writer starts |
| Output | Primary and secondary keywords, intent, outline with headings, questions to answer, facts that need sources, internal links, word range, what the top results miss |
| Cost per run | Medium with pasted data: $0.08 to $0.30. Large when the agent runs its own research calls: $0.35 to $1.15 |
| ROI metric | Minutes per brief; writer questions per brief; share of briefed pages reaching page one within your time frame (a lagging check) |
| Failure modes | Invented search volumes (no number without a tool's export). A keyword another page already owns. A copied competitor outline. Results checked months ago |
| Variants by agency type | SEO: core. Performance: landing-page briefs for paid traffic. Social: not needed. Creative: long-form campaign content |

### 9. Ranking and technical watch

| Field | Value |
|---|---|
| Trigger | Weekly (or daily for large sites), after the Search Console pull and your rank tracker's and crawler's exports |
| Data it reads | Search Console clicks, impressions and position by page and query; tracked positions; crawl errors (4xx, 5xx), noindex and canonical changes, sitemap changes; release notes from the client's developers |
| Agent or step | Workflow. Code compares with a 28-day baseline and flags drops past your thresholds. One small AI step groups flagged items and writes a short ticket per issue |
| Human gate | The SEO lead triages. Anything sent to the client's developers goes through the account lead |
| Output | A ticket list: what dropped, which pages, likely cause, evidence, suggested fix |
| Cost per run | Code: none. Digest: Small, $0.015 to $0.07 |
| ROI metric | Days from drop to ticket; days from ticket to fix; clicks recovered |
| Failure modes | Normal swings flagged as drops (use the baseline). A Google update blamed on the site. A noindex on a key page missed because the crawl never ran. An average position hiding one page's loss |
| Variants by agency type | SEO: core. Performance: broken or slow landing pages behind live ads. Social: not needed. Creative: site-launch checks |

### 10. Competitor watch

| Field | Value |
|---|---|
| Trigger | Weekly or monthly, for clients who pay for it |
| Data it reads | A fixed list of competitors and a fixed list of sources: ad libraries, pricing pages, site changes, social posts, rankings for shared keywords from tools you already have; the client's positioning |
| Agent or step | Agent with read-only access, held to the source list and a fixed output template. It may not browse beyond the list |
| Human gate | A strategist reviews before anything goes into a client deck. Never forwarded raw |
| Output | At most five items: what changed, the evidence link, why it matters for this client, a suggested response |
| Cost per run | Large: $0.35 to $1.15. 18 clients monthly: $6.30 to $20.70 a month; weekly (78 runs): $27.30 to $89.70 a month |
| ROI metric | Findings used in a client meeting or plan per month; minutes saved against the manual scan |
| Failure modes | Made-up competitor activity (every claim needs a link). Noise (five items at most). A page that plants instructions for the agent (prompt injection): treat page text as data, never as orders, and keep the agent read-only. Scraping against a site's terms. Stale snapshots |
| Variants by agency type | Performance: ad library creatives and offers. SEO: rankings and new content. Social: posting cadence and formats. Creative: campaign launches |

### 11. Onboarding intake to client record

| Field | Value |
|---|---|
| Trigger | Contract signed or deal marked won; or the intake form comes back |
| Data it reads | Intake form answers; sales call notes; proposal and scope; the client's website; brand files they sent; the access list |
| Agent or step | Workflow. One AI step reads each source and proposes facts (offer, audience, competitors, brand rules, goals, contacts), each with the source it came from |
| Human gate | The account lead confirms each fact, row by row, before it becomes part of the client record that any agent reads |
| Output | A client record of confirmed facts with sources; a list of missing items and access still owed |
| Cost per run | Medium to Large: $0.08 to $1.15 per client, once |
| ROI metric | Days from signed to kickoff-ready; facts confirmed at kickoff; questions asked of the client twice in the first 30 days |
| Failure modes | Out-of-date facts from the website. Sales promises recorded as scope. One source's guess recorded as a fact without confirmation |
| Variants by agency type | Performance: ad accounts, pixels, conversion definitions. SEO: site access, Search Console, CMS. Social: brand voice, handles, approval chain. Creative: brand kit, files, approvers |

### 12. Meeting notes to tasks and promises

| Field | Value |
|---|---|
| Trigger | When the notetaker's transcript of a client call is ready |
| Data it reads | Transcript; the calendar event and who attended; the client record; open tasks and promises |
| Agent or step | Workflow. One AI read pulls out decisions, tasks with owners, promises (ours and the client's) with dates, and asks that may be outside scope. A check step matches each item to a line in the transcript and drops what it cannot match |
| Human gate | The call owner approves the list before anything is filed. The recap email to the client is a separate send with its own approval |
| Output | Tasks, promises with owners and due dates, a flagged scope ask, a draft recap email |
| Cost per run | Large, because a transcript is long: $0.35 to $1.15. 40 client calls: $14 to $46 a month |
| ROI metric | Share of promises with an owner and a date within 24 hours of the call; promises broken per month; recaps sent the same day |
| Failure modes | Wrong speaker labels assign a task to the wrong person. "We'll look into it" becomes a hard deadline. An invented date. A call with two clients filed to one |
| Variants by agency type | The same for every agency type. Creative teams also turn feedback into revision tasks and count the rounds |

### 13. Out-of-scope request check

| Field | Value |
|---|---|
| Trigger | A new client request is logged, from email, Slack, a form or a call |
| Data it reads | The request; the signed scope (included items, allowances, exclusions, revision limits); this month's usage so far; your prices for extras |
| Agent or step | Workflow. One AI step quotes the scope clause the request matches and suggests one answer: included, uses allowance, extra, or not offered |
| Human gate | The account lead decides and replies. A price goes to the client only after approval. AI suggests; a person decides |
| Output | A suggested answer with the matched clause; for an extra, a draft change order and a draft reply |
| Cost per run | Small: $0.015 to $0.07 per request |
| ROI metric | Out-of-scope requests priced or declined against those done free; change-order value per month; reply time |
| Failure modes | Vague scope language read too kindly or too harshly. An allowance already used up this month. A reply that sounds legalistic |
| Variants by agency type | Performance: new channels or campaigns. SEO: extra pages, technical work. Social: extra posts or platforms. Creative: extra rounds, new sizes |

### 14. Renewal prep pack

| Field | Value |
|---|---|
| Trigger | A set number of days before the renewal or notice date, for example 60 |
| Data it reads | Twelve months of results against goals; delivered against sold; promises kept and broken; health signals; what calls said about the relationship; margin (finance only, internal version only) |
| Agent or step | Agent with read-only access gathers and drafts: a results summary, wins, misses with reasons, proposed next-year scope and price options |
| Human gate | The account director and the owner review and choose. Nothing goes to the client until they pick the proposal |
| Output | An internal renewal brief and a draft outline for the client-facing review |
| Cost per run | Large: $0.35 to $1.15 per client, a few times a year |
| ROI metric | Renewal decisions made before the notice date; hours to build the pack; price changes accepted |
| Failure modes | Cherry-picked wins. Margin data in the client version (keep finance data internal). A broken promise the client remembers and the pack forgets |
| Variants by agency type | Performance: CPA and ROAS trend. SEO: twelve months of traffic and rankings. Social: audience growth, engagement, content volume. Creative: projects delivered, rounds per project |

### 15. Overdue invoice reminder draft

| Field | Value |
|---|---|
| Trigger | An invoice passes its due date by a set number of days (for example 3, 14 and 30) |
| Data it reads | The invoice (number, amount, currency, due date); payments recorded; the billing contact; earlier reminders; relationship notes, including any open dispute |
| Agent or step | Workflow. Code checks the dates and that no payment is recorded. One small AI step drafts a polite reminder at the right firmness for the stage |
| Human gate | Finance or the owner sends, every time. A reminder sent during a dispute, or after payment arrived, costs more trust than it gains |
| Output | A draft email with the invoice details and the payment link from your accounting tool |
| Cost per run | Small: $0.015 to $0.07 |
| ROI metric | Days sales outstanding; share paid within seven days of the first reminder; hours spent chasing |
| Failure modes | A payment that arrived but was not recorded. Wrong amount or currency. A reminder to a client with an open dispute. Tone too harsh for a key account |
| Variants by agency type | The same for all types. Retainers chase monthly invoices; creative and project work chase milestone invoices |

---

## Before any card goes live

- [ ] It runs for one client at a time, with only that client's accounts, records and documents.
- [ ] Its connections use the lowest access level that does the job; no admin logins.
- [ ] Every client-facing send and every spend change waits for a named person.
- [ ] It has a dollar cap per run, a tool-call and time limit, and a monthly cap on the AI key.
- [ ] Every run is logged: trigger, data read, tool calls, model, tokens, cost, output, approver.
- [ ] A step that sent something never re-runs by itself; stale data stops the run with a reason.
- [ ] The baseline is recorded and the ROI metric is named.
- [ ] Two cycles in test mode on one client are read and signed off.
