~/russelle — zsh
45+
WORKFLOWS
IN PRODUCTION
16
SYSTEMS
SHIPPED
0
MANUAL SPREADSHEETS
LEFT BEHIND
~/about

I deliver administrative, creative, and technical support end-to-end — automation, project management, business process mapping, operations management, workflow design, client success, and executive assistance. One person covering what usually takes a small ops team.

My approach is ROI-first: every workflow exists to remove a specific manual task — a spreadsheet someone updates by hand, an inbox someone re-reads every morning, a reminder someone has to remember to send. If it doesn't save real hours or catch a real mistake, I don't build it.

Based in the Philippines. "Nobody can achieve success alone — breathe and delegate" is more or less my whole operating philosophy. Comfortable owning a build end-to-end: logic, integrations, and the frontend a client or their guests actually touch.

$ ls -la ~/stack
n8n Make.com Zapier OpenAI API ElevenLabs Monday.com GoHighLevel Notion ClickUp / Asana / Trello Jotform Google Sheets / Drive API Gmail API Slack (Block Kit) Webhooks + token auth Stripe / Xero HTML / CSS / JS REST / GraphQL APIs
$ cat feedback.log
"Extreme ownership — you just take projects and run with them. We're so grateful to have you on the team."
"How well-organized, clean, and documented is this process now?? This makes it so we can streamline as many little bits as possible."
"Taking on new tasks and executing with ease — you never fail to impress us."
"Genuinely amazing work. I can't wait to show this to the client — he'll be very happy!"
~/case-studies

Operational systems, in production

Real automations built for a tour & activities operator. Client and internal names are anonymized — the logic and outcomes are exactly as shipped. Click a case to expand.

01 — FLAGSHIP · 5 CONNECTED WORKFLOWS
Partner Payment Reconciliation & Dispute System
Replaced a fully manual monthly reconciliation across 8+ reseller partners with a self-running, token-secured pipeline that emails, chases, and escalates on its own.
+
01 Monthly Pull Ventrata → aggregate Notify Partner Email + secure link 02 Confirm Token validated 03 Dispute Form intake 04 Reminder Day-7 check Notify Finance Pay / invoice 05 Resend Fresh token issued

Problem

Finance manually totaled bookings per partner, chased confirmations over email, and tracked disputes and reminders by hand — every single month, across every partner.

What I built

A monthly pull that aggregates bookings per partner, generates a branded breakdown, and emails a one-click confirm/dispute link with a single-use token. Confirms and disputes route automatically; unanswered items escalate to finance after 7 days; corrections trigger a fresh cycle without a new manual email.

Outcome

Zero manual chasing. Disputes are captured in a structured form instead of scattered email threads, and nothing sits unresolved longer than a week without someone being notified.

n8nMonday.comGoogle Sheets/DriveGmailWebhook token auth
02 — DAILY OPS DIGEST
Colosseum Ticket Reconciliation
Two systems tracked the same tickets and could silently drift apart. Now they're cross-checked every morning, automatically.
+
Board ATicket payments Board BTour scheduling ReconcileNormalize + match Slack DigestDaily 9AM CET

Problem

A payment-tracking board and a guide-scheduling board could quietly fall out of sync — wrong ticket counts for a date and time slot, with no one checking until a guest showed up short a ticket.

What I built

A daily job that pulls both boards, normalizes inconsistent product naming between them, and checks every scheduled slot in the next 14 days. Posts a Slack digest — all-clear, or an itemized list of exactly what mismatched.

Outcome

A manual spot-check became a report the team reads with morning coffee — mismatches get caught days before a guest is affected.

n8nMonday.com APISlack Block Kit
03 — AI PIPELINE
Review Extraction & AI Reply Drafting
Reviews arrive in multiple languages and need a human-approved reply. AI now does the triage; a person still hits send.
+
ExtractMatch to booking AI ClassifyGuide-related? TranslateDetect language Draft ReplyStaged for review

