This one started with a dumb little headache. The first time I ran ads for a launch, the comments under my post exploded — hundreds of them. "Interested!" "Send me the link." "How do I sign up?" The problem wasn't getting attention. The problem was that by the time I sat down to copy-paste a link to each person, it was already evening. Some folks had commented at 3 AM; they wouldn't get a reply until lunch the next day, and by then the spark was long gone.

So I gave Tim — my AI agent — a one-line instruction: "Build me a bot that auto-replies to people who comment under my posts, and make it fast." Sounds like a tiny job, right? But the moment we started, it turned out there were three Facebook walls standing between "comment posted" and "right person, right place, right second." Here's the behind-the-scenes.

The Brief: Fast, Targeted, and Once Only

My requirements were just three things. When someone comments under a post I've flagged, the bot should reply right under their comment with the signup link. It had to be fast (not half a day later), targeted (an actual reply to that person, not a generic comment floating in the thread), and once only (not spamming the same comment over and over until it's annoying).

Tim wired it to run two ways at once. The main path is a Facebook webhook — the instant someone comments, Facebook pings the bot, and it replies in 2-3 seconds. Fast enough that it feels like an admin is glued to the screen 24/7. The backup path is a cron job that polls the posts itself every 5 minutes, so if the webhook ever drops a beat, there's still a safety net underneath and no comment slips through.

Straightforward so far. The fun starts with the three walls.

Wall 1 — Facebook Won't Let You "Tag" People in Comments Anymore

At first I wanted the bot to tag the commenter by name (the @-mention thing) so they'd get a clear notification that this reply was for them. But when Tim tried it for real, Facebook stripped it out entirely. The old code for tagging someone in a comment through the API gets silently removed by Facebook now. Dead end.

My first reaction was "great, we're stuck." But thinking it through, it wasn't a problem at all — because the moment you reply directly under someone's comment, Facebook already fires a notification to that person automatically. No tagging needed. So we cleared this wall by dropping the unnecessary thing rather than fighting the platform to do it. That's a lesson I keep relearning when working with big-platform APIs: half the time the fix isn't a clever workaround, it's deleting the step you didn't need in the first place.

Wall 2 — Facebook Hides Who Some Commenters Actually Are

I didn't want the bot replying to spammers or accounts I'd rather ignore, so I wanted a blocklist — names to skip. Problem: a lot of comments from personal accounts have the commenter's identity hidden by Facebook. The system can see "someone commented" but not who.

Plain-English version: imagine people dropping notes into a suggestion box outside your shop, but nobody signs their name. You can read the message, you just don't know who wrote it. You can't blacklist a person you can't identify. So Tim designed the blocklist to work reliably only for people who comment as a Page (those identities are public anyway). The guardrails that cover every case are simpler: reply to each comment exactly once, and skip your own Page so the bot never replies to its own page's comments and loops forever talking to itself.

This next part matters a lot. Tim keeps a "state" of which comments have already been answered, in one small file. So I made a hard rule for myself: never delete that file. The second it's gone, the bot forgets who it already replied to and fires a fresh reply at every comment on the post — instant self-spam. The same instinct that made Tim write idempotent, run-it-twice-safe scripts when backfilling old posts is what keeps this bot from blowing up.

Wall 3 — Facebook Share Links Can't Be Traced Back to the Post

The last wall was the most annoying. When I want to tell the bot "watch this post," I just want to paste the post's link. But modern Facebook share links are long, weird codes (they start with pfbid) that you cannot hand to the Graph API and ask "which post is this?" It just shrugs.

So Tim used a clever side door. Instead of asking by the link code, it grabs the post's preview text (the first line or two that shows up when the post is shared) and matches it against every post in the page's feed. When it finds the post whose preview matches, it knows exactly which one to watch. It's like finding a person from a description instead of their ID number — roundabout, but it works.

Now when I want to add a new post for the bot to watch, change the reply text, or add a name to the blocklist, I just edit one config file and restart. Both the live webhook side and the every-5-minutes poll side read the same single config, so there's no risk of editing one and forgetting the other. Tim also wrote all three of these walls into its own memory — so next time I ask for a bot like this on another page, it won't have to bash into the same walls from scratch.

The Lesson That Cost More Than the Bot — Comments ≠ Customers

Once the bot was live during the first ad run, I saw a set of numbers that stopped me cold. In the first hour, roughly 48 people got the link from the bot. Only about 12 actually opened the signup page. And only 5 completed signup.

My first guess was that the signup form was broken — people starting and giving up. But when I looked closer, of the people who actually opened the page, about 40% finished. So the form wasn't the bottleneck at all. The people who genuinely landed on the page mostly completed it. The biggest drop-off was the step before that: "got the notification → tapped the link." Plenty of people commented "interested," but once the link landed in their notifications, more than half never tapped through.

That flipped how I think about this. A pile of comments doesn't mean a pile of customers. Pretty engagement numbers under a post are dangerously easy to misread. The numbers that actually matter are the whole chain — comment → got link → opened page → finished — and where it leaks. It's the same trap I hit when I found Facebook was undercounting my real sales by almost half: if you don't follow the real numbers end to end, you'll make confident decisions on figures that look great and lie.

Why a Tiny Feature Like This Matters

The comment-reply bot is a small feature. But what I want you to see is the shape of the work: this is exactly the kind of job an AI agent does better than a person. Not because it "writes great replies," but because it does the boring, repetitive task around the clock without complaining, sleeping, or forgetting. A comment at 3 AM gets the link in the same second as a comment at 2 PM.

That's the difference between an AI agent and a chatbot that just answers questions in a box. A real agent goes and connects to the live API, watches real posts, smacks into real walls, and finds a way around until the job runs. Because it quietly handles the comment thread end to end, I get to spend my time on the things that actually move the business instead of babysitting a screen and copy-pasting a link all day.

Want an AI Quietly Working in the Background for You?

This bot is a small taste of what Newton gives you. Newton is a private AI agent running on your own server, working for you around the clock — replying to comments, handling content, maintaining your back-of-house systems, hooking into the APIs of tools you already use — without you ever touching code or understanding what a webhook or an API even is. You just give it instructions in plain language, the way I tell Tim, and let the messy back-end stuff take care of itself.

If you run a business and you're tired of the repetitive, time-eating busywork — and you want an "AI employee" that actually does it for you — take a look at newton.incomeinclick.com. See how it works →

— Pond