
AR Payment Chasing
Chases overdue invoices by email — once per customer, at the right escalation level, and never after they've paid.
- n8n
- PostgreSQL
- Gmail API
- OpenRouter
What I can automate for your business
I connect the tools your business runs on — CRM, payments, documents, email and chat — into reliable automated workflows, with AI where it helps and a person approving anything costly.
Selected systems
Each one opens into a full case study: the problem, how the automation works, and where people make the call.

Chases overdue invoices by email — once per customer, at the right escalation level, and never after they've paid.

Turns tender documents into reviewed, approved draft answers — with a person signing off at every point that matters.

Designed as a fictional medical clinic: one connected patient journey, from doctor discovery to consultation payment.
Client work
Delivered in a paid trial. The client is anonymized and confidential details are withheld.
Client details withheldTurns a sales intake into a priced, AI-reviewed, approved proposal PDF — and makes sure only an approved proposal reaches the client, once. Deterministic pricing runs first; AI reviews proposal risk and recommends a complexity-based fee uplift.
All builds
Smaller builds and experiments — AI assistants, chatbots and CRM workflows built with n8n, Zapier and GoHighLevel. Several ideas in the systems above were first tried here.

Answers policy questions in Slack from handbook documents embedded with Ollama into a Supabase vector store.

Answers Facebook Messenger inquiries from a Google Docs knowledge source, with webhook verification and short memory.

Invoice photo in, structured record out: OCR, AI extraction, validation and duplicate checks before anything is stored.

Answers sales questions in Slack by querying a PostgreSQL table through an AI agent's SQL, calculator and reasoning tools.

A Vapi voice agent calls n8n webhook tools to check, book, update and cancel Google Calendar slots, logging calls in Airtable.

A chat agent answering from reference material written directly into its prompt — no retrieval step.

Fetches two Google Docs on every message and passes their full text to the agent.

The same two Google Docs exposed as tools the agent can choose to call.

The earlier sales assistant: an agent answering questions through four n8n Data Table tools and a calculator.

An Asana task update routes each lead down one of five paths: folders, sub-tasks, timed follow-ups and emails.

Enriches form leads through Apollo, scores them with AI, and routes high, medium and low leads to different follow-up.

Audio dropped in Google Drive is transcribed, drafted into blog and social posts, and routed to publish or review.

New leads get an opportunity, tags, an intake-form email, an assigned agent and an internal alert.

Salon inquiries become opportunities with a welcome email, a front-desk alert, a note and a contact task.

Tag-driven stages move a lead from new, to nurturing, to booked as forms are submitted.
15 builds
Process maps
See how each automation moves from trigger to outcome — and where AI, automation and human decisions fit into the process.