Problem

Incoming reviews needed to be matched to the right booking, checked for language, and answered — slow, manual triage that ate into someone's day.

What I built

A pipeline that pulls new reviews, matches them to booking records, uses AI to classify whether a review is guide-related, detects and translates non-English text, and drafts a suggested reply — staged in a sheet, never auto-published.

Outcome

Review triage time dropped sharply, and the team edits a draft instead of starting from a blank page every time.

n8nOpenAI APIGoogle Sheets
04 — RECOGNITION LOOP
5-Star Review Daily
Great reviews used to go unread. Now the guide they're about finds out the same day.
+
New ReviewsNot yet sent Match GuideBooking lookup Slack MessageDirect to guide

Problem

5-star reviews naming specific guides went unnoticed — no one had time to read every review and pass along the credit.

What I built

A daily job that pulls new reviews, filters out ones already processed, matches each review to its booking and guide, and sends a direct Slack shout-out — paced with a short delay so it reads as intentional, not spammy.

Outcome

Guides hear about great feedback the day it happens, instead of never hearing about it at all.

n8nGoogle SheetsMonday.comSlack
05 — INBOX PARSER
Cancellation Policy Auto-Tagging
Cancellation emails used to require a manual read-and-tag. Now the inbox tags itself.
+
Gmail TriggerCancellation email Parse HTMLExtract booking ID Auto-TagPolicy applied

Problem

Every cancellation email had to be read by hand, checked against a same-day / walking-tour policy window, and tagged manually on the booking.

What I built

A Gmail-triggered parser that extracts the booking ID and key fields directly out of the email's HTML, checks it against the cancellation policy window, and appends the correct tag automatically.

Outcome

One less manual read-and-tag step, every time a cancellation email lands.

n8nGmail triggerRegex / HTML parsing
06 — FULL CLIENT JOURNEY · 7 CONNECTED SCENARIOS
Photography Studio: Booking-to-Delivery Automation
Every stage of a client's shoot — booking, payment, reminders, delivery, storage cleanup — runs itself from a single Notion CRM, without the studio touching a spreadsheet.
+
Jotform Booking New appointment Notion CRM New vs returning Drive Folder + confirmation email Payment Success Receipt + status Day-Before SMS + email Day-Of Reminder 8:00AM email After Shoot Gallery email Auto-Cleanup Drive housekeeping

Problem

A photography studio ran bookings through a form, then manually tracked every client in a spreadsheet, sent reminders by hand, and forgot to clean up delivery folders — storage crept up every month.

What I built

Seven connected Make.com scenarios: a Jotform booking creates or updates a Notion CRM record and a Drive folder; a payment webhook sends receipts and updates status; day-before reminders branch to SMS when a phone number exists, email when it doesn't; day-of and after-shoot emails fire automatically; and a nightly housekeeping pair empties trash and auto-deletes delivery folders three weeks old.

Outcome

The studio's entire client journey — from form submission to gallery delivery — runs without anyone touching a spreadsheet, and Drive storage stays lean on its own.

Make.comJotformNotion APIGoogle DriveGmailSMS
07 — DYNAMIC WEB APP · GUEST PORTAL
Staycation Villa: Guest Portal & Live Pricing Pages
A booking, ID upload, and in-stay ordering system where every page — including the honesty-bar menu — is generated live from the data behind it.
+
Booking PortalWebhook-served page ID + Notion CRMUpload + log Payment + WelcomeConfirm & onboard Honesty BarLive from Sheet

Problem

A villa rental needed a booking flow, ID capture, payment confirmation, and an in-stay pricing menu — without hiring a developer to maintain a real website, and without the caretaker manually updating prices anywhere.

What I built

