01 logo

I Built 10 AI Agents to Run My Business. None of Them Could Send an Email.

Ten reusable systems that saved my team dozens of hours – and never took the final decision out of human hands.

By JinPublished 4 months ago • 12 min read

Alex first understood the difference between a “chatbot” and an “agent” on a morning when he faced forty‑seven unread emails. A chatbot could answer “How do I request a return?” but an agent could scan the inbox, recognize that the email from Sarah was a refund request, check the order history, and then, without sending a reply, quietly place a two‑line draft in the drafts folder, waiting for him to look.

“It didn’t decide for me,” Alex later told Maya, the operations manager. “But it meant I didn’t have to start from a blank page.”

After that, he stopped treating AI as a smarter prompt box. He started designing workflows.

From Anthropic’s guide on building effective agents, he had pinned one sentence to the front of his Notion page: “The best implementations are often simple, composable patterns rather than over‑engineered frameworks.” He agreed. A usable agent usually contains only five parts: trigger, context, tools, decision rule, and human checkpoint. Then one more layer: an audit trail. Without that, it isn’t ready for real work.

The ten agents below are the reusable systems Alex and his team peeled out of their repetitive work over the past year. They aren’t flashy, but each one saved the team dozens of hours every week in invisible overhead.

1. Inbox Triage and Reply
This is the most obvious place to start. The agent never sends an email on its own. It only reads, classifies, and drafts.

  • Trigger: Every weekday at 7:00 a.m. Eastern, or the Slack command /run-inbox-agent.

  • Context Pulls unarchived email from the past 24 hours via Gmail API; extracts sender, subject, and body; looks up in HubSpot whether the contact is an existing customer, their last five interactions, and any open tickets.

  • Tools: Gmail API, HubSpot CRM, internal order database.

  • Decision rules

    • Refund request → unconditionally routed to a human (tag human_review).

    • Angry customer (contains “sue,” “chargeback,” “lawyer,” etc.) → routed to a human, with an urgent label.

    • Shipping inquiry → auto‑draft reply, inserting current tracking status from Shopify.

    • Technical bug → directly routed to engineer Lucas, with a customer history summary.

    • General inquiry, meeting request → draft reply in Alex’s voice: polite, direct, no corporate jargon.

    • Spam → auto‑archive, no draft.

  • All reply drafts are saved in Gmail drafts with the label drafted_by_agent; they are never sent automatically. Every morning over coffee, Alex reviews them, changes a couple of words that don’t sound like him, and hits send. Sarah’s refund request stayed under the red label, handled separately.

  • Human checkpoint: Each morning Alex receives an agent‑generated summary email listing counts by category. He only opens the needs_review and drafted labels. When he manually edits a draft before sending, the agent records the before‑and‑after versions.

  • Audit trail: Every action is logged in Airtable, including email ID, classified intent, final action, and whether it was human‑modified.

2. Research Brief Generator
Maya handled market‑access research, studying Brazil’s regulatory changes for cookware every quarter. Before, she opened twenty tabs, copied information into a Google Doc by hand, and sometimes couldn’t remember a source and had to search again. Alex built the second agent for her.

  • Trigger: Every Monday at 6:00 a.m. UTC (to catch updates from Brazil’s official gazette), or a Slack message @researchbot Brazil cookware update.

  • Context: Reads a keyword bank (ANVISA, Inmetro, import tariff codes), scrapes the past seven days’ updates via Google News API and specific RSS feeds, extracts body text with Diffbot, and compares it against the previous week’s snapshot.

  • Tools: SerpAPI, Diffbot, Wayback Machine (for verifying page history), Notion API.

  • Decision rules

    • Every factual claim must carry a source URL and publication date.

    • Confirmed facts and inferences must be labeled separately: inferences are prefixed with “Inference:” and conflicting sources are listed.

    • Sources older than 30 days are automatically flagged “⚠️ Timeliness unconfirmed.”

    • Regulatory numbers that cannot be cross‑verified on official sources are marked “Needs human verification.”

    • If a regulatory change or source contradiction is detected, immediately notify Maya and product manager David via Slack.

  • Output structure is fixed: short answer, source‑backed findings, what changed recently, risks and uncertainties, recommended next actions.

  • On its first run, the agent returned an ANVISA update Maya almost missed. She forwarded the brief to David with a note: “No more re‑searching from scratch.”

  • Human checkpoint: Maya and David review the Notion brief before their 9:00 a.m. Monday sync. Every item marked “Needs human verification” is confirmed or supplemented by Maya within 24 hours.

  • Audit trail: The Notion database automatically records each brief’s generation time, number of sources, flagged items, and final reviewer.

