AI Agents

How I Automated My Content Pipeline with monday.com, Blotato + ManyChat

I spent one hour in Claude Code and wired Monday, Blotato, and ManyChat into one pipeline that ships my content for me. Here is the entire build, free.

Mike Kwal
· 8 min read
BUILD IN PUBLIC
By Mike Kwal
July 8, 2026
9 min read
How I Automated My Content Pipeline with monday.com, Blotato + ManyChat

I spent one hour in Claude Code and wired three tools I already pay for into one pipeline that ships my content for me. Here is the entire build, free. Copy it. Run it yourself.

TL;DR

Dan Martell’s Buy Back Your Time changed how I think about work: build the system once, then let it run. So I connected monday.com, ManyChat, and Blotato into a single pipeline. Now my video editor flips one switch and an agent publishes the blog, wires up the DM link, and schedules the video to Instagram and Facebook. This guide hands you the whole thing, step by step, so you can run it too.

Buy back your time by building, not just delegating

Dan Martell wrote a whole book on buying back your time. The usual move is to hire the busywork away, and that is a great option. There is a second one right next to it that people forget: build the system that does the work.

I run MK-Way. The highest-value thing I do is build the company and make the content. Everything after “the content is finished” is push-a-button work. So I spent one hour in Claude Code and connected the three tools I already use into one pipeline that handles all of it for me. One hour, once, instead of a task on my plate every single day.

Here is exactly how it works, and how you can build your own.

The core idea: publish on an event

Most schedulers run on a clock. A timer fires, and it hopes everything is ready. The stronger pattern is to publish on an event instead. The event is one human action: my editor marks a piece “Ready to Ship.” That flip is the starting gun. Everything downstream reacts to it, in order, so the blog and the DM link are always live before the post goes out.

[ Screenshot: the “Ready to Ship” switch on the monday.com board ]

The flow, top to bottom

  VIDEO EDITOR flips ONE switch  -->  "Ready to Ship"
                                        |
              (no human past this line) v
  the autonomous agent
     1   Publish the blog
     2   Register keyword  -->  live URL          (ManyChat)
     3   Host video  -->  schedule IG + FB        (R2 + Blotato)
     4   Log it + update the board                (monday.com)
     5   Mark "Mission Complete"
                                        |
                                        v
  Post goes live  -->  someone comments the keyword  -->  bot DMs the live link
              *  ONE SWITCH, FULLY AUTOMATIC  *

The architecture: two runtimes, clean split

There are two moving parts, and keeping them separate is what makes it reliable.

  • The engine. Plain, deterministic Node code running on a small always-on server. No AI in the control path (the only AI is the blog writer). Code is cheap and predictable, which is exactly what you want running unattended.
  • The board is the interface. The human uses one tool they already live in. The switch is the input. A “Scheduled For” date is the output. No new dashboard to build.
Why this matters: the human side stays dead simple (flip a switch), and the machine side stays boring and reliable (code, not a chatbot to babysit).

The stack

Job Tool Why
The switch + the queue monday.com The board my editor already works in. One status change fires everything.
The orchestrator A single script, ship.js Runs the 6 steps in order. Stops if any step fails.
Write the blog Gemini + Nano Banana Pro images Generates the post and a clean featured image, no stock photos.
The DM keyword router ManyChat + a tiny self-hosted service (PM2 + Cloudflare Tunnel) One catch-all flow. It matches the comment text to the right link. ~49 keywords, zero per-post setup.
Host the video Cloudflare R2 (public URL) A stable link the distributor can read. A few dollars a month.
Distribute to IG + FB Blotato Takes the video + caption + a time, and schedules the post.

