Wright Mode — Free Resource

Automate Your ManyChat Funnels with Claude Code

A ready-to-use Claude Code skill that builds your ManyChat comment-to-DM funnels in minutes — no coding required.

Claude Code skill Copy & paste setup ManyChat + Instagram No coding required

What's inside

Every time you want to promote a lead magnet, podcast episode, or free resource on Instagram, you need to set up a ManyChat funnel — create a keyword trigger, write DM copy, add link buttons, and publish the flow. It's repetitive, fiddly work that eats 15–20 minutes each time.

This Claude Code skill automates the entire process. You type one command, Claude writes the DM copy in your voice, then drives ManyChat's interface to build and activate the funnel for you.

Without the skill

  • Open ManyChat, duplicate template manually
  • Write 3 DM messages from scratch
  • Click through each step, paste copy, add buttons
  • Set the keyword trigger
  • Rename, activate, test
  • ~15–20 minutes per funnel

With the skill

  • Type /manychat KEYWORD for resource name
  • Claude generates DM copy in your voice
  • Approve the copy, Claude does the rest
  • Flow is live in your ManyChat account
  • Logged automatically for your records
  • ~2–3 minutes, mostly waiting

What can you promote with this?

Lead magnets, free resources, podcast episodes, workshop replays, checklists, templates — anything you'd normally deliver via a comment-to-DM funnel on Instagram.


The skill follows a five-step flow. You handle the creative decisions (keyword, approval), and Claude handles all the clicking and typing inside ManyChat.

The Funnel Structure

Every funnel the skill creates follows this proven structure:

1. Keyword Trigger

Someone comments your keyword on a post (e.g. "CHECKLIST")

2. Comment Reply

Auto-reply telling them to check their DMs (randomised from your template)

3. Opening DM

Teaser message with a button — builds excitement before delivering

4. Link Delivery

The actual resource link as a button — no inline URLs cluttering the message

5. Follow-up Nudge

If they don't click, a gentle reminder goes out after a set delay

1

You give Claude the details

Content name, keyword, resource URL, and content type. Or just run the command and Claude will ask for what it needs.

2

Claude writes the DM copy

Three messages (opening, link delivery, follow-up) written in your brand voice using your voice guide file. You get 2–3 options for each.

3

You approve the copy

Pick your favourite options or ask for tweaks. Nothing touches ManyChat until you say go.

4

Claude builds the funnel

Using browser automation (Playwright), Claude duplicates your template flow, swaps in the copy, sets the keyword, and activates everything.

5

Flow goes live

Your funnel is active and logged. Test it by commenting the keyword from a different account.


Before you can use this skill, you'll need a few things set up. Nothing complicated — just the right accounts and one template flow.

Claude Code (desktop app)
ManyChat Pro account
Instagram Business account
Playwright MCP server
No coding experience needed
No API keys required

Why Playwright?

The skill uses Playwright (a browser automation tool) to control ManyChat's interface directly — clicking buttons, filling in text, navigating pages. This is done via an MCP server that connects to Claude Code. You don't need to write any code yourself. It's essentially Claude using ManyChat the same way you would, just faster.

Why ManyChat Pro?

The free ManyChat plan limits you to basic features. Pro unlocks keyword triggers, custom automations, and the flow builder — all of which this skill relies on. If you're using comment-to-DM funnels regularly, Pro pays for itself quickly.


There are three things to set up before your first run: a template flow in ManyChat, your reference files, and the skill file itself.

Step 1: Create your template flow in ManyChat

1 Create a new flow in ManyChat with a keyword trigger (use a placeholder keyword like "TEMPLATE")
2 Add 2–3 randomised comment replies (e.g. "Check your DMs!" / "Sent! Check your DMs")
3 Add an opening DM step with a button (placeholder text is fine)
4 Add a link delivery DM step with a URL button
5 Add a follow-up DM step triggered after a delay (e.g. 24 hours)
6 Put this flow in its own folder (e.g. "templates") so it stays untouched

Why a template flow?

The skill duplicates this template every time you create a new funnel. The structure (comment replies, DM sequence, follow-up timing) stays the same — only the keyword, copy, and link change. This means your funnels are consistent, and you set up the flow structure once.

Step 2: Create your reference files

1 voice-guide.md — Your brand voice rules. How you talk, words you use, words you avoid, example DMs that sound like you. This is the most important file — it's how Claude writes copy that actually sounds like you.
2 ui-selectors.md — Notes on ManyChat's UI (button locations, menu names). Update whenever ManyChat changes their interface.
3 podcast-config.md (optional) — Your podcast URLs for Spotify, Apple Podcasts, and YouTube. Only needed if you promote podcast episodes.

