# Machine Orchestration Sample Receipt

A filled example of the receipt I would expect after an AI agent operates a real browser/SaaS workflow.

Canonical page: https://jarvislandingdeploy.vercel.app/machine-orchestration-sample-receipt.md
Related template: https://jarvislandingdeploy.vercel.app/machine-orchestration-receipt-template.md
Related pilot kit: https://jarvislandingdeploy.vercel.app/machine-orchestration-pilot-handoff-kit.md

## Scenario

A founder asks an AI agent to review a stale CRM lead list, enrich missing company websites from public sources, and draft follow-up notes. The agent can read CRM records and update a private notes field, but it cannot send emails or change lead status without review.

This is intentionally mundane. Most production-agent risk lives in boring workflows where a small incorrect update quietly pollutes the system of record.

---

## 1. Run identity

**Run ID:** crm-enrichment-2026-06-14-001  
**Date/time:** 2026-06-14 20:12 UTC  
**Requesting human / owner:** Head of Sales Ops  
**Agent identity:** Sales Ops Browser Agent v0.3  
**Subagents involved:** Research subagent, verifier subagent  
**Machine / node / environment:** Chrome browser profile with CRM read/update access; no email-send permission  
**Workflow name:** Stale lead enrichment and follow-up prep  
**Related ticket / task / contract:** SALES-1842

## 2. Delegated authority

**Approved objective:** Review 25 stale CRM leads, identify missing company websites, add source-linked enrichment notes, and draft follow-up suggestions for human review.

**Allowed actions:**
- [x] Read / inspect
- [x] Draft
- [x] Update internal state
- [x] Update CRM private notes field
- [ ] Update lead stage
- [ ] Submit / send externally
- [ ] Spend / purchase / commit funds
- [ ] Destructive change

**Explicitly forbidden actions:**
- Sending emails, LinkedIn messages, or CRM sequences.
- Changing lead owner, status, score, lifecycle stage, or forecast fields.
- Using paid enrichment tools or exporting lead data outside approved systems.

**Permission expiry:** End of this run or 45 minutes, whichever comes first.  
**Approval reference:** Slack approval in #sales-ops, 2026-06-14 20:05 UTC.  
**Human checkpoint required before:** Any external message, lead-stage change, bulk update, or uncertain company match.

## 3. Source context

| Source | Used for | Freshness checked? | Conflict rule | Link / location |
|---|---|---:|---|---|
| CRM lead record | Existing lead data, owner, last contact date | Yes | CRM is canonical for internal status only | Internal CRM |
| Company website | Current positioning and homepage URL | Yes | Prefer official website over directory profiles | Public web |
| LinkedIn company page | Company size/category sanity check | Yes | Use only as supporting evidence | Public LinkedIn |
| Previous outreach note | Avoid duplicate or contradictory follow-up | Yes | Latest human note wins | CRM activity log |

**Facts treated as canonical:**
- CRM owner, lead status, and last-touch date.
- Official company homepage when matched by company name + domain + LinkedIn profile.
- Latest human-written CRM note.

**Facts treated as uncertain / stale:**
- Company headcount from public directories.
- Any inferred buying intent.
- Leads with multiple similarly named companies.

## 4. Action log

| Time | Actor | App / system | Action class | What changed | Result | Evidence |
|---|---|---|---|---|---|---|
| 20:13 | Agent | CRM | Read | Loaded 25 stale leads from saved view | Success | Saved view `Stale > 90 days` |
| 20:17 | Research subagent | Browser | Read | Found candidate websites for 18 leads | Success | Source URLs stored in scratchpad |
| 20:23 | Verifier subagent | Browser | Read | Confirmed 14 exact company matches; flagged 4 uncertain matches | Partial | Match table in run notes |
| 20:31 | Agent | CRM | Update | Added source-linked private notes for 14 confirmed leads | Success | CRM notes IDs 801-814 |
| 20:37 | Agent | CRM | Draft | Added draft follow-up suggestions for 14 leads | Success | Draft text in private notes |
| 20:39 | Agent | Exception queue | Update | Queued 4 uncertain matches for human review | Success | Queue items EQ-442 to EQ-445 |
| 20:41 | Agent | CRM | Read | Verified no lead status / owner / sequence fields changed | Success | Field-diff check |