3. Browser Form Filler
Many repetitive workflows still happen inside websites without a clean API. Alex’s warehouse team had to manually fill thirty‑odd fields every week in DPD’s old‑fashioned carrier portal.

  • Trigger Warehouse lead Ben uploads a ShipStation CSV to Slack and tags the agent with fill DPD shipment; or a new record in the “To Ship” view in Airtable automatically triggers it.

  • Context reads the CSV fields (order number, address, SKU, quantity, weight) and queries the internal product database for HS codes and customs descriptions.

  • Tools: Headless browser controlled by Playwright, Airtable API, Slack webhook.

  • Decision rules

    • Fill according to a pre‑set field‑mapping file (a label containing “postal code” gets the recipient’s postal code).

    • If an SKU is not found in the database, stop immediately and alert Ben.

    • Weight over 30 kg or destination not on the EU whitelist is flagged for manual check.

    • Never auto‑submit. After all fields are filled, capture a screenshot and post to #warehouse-alerts: “Order #247-DPD filled, screenshot: [link], please review and submit within 5 minutes.”

  • Ben only needs to glance at the screenshot and manually enter the submission password. The first day he used it, he posted a “👀” on Slack; three minutes later he added, “I used to spend every Tuesday afternoon on this.”

  • Human checkpoint: Ben reviews the screenshot; if he finds an error, he corrects it on the portal and replies “adjusted” in the Slack thread. The agent logs the differing field to improve the mapping. If unreviewed after one hour, it escalates to Alex.

  • Audit trail Airtable records each run: time, order number, screenshot link, whether human‑modified, and final submission status.

4. Meeting Transcript to Action Items
Most meeting notes end up in a document nobody reads again. Alex’s team needed ownership.

  • Trigger: Fireflies.ai transcription completes and fires a webhook; or notes are manually pasted into a specific Notion page, and the agent is tagged.

  • Context: Retrieves the full transcript with speaker labels, pulls the meeting title and participants from the calendar, and looks up incomplete action items from the previous meeting in the same series.

  • Tools: Fireflies API, Notion API, Slack webhook.

  • Decision rules

    • Decision extraction: Look for “we decided,” “let’s go with,” etc., capture the surrounding context, and summarize as a one‑sentence decision with speaker and timestamp.

    • Action item extraction: If a speaker says “I will,” “I’ll do that,” assign the task to that speaker with “high” confidence. If only “we need to” with no named owner, assign to “unassigned” and log the reason.

    • If two different dates appear for the same task, mark confidence “low” and leave for human arbitration.

    • Open questions: Extract sentences that end with a question mark and weren’t clearly answered during the meeting.

  • Output is generated into the “Meeting Action Items” Notion database, and each owner is automatically notified via a Slack direct message. Once, the agent flagged low confidence on a “website redesign timeline” because two different dates had been mentioned in the discussion. Maya tagged David directly, preventing a launch collision two weeks later.

  • Human checkpoint: The meeting organizer reviews and fills gaps within an hour. At the start of the next meeting, the agent displays all unfinished action items.

  • Audit trail Notion’s page version history records all generation and edits.

5. Customer Support Triage
An AI agent isn’t meant to act as a senior support manager. It excels at the first layer: classify, retrieve context, draft, route, escalate.

  • Trigger: A new ticket is created in Help Scout, firing a webhook.

  • Context: Extracts ticket content, queries Help Scout for the customer’s ticket history and satisfaction scores, and pulls recent orders and shipping status from Shopify.

  • Tools: Help Scout API, Shopify API, Slack webhook.

  • Decision rules

    • Refund request → route to support manager; reason: financial decision.

    • Complaint (especially containing “lawyer,” “chargeback”) → immediate human takeover with push notification.

    • Technical bug → directly assign to engineer Lucas, with a summary of customer history.

    • Shipping inquiry → auto‑draft reply with current tracking status and estimated delivery.

    • Product question → draft reply and search the knowledge base for a reference.

    • Account issue → draft reply but flag for identity verification.

    • Same customer, same issue, third contact within 7 days → automatic priority upgrade.

  • Support staff only review tickets labeled agent_drafted and click send. Each week, twenty tickets are randomly audited for classification accuracy; misclassifications are fed back to Alex to adjust the keyword bank.

  • Human checkpoint: All drafts are in “pending send” status, confirmed by the rotating support person. Tickets with legal risk are pushed instantly.

  • Audit trail: Help Scout ticket logs automatically record agent actions, including classification time, suggested action, and whether it was overwritten by a human.