Save these files in your Claude Code skill folder at ~/.claude/skills/manychat/references/

Step 3: Create your funnel log

1 Create a file at ~/.claude/skills/manychat/funnel-log.md with a simple table header:
funnel-log.md
| Date | Keyword | Content Name | Resource URL | Flow Name | Status |
|------|---------|-------------|-------------|-----------|--------|

The skill appends a row here every time it creates a funnel. Handy for tracking what's live and avoiding duplicate keywords.


This is the actual Claude Code skill. Copy the entire block below and save it as SKILL.md in ~/.claude/skills/manychat/

How to install a Claude Code skill

If this is your first skill, create the folder structure first:

  1. Open your terminal
  2. Run: mkdir -p ~/.claude/skills/manychat/references
  3. Copy the skill file below into ~/.claude/skills/manychat/SKILL.md
  4. Add your reference files to the references/ folder
  5. Restart Claude Code — the skill will be available as /manychat
SKILL.md
---
name: manychat
description: Create ManyChat comment-to-DM funnels for Instagram using browser automation. Use when you need to "create a funnel," "set up a comment trigger," "ManyChat flow," "comment to DM," "keyword trigger," or "DM funnel."
user-invocable: true
allowed-tools: Read, Write, Edit, mcp__playwright__browser_navigate, mcp__playwright__browser_click, mcp__playwright__browser_type, mcp__playwright__browser_fill_form, mcp__playwright__browser_snapshot, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_wait_for, mcp__playwright__browser_evaluate, mcp__playwright__browser_run_code, mcp__playwright__browser_press_key, mcp__playwright__browser_hover, mcp__playwright__browser_handle_dialog, mcp__playwright__browser_tabs, mcp__playwright__browser_navigate_back, mcp__playwright__browser_select_option, mcp__playwright__browser_close
argument-hint: <keyword> for <content description>
---

# ManyChat Funnel Creator

Duplicate a template flow in ManyChat, swap in new copy and keyword, activate it. Fully automated via Playwright.

## How the Template Flow Works

Before using this skill, you need a reusable template flow set up in ManyChat. The template has this structure (comment replies and flow structure stay the same every time — only the content-specific parts change):

1. **Trigger:** Comment/story reply/DM containing a keyword (e.g. "FREEBIE")
2. **Comment reply** (stays the same): A short reply telling them to check their DMs
3. **Opening DM:** Teaser message + button (e.g. "Hey! Want the FREE [resource]?" → button "Yes please!")
4. **Link DM:** Delivers the actual link (e.g. "Here you go!" + URL button)
5. **Follow-up DM:** Nudge if they don't click

**What changes each time:** keyword, opening DM text, button label, link DM text + URL, follow-up DM text. Comment replies stay the same.

---

## Setup: What You Need Before Using This Skill