Four n8n workflows that serve real webpages straight from webhook responses: a booking portal that uploads guest ID and logs to Notion, a payment/onboarding receiver that emails a confirmation, a welcome page with house info, and a live honesty-bar menu that reads a Google Sheet and auto-sorts items into drinks vs. snacks by keyword — so the caretaker edits a spreadsheet, never code.

Outcome

The whole guest journey lives on pages that update themselves — change a price in the sheet and the honesty-bar menu reflects it on the next page load, with zero deploys.

n8nNotion APIGoogle SheetsGoogle DriveGmailServer-rendered HTML
08 — AI OPS ASSISTANT · JUDGES, NOT JUST FILTERS
Self-Updating Pending-Task Dashboard
A single live page that decides what still needs a reply across four different tools — using an AI that reads full threads, not a keyword filter.
+
Slack + Gmail unread + to:me scan Tickets + Notes board + decision log AI Judges Threads full read, not snippets Vault Note hidden data block Git Commit push to remote Poll Sync every few minutes Merge + Prune resolved items drop Live Dashboard starred + persistent Calendar Scan live, every 2 min

Problem

Tasks needing a reply were scattered across chat, email, a ticket board, and personal notes. A keyword-based "unanswered" filter kept flagging threads that were already resolved several replies deep, and meeting RSVPs got missed entirely because nothing pulled all four sources into one place.

What I built

An AI agent reads full chat threads and email chains daily — not just the first message — to judge what's genuinely still open, merges in live ticket-board items and self-authored decision notes, and writes the result into a git-backed vault note. A poll-based sync picks that up and renders it as a live, starrable status board, while calendar RSVPs are checked independently every two minutes so nothing sits unnoticed.

Outcome

One page replaces manually checking four different tools every morning. Star/checked state persists across refreshes and devices, resolved tickets drop off the board on their own, and the judgment step has already caught things a keyword filter would have missed — including a live automation bug and a false "unanswered" flag on an already-closed thread.

n8nClaude (AI agent)Obsidian + GitGitHubSlackGmailGoogle CalendarMonday.com

View demo →

09 — FINANCIAL SAFETY ENGINE · WON'T TOUCH WHAT IT ISN'T SURE OF
Automated Pricing & Schedule Correction Engine
Predicts what a booking's price should be, then runs it through five separate safety checks before it's ever allowed to touch a live record.
+
Read Trackers offers + schedules Predict Target net + commission Safety Checks 5 conditions, all must pass PATCH Live apply adjustment Verify re-fetch + confirm Already Correct? skip if true Skipped Unsafe reason logged Audit Trail status per row Rate Invalid flagged, not patched Verify Failed flagged for review

Problem

Special-offer bookings synced from a reseller could drift out of sync with the correct wholesale/net/commission split — sometimes by a few cents, sometimes by a lot — and finding + fixing each one by hand meant cross-checking a pricing sheet against a live booking record every single time.

What I built

A predictor computes what a booking's net and commission should be from validated schedule and offer data, then runs every candidate through five independent safety checks — booking exists, isn't cancelled, has valid current pricing, net doesn't already exceed retail, no conflicting adjustments already applied — before it's allowed anywhere near a live PATCH. After patching, it re-fetches the booking to verify the correction actually landed, and writes a per-row audit status: patched, already correct, skipped-unsafe, invalid-rate, or verify-failed.

Outcome

Bookings only get touched when every check agrees it's safe to. Anything ambiguous is flagged with a specific reason instead of silently guessed at — the system is designed to leave money alone rather than risk a wrong correction.

n8nVentrata APIGoogle SheetsMulti-stage validation
10 — AI TRIAGE + ROUTING
Reseller Review Pipeline: Extraction, AI Reply, Smart Routing
New reviews get a drafted reply and land in the right team's Slack channel automatically — matched by tour category, not by someone reading every one.
+
Fetch Reviewsdedupe vs. board Log to BoardMonday item created AI Draft + Flagreply + suggestion check Route to Slackby tour category

Problem

