Vibe Coding a Finance Automation

Automating YNAB with Zapier, Telegram, and a Bit of Cyberpunk Magic.

Translucent modules carry transaction data through validation gates into a structured ledger.

🧠 Manual Finance Feels Like 1980s Data Entry

Budgeting tools such as YNAB expose APIs that make manual transaction entry a useful automation case study.

The source signals are familiar:

  • You get an email and an SMS every time you spend.
  • Each transaction needs to be entered manually into YNAB — amount, merchant, category, memo, and the status supported by bank evidence.
  • Each entry takes maybe 30 seconds if you’re fast.

For a hypothetical batch of ten transactions, thirty seconds of manual entry per item adds up to five minutes.

The exact volume is less important than the repeated transcription of information that already exists in a structured notification.

An event-driven workflow can reduce that duplication while keeping category selection explicit.

⚙️ The Idea — Let the Machines Do It

The workflow requirements:

  1. Reads the bank’s transaction emails.
  2. Extracts the value and merchant info automatically.
  3. Sends the user a Telegram notification where they can pick a YNAB category.
  4. Posts the transaction directly to YNAB via its API.
  5. Keeps it uncleared until bank settlement is established; handles duplicates and review explicitly.

And I wanted to build it with zero infrastructure — no servers, no frameworks, no cron jobs. Just pure vibe coding using Zapier + Telegram bot + YNAB API + a bit of JavaScript inside Zapier Code steps.

🕹️ The Stack

  • Zapier – orchestration brain, reading emails, storing payloads, and triggering flows.
  • Telegram Bot – human interface for category selection.
  • YNAB API – to record transactions; any budget reassignment is a separate authorized rule.
  • JavaScript (inside Zapier Code by Zapier) – for data parsing and custom logic.
  • ChatGPT (a.k.a. Vibe Coding Copilot) – for generating and refactoring the code directly inside Zapier.

⚙️ The Architecture

Illustrative event-driven transaction workflow: ingest, validate, select a category, record once and confirm.
Illustrative architecture with synthetic examples; no real account or transaction data.
  • Zap 1 – Bank Transaction Parser
    • Trigger: new transaction email.
    • Code step: parses a synthetic example such as “Paid 100.00 units to Example Merchant.”
    • Fetches all visible YNAB categories via API.
    • Validates and stores the pending transaction with a stable record identifier. If storage fails, it does not send actionable buttons.
    • After successful persistence, sends the Telegram summary and category buttons referencing that pending record.
  • Zap 2 – Category Tap → YNAB Entry
    • Trigger: Telegram button press (callback_query).
    • Fetches stored transaction data.
    • Records a deduplicated transaction with the chosen category and uncleared status until settlement is verified.
    • Optionally reassigns budget funds under a separate rule that checks available funds and authorization.
    • Sends a Telegram confirmation, for example: “100.00 units added to Example Category.”
    • Cleans up the stored payload.

The diagram shows a target architecture, not a screenshot of an account. Validate the payload and assign an idempotency key before writing to the destination ledger, so retries and repeated notifications do not create duplicate entries.

🔮 The Flow

  1. You buy something → your bank emails you.
  2. Zap 1 receives the event asynchronously and parses merchant, amount and time.
  3. A synthetic Telegram message could read:
Synthetic example: Paid 100.00 units to EXAMPLE MERCHANT
[🍔 Food] [🚕 Transport] [🎮 Fun] [💡 Utilities]
  1. Tap one category → that triggers Zap 2.
  2. YNAB records the transaction. Settlement status and any budget reassignment are evaluated separately.
  3. The synthetic example returns: “100.00 units added to Example Category.”

No browser. No manual entry. No spreadsheets. Just automation humming in the background like neon circuits in a rainy alley.

🧬 Why This Feels Cyberpunk

Because it’s not about “coding” in the old sense — it’s vibe coding:

  • You’re not deploying servers, you’re wiring systems together.
  • You’re mixing AI-assisted snippets, APIs, and low-code glue.
  • You’re turning boring routines into automated rituals.

I didn’t open IDE, Google, or API docs.

I opened Zapier, typed some JS, and let ChatGPT guide the logic.

No infrastructure. No deployments. No burnout.

Just results.

🧠 Lessons from the Future

  • Many repetitive workflows can be automated when inputs, permissions and failure handling are defined.
  • Modern tools are the new cyberpunk gear — Zapier, Telegram, AI.
  • AI can help draft integration code; the API contract and failure handling still need verification.
  • The best code is the code that deletes work from your life.

🌐 Conclusion

This project reminded me that we live in the future already — you don’t need a dev team to build automation.

The potential saving depends on transaction volume, exception handling and maintenance. The hypothetical entry example above illustrates arithmetic; it is not a measured weekly result.

Vibe coding is the new hacking.

You just need imagination, curiosity, and a bit of caffeine glow from your monitor.

“The machines don’t steal our jobs. They free us from the boring parts.”