The 6 steps the agent runs

  1. Publish the blog. The destination has to exist first. The agent publishes the post and confirms the live URL came back before doing anything else.
  2. Register the keyword (ManyChat). It adds one line to the router: this keyword now points to that live URL. The router reloads in about 200 milliseconds. Now the DM has somewhere to send people.
  3. Host + schedule the video (R2 + Blotato). It puts the finished video on a public URL (Cloudflare R2), then hands the video, the caption, and a future time to Blotato, which schedules Instagram and Facebook.
  4. Log it. It appends one line to a schedule log so the next post knows where the queue ends.
  5. Update the board (monday.com). It writes the blog URL and the “Scheduled For” time back so you can see it.
  6. Mark it done. Only after steps 1 to 5 all succeed does it flip the status to “Mission Complete.” If anything fails, the item stays on “Ready to Ship” so a safety-net check retries it. Nothing ever looks done when it is not.
The rule that keeps every link live: the blog and the keyword go live in steps 1 and 2, before the social post is ever scheduled in step 3. So by the time anyone can comment, the link already works. Not by luck. By order of operations.

How the queue picks a time

You do not want ten posts firing at once. The agent reads the schedule log, finds the most recent scheduled post, and books the new one after it, with a minimum gap (I use 3 hours). If the queue is empty, it posts right away, still after the blog is live. The backlog drains in order, on its own.

The starting blueprint (copy this)

This is the skeleton. Drop it into Claude Code, tell it your tools, and have it fill in the API calls for monday.com, ManyChat, R2, and Blotato.

# ship.js -- run one item end to end
# usage: node ship.js --item=<id> [--dry-run] [--no-social]

1. item   = getItem(id)                 # pull from monday.com
2. assert   item.keyword AND item.caption AND item.video
3. blogUrl = publishBlog(item.id)        # step 1 -- must return a live URL
4. assert   isLive(blogUrl)              # stop here if it is not
5. addKeyword(item.keyword, blogUrl)     # step 2 -- ManyChat router hot-reloads
6. videoUrl = hostOnR2(item.video)       # step 3a -- Cloudflare R2
7. time    = nextOpenSlot(scheduleLog)   # >= now, gap >= 3h
8. schedule(videoUrl, item.caption, time, ["instagram","facebook"])  # step 3b -- Blotato
9. appendLog(item, time, blogUrl)        # step 4
10. updateBoard(item.id, blogUrl, time)  # step 5 -- monday.com
11. if all ok: setStatus(item.id, "Mission Complete")  # step 6

And the ManyChat keyword router entry is just this:

{
  "keyword": "SHIP",
  "url": "https://your-site.com/blog/your-post/",
  "tag": "guide-ship"
}

Verify it works

Check How
Dry run is safe Run with --dry-run. It should print every planned action and change nothing.
Blog goes live first Run with --no-social. Confirm the blog URL loads and the keyword resolves before you ever touch scheduling.
The link is always ready On the live post, comment the keyword. The DM should arrive with a link that already works.
Safe to re-run Run the same item twice. The blog is skipped, the keyword no-ops, and no duplicate social post is created.
[ Screenshot: the keyword resolving live, match = true ]

Build it yourself, or have me build it for you

Do it yourself. Everything above is the whole system. Take the blueprint into Claude Code, point it at monday.com, ManyChat, R2, and Blotato, and you can run this locally today. Free. That is the point.

Want it built into your brand instead? That is what we do at MK-Way. We will wire the whole pipeline into your stack so your team flips one switch and never touches the rest.

Have MK-Way build it →
Connect on LinkedIn

FAQ

Do I need to know how to code?

No. You need to know how to describe what you want. Claude Code writes the actual API calls. Your job is telling it your tools and checking the result.

Why not just use a scheduling app on its own?

Schedulers post. They do not also publish your blog, wire up your DM link, and guarantee the destination is live first. The value here is the chain, not just the posting.

What does it cost to run?

A small always-on server, a few dollars a month for video hosting on R2, and whatever Blotato and your AI writer cost. Far less than a monthly salary.

What happens if a step fails?

The item stays on “Ready to Ship” and a safety-net check retries it. It is only marked done when every step succeeds, so a half-finished post never looks finished.

Can I use different tools?

Yes. The pattern is tool-agnostic. Swap monday.com, ManyChat, R2, or Blotato for your own. The 6 steps and the one rule (blog + keyword before social) stay the same.