Chase overdue invoices by email: once per customer, at the right level of firmness, never after payment.
View process map: AR Payment Chasing
Turn tender documents into reviewed, approved answers, with a person signing off at every point that matters.
View process map: RFP & Tender Response
A patient only receives consultation access after the payment has been genuinely confirmed.
View process map: Medical Clinic Website & Payment Integration
Turn a sales intake into a priced, AI-reviewed, approved proposal that reaches the client once.
View process map: AI Proposal Intake & Pricing System
Answer staff policy questions in the team chat, grounded in the company's own handbook documents.
View process map: RAG Employee Handbook Assistant
Answer customer questions about services on the business's Facebook page.
View process map: Messenger Inquiry Assistant
Photo of an invoice in, checked invoice record out.
View process map: Invoice Agent for Telegram
Answer sales questions in the team chat from the company's sales records.
View process map: SQL Sales Analytics Assistant
An AI voice assistant answers calls and books, moves or cancels appointments in the clinic calendar.
View process map: Dental Voice Appointment Setter
Knowledge-grounding experiment 1 of 3: the reference material is written into the assistant's instructions.
View process map: Full-Context Assistant: document in the prompt
Knowledge-grounding experiment 2 of 3: both reference documents are fetched in full for every message.
View process map: Full-Context Assistant: documents fetched per message
Knowledge-grounding experiment 3 of 3: the assistant decides for itself when to read the reference documents.
View process map: Full-Context Assistant: documents as tools
The first sales assistant, answering from a small sample sales table. Replaced by the SQL Sales Analytics Assistant.
View process map: AI Sales Data Assistant
When the team moves a lead to a new stage, the matching follow-up happens automatically.
View process map: Zapier–Asana CRM Automation
Enrich and score every new enquiry, then follow up according to how promising the lead is.
View process map: Zapier Lead Qualification & Outreach
Turn one recorded audio file into blog and social posts, publishing or holding them for review.
View process map: Zapier Content Repurposing
Move a car-insurance lead from first contact to an issued policy, with follow-up at each stage.
View process map: Car Insurance Sales Workflows
Take a salon client from first enquiry through their service to a rebooking follow-up.
View process map: Salon Client Retention Pipeline
Keep in touch with a new lead until they book an appointment, then welcome them as a client once paid.
View process map: Lead Nurturing Pipeline19 process maps
Stack
The tools behind the systems above — every one of them used in a project on this page.
How I build
I plan before I build: map how the work really happens, decide what should be automated and what stays with people, and look for what could go wrong — then build and test.
Actors, decisions, exceptions and hand-offs — and where automation should stop.
What is deterministic, where AI is allowed, which database holds the truth.
Assume it failed and find out why. For AR Payment Chasing: seven design holes, each given a fix in the plan before building.
States, contracts, tests and scope — sent back when it isn't build-ready.
Structural and runtime evidence reported separately; blocked and failed paths exercised.
Untested paths, deferrals and known limitations written down.
Failure-injection suites are part of each implementation spec; so far they have only been run in part.
About
I'm Angelo Torrevillas, an AI automation specialist in the Philippines. Connecting apps is the easy part; making it dependable is the work — explicit state in a database, deterministic rules before AI, and people in the loop for decisions that cost money or trust.
My background is computer engineering. I'd rather write down what hasn't been tested than let a demo imply it has.

Mask R-CNN on a Raspberry Pi 5 measures rebar columns and recommends a cement mix. 96.3% system test success rate (77 of 80 trials, ±5% tolerance).

A web app for the Quezon City Public Library that replaced manual attendance records.
FAQ
Automation systems for business processes: n8n and GoHighLevel workflows backed by a database, integrations with CRMs, payment providers, email and chat tools, and AI steps where they genuinely help — such as reviewing proposal pricing, classifying replies, or retrieving and drafting answers from approved documents.
Mainly n8n, PostgreSQL and Supabase, and GoHighLevel. For AI he uses models accessed through OpenRouter and Ollama for embeddings; for payments, PayMongo (so far in sandbox); for communication, Gmail, Slack, Telegram and Facebook Messenger. He writes JavaScript for custom logic, and has used Zapier, Airtable and Vapi on earlier builds.
He maps how the business process actually works and runs a premortem to find what could go wrong before building. Fixed rules handle anything that must be exact, such as prices and payment status; AI gets a narrow role and no authority over money or records. Systems are built so a retry can't send the same email twice, sending can be stopped instantly with a kill switch, and a person approves anything costly or irreversible.
Use the Book a call section on torrevillas.tech or email angelo.automates@gmail.com with a short description of the process you want to automate.
Discovery call
A short call about how your process runs today, where manual work is slowing it down, and whether automation is the right fix.
How work moves today: the tools, the people and the hand-offs.
Where repetitive work, errors or delays are costing you time.
What to automate first, and what it takes to make it dependable.
Pick a time that suits you. The calendar is provided by GoHighLevel and loads as you reach this section.
Calendar not loading? Open it in a new tab or email angelo.automates@gmail.com.
Contact
Prefer to write first? Send a few lines about the process you want to automate. I'll tell you honestly whether automation is the right fix — and what it would take to make it dependable.
Selected system · Accounts receivable
Concept Demo · FINAL: the four core workflows are complete and run on synthetic invoices. A real accounting connection, the final-notice approval step, opt-out suppression and monitoring are planned for a later phase.
Chases overdue invoices by email — once per customer, at the right escalation level, and never after they've paid.
Problem
Chasing overdue invoices is repetitive, but mistakes are expensive: a reminder sent after payment, three emails to one customer, or a message to the wrong address damages the relationship. Simple automations can't rule those out.
Solution
Four n8n workflows over a PostgreSQL state machine. Deterministic rules decide who to chase and how firmly; reminders go through a durable outbox that re-checks each invoice before sending; replies are triaged by a narrowly scoped AI classifier that cannot change financial records.
How it flows
Runs automatically
Where humans decide
Guardrails
UPDATE … RETURNINGEvidence · 4 images