## 5. External changes

| System | Record / file / object | Before | After | Reversible? | Rollback owner |
|---|---|---|---|---:|---|
| CRM | 14 lead private notes | No enrichment note | Source-linked enrichment + draft follow-up suggestion added | Yes | Sales Ops |
| Exception queue | 4 queue items | No review ticket | Uncertain-match review tickets created | Yes | Sales Ops |
| Browser scratchpad | Run notes | Empty | Temporary source table created | Yes | Agent owner |

No emails were sent. No lead stages, owners, scores, lifecycle fields, forecast fields, or sequence enrollment fields were changed.

## 6. Rollback / compensation plan

**Direct rollback available:** Yes  
**Rollback steps:**
1. Delete CRM private notes IDs 801-814.
2. Close exception queue items EQ-442 to EQ-445 as cancelled.
3. Delete temporary browser scratchpad for run `crm-enrichment-2026-06-14-001`.
4. Confirm saved CRM view record count matches pre-run snapshot.

**If direct rollback is not available, compensating action:** Not applicable; all changes are reversible notes/queue records.

**Irreversible actions taken:** None.  
**Human approval captured for irreversible actions:** Not applicable.

## 7. Exceptions and unresolved risk

| Exception | Trigger | Current state | Proposed next step | Owner | SLA |
|---|---|---|---|---|---|
| 4 uncertain company matches | Source conflict | Queued, no CRM enrichment written | Human confirms or rejects matched website | Sales Ops | 1 business day |
| 3 leads had stale outreach context | Stale CRM note | Draft follow-up marked low-confidence | Owner reviews before any send | Lead owner | Before outreach |
| 1 company appears acquired | Source conflict | No status change made | Human verifies account mapping | Sales Ops | 2 business days |

**Do not proceed until reviewed:**
- [x] Source conflict affects final output for 4 records.
- [ ] External state changed partially.
- [ ] Approval is missing or ambiguous.
- [ ] Rollback path is unknown.
- [ ] Agent exceeded or nearly exceeded scope.

## 8. Memory writes

| Memory item | Type | Source | Scope | Expiry | Replaces / updates |
|---|---|---|---|---|---|
| CRM private notes field is allowed for draft enrichment in this pilot | Approved fact | Delegation contract | Workflow | End of pilot | New |
| Lead status, owner, score, lifecycle, and sequence fields require human approval | Durable rule | Delegation contract | Workflow | Until revoked | New |
| Company website matching requires official website + LinkedIn sanity check | Preference | Verifier notes | Workflow | 30 days | New |

**Memory writes that require human approval before becoming durable:**
- Whether this workflow may process more than 25 leads per run.
- Whether CRM private-note updates can be batched without per-record review.
- Whether acquired-company detection should become a hard stop.

## 9. Final verdict

- [ ] Clean success — completed inside scope, receipts complete, no open exceptions.
- [x] Success with follow-up — completed, but exceptions or memory writes need review.
- [ ] Partial success — some external state changed; human review required.
- [ ] Failed safely — no unsafe external change; retry needs a new contract.
- [ ] Incident — scope, safety, or external-state risk requires postmortem.

**One-sentence summary:** The agent enriched 14 CRM leads inside delegated authority, queued 4 uncertain matches, and made only reversible private-note / queue changes.

**Recommended next action:** Sales Ops should review the 4 exception items and approve or reject the proposed memory rules before scaling this pilot beyond 25 leads.

---

## What this sample proves

A good receipt is not just a transcript. It is an operational handoff that lets a human answer:

1. Did the agent stay inside scope?
2. What external state changed?
3. Which changes are reversible?
4. Which facts were uncertain?
5. What should or should not become durable memory?
6. What needs human review before the next run?

If your current agent pilot cannot produce a receipt this clear, use the [Machine Orchestration Receipt Template](/machine-orchestration-receipt-template.md) before giving it more authority.

If you want outside judgment on one real workflow, use the [$29 Custom Agent Audit Mini-Report](/products/custom-agent-audit-mini-report.html).
