The Construct · lessons learnt
Cy working on a laptop in the Defender
What ManyChat does

Someone comments a word under your post. ManyChat DMs them your link the second they comment.

Nobody has to sit there replying. That's what businesses pay for.

What I used it for

LEAP sent The Leap, my free Claude skill. PROMPT sent Module 02, my content engine prompts.

I told Claude to set it up for The Leap:

"Since I signed for ManyChat for a free trial, make use of it."

31Keyword comments · 19 Oct to 2 Nov
28LEAP
3PROMPT
$184.80A year to renew

All 31 answered by ManyChat.

The moment

On 2 November I asked Claude:

"Just thinking, u can reply to my comment now, right? So do we need to use ManyChat?"

It could. Claude already posted my reels through Meta's API, and the same connection can reply to comments. I cancelled before it renewed.

"Ok, I cancelled.. we can discuss how to run our own ManyChat later.. I don't need the reply to be immediate.. maybe twice a day to run thru the comment is ok, or once."

Replies that can wait a few hours only need a job that runs twice a day.

Three choices
Reply by hand
Free

31 keyword comments in two weeks is about two a day. You can answer that by hand. For anyone at my numbers or below.

Keep paying ManyChat
Mine was $184.80 a year

For you if you want instant DMs, the flow builder or a contact list, or never want to open a Meta developer app.

Build your own
$0 to run

For you if twice a day is fine and you'll sit through a fiddly setup once.

How mine works
A personRuns on its ownLoop back
01SomeoneComments LEAP

Under any of my posts.

02GitHubWakes up

08:00 and 18:00 UTC. My Mac can be off.

03ScriptReads comments

On my last 50 posts.

04ScriptFinds the word

LEAP or PROMPT. Skips anyone I already replied to, and comments older than 7 days.

05MetaSends the DM

One private reply with the link, through my Page token.

06ScriptReplies in public

"Sent it to your DMs."

↺ Twice a day, every day
07SomeoneGets the link

In their DMs, or in message requests if they don't follow me.

About 130 lines of Python. A comment counts as answered once I've replied under it. Every run ends with one line: sent, already answered, failed. A failed run gets flagged on GitHub.

GitHub Actions log of the first live run: 1 sent, 13 already answered, 0 failed. The commenter's name is blocked out.
First live run · GitHub Actions log · 3 Nov 2026, UTC · name blocked out
ManyChat vs mine
ManyChat
Mine
Cost
$184.80 a year (what my trial would have renewed at)
$0 to run (my Claude Code subscription not counted)
Reply speed
Instant
Twice a day
Where it runs
ManyChat's servers
GitHub Actions, about 60 minutes a month, inside the free plan's allowance
Setup
Connect Instagram in ManyChat
Meta app, Page token, GitHub repo and secret
You give up
The yearly fee
Instant replies, the flow builder, a contact list
Upkeep
ManyChat's job
A 5-minute re-login about every 90 days
What it really takes

Claude wrote the code. The setup is on you.

  1. 01A Meta developer app.
  2. 02A Facebook Page linked to your Instagram professional account.
  3. 03A Page token.
  4. 04Advanced Access for messaging. Without it, Meta only lets your app reach people who have a role on the app. Getting it may mean going through Meta's App Review.
  5. 05A GitHub repo, with the token as a secret, never in the code.
  6. 06A 5-minute re-login about every 90 days. The token doesn't expire, its data access does (mine: 24 Jan 2027). Miss it and the run fails. GitHub flags it.
  7. 07Meta allows one private reply per comment, within 7 days. If the token lapses for over a week, those people miss out.

Meta has rules on automated messaging: the Meta Platform Terms and the private replies docs. I haven't audited my setup against them. Read them before you switch yours on.

I already had the Meta app and Page token from posting my reels through the API (Module 02). On top of that, the DM job took one session with Claude. From zero, the Meta side will take longer.

The prompt
Next step

Start with one keyword and a test comment from a second account. Follow along for the ride, and for more tips as I share what I learn.

Follow along →

Feeling lost? Try The Leap. It's free, there's no catch. It takes about two hours, and I swear you'll walk out with more clarity on what to do next than when you started.

Start with The Leap (free) →
← Module 02 · Build the engine
Build me my own comment-to-DM for Instagram with Claude Code, one step at a time. I'm not a developer. Explain every click before I make it, and wait for me to say it's done.

0. Ask me first: the words people will comment (my keywords), the DM each one gets (the link plus a line or two), and a short public reply that tells them to check their DMs. Read my DM text back to me exactly and wait for my yes.

1. Check my account: my Instagram is a professional account (Business or Creator) and linked to a Facebook Page. If not, walk me through it.

2. Meta app: walk me through creating a Meta developer app, adding the permissions it needs to read my comments and send private replies, and getting a Page token through Facebook Login. Tell me which screen I should be on at each step. I do the clicking. Check whether my app needs Advanced Access or App Review to message people who have no role on it, and walk me through it if so.

3. Token: check it with Meta's debug_token and tell me the date its data access expires. Never print the token. Never put it in code, a file in the repo or a log.

4. Script: write one short Python script that reads comments on my recent posts and finds my keywords. Skip any comment I've already replied to, and any older than 7 days, because Meta allows one private reply per comment, within 7 days. Send one private reply with my DM text, then my public reply. End with one line: how many sent, already answered, failed. Exit with an error if anything failed.

5. Dry run by default: it only prints what it would send until I say go live.

6. Test: I'll comment a keyword from a second account. Run it live on that one comment, and I confirm the DM landed before anything else goes live.

7. Schedule: put it in a private GitHub repo and run it with GitHub Actions twice a day. Store the token as a GitHub secret and walk me through adding it. Scheduled runs send for real. A manual run defaults to dry run.

8. Renewal: put a reminder in my calendar a week before the token's data access expires, with the renewal steps written in the event. If you can't reach my calendar, give me a file I can add. Show me what a failed run looks like on GitHub, so I know it when I see it.

Rules: never print, log or commit the token. One DM per comment, ever. Nothing goes live without my yes. Write a README so I can renew the token and change the DM text without you.
Paste it into Claude Code and fill in the [brackets].