Screenshots of the n8n editor canvas. Sticky notes are hidden; node names and connections are as built.
Stack: n8n · PostgreSQL · Gmail API · OpenRouter LLM (classification only) · JavaScript
Selected system · Bids & proposals
FINAL · structural completeness: every workflow is built and passes validation; full runtime testing of the system is still to come.
Turns tender documents into reviewed, approved draft answers — with a person signing off at every point that matters.
Problem
Answering a tender means pulling every requirement out of long, inconsistent documents, finding the best previously approved answer, drafting the rest and getting sign-off before a hard deadline. A missed requirement or an unapproved claim can cost the bid.
Solution
A multi-workflow n8n system on PostgreSQL with vector search. It parses tender documents, extracts and reconciles requirements, retrieves and scores answers from an approved library, drafts with a structured AI call, and routes every answer through review, approval and owner-only final sign-off.
How it flows
Runs automatically
Where humans decide
Guardrails
Evidence · 8 images








Screenshots of the n8n editor canvas. Sticky notes are hidden; node names and connections are as built.
Stack: n8n · PostgreSQL + pgvector · Ollama embeddings · OpenRouter (GPT-4o mini) · Google Drive & Docs · n8n Forms with user auth · Slack
Selected system · Healthcare funnel & payments
A paid online-consultation funnel where the patient only receives consultation access after a signed payment webhook has been verified against the database.
Visit demo site (opens in a new tab)Public GoHighLevel preview of the fictional clinic. Its checkout runs in PayMongo test mode only.
Problem
For paid online consultations, the consultation link is the product. A clinic needs patients to move smoothly from interest to booking, but access should only be released once payment is genuinely confirmed — not because a redirect page said so.
Solution
Built in two stages. First the GoHighLevel layer: a patient funnel and CRM workflows that move contacts through a pipeline, send reminders and alert staff. Then a payment layer in n8n and PostgreSQL: server-side pricing, PayMongo hosted checkout, signature-verified webhooks and a database-backed payment state that decides what the patient receives — synced back to the CRM.
System layers and their status
Sandbox means PayMongo test mode — no real money moves. Verified once · controlled means one deliberate, supervised run has verified the CRM sync, which stays locked outside such runs.
Runs automatically
Where humans decide
Guardrails
Evidence · 22 images
Patient journey · GoHighLevel funnel to PayMongo sandbox · clinic name redacted in screenshots










CRM & booking · GoHighLevel workflows






Payment layer · n8n + PostgreSQL






Screenshots of the n8n editor canvas. Sticky notes are hidden; node names and connections are as built.
Stack: GoHighLevel · n8n · PostgreSQL (Supabase) · PayMongo · Webhooks + HMAC · Gmail API · HTML/CSS/JS
Client work · Paid trial
Turns a sales intake into a priced, AI-reviewed, approved proposal PDF — and makes sure only an approved proposal reaches the client, once.
Problem
The firm wanted design-fee proposals produced from sales intake under firm rules: the same inputs must always give the same fee, AI may advise but never set prices, Sales must approve before anything is sent, and retries or edits must never duplicate a proposal or a client email.
Solution
A 65-node n8n workflow. Deterministic JavaScript pricing runs first; an AI review then checks risk and missing information and returns structured output; Sales decides; the proposal is generated as a PDF, previewed, approved and emailed to the client with Sales copied — with every step recorded.
How it flows
Runs automatically
Where humans decide
Guardrails
Evidence · 12 images