A second review source needed the same triage as the first (extract, dedupe, draft a reply) plus something the first didn't have: getting the review in front of the right team, not just a single shared inbox someone had to sort by hand.

What I built

Fetches new reviews per tracked product, filters out ones already logged, and creates a board item for each new one. AI drafts a suggested reply and separately flags whether the review contains an actionable suggestion or complaint. A lookup matches the review's tour category against a product directory to find the right Slack channel, and routes the notification there directly.

Outcome

Reviews reach the specific team that can act on them instead of sitting in one inbox everyone assumes someone else is checking.

n8nOpenAI APIMonday.com APISlack
11 — AUTOMATED REPORTING
Monthly Team Performance Report
A polished, ranked Slack report on every team and guide's month — bookings, ratings, add-on sales — generated and posted without anyone opening a spreadsheet.
+
Pull DataBigQuery + Sheets Group & Rankby team, by guide Build Reportmedals, emoji, context Post to Slackmonthly, automatic

Problem

Comparing team and guide performance month to month meant pulling numbers from a data warehouse and a live tracker sheet by hand, then formatting it into something people would actually read.

What I built

A scheduled job that pulls bookings and reviews from BigQuery and Sheets, groups everything by destination team and individual guide, ranks top performers and top add-on sellers, and assembles it into a Slack Block Kit report — medal emoji for the top three, a destination-specific icon per tour type, and a dynamically calculated reporting period so no date is ever hardcoded.

Outcome

Every team gets a readable, ranked recap in Slack on the first of the month, with zero manual pulling or formatting.

n8nGoogle BigQueryGoogle SheetsSlack Block Kit
12 — FULL-FUNNEL SYSTEM · 9 CONNECTED WORKFLOWS
Sales Pipeline: Lead to Signed Contract
A lead's entire path — booked, rescheduled, reminded, shown up or not, qualified, followed up, and signed — runs on one connected system with a CRM as the source of truth.
+
Lead Capture intake + booking Reschedule calendar sync Morning Reminders day-of sequence No-Show recovery branch Post-Call meeting link update Qualified? route by interest Follow-Up Slack + sequence Contract auto-generated

Problem

A lead's journey touched a lead source, a calendar tool, a CRM, and a sales team's Slack — separately. Reschedules got missed, no-shows fell through, and nobody had one place to see where a deal actually stood.

What I built

Nine connected Make.com scenarios sitting on a shared CRM record: lead intake and booking capture, reschedule detection that keeps the CRM in sync with the calendar, a morning reminder sequence, post-call meeting-link housekeeping, a dedicated no-show recovery path, AI-assisted qualified/interested routing, a Slack-based follow-up sequence, and a contract-creation flow that fires the moment a deal is ready to close.

Outcome

Every stage of the pipeline updates the same record automatically — the sales team always knows where a lead stands without hunting across four tools.

Make.comCalendlyNoloco CRMSlack
13 — EMPLOYEE LIFECYCLE · 6 CONNECTED WORKFLOWS
Onboarding, Offboarding & Recruitment System
From "we want to hire this person" to "this person is fully offboarded" — with nothing living in someone's memory in between.
+
Recruitmentemail + assign team Failed Applicantsclosed out cleanly Onboardingnew hire setup Offboardingclean exit

Problem

Recruitment, onboarding, time-off requests, and offboarding all lived as separate manual checklists — easy to skip a step on, especially for someone doing this alongside a dozen other responsibilities.

What I built

A connected set of workflows covering the applicant email step, manager/team assignment, a clean path for applicants who don't move forward, full onboarding for new internal team members, Slack notifications for time-off requests, and a structured offboarding flow.

Outcome

Every stage of someone's time with the team — from application to exit — follows the same reliable steps, whether it's the first hire of the year or the fifteenth.