6. Content Repurposing
The marketing team drops a long‑form article in, and the agent breaks it into versions for five platforms.

  • Trigger: A new blog post is published on WordPress, firing a webhook; or a URL is manually pasted into the #content-recycle Slack channel.

  • Context: Scrapes the full article, reads the brand style guide from Notion (tone, banned words, platform specifications).

  • Tools: WordPress API, Notion API, LLM.

  • Decision rules and output

    • LinkedIn post: ≤3,000 characters, professional but personal tone, must include the article’s core insight and one question.

    • Twitter thread: 5 tweets, the first a data point or counterintuitive hook, the last linking to the original article.

    • Newsletter intro: ≤150 words, warm and direct, must say “why this matters now.”

    • Short video script: 60 seconds, structure of hook–problem–insight–call to action, with suggested visuals in the right‑hand column.

    • Image prompt: Midjourney format, no text in image, output a full prompt string.

  • Quality rules: Preserve the original thesis; absolutely ban generic phrases like “game‑changer,” “in today’s world,” “truly,” “unlock”; every claim must be backed by a concrete example.

  • Once, the agent produced a LinkedIn post that contained “truly a game‑changer.” The rule stripped it out and replaced it with an actual data point from their stove test: “Heat output increased by 12%.”

  • Human checkpoint Maya reviews each output, mainly for tone and banned‑word residue. The video script and image prompt are additionally checked by a designer for feasibility. Each month, social media performance is reviewed to tune the tone and hook preferences.

  • Audit trail Notion automatically saves the version history of every generation and edit.

7. Competitor and Pricing Monitor
Passive monitoring turned into an operational rhythm.

  • Trigger: Automatically every Wednesday at 08:00 UTC, or the Slack command @agent check competitor [name].

  • Context: Reads URLs from the “Competitor Tracker” Airtable, loads the last snapshot (stored in S3), scrapes current content with Diffbot, and compares.

  • Tools: Diffbot, Playwright, Wayback Machine, Slack webhook.

  • Decision rules

    • Report only meaningful changes: price changes, new feature launches, website rebranding, team page personnel changes.

    • If a price changes, report old value / new value and possible impact.

    • If a competitor mentions our brand, immediately flag as “critical” and escalate.

    • No change → log silently, no alert.

  • Report structure: Competitor: X, Change detected: …, Old/New: …, Possible Impact: …, Recommended Action: …, Evidence: screenshot + URL.

  • One week, it detected that competitor CampChef had raised its monthly fee from $29 to $39. David projected that section directly onto the screen during the pricing discussion.

  • Human checkpoint: David reviews the report every Wednesday and decides whether to adjust positioning. Any brand mention must trigger a PR response decision within one hour.

  • Audit trail: The full report and comparison screenshots are archived in S3; the Notion entry carries a permanent link.

8. Invoice and Expense Reconciliation
Financial workflows are rule‑based but full of exceptions. That makes them ideal for agent assistance, not agent control.

  • Trigger: A new invoice email arrives at [email protected], or a PDF is dropped into a shared folder.

  • Context: Parses the invoice (vendor name, invoice number, amount, bank details), matches against a Purchase Order in QuickBooks, and retrieves the vendor master data.

  • Tools: QuickBooks API, PDF parser, Slack webhook.

  • Decision rules

    • Auto‑clear conditions (all must be true): Vendor on approved list, amount matches PO within 2% tolerance, no duplicate invoice number, payment terms are standard Net 30, tax information present and valid.

    • Escalation triggers (any one): New vendor not on the approved list, bank details changed since last payment, amount mismatch beyond tolerance, missing tax ID, invoice total exceeds $5,000.

  • When auto‑clear conditions are met, status is updated to “Ready for Payment” with a reconciliation note. When escalated, an item is created in Airtable, and a direct message is sent to CFO Claire on Slack. Each Monday, Claire batch‑approves payments, but the human always clicks the pay button. Any change in bank details requires phone confirmation even if the amount matches.

  • Human checkpoint: All payments must be manually approved by Claire. The tolerance percentage and amount threshold are adjustable.

  • Audit trail QuickBooks invoice memos automatically carry the reconciliation summary; Airtable retains the full review trail.