Workflow structure only — client name, pricing rules, proposal content and delivery evidence are withheld.
Stack: n8n Forms & Code · OpenRouter (Llama 3.3 70B) · Google Docs & Drive · Google Sheets records · Gmail · Slack error alerts
Build · n8n · AI agent
Answers sales questions in Slack. An AI agent queries a PostgreSQL sales table through a SQL tool, then uses calculator and reasoning tools before replying. It evolved from the earlier AI Sales Data Assistant, which used n8n Data Tables.
Evidence · 2 images
Answer accuracy is still being evaluated: some test answers contained wrong dates or totals.
Stack: Slack · n8n · OpenRouter (GPT-4o mini) · PostgreSQL
Build · n8n · Voice agent
A Vapi voice agent calls five n8n webhook tools to check, book, update and cancel Google Calendar slots and to record call results, logging bookings in Airtable.
Evidence · 5 images





Stack: Vapi · n8n webhooks · Google Calendar · Airtable
Build · n8n · RAG
Answers policy questions in Slack from company documents. New files in a Google Drive folder are embedded with Ollama into a Supabase vector store; an agent retrieves the relevant passages before answering.
Evidence · 2 images
Stack: Google Drive · Ollama embeddings · Supabase vector store · OpenRouter · Slack
Build · Knowledge-grounding experiment 1 of 3
One of three small chat agents comparing ways to ground answers in documents. This one answers from reference material written directly into the agent's prompt, with no retrieval step. The RAG assistant is the later approach.
Evidence · 2 images
Stack: n8n chat trigger · OpenRouter (GPT-4o mini)
Build · Knowledge-grounding experiment 2 of 3
Fetches two Google Docs on every message and passes their full text to the agent, trading tokens for complete context.
Evidence · 2 images
Stack: n8n · Google Docs · OpenRouter (GPT-4o mini)
Build · Knowledge-grounding experiment 3 of 3
The same two Google Docs exposed as tools, so the agent decides when to read them instead of receiving them on every message.
Evidence · 2 images
Stack: n8n · Google Docs tools · OpenRouter (GPT-4o mini)
Build · n8n · AI agent
Answers Facebook Messenger inquiries about services from a Google Docs knowledge source. Handles Meta's webhook verification handshake, filters non-text events, keeps short conversation memory and replies through the Graph API.
Evidence · 1 image

Stack: Messenger webhook · Google Docs · OpenRouter (GPT-4o mini) · Graph API
Build · n8n · AI agent
The first sales assistant: a chat agent that answers questions through four n8n Data Table tools — all rows, by product, by date, by transaction — plus a calculator. The SQL Sales Analytics Assistant replaced the Data Table tools with a PostgreSQL query tool.
Evidence · 2 images
Stack: n8n Data Tables · OpenRouter (GPT-4o mini)
Build · n8n · Document AI
Send an invoice photo to a Telegram bot: OCR extracts the text, an AI step turns it into structured fields, missing fields and duplicates are caught, the file goes to Google Drive, the record to Google Sheets, and a confirmation comes back. A separate error-handler workflow reports failures.
Evidence · 1 image

Stack: Telegram · OCR.space · OpenRouter (GPT-4o mini) · Google Drive · Google Sheets
Earlier build · Zapier
An updated Asana task splits into five paths — Ready to Start, No Response, Quoted, Approved, and Paid and Closed — that create lead folders and sub-tasks, send timed Gmail follow-ups, and draft welcome and recommendation emails with AI.
Evidence · 1 image

Stack: Zapier · Asana · Google Drive · Gmail · AI by Zapier
Earlier build · Zapier
A form submission is enriched with company data from Apollo, scored by AI and stored through Supabase's REST API, then routed by priority: high and medium leads are automatically sent an AI-written outreach or nurturing email, with a Slack alert; low leads get a summary in Slack.
Evidence · 1 image

Stack: Zapier · Apollo API · AI by Zapier · Supabase REST · Gmail · Slack
Earlier build · Zapier
An mp3 dropped into Google Drive is transcribed, turned into two blog drafts and Facebook and LinkedIn posts, then routed by an AI approval step to publish or to a “needs review” path saved in Google Docs — with every stage logged in Google Sheets.
Evidence · 1 image