Make.comSlackGmail
14 — DAILY OPS · 6 CONNECTED WORKFLOWS
Tour Logistics: Bookings, Expenses & Guide Pay
The daily grind of running tours — booking sync, expense capture, guide rates, next-day reminders — running itself in the background.
+
Booking SyncRezdy → internal Expense Capturedaily 8AM reminder Guide Rate Calcpay per tour Tour Reminder8PM, next-day

Problem

Bookings, per-tour expenses, and guide pay calculations lived in separate spreadsheets that someone had to reconcile by hand every day, on top of manually reminding guides about the next day's schedule.

What I built

A booking sync that keeps internal records current, a daily expense-capture reminder tied to the previous day's tour (down to logging specific bar/restaurant stops), an automated guide/host rate calculation, and a scheduled reminder the evening before each tour — plus an internal search tool synced to Google Drive so the team can find any document instantly.

Outcome

The daily operational grind — bookings, expenses, pay, reminders — runs on a schedule instead of on someone remembering to do it.

Make.comRezdy APIGoogle DriveGoogle Sheets
15 — AGENCY CLIENT LIFECYCLE · 10 CONNECTED AUTOMATIONS
Full Client Journey Across Three Platforms
Every milestone in a client's relationship with an agency — first lead, ad launch, weekly check-ins, reports — celebrated, tracked, and reported automatically across CRM, automation platform, and comms tool.
+
Payment → Launch ad task auto-created Launch Reminders completion → feedback First Lead milestone celebration Video Requests Drive folder + notify Tiered Reminders 48hr / 1hr / due-today Weekly Call booked + reminders Update Comms AI-cleaned SMS Reporting centralized log

Problem

A digital marketing agency needed every client milestone — payment received, ads launched, first lead landed, weekly check-ins, status updates — tracked and communicated consistently, without a team member having to remember each one manually across three separate platforms.

What I built

Ten connected automations spanning a CRM, an automation platform, and a client-communication tool: payment-triggered ad launch tasks, launch-completion feedback requests, first-lead milestone celebrations, video-request folder creation with incremental naming, a tiered 48-hour/1-hour/day-of reminder system, one-click AI-formatted client updates, and a full weekly-call booking-and-reminder sequence feeding a centralized appointment report.

Outcome

Every client-facing milestone fires consistently and on time — from the moment they pay to their weekly check-in call — without anyone on the team having to track it by hand.

Make.comNoloco CRMGoHighLevelSlackOpenAI API
16 — AI VISION + HUMAN APPROVAL · 3-PART REPORTING ENGINE
AI-Generated Client Performance Reports
Screenshots a live dashboard, has AI write the client-facing summary, routes it to the right analyst for a human edit and approval — nothing goes out without a person signing off.
+
Screenshotlive dashboard capture AI Draftvision model writes summary Analyst Reviewrouted by name, in Slack Approvedlogged + sent

Problem

Monthly client reports meant an analyst manually screenshotting a dashboard, writing a summary from scratch, and getting it approved before sending — repeated for every active client, every month.

What I built

A scheduled job creates a report entry for every active client, captures a screenshot of their live performance dashboard, and has a vision-capable AI model draft a client-facing summary strictly from what's actually in the screenshot — no invented numbers, positive framing, correct client voice. The draft routes to the assigned analyst in Slack with an interactive form to add planning notes; a second AI pass merges the analyst's input into a final version, which then goes to a manager for one-click approval before it's marked complete.

Outcome

Reports go from raw dashboard to client-ready copy automatically, but a human analyst and a manager both still touch and approve every single one before it ships — speed without losing the review step that matters.

Make.comOpenAI Vision (GPT-4o)Google SheetsSlack (interactive)
~/contact

Let's automate something

If your team is still doing something by hand that a workflow could do for them, that's the conversation to have.

~/russelle — contact.sh
$ cat contact.txt
email : ballesterosrusselle@gmail.com
upwork : upwork.com/freelancers/~yourprofile
linkedin : linkedin.com/in/yourprofile
status : open to new automation projects