9. CRM Enrichment and Follow‑up
The time sink for sales teams: updating the CRM after calls, emails, and demos. The agent only proposes; the seller decides.

  • Trigger: Every weekday at 5:00 p.m., automatically scan HubSpot for deals that had activity today but weren’t updated; or manually click “Run Agent” on a deal card.

  • Context Pulls the associated contact and company, gathers all activity from the past seven days (call logs, emails, meetings), and enriches company data via Clearbit.

  • Tools: HubSpot API, Clearbit API, LLM, Slack.

  • Decision rules

    • Stage suggestion is evidence‑mapped:

      • “Prospecting”: first contact made, no reply.

      • “Qualification”: replied, interest shown.

      • “Evaluation”: demo requested or completed, pricing requested.

      • “Negotiation”: pricing discussion, security questionnaire received.

      • “Closed Won” can only be set by a human.

    • Confidence labels: strong evidence → “high,” single signal → “medium,” email‑open only → “low.”

    • If a deal has had no activity for 5 days and is in an active stage, auto‑draft a follow‑up email in the deal timeline.

  • Sales director Greg receives a Slack evening digest: “Today’s CRM update: 3 stage‑change suggestions, 2 follow‑up drafts pending review.” He spends about twenty minutes reviewing, edits a few spots, and clicks approve.

  • Human checkpoint: Greg reviews suggestions; low‑confidence items must be judged by the rep. The sales team gives weekly feedback on summary quality, used to tune the agent.

  • Audit trail: HubSpot activity stream shows “Agent suggested stage change to Evaluation (confidence: medium).” Human overrides are recorded.

10. QA Review for Repetitive Digital Work
Small things that get missed before going live: broken links, placeholder text, inconsistent pricing.

  • Trigger: When the marketing team changes a page status from “Draft” to “Ready for Review” in Webflow, a webhook fires; or a URL is manually pasted into the #qa-review Slack channel.

  • Context: Crawls the page DOM and CSS, captures a mobile viewport screenshot, loads the QA checklist from Notion.

  • Tools: Playwright, W3C Link Checker, Lighthouse API, Notion API.

  • Decision rules (example checklist)

    • All buttons have valid hrefs (broken → critical).

    • No Lorem ipsum placeholder text (critical).

    • Images have alt text (warning).

    • All price numbers on the page are consistent (critical).

    • No horizontal scroll on mobile (critical).

    • Schema markup is present and valid (warning).

    • Meta title ≤60 characters, meta description ≤160 characters (warning).

  • When a critical issue is found, the page status in Webflow is automatically pushed back to “In Progress” with a comment. All issues are compiled into a report in Notion. Once, the agent found that the “Buy Now” button linked to the staging domain. Maya tagged the front‑end engineer on Slack: “Almost went live.”

  • Human checkpoint: Developers fix items based on the report, then re‑trigger the review. Warning‑level items can be manually accepted. The QA checklist is updated monthly.

  • Audit trail: Each full run report is stored in the “QA Reports” Notion database, with timestamp, URL, pass/fail items, and handler.

The Takeaway
Not one of these agents automates the entire process. They all stop at critical decision points, pull a human in to make the call, and then log everything.

At the quarterly review, Alex told the team something that wasn’t “AI changed how we work.” It was: “We just stopped doing the same thing over and over.”

He compiled the ten templates into a shared Notion page, with triggers, tools, decision rules, and human checkpoints marked beside each one. At the top of that page, Maya added a line:

“Don’t start with a prompt. Start with the workflow.”

A good AI agent workflow is never the flashiest one. It’s the one that strips the repetitive part out of the work you’re already doing. Prompts are temporary; workflow templates are durable. Once you’ve defined the trigger, the rules, the review points, and the output format, the same agent can run again and again, getting smoother to operate, easier to audit, and simpler to explain to a colleague. That’s the advantage.

startuphow tocybersecurityfact or fictionfuturethought leaders

About the Creator

Jin

Writer of reamstories

https://reamstories.com/jin

Enjoyed the story? Support the Creator.

Subscribe for free to receive all their stories in your feed. You could also become a paid subscriber, letting them know you appreciate their work.

Subscribe For Free

Reader insights

Comments

There are no comments for this story

Be the first to respond and start the conversation.

Sign in to comment
    Written by Jin