Stack: Zapier · Google Drive · AI by Zapier · Google Sheets · Google Docs · Facebook Pages · LinkedIn
Earlier build · GoHighLevel
A set of GoHighLevel workflows for a car-insurance sales process. The first takes a new or tagged contact, creates an opportunity, tags it, sends the insurance intake form, assigns an available agent and notifies the team.
Evidence · 5 images
Stack: GoHighLevel workflows · email
Earlier build · GoHighLevel
GoHighLevel workflows for a salon. New-lead intake turns an inquiry form into an opportunity with a tag, a welcome email, a front-desk notification, a note and a “contact within 1 hour” task.
Evidence · 4 images
Stack: GoHighLevel workflows · email
Earlier build · GoHighLevel
GoHighLevel workflows that move a lead through tagged stages. When the appointment form is submitted, the “new lead” and “nurturing” tags are removed and “booked” is added.
Evidence · 4 images
Stack: GoHighLevel workflows · forms
Background · Team thesis
A Raspberry Pi 5 with a camera and distance sensor photographs a rebar column; a Mask R-CNN model — chosen after evaluating YOLOv8 and RetinaNet — detects it, the system computes its dimensions and concrete volume, and a web app recommends the cement mixture.
My role
I started as the deep-learning model developer, was reassigned to web-application development in the final phase, and integrated the move from a laptop-hosted web app to a Raspberry Pi deployment.
Trials covered rebar-column detection (19/20), non-rebar detection (20/20), dimension and volume computation (19/20) and cement-mixture estimation (19/20).
Screens · 6 images
Stack: Python · Mask R-CNN · OpenCV · Flask · Raspberry Pi 5
Background · Internship · Quezon City Public Library
A web application that replaced manual attendance records: employee time-in and time-out, attendance history, an admin dashboard with search and filters, and attendance reports.
Screens · 5 images





Stack: PHP · MySQL · JavaScript · HTML/CSS
Process map · Accounts receivable
Chase overdue invoices by email: once per customer, at the right level of firmness, never after payment.
The challenge
Chasing overdue invoices is repetitive, but mistakes are costly: a reminder after payment, several emails to one customer or a message to the wrong address damages the relationship.
The approach
Fixed rules decide who to chase and how firmly, every reminder is re-checked just before it's sent, and customer replies are sorted by an AI classifier that can't change any financial records.

Process map · Bids & proposals
Turn tender documents into reviewed, approved answers, with a person signing off at every point that matters.
The challenge
Answering a tender means pulling every requirement out of long, inconsistent documents and getting approved answers signed off before a hard deadline. A missed requirement or an unapproved claim can cost the bid.
The approach
Requirements are extracted and confirmed by a person, answers are drafted only from an approved library, and every answer goes through review, approval and the owner's final sign-off.

Process map · Healthcare funnel & payments
A patient only receives consultation access after the payment has been genuinely confirmed.
The challenge
For paid online consultations, the consultation link is the product: access should only be released once payment is genuinely confirmed, not because a confirmation page said so.
The approach
A patient journey from choosing a doctor to payment, where the clinic's system sets the price, checks that the payment confirmation is genuine and only then sends the consultation links. A separate CRM process follows up on bookings and visits.

Process map · Interior design firm · Anonymized
Turn a sales intake into a priced, AI-reviewed, approved proposal that reaches the client once.
The challenge
The firm needed design-fee proposals from sales intake where the same inputs always give the same fee, Sales approves before anything is sent, and retries never duplicate a proposal or a client email.
The approach
Rule-based pricing runs first, AI reviews proposal risk and recommends a complexity-based fee uplift, Sales reviews the fee and approves the PDF, and the client receives the proposal once.

Process map · n8n · RAG
Answer staff policy questions in the team chat, grounded in the company's own handbook documents.
The challenge
Staff have policy questions whose answers are in the company's handbook documents.
The approach
New handbook documents are indexed as they're added; when someone asks in Slack, AI finds the relevant passages and answers from them.

Process map · n8n · AI agent
Answer customer questions about services on the business's Facebook page.
The challenge
Customers send inquiries about the business's services through Facebook Messenger.
The approach
Text messages are answered by AI from a single services document, with short conversation memory; other message types are ignored.

