Case studies
Our own product
AutomationToolsMCPAI

The engine behind every automation we ship

We built our own automation platform, and every workflow we deliver runs on it. It is small enough to run on a modest server, quick for our team to change, and it draws each workflow as a diagram anyone can follow. AI assistants like Claude and ChatGPT can check on it and fix things through MCP.

the whole platform, in one container
188 MBthe whole platform, in one container
a changed workflow goes live without a restart
0 downtimea changed workflow goes live without a restart
tokens for an AI assistant to answer “what’s broken?”
< 300tokens for an AI assistant to answer “what’s broken?”
recorded, with an alert the moment one fails
Every steprecorded, with an alert the moment one fails
automator · the-mantra-cross-poster · flow

Automator drawing The Mantra's cross-poster workflow as a diagram

Automator drawing The Mantra's cross-poster workflow as a diagram
The Mantra’s cross-poster, drawn by Automator from its own code. Content is approved once in Notion and goes out to Instagram, Facebook and Threads by itself.
Why we built it

An automation platform built for the way we work

Most automation platforms are built for someone dragging boxes around a screen. Most of their weight goes into that editor and hundreds of integrations nobody uses. They are heavy to host, hard to review, and when something breaks, usually nobody knows.

We wanted the opposite: small, fast to change, and impossible to fail quietly. So we built Automator, and moved every client automation off n8n onto it.

Before

A typical automation platform

  • A heavy install, mostly for a visual editor
  • Workflows stored as big JSON files, hard to review and hard to undo
  • A failed message is a red row nobody is watching
  • AI assistants spend thousands of tokens to read it

After

Automator

  • One 188 MB container and one database file, with no database server
  • Each workflow is a short code file with a full change history
  • A saved change goes live in seconds, without downtime
  • Every failure sends an alert, with the reason
  • AI assistants see what broke in under 300 tokens
How it works

Something happens, a workflow runs, the work gets done

Every automation follows the same path. Automator sits in the middle: it starts the workflow, tries again when a service is down, and records what happened so there is always an answer to “did it send?”

  1. Starts when

    Something happens

    • A form is submitted
    • A board status changes
    • A WhatsApp message arrives
    • A time of day
    • New rows in Notion
  2. Automator

    Runs the workflow

    • Checks it is genuine
    • Retries on failure
    • Resumes where it broke
    • Records every step
    • Alerts on failure
  3. Ends in

    The work is done

    • WhatsApp
    • Telegram
    • Email
    • Instagram · Facebook · Threads
    • Monday.com
    • Notion
    • Claude · OpenAI
Readable by anyone

Each workflow is drawn as a diagram, straight from its code

Our team writes workflows as code, because code is fast to change and easy to review. Clients shouldn’t have to read code, though. Automator reads each workflow and draws it as a map: what starts it, each decision, each step, and where it ends. Click any step to see what it does in plain language.

automator · the-mantra-cross-poster · flow

A step in the cross-poster opened, explaining what it does

A step in the cross-poster opened, explaining what it does
Clicking a step shows what it does and which services it touches.
automator · pblsh-send-signed-agreement · flow

PBLSH signed-agreement workflow, drawn as a flow diagram

PBLSH signed-agreement workflow, drawn as a flow diagram
PBLSH: a creator signs the content agreement and gets their signed PDF by email, and the team is told on Telegram. The two branches at the bottom are where it stops safely.
Running in production

What it does for our clients every day

StudentQR

Every WhatsApp a school receives

Order confirmations, card and badge status updates from the factory boards, support tickets opened and closed, monthly PDF reports, and Zahra, the two-way WhatsApp support line.

The Mantra

Post once, publish everywhere

Approved content in Notion goes out to Instagram, Facebook and Threads on schedule. A Telegram bot warns the team when the queue runs low or a post gets stuck, and answers their questions about content.

PBLSH

Signed agreements, delivered

When a creator signs the content buyout agreement, they get their signed PDF by email, and the team is told on Telegram.
automator · workflows/studentqr

Automator's Workflows tab, showing the StudentQR workflows

Automator's Workflows tab, showing the StudentQR workflows
The Workflows tab. Each client has a folder, and each workflow has one line saying what it does, what starts it, and an on/off switch.
Built for AI

Your AI assistant can run it: ask what broke, get an answer

We built Automator an MCP server. MCP is the open standard AI assistants like Claude and ChatGPT use to connect to other software. The team can ask “what broke overnight?” from a laptop or a phone, the assistant checks the platform and replies in plain language, and with permission it can re-run the failed message.

Many platforms send an AI thousands of tokens to answer one question. Ours adds up the numbers on the server and returns a short table, so a typical “what’s wrong” answer takes under 300 tokens. A phone can be given read-only access, so only a laptop with full access can re-run anything.

You ask your AI assistant

  • What broke overnight?
  • Why is the cross-poster failing?
  • Show me what that webhook actually sent.

Claude, ChatGPT or any MCP-ready assistant picks the tool, calls automator and answers from what comes back, on a laptop or a phone.

Read · every connection

  • overviewthe whole state in one call
  • failureswhat is failing, grouped by cause
  • runone run: steps, calls, logs
  • trendwhich workflows went quiet
  • hotspotsslowest steps, wasted retries
  • configwhich credentials are connected

Act · full access only

  • resumefinish a failed run, skip what worked
  • replayrun it again on the same input
  • triggerstart a workflow now
  • set_pausedswitch a workflow off or on
Made to be trusted

Nothing fails quietly

An automation matters most when it breaks, because that is when a customer never gets their message. These features are there so that doesn’t happen.

Alerts, with the reason

A failed run, a rejected webhook or a missing credential sends a Telegram message. If WhatsApp can’t deliver to a customer, that becomes an alert too.

Resume from the broken step

Fix the problem, then press Resume. Steps that already worked are skipped, so nobody gets the same email twice.

Every run recorded

Each step’s input and output and every outside call is kept. “Did it send?” always has an answer.

Only real senders get in

WhatsApp and Tally deliveries are checked against their signatures, and everything else needs a secret. Fakes are turned away and counted.

Secrets never stored in plain text

Credentials are encrypted, and every log is cleaned of secrets before it is saved. Secrets never reach an AI assistant either.

Webhooks set themselves up

Deploy a workflow and it registers itself with Monday or Telegram. Switch it off and the registration is removed.
Under the hood

A workflow is a short file, and AI is built in

Our engineers can write a workflow in minutes, and every change goes through code review and version history. Claude and OpenAI are available to every workflow, so adding AI to an automation takes one line.

workflows/daily-digest.ts
export default defineWorkflow({
  name: "daily-digest",
  trigger: cron("0 9 * * 1-5", { tz: "Asia/Kuala_Lumpur" }),
  retries: 2,

  async run(ctx) {
    const commits = await ctx.step("fetch", () =>
      ctx.http.get("https://api.github.com/repos/you/repo/commits"),
    );

    const summary = await ctx.ai.claude(
      `Summarise for standup:\n${commits.map((c) => c.commit.message).join("\n")}`,
    );
    await ctx.slack.send("#general", summary);
  },
});

Mistakes caught early

A wrong field name is caught before it deploys, not at 3am.

Services built in

WhatsApp, Telegram, Slack, Discord, email, Sheets, Drive, Monday, SQL, R2, web scraping and AI.
  • TypeScript
  • Bun
  • Hono
  • SQLite
  • Docker
  • Coolify
  • Claude API
  • OpenAI API
  • MCP

Tell us where the business hurts. We'll tell you if AI fixes it.

Thirty minutes with the engineers who'd actually build it. You leave with an honest read on whether it's worth doing, what it would take, and what it would cost.