### 1. Create Your Template Flow
Build a single "master" flow in ManyChat that you'll duplicate every time. It should include:
- A keyword trigger (use a placeholder like "TEMPLATE")
- 2-3 randomised comment replies (e.g. "Check your DMs!" / "Sent! Check your DMs")
- An opening DM step with a button
- A link delivery DM step with a button
- A follow-up DM step (triggered if they don't click within a set time)

Put this template in its own folder (e.g. a folder called "templates") so it's easy to find and stays untouched.

### 2. Create Your Reference Files
Create these files in your Claude skill folder (`~/.claude/skills/manychat/references/`):

**voice-guide.md** — Your brand voice rules for DM copy. Include:
- How you talk (casual? professional? emoji-heavy?)
- Words/phrases you always use
- Words/phrases you never use
- Example DMs that sound like you

**ui-selectors.md** — Notes on ManyChat's UI elements (button locations, menu names). Update this whenever ManyChat changes their interface.

**podcast-config.md** (optional, podcast only) — Your podcast show URLs:
```
Spotify: https://open.spotify.com/show/YOUR_SHOW_ID
Apple: https://podcasts.apple.com/YOUR_SHOW_URL
YouTube: https://youtube.com/@YOUR_CHANNEL
```

### 3. Create Your Funnel Log
Create `~/.claude/skills/manychat/funnel-log.md` with this header:
```
| Date | Keyword | Content Name | Resource URL | Flow Name | Status |
|------|---------|-------------|-------------|-----------|--------|
```

---

## Step 1: Gather Info

User may provide input as `$ARGUMENTS` (e.g. `/manychat CHECKLIST for AI tools checklist`).

Ask for anything not provided:
- **Content name** — what the resource is (e.g. "AI Tools Checklist", "Podcast Ep 47")
- **Content type** — podcast / lead magnet / free resource / workshop replay
- **Keyword** — trigger word (e.g. "CHECKLIST"). Must be uppercase.
- **Resource URL** — the link to deliver (skip if podcast — we'll scrape it)
- **Custom DM copy** (optional) — or let the skill write it in your voice

---

## Step 2 (Podcast Only): Scrape Episode Links

Only runs when content type is "podcast". Read show URLs from `references/podcast-config.md`.

**Spotify:**
1. Navigate to the Spotify show page
2. Snapshot to find the latest (top) episode
3. Click the episode to get its URL (`https://open.spotify.com/episode/...`)
4. Note the episode title

**Apple Podcasts:**
1. Navigate to the Apple Podcasts show page
2. Snapshot to find the latest episode
3. Click to get its URL (`https://podcasts.apple.com/.../id...?i=EPISODE_ID`)

Confirm with user: "Latest episode is [title] — is that the right one?"

---

## Step 3: Generate Copy

Generate copy for the **three parts that change** (comment replies stay the same):

### Opening DM (2-3 options)
- Short question that builds excitement
- Include a button label
- e.g. "Hey! Want the FREE [resource]?" → button "Yes please!"

### Link DM (2-3 options)
- Short, friendly — they've already said yes
- **NO inline URLs in the message body** — all links go as BUTTONS
- For podcasts: add buttons for each platform (e.g. YouTube, Spotify, Apple Podcasts)
- For lead magnets: add 1 button with the resource URL
- Button labels max 20 characters

### Follow-up DM (1-2 options)
- Gentle nudge if they don't click
- Not pushy
- **NO inline URLs** — refer them back to the buttons
- e.g. "Hey! Did you get a chance to check out [resource]? Tap the button above to grab it"

**Rules:** Write in YOUR voice. Read `references/voice-guide.md` for tone and style. Keep DMs short and conversational.

Present all copy grouped by section. Wait for approval before touching ManyChat.

---

## Step 4: Browser Automation

Once copy is approved, automate ManyChat setup via Playwright.

### Rules
- Snapshot after EVERY action to verify
- Never type passwords — ask the user to handle login/SSO manually
- If stuck: screenshot + snapshot, describe what failed, ask to retry/skip/abort
- Wait for elements to load (ManyChat is a React SPA — elements may take a moment)

### 4a. Login Check
1. Navigate to `https://manychat.com/`
2. Snapshot — if logged in, continue. If not, navigate to login and ask the user to handle authentication manually. Wait for confirmation.

### 4b. Navigate to Flows
1. Navigate to automations/flows page
2. Snapshot to verify

### 4c. Duplicate Template
1. Navigate to the template folder inside Automations
2. Find the template flow, click 3-dot menu → Duplicate
3. Snapshot to confirm

### 4d. Move Flow Out of Template Folder
1. The duplicated flow will be inside the template folder — it needs to be moved out
2. Click the 3-dot menu on the duplicated flow → "Move to" → select the root/general automations folder
3. Only the original template should remain in the template folder
4. Snapshot to verify the flow is now in the general folder

### 4e. Rename Flow
1. Rename to: `[KEYWORD] - [Content Name] - [DD/MM/YYYY]`
2. Snapshot to verify

### 4f. Set Keyword
1. Open the flow editor
2. Click the trigger step → open settings
3. Change the placeholder keyword to the new keyword
4. Save, snapshot to verify

### 4g. Edit Opening DM
1. Find the opening DM step
2. Update the message text with approved copy
3. Update the button label
4. Save, snapshot to verify

### 4h. Edit Link DM
1. Find the link delivery step
2. Update message text with approved copy — **NO inline URLs in the text body**
3. Edit the existing link button (click it to open modal, update label + URL)
4. Add additional link buttons via "Add a link" button if needed (e.g. for podcasts: YouTube, Spotify, Apple)
5. Button labels max 20 chars. Save each button via its modal.
6. Snapshot to verify

### 4i. Edit Follow-up DM
1. Find the follow-up step
2. Update message text with approved copy
3. Save, snapshot to verify

### 4j. Activate
1. Click Publish/Activate
2. Handle any confirmation dialog
3. Snapshot + screenshot for records

Confirm: "Flow is live! Keyword: [KEYWORD]. Test it by commenting on a post from a different account."

---

## Step 5: Log It

Append to `~/.claude/skills/manychat/funnel-log.md`:
```
| [DD/MM/YYYY] | [KEYWORD] | [Content Name] | [Resource URL] | [Flow Name] | Active |
```

---

## Step 6: After Delivering

> "Want me to tweak the copy, or are you good to go?"

---

## Error Handling

- **Login:** Never type passwords. Ask the user to handle authentication manually.
- **Element not found:** Screenshot + snapshot → describe what's visible → try alternatives → ask user after 2 attempts.
- **UI changed:** Try to adapt, update `references/ui-selectors.md` if successful, offer manual handoff if not.
- **Flow editor too complex:** Try `browser_run_code` for precise Playwright scripts. Last resort: manual handoff for editor-specific steps.

---

## Quality Checks

Before browser automation:
- Keyword uppercase and memorable? Not already used? (check `funnel-log.md`)
- DM copy under 500 chars? Sounds like you?
- URL valid?
- Copy matches your brand voice?

---

## Customisation Guide

Make this skill yours by updating these things:

1. **Template flow name** — Replace references to "LEADMAGNET TEMPLATE" with whatever you name your template flow
2. **Template folder name** — Update if your folder is called something other than "templates"
3. **Placeholder keyword** — Update what keyword your template uses as the default (e.g. "TEMPLATE", "STARTER")
4. **Comment replies** — Customise the randomised comment replies in your template flow to match your voice
5. **voice-guide.md** — This is the most important file. Fill it with YOUR voice, YOUR phrases, YOUR vibe.
6. **Content types** — Add or remove content types based on what you actually promote (e.g. if you don't have a podcast, remove the podcast steps entirely)
7. **Button labels** — Update the example button labels to match your style
8. **Naming convention** — Change the flow naming format in Step 4e if you prefer a different structure

---

## Continuous Improvement

Update this skill as you go:
- UI changes → update `references/ui-selectors.md`
- Copy preferences → update `references/voice-guide.md`
- Workflow tweaks → simplify this file

Pro tip: Test before going live

After installing the skill, run it once with a test keyword (e.g. "TEST123") and a dummy URL. This lets you see the full flow — copy generation, browser automation, activation — without risking a real funnel. Delete the test flow when you're done.


The skill is designed to be adapted to your brand. Here are the key things to personalise:

🎙

Voice Guide

The most important file. Write down how you talk — casual or formal, emoji usage, phrases you love, phrases you'd never say. The more specific, the better Claude's copy will sound.

📋

Template Flow

Your ManyChat template is the foundation. Set up comment replies that match your brand, pick a follow-up delay that works for your audience, and structure the DM sequence how you like.

🏷

Naming Convention

The default naming format is [KEYWORD] - [Name] - [Date]. Change it to whatever helps you stay organised in ManyChat.

📂

Content Types

The skill handles podcasts, lead magnets, free resources, and workshop replays. Remove types you don't use, or add new ones (e.g. "course launch", "affiliate link").

🔘

Button Labels

Update the example button labels in the skill to match your style. "Hell yeah!" might not be your vibe — swap in what feels right. Max 20 characters.

🔄

UI Selectors

ManyChat updates their interface periodically. Keep ui-selectors.md current so the browser automation doesn't break. Update whenever you notice changes.


A few things to keep in mind as you start using the skill:

No inline URLs in DMs

Instagram can suppress messages that contain raw URLs. Always deliver links as buttons, never pasted into the message text. The skill enforces this, but keep it in mind if you're tweaking copy manually.

Button labels: 20 characters max

ManyChat truncates button labels longer than 20 characters. Keep them punchy — "Grab it" works better than "Click here to download the resource" anyway.

Login is manual

The skill will never type your password. If you're not already logged into ManyChat in the browser, Claude will pause and ask you to handle authentication. This is intentional — your credentials stay yours.

Check your funnel log

Before choosing a keyword, the skill checks funnel-log.md for duplicates. If you've manually created funnels outside the skill, add them to the log so you don't accidentally reuse a keyword.

ManyChat UI changes

ManyChat is a React SPA that updates its interface regularly. If the browser automation gets stuck, Claude will screenshot what it sees and ask for help. After resolving the issue, update ui-selectors.md so the fix persists.

This skill gets better over time

Every time you run it, you can refine your voice guide, update UI selectors, and tweak the skill file. Think of it as a living system — the more you use it, the faster and more accurate it gets.


Ready to go deeper?

Take your skills to the next level with these resources.