Process map · n8n · Document AI
Photo of an invoice in, checked invoice record out.
The challenge
Invoice photos need to become structured records, with missing details and duplicate invoices caught before anything is stored.
The approach
The text is read from the photo, AI pulls out the invoice details, and missing details or duplicates are reported back before anything is stored.

Process map · n8n · AI agent
Answer sales questions in the team chat from the company's sales records.
The challenge
Sales questions need answers drawn from the sales records, including calculated totals.
The approach
Questions asked in Slack are answered by an AI agent that looks up the sales records and uses a calculator. Answer accuracy is still being evaluated.

Process map · n8n · Voice agent
An AI voice assistant answers calls and books, moves or cancels appointments in the clinic calendar.
The challenge
Callers need to check, book, move or cancel appointments over the phone.
The approach
An AI voice assistant handles the call and uses calendar actions to find free times and book, move or cancel appointments, recording the outcome of every call.

Process map · n8n · Experiment
Knowledge-grounding experiment 1 of 3: the reference material is written into the assistant's instructions.
The challenge
Comparing ways to give a chat assistant the reference material it answers from.
The approach
The reference material is written directly into the assistant's instructions, with no lookup step.

Process map · n8n · Experiment
Knowledge-grounding experiment 2 of 3: both reference documents are fetched in full for every message.
The challenge
Comparing ways to give a chat assistant the reference material it answers from.
The approach
Both reference documents are fetched in full on every message, trading cost per message for complete context.

Process map · n8n · Experiment
Knowledge-grounding experiment 3 of 3: the assistant decides for itself when to read the reference documents.
The challenge
Comparing ways to give a chat assistant the reference material it answers from.
The approach
The documents are available as tools, so the assistant decides for itself when to read them.

Process map · n8n · AI agent
The first sales assistant, answering from a small sample sales table. Replaced by the SQL Sales Analytics Assistant.
The challenge
An early test of answering sales questions from a small sample dataset.
The approach
A chat assistant looks up sales by product, date or transaction and calculates totals. It was later replaced by the SQL Sales Analytics Assistant.

Process map · Zapier · CRM
When the team moves a lead to a new stage, the matching follow-up happens automatically.
The challenge
Each stage a lead reaches on the project board calls for a different follow-up.
The approach
When the team updates a lead's stage, the matching follow-up runs: a project folder and task, timed follow-up emails, quote follow-ups, or an AI-written welcome or recommendation email.

Process map · Zapier · Lead qualification
Enrich and score every new enquiry, then follow up according to how promising the lead is.
The challenge
New form enquiries need enriching with company data and prioritising, so each gets the right follow-up.
The approach
Each enquiry is enriched with company details and scored by AI; high and medium leads are automatically sent an AI-written email with a sales alert, and low leads are summarised for sales.

Process map · Zapier · Content
Turn one recorded audio file into blog and social posts, publishing or holding them for review.
The challenge
One audio recording needs to become blog posts and social posts.
The approach
The audio is transcribed and drafted into blog and social posts by AI; an AI check then publishes them or saves them for a person to review.

Process map · GoHighLevel · CRM
Move a car-insurance lead from first contact to an issued policy, with follow-up at each stage.
The challenge
A car-insurance lead passes through several stages, from first contact to an issued policy, each with its own follow-up.
The approach
Each stage triggers its own emails, assignments and team alerts, from the intake form and package options to upsell offers and policy delivery.

Process map · GoHighLevel · CRM
Take a salon client from first enquiry through their service to a rebooking follow-up.
The challenge
A salon client moves from first enquiry, through their service, to rebooking, and each stage has its own follow-up.
The approach
The enquiry creates the client record and a welcome email; as staff move the client through each stage, the matching emails, notes and tasks follow, ending with a rebooking offer.

Process map · GoHighLevel · CRM
Keep in touch with a new lead until they book an appointment, then welcome them as a client once paid.
The challenge
New leads who don't book straight away need following up until they do.
The approach
Leads get a booking link, then a nurturing email each day until they book; the booking is confirmed, and paid clients are moved to the client stage and thanked.
