Available for Freelance Projects · Manila, PH

DanielDumanat

Automation SpecialistApplication Support Engineer10+ Years Experience

Turning complex manual processes into intelligent automated systems that save time, reduce errors, and drive real business results.

About Me

Engineer who automates the impossible

I build AI-powered automation systems that eliminate the manual work slowing your team down — using Make.com, Zapier, and LLM integrations across real estate, legal, finance, healthcare, and content workflows.

With 10+ years of engineering and operations experience, I know exactly where bottlenecks happen, what breaks in production, and how to build pipelines that don't fail silently. Every project in this portfolio is a live system I designed and shipped — not a tutorial.

From AI lead qualification pipelines to contract analysis systems to RAG chatbots — I build the automations your team stops doing manually, so your people can focus on the work that actually moves the business.

10+

Years Experience

11

Projects Shipped

5+

Industries Served

My Work

Projects that drive results

Organized by platform — click any project to see the full story, screenshots, and business impact.

M

Make.com

Visual automation platform9 projects

Solo-built demo showcasing AI + automation for a Med Spa clinic in the Philippines — full appointment lifecycle, zero manual work.

A solo-built demo project showcasing what's possible when you combine modern web tools with AI and automation — no large dev team required. Built for a fictional Med Spa clinic in the Philippines to simulate a real-world deployment scenario. The system handles the full appointment lifecycle: clients book online, Groq AI assigns the right staff and room, Make.com fires off confirmation SMS and email automatically, sends reminders at 24h and 1h, and generates a personalized Taglish follow-up after each visit. A cancellation waitlist system automatically backfills open slots from pending clients. Admin dashboard shows live booking updates in real time. Two user roles — admin and staff — with permissions enforced at the database level.

Business Value

Built entirely solo using no-code and low-code tools alongside AI — demonstrating that a single application engineer can deliver a production-quality system that would typically require a full team. For a real clinic, this replaces manual booking via Messenger or phone calls, eliminates double-bookings, and keeps clients engaged with zero extra staff effort. The entire infrastructure runs on free tiers — Supabase, Vercel, Groq — making it accessible for small businesses with no IT budget.

Estimated Impact

  • Estimated to replace 2–3 hours of daily admin work previously handled via Messenger and phone calls
  • Confirmation SMS and email sent within seconds — vs. 15–30 min manual turnaround per booking
  • Waitlist backfill automatically recovers cancelled slots, recovering revenue that would otherwise be lost
  • Zero double-bookings — Groq AI assigns staff and room with database-level permission enforcement

Workflows

Scenario 1 — New Booking Confirmation

Watches Gmail for incoming customer replies. When a client responds to an appointment email, the router checks the reply type, searches Google Sheets for their booking record, updates the appointment status, pulls all relevant variables, and fires a confirmation email back — fully hands-free.

Stack

Next.js 14TypeScriptTailwind CSSshadcn/uiSupabaseGroq APIMake.comSemaphore SMSResendRecharts

Make.com scenario that parses emailed product CSVs, matches every row against the InFlow catalog, exports matched items as a new CSV to Google Drive, and flags unmatched products to Google Sheets and Slack — zero manual checking.

A Make.com scenario triggered by incoming Gmail emails that contain a product list as a CSV attachment. The scenario lists the email's attachments, parses the CSV file, then iterates through every row to validate it against the live InFlow product catalog via API call. A Router branches the output into two paths: the matched path collects all found products into an array, bundles them, generates a clean CSV using the advanced CSV module, uploads it to Google Drive, and emails the result to the requester. The unmatched path logs each missing product to a dedicated Google Sheets catalog tab and a separate resolution log sheet, then sends a Slack notification so the team can act immediately. A break module controls the iterator loop, and a dedicated error handler emails the team if CSV parsing fails at any point.

Business Value

Eliminates the manual process of cross-referencing a supplier or client product list against the internal InFlow catalog — a task that previously required opening InFlow, searching each SKU one by one, and manually sorting matches from gaps. This scenario does it automatically the moment the email arrives, no matter how long the CSV is. Matched products are immediately packaged into a new CSV and delivered; unmatched products are logged in two places (catalog sheet + resolution log) and pushed to Slack so nothing falls through the cracks. The error handler ensures the team is always notified if something breaks during parsing, preventing silent failures.

Estimated Impact

  • A 100-row product CSV that takes 30–60 min to manually cross-reference is processed in under 2 minutes
  • Every unmatched SKU is instantly logged to two sheets and Slack-alerted — nothing falls through the cracks
  • Removes manual copy-paste risk entirely — matched products are assembled and delivered as a clean CSV automatically
  • Error handler ensures the team is notified if parsing fails — no silent breakdowns

Workflow

CSV Product Catalog Sync — Email Trigger to Matched CSV & Unmatched Slack Alert

Gmail (Watch emails) triggers when a product list email arrives. Gmail (List email attachments) retrieves the attachment. CSV (Parse CSV) parses the file. An iterator validates each row against InFlow via an API call (Get Product Catalog in InFlow). A Router splits into two paths: the 1st path runs Tools (Set multiple variables) → Array aggregator (Combined Matching Products into a Single Array) → Split aggregator (Split the Matched Products into a Single Bundle) → CSV (Create CSV advanced) → Google Drive (Upload a file) → Gmail (Send an email) with the matched results. The 2nd path runs Tools (Set multiple variables) → Google Sheets (Unmatched Products in Catalog · Add a Row) → Google Sheets (Logs Unmatched Products in Resolution Log · Add a Row) → Slack (Send message for Unmatched Products). A Break module closes the iterator loop. A separate error handler fires a Gmail alert if CSV parsing fails at any point.

Stack

Make.comGmailInFlow APIGoogle DriveGoogle SheetsSlackCSV Parser

Make.com scenario that pulls Xero bank transactions, builds a CSV on the fly, and uploads it directly to an Asana task — no manual exports, no copy-pasting.

A Make.com scenario triggered by a completed Asana task that automates the full account transaction export pipeline from Xero. Once triggered, the scenario makes an API call to Xero to retrieve bank transaction records. A Router splits the flow into two sequential paths: the first path runs an Array aggregator that batches all retrieved transactions and writes them as rows into a Google Sheets staging sheet. The second path sleeps briefly to allow the sheet writes to complete, then reads the full range back, passes it through a Text aggregator to compile the rows into a CSV-formatted payload, uploads that payload as a file attachment directly onto the originating Asana task, and finally clears the Google Sheets staging range to keep the sheet clean for the next run.

Business Value

Eliminates a recurring manual workflow: logging into Xero, exporting transactions, formatting the file, attaching it to the right Asana task, and cleaning up — a process that previously took 10–20 minutes per cycle. This scenario completes the same job in seconds the moment an Asana task is marked done. The Google Sheets staging approach decouples data collection from CSV assembly, making it reliable even when Xero returns large transaction sets. The auto-clear step means no stale data accumulates between runs, removing the risk of accidentally uploading a previous period's transactions.

Estimated Impact

  • Eliminates 10–20 min of manual Xero export work per billing cycle — triggered automatically when an Asana task is marked done
  • Zero copy-paste errors — transactions are pulled via API and assembled programmatically into a clean CSV
  • Staging sheet auto-clears after every run, preventing stale data from contaminating future exports
  • CSV delivered as a direct Asana attachment — no file hunting, no manual uploads

Workflow

Xero Transaction Export · 2-Path CSV Build & Asana Upload

Asana (Watch Completed Tasks) fires the scenario on task completion. Xero (Make an API Call) fetches the account's bank transaction records. A Router branches into two paths: the 1st path runs an Array aggregator that collects all transaction modules and feeds them into SavedBankTransaction (Google Sheets · Add a Row), writing each transaction as a new row in the staging sheet. The 2nd path opens with a Delay (Sleep) to wait for all rows to be written, then Google Sheets (Get Range Values) reads the full staging range back. Tools (Text aggregator) compiles every row into a single CSV-formatted string. Asana (Upload an Attachment) attaches the CSV file to the originating task. Google Sheets (Clear Values from a Range) wipes the staging sheet clean, ready for the next run.

Stack

Make.comAsanaXero APIGoogle SheetsRouterArray AggregatorText Aggregator

Instant room booking with automated calendar checks and personalized confirmation emails — zero manual work.

A webhook-triggered automation built on Make.com that handles the full room booking lifecycle across 5 rooms. When a booking request arrives, the system queries Google Sheets for existing data, routes through Google Calendar availability checks for each room sequentially, books the first available slot, and sends a personalized confirmation email — all in seconds. Error-state emails fire automatically when no rooms are available, ensuring nothing silently fails.

Business Value

Eliminates a deeply manual process: checking room availability and notifying clients manually. Staff previously had to cross-check calendars, draft emails, and handle rebooking by hand. This automation does all of that in seconds, at scale, with no human intervention. Instant personalized confirmations improve client experience. Router logic prevents double-bookings. Adding more rooms requires duplicating one branch — not hiring staff. Google Sheets maintains a full audit trail without additional tooling.

Estimated Impact

  • Checks 5 room calendars and confirms the first available slot in seconds — vs. 10–15 min of manual calendar checking per request
  • Personalized confirmation emails sent automatically with client name — zero staff involvement after the request comes in
  • Router logic prevents double-bookings across all 5 rooms simultaneously
  • Adding a 6th room requires duplicating one branch — not hiring additional staff or rebuilding the system

Workflow

Multi-Room Availability Check & Booking Flow

A webhook receives the booking request. Google Sheets is queried for the requestor's data. The router checks Room 1–5 availability on Google Calendar sequentially — the first available room is booked and a personalized confirmation email is sent with the client's first and last name. If all rooms are taken, an error-state email fires automatically so the requestor is never left waiting.

Stack

Make.comGoogle Calendar APIGoogle SheetsGmail / SMTPWebhooks

Typeform-triggered Make.com pipeline that researches a topic, analyzes submitted images, pulls YouTube transcripts, generates a full podcast script with MiMo AI, and delivers finished audio — no writing or recording required.

A Make.com pipeline triggered by a Typeform submission that automates the full podcast production process end-to-end. Once a user submits the form, MiMo v2.5-pro runs a research agent on the topic, while a second MiMo agent analyzes any images submitted through the form for visual context. Supadata fetches real YouTube transcripts as reference material to ground the output. A knowledge and chat step feeds all gathered context into MiMo v2.5-pro's script generation agent, which produces a complete, publish-ready podcast script. MiMo TTS then converts the script directly to audio. Google Apps Script saves the audio file and an HTTP call saves the generated transcript separately. Airtable logs the episode record automatically and Gmail fires a completion notification — the full episode is delivered with zero manual involvement after the form is submitted.

Business Value

A Make.com pipeline triggered by a Typeform submission that automates the full podcast production process from a single form fill. Once a user submits the Typeform, the pipeline immediately puts MiMo to work — researching the topic, analyzing any images submitted in the form, and pulling real YouTube transcripts via Supadata as reference material. A script generation agent then writes a complete, publish-ready podcast script, which MiMo TTS converts directly to audio. The audio and transcript are both saved automatically, the episode is logged in Airtable, and a completion email fires when everything is ready. No manual research, no writing, no recording — just fill out a form and receive a finished episode.

Estimated Impact

  • A full podcast episode from form submission to finished audio in minutes — vs. 3–5 hours of manual research, scripting, and recording
  • Image analysis from the Typeform submission gives MiMo visual context, producing more accurate and relevant scripts than text-only prompts
  • Supadata transcript fetching grounds the AI output in real source material — not just model knowledge
  • Both audio and transcript saved automatically — zero manual file management
  • Airtable log creates a full production history with every episode catalogued, timestamped, and trackable

Workflows

AI Podcast Producer — Typeform to Finished Audio

Typeform submits data via webhook to trigger the pipeline. MiMo v2.5-pro (Research) runs an agent on the topic. MiMo v2.5 (Image Analysis) analyzes images submitted in the form. Supadata fetches YouTube transcripts as reference material. Knowledge and Chat steps feed all context into MiMo v2.5-pro (Script Generation), which produces a complete podcast script. MiMo v2.5-tts converts the script to audio. Google Apps Script saves the audio file. HTTP (legacy) saves the generated transcript. Airtable creates an episode record. Gmail sends a completion notification.

Stack

Make.comMiMo AIMiMo TTSSupadataTypeformGoogle Apps ScriptAirtableGmail

Make.com pipeline that watches a Google Drive folder for contract PDFs, extracts all clauses and identifies risk flags using Groq AI, stores the analysis in Supabase, and creates a Notion page — automatically the moment a file is uploaded.

A Make.com scenario triggered when a new file lands in a monitored Google Drive folder. A Router first validates the file is a PDF — non-PDF documents immediately trigger a Slack alert to the team. For valid PDFs, Google Drive downloads the file and PDF.co extracts the full contract text. Groq AI then acts as a contract assistant, extracting all contract clauses and identifying risk flags from the text, returning a structured JSON response. The parsed output is stored as a new row in Supabase and simultaneously creates a formatted Notion page for easy review. A Slack notification confirms successful processing. Three dedicated error handlers fire separate Slack alerts if PDF conversion, Groq AI analysis, or Supabase storage fails — ensuring no contract is silently lost.

Business Value

Eliminates the manual process of reading through contracts to identify clauses and risk flags — a task that typically requires 30–90 minutes per document. The moment a contract PDF is dropped into the monitored Google Drive folder, the pipeline extracts every clause and surfaces all risk flags automatically. Results are stored in Supabase for querying and searchability, and a Notion page is created for immediate human review. The non-PDF fallback and three dedicated error handlers ensure the team is always notified if anything goes wrong — no contract slips through unprocessed.

Estimated Impact

  • Clause extraction and risk flag identification that takes 30–90 minutes manually is completed in seconds the moment a PDF lands in the folder
  • Every processed contract stored in Supabase — fully searchable and queryable, replacing scattered document storage
  • Notion page auto-created per contract — legal team reviews structured output without opening the original PDF
  • Non-PDF fallback ensures no document is silently skipped — team notified immediately to re-upload in the correct format
  • Three dedicated error handlers (PDF, Groq, Supabase) mean every failure point has an explicit Slack alert — zero silent breakdowns

Workflow

AI Legal Document Analyzer — Google Drive to Notion & Supabase

Google Drive (Watch Files in a Folder) triggers when a new file is detected. A Router checks if the file is a PDF — non-PDF files route to a Slack fallback that notifies the team to re-upload in the correct format. For valid PDFs: Google Drive downloads the file, PDF.co extracts the full contract text, Groq AI runs as a contract assistant extracting all clauses and identifying risk flags as structured JSON, JSON module parses the output, Supabase stores a new row with the analysis, and Notion creates a formatted page for human review. Slack sends a success notification on completion. Three dedicated error handlers send separate Slack alerts if PDF conversion, Groq AI processing, or Supabase storage fails at any point.

Stack

Make.comGoogle DrivePDF.coGroq AISupabaseNotionSlack

Make.com scenario that scrapes realtor listings via Apify, runs two AI agents to extract and score each lead, then automatically routes Hot, Warm, and Cold leads into HubSpot, Airtable, and Slack — now queryable conversationally through a custom-built MCP server.

A Make.com scenario triggered by Apify's webhook whenever new realtor listing data is scraped. The scenario fetches the full dataset, splits it into individual lead bundles, and passes each through two sequential AI agents — the first extracts structured lead fields (agent name, contact info, property details), the second scores the lead as Hot, Warm, or Cold. A Router then branches into three paths: Hot and Warm leads are created or updated as contacts in HubSpot, variables are captured, a record is logged in Airtable, and a Slack notification is fired. Cold leads get a Slack alert only — no CRM entry — keeping the pipeline clean. On top of this, I built a TypeScript MCP (Model Context Protocol) server exposing the Airtable lead table as five callable tools — filtering by score/tier/location, pulling AI scoring rationale, manually overriding tiers, computing pipeline stats, and free-text search. Connected to Claude Desktop, this turns the pipeline into something queryable in plain English: "show me hot leads scoring above 70" returns a live, formatted table pulled straight from the data — no spreadsheet required.

Business Value

Eliminates the manual process of reviewing scraped realtor listings one by one to decide who's worth contacting. Every lead gets evaluated by AI the moment it's scraped, scored, and landed in the right place automatically — hot leads in HubSpot ready for outreach, cold leads out of the way.

Estimated Impact

  • Hundreds of scraped listings qualified in minutes vs. hours of manual review
  • Zero manual CRM data entry per lead — HubSpot contacts created and updated automatically
  • Hot leads reachable within seconds of being scored — no delay between scrape and outreach
  • Cold leads never pollute the HubSpot pipeline — routed to Slack-only with no CRM entry
  • Pipeline status and lead lookup now answerable conversationally via MCP — zero dashboard-hunting

Workflows

AI Realtor Lead Qualifier — Apify Scrape to HubSpot, Airtable & Slack

Apify Webhook Trigger fires the scenario when new realtor listing data is available. An HTTP module fetches the full Apify dataset. The listings are split into individual bundles via Iterator. AI Agent (Extract Lead Data) runs on each bundle to pull structured fields — agent name, contact info, and property details. Retry (Error Handler) automatically retries the extraction if the AI agent fails — preventing a single bad bundle from stopping the run. Parse Extracted Lead Fields parses the JSON output. AI Agent (Score Lead) evaluates each lead and assigns a score of Hot, Warm, or Cold. A second Retry (Error Handler) retries the scoring step on failure. Parse Lead Score Fields parses the scoring output. A Router branches into three paths: Hot Lead and Warm Lead both route to HubSpot (Create or Update Contact) → Get Variables from HubSpot → Airtable (Create a Record) → Slack (Send notification). Cold Lead routes to Slack notification only — no CRM entry. A Resume module at the iterator level acts as a bundle-level error handler — if any individual lead fails processing entirely, the scenario resumes with the next bundle instead of stopping the entire run, ensuring the full dataset is always processed.

Stack

Make.comApifyAI AgentHubSpotAirtableSlackTypeScriptMCP ServerClaude Desktop

Apify-powered Make.com pipeline that scrapes job listings every 4 hours, deduplicates against Airtable, AI-scores each posting against your candidate profile, and delivers a Telegram alert plus a tailored cover letter — automatically, with zero manual review.

A Make.com pipeline triggered by Apify's cron-based webhook every 4 hours, running fully automated end-to-end. When new job listings arrive, the pipeline fetches the full dataset from Apify, splits it into individual postings via Iterator, and normalizes key fields — jobUrl, jobTitle, employmentType, salary, skills, description, and dateUpdated. Before scoring, Airtable is checked to see if the posting has already been processed — duplicate URLs are silently skipped via Router fallback. New postings pass through an AI Agent that scores each one against the candidate profile, returning a structured JSON payload: fit_score, verdict, matched_tools, missing_skills, salary_assessment, and reasoning. A parsed JSON module extracts those fields, and a Telegram Bot fires an instant job alert. A second Router evaluates the fit score — high-scoring matches continue to a Make AI Agents step that drafts a tailored cover letter, delivered as a threaded Telegram reply under the original alert. Airtable then logs the posting's URL to prevent future duplicates. Postings below the score threshold route to a Skip branch with no further action.

Business Value

Eliminates the daily grind of manually checking job boards and filtering through listings to decide what's worth applying for. Every 4 hours, new postings matching the target keyword are automatically scraped, deduplicated against everything already seen, and evaluated by AI — no manual sorting, no copy-pasting, no reading through 30 listings to find 2 good ones. For strong matches, a tailored cover letter is already drafted by the time the Telegram alert arrives, compressing the time from 'found a job' to 'application ready' from hours to seconds. The Airtable deduplication layer ensures the pipeline only surfaces genuinely new opportunities — no repeat noise, no wasted review time.

Estimated Impact

  • Job board browsing that takes 30–60 minutes per day is fully automated — new listings scraped, scored, and surfaced every 4 hours with zero human involvement
  • Airtable deduplication ensures only genuinely new postings surface — no repeat noise from listings that reappear across runs
  • AI scoring returns fit_score, verdict, matched_tools, missing_skills, salary_assessment, and reasoning — a full candidate-fit analysis per posting, not just a pass/fail
  • High-scoring listings arrive with a tailored cover letter already drafted as a threaded Telegram reply — application-ready in seconds instead of hours
  • Below-threshold postings are silently routed to Skip — no noise, no clutter, only actionable alerts reach you

Workflows

AI Job Scout — Apify Scrape to Telegram Alert & Auto Cover Letter

Apify's cron schedule (every 4 hours) fires a webhook to trigger the pipeline. Webhooks (Custom webhook) receives the signal. Apify (Get Dataset Items) pulls the latest scraped job listings. Iterator splits the dataset into individual postings. Tools (Set multiple variables) normalizes key fields: jobUrl, jobTitle, employmentType, salary, skills, description, and dateUpdated. Airtable (Search Records) checks if the posting's URL already exists in the 'OnlineJobPHStoreBox' base — duplicate entries route to a dead-end fallback via Router. New postings pass to AI Agent Scoring (Run an agent), which evaluates the listing against the candidate profile and returns structured JSON: fit_score, verdict, matched_tools, missing_skills, salary_assessment, and reasoning. JSON (Parse JSON) extracts those fields. Telegram Bot (Send a Text Message or a Reply) fires the job alert. A second Router evaluates the fit score — high scores continue to Make AI Agents (Run an agent), which drafts a tailored cover letter. Telegram Bot (Send a Text Message or a Reply) sends the cover letter as a threaded reply under the original alert. Airtable (Create a Record) logs the posting URL to prevent future duplicates. Postings below the score threshold route to Skip — no alert, no letter, no noise.

Stack

Make.comApifyAI Agent (Scoring)Make AI AgentsAirtableTelegram BotJSON ParserWebhooks

Three-scenario Make.com pipeline powering a live website chatbot — vector search, AI response, lead capture, and timed follow-ups, all automated.

A production-grade Retrieval-Augmented Generation (RAG) chatbot system built entirely on Make.com, powering the floating chat widget on this website. When a visitor sends a message, the pipeline converts it into a vector embedding via Gemini, searches a Supabase vector database for relevant document chunks, aggregates the retrieved context, generates a natural-language response through GroqAI, and logs every exchange in Airtable — all before returning an answer to the user. Fallback responses and admin email alerts fire automatically when the bot cannot confidently answer. A second workflow sends 24-hour and 5-hour follow-up reminder emails to leads, updating Google Sheets after each send. A third workflow captures visitor-submitted contact info from the website, validates it, stores it in Google Sheets, and notifies the agent — with a dedicated error email if the sheet write fails.

Business Value

Handles visitor questions around the clock without any manual intervention. Leads are captured, stored, and followed up automatically — no missed inquiries, no manual data entry. Admin alerts fire the moment the bot hits a fallback or error, so no conversation silently fails. The entire stack runs on Make.com with no custom server infrastructure.

Estimated Impact

  • Handles visitor questions 24/7 with no human intervention — estimated to respond to inquiries that would otherwise go unanswered after hours
  • Leads captured, stored, and followed up at 24h and 5h intervals automatically — no manual tracking required
  • Fallback alerts fire immediately when the bot can't answer — preventing silent failures and missed opportunities
  • Full conversation log in Airtable gives complete visibility into every visitor interaction

Workflows

Scenario 1 — RAG Query & AI Response Pipeline

A webhook receives the visitor's chat message. Gemini Embedding converts it into a vector. A router passes it to Supabase Vector Search, which retrieves the most relevant document chunks. Chunk Documents and Combined Context aggregate those results into a single context block. JSON parsing feeds the context into GroqAI, which generates the response. Airtable logs the exchange. A final router returns the AI Chatbot Response to the user via webhook. If the bot triggers an accepted fallback condition at any stage, an admin notification email fires. AT ERRORS catches system-level failures and sends a separate alert. When the vector search returns nothing usable, a FallBack Response is sent directly to the user instead.

Stack

Make.comGemini APISupabaseGroqAIAirtableGoogle SheetsGmail / SMTPWebhooks
Z

Zapier

No-code workflow automation2 projects

This workflow is currently non-operational due to Asana plan restrictions. The automation logic, path routing, and integrations are fully built — however, executing trigger-based workflows in Zapier requires access to Asana's API, which is gated behind a paid Asana plan. An account upgrade would make this workflow fully live with no additional development required.

Five-path Zapier automation that moves every lead from first contact to paid — zero manual follow-ups.

A Zapier automation that monitors Asana for task status changes across the client pipeline and routes each change through one of five conditional paths: Ready to Start, No Response, Quoted, Approved, and Paid & Closed. Each path triggers a tailored sequence across Gmail, Google Drive, Asana, and Slack — sending the right email, creating project folders, assigning tasks, and notifying the team automatically the moment a deal stage changes.

Business Value

Eliminates the manual work of tracking which leads need what communication at each pipeline stage. Staff previously had to check Asana, draft emails, create folders, and assign tasks on a per-client basis with no systematic consistency. This automation ensures every deal stage receives the right actions instantly, prevents leads from being silently dropped through a built-in no-response follow-up gate, and compresses the approved-to-kickoff timeline from hours to seconds.

Estimated Impact

  • Every deal stage triggers the right action within seconds — vs. hours of inconsistent manual follow-up
  • Built-in no-response gate prevents leads from going cold: follow-up fires automatically after 3 days of silence
  • Approved-to-kickoff timeline compressed from hours to seconds — Drive folder, tasks, and invoice email all fire simultaneously
  • 5-path routing ensures no lead is ever silently dropped regardless of pipeline stage

Workflow

5-Path Lead Pipeline Router

Zapier watches for Asana task status changes and routes each update into one of five paths. Ready to Start: creates a Google Drive folder, sends a welcome email, assigns Asana tasks. No Response: waits 3 days, sends a follow-up, filters for a reply, sends a final nudge if none. Quoted: sends proposal email, logs quote in Asana, notifies team. Approved: sends confirmation, creates project tasks, fires an invoice email. Paid & Closed: sends thank-you, archives Drive folder, marks Asana project complete.

Stack

ZapierAsanaGmailGoogle DriveSlack

Ten-step Zapier pipeline that turns a Google Drive file into published LinkedIn and Facebook posts — zero manual copy-pasting.

A Zapier automation that monitors a Google Drive folder for new files and runs them through a fully automated content repurposing pipeline. When a new file is detected, a filter validates it meets publishing criteria before passing it forward. AI by Zapier then extracts the content from the source URL and feeds it into a second AI step that generates platform-ready blog post variations. A Looping by Zapier step iterates through each generated content item, then a Paths split routes each piece simultaneously — Path A publishes a Share Update to LinkedIn, Path B creates a Page Post on Facebook. Both platforms receive content in a single automated run with no manual intervention at any stage.

Business Value

Eliminates the manual effort of repurposing content across multiple platforms. Previously, turning a single piece of content into LinkedIn and Facebook posts required reading the source, rewriting for each platform's tone, and publishing separately — often taking 30–60 minutes per piece. This pipeline does it in seconds the moment a file lands in the designated Google Drive folder. The looping step ensures every generated variation gets published, not just the first one. Adding more platforms — Twitter, Instagram, Medium — requires duplicating one path, not rebuilding the workflow.

Estimated Impact

  • Turns a 30–60 min manual content repurposing task into a fully automated pipeline triggered by a single file drop
  • Publishes to LinkedIn and Facebook simultaneously in a single run — no switching between platforms
  • Looping step ensures every AI-generated variation gets published, not just the first one
  • Adding more platforms (Twitter, Instagram, Medium) requires duplicating one path — not rebuilding the workflow

Workflow

AI Content Repurposing Pipeline — Google Drive to LinkedIn & Facebook

Google Drive triggers on a new file in the monitored folder. Filter by Zapier validates the file against publishing conditions — only qualifying content moves forward. AI by Zapier (Step 3) extracts the full content from the source URL. A second AI by Zapier step (Step 4) generates blog post copy tailored for social publishing. Looping by Zapier iterates through each generated line item. A Paths step splits the loop output into two parallel branches: Path A runs path conditions then fires a LinkedIn Create Share Update; Path B runs path conditions then fires a Facebook Pages Create Page Post. Both platforms are published in the same automated run.

Stack

ZapierGoogle DriveAI by ZapierLooping by ZapierLinkedInFacebook Pages
n8n

N8N

Open-source workflow automation3 projects

n8n-orchestrated AI agent that verifies incoming Facebook webhook events, retrieves context from a knowledge document, and replies through Claude with typing indicators, conversation memory, and a dedicated error-recovery path.

An n8n workflow that receives Facebook Page webhook events through a single entry node routed by HTTP method — GET requests go through webhook verification (Verify or Process → Webhook Response) to satisfy Facebook's subscription handshake, while POST requests carry real messages into the processing path. Incoming messages pass through a Filter to drop irrelevant events, trigger a Typing Indicator so the page appears responsive, then a Wait node paces the response before a document is retrieved (Get a document) and cleaned (Clean Document Input) to ground the AI's reply in source content. The core AI Agent node runs on an Anthropic Chat Model with attached Conversation Memory (so replies stay context-aware across a thread) and a Tool connection for extended capability. A Success/Error branch splits downstream: successful replies pass through Clean AI Output before being posted back via Send Facebook Message, while failures route to a Fallback Error step and Send Fallback Message so the user in Messenger never sees a dead conversation. A separate Error Response path emails a failure notification via Gmail whenever the initial webhook processing itself breaks.

Business Value

Runs a fully automated, always-on first-line support/engagement agent on a Facebook Page with no human monitoring required for normal traffic. Grounding replies in a retrieved document keeps answers accurate to the business's actual content instead of relying purely on the model's general knowledge, and conversation memory lets the agent handle multi-turn exchanges naturally rather than treating every message as a cold start. The dual error-handling layers — a Messenger-side fallback reply and a separate email alert for webhook-level failures — mean the workflow degrades gracefully instead of silently dropping messages, and the team gets notified the moment something upstream breaks.

Estimated Impact

  • Automates first-response handling on a Facebook Page 24/7 with no manual monitoring for routine messages
  • Document-grounded replies (Get a document → Clean Document Input) keep AI answers accurate to real business content instead of generic model output
  • Conversation Memory preserves context across multi-turn Messenger threads
  • Dual-layer failure handling: a Messenger-side fallback reply keeps the conversation alive, while a separate Gmail alert notifies the team if webhook processing itself fails
  • Typing Indicator + Wait pacing make the automated agent feel responsive rather than robotic

Workflow

Facebook Webhook → AI Agent → Reply Pipeline

Facebook Webhook routes GET requests through Verify or Process for the subscription handshake and POST requests into the processing path. Filter drops irrelevant events, Typing Indicator and Wait pace the response, and Get a document + Clean Document Input retrieve grounding context. The AI Agent (Anthropic Chat Model + Conversation Memory + Tool) generates a reply; on success, Clean AI Output feeds Send Facebook Message, while on error, Fallback Error feeds Send Fallback Message. A separate Error Response path emails a failure alert via Gmail if webhook processing itself breaks.

Stack

n8nFacebook Graph APIAnthropic ClaudeConversation MemoryGmail API

n8n pipeline that pulls remote job listings from the Remotive API, upserts them into Airtable, and automatically syncs newly discovered client companies into a linked Airtable table — with Slack alerts at every point of failure.

A two-part n8n workflow. The main flow is manually triggered and calls the Remotive API to fetch current remote job listings; on success it splits the response into an array of individual job records and upserts each into an Airtable "Jobs" table, then aggregates the results and posts a success notification to Slack before invoking a sub-workflow to sync new clients. On failure at either the fetch or upsert stage, a dedicated Slack notification fires immediately so failures never go unnoticed. The sub-workflow (triggered via "Execute Workflow") pulls all records from the Imported Jobs table and cross-references them against company/industry data from a separate Clients table in Airtable, splitting and merging both datasets with a combineBySql merge node. A JavaScript Code node then transforms the merged dataset, and an HTTP Request node writes the result back to Airtable via its API, closing the loop between newly scraped jobs and the client/company records they represent.

Business Value

Removes manual research and data entry from lead/company discovery — instead of someone combing job boards and copy-pasting company names into a CRM, the pipeline extracts and syncs new client companies automatically every time it runs. Keeping the Jobs and Clients Airtable tables in sync without human intervention means the data stays current and duplicate-free (upsert semantics handle re-runs safely), and Slack notifications on both success and error paths mean the team knows the pipeline ran — and knows immediately, not days later, if a step failed. The fetch/upsert error paths are separated so a failure can be traced to its exact stage without digging through execution logs.

Estimated Impact

  • Automatically syncs newly discovered client companies from scraped job listings into Airtable — no manual research or data entry
  • Upsert-based writes to Airtable keep the Jobs table duplicate-free across repeated runs
  • Slack notifications fire on both success and failure, with separate error paths for the fetch stage and the upsert stage so failures are traceable to their exact source
  • Sub-workflow architecture (Execute Workflow trigger) cleanly separates job scraping from the client-sync/merge logic, making each half independently testable and reusable

Workflow

Job Scraper → Airtable Upsert → Client Sync Sub-Workflow

Manual Trigger fires Fetch Remote Jobs (Remotive API). On success, Split Jobs Array breaks the response into individual records, each upserted into Airtable's Jobs table. A successful upsert triggers Aggregate Job Results, a Slack "Job Created" notification, and the Sync New Clients sub-workflow; a failed upsert triggers a separate Slack error notification, as does a failed fetch. The sub-workflow (When Executed by Another Workflow) reads all Imported Jobs records and Clients table company/industry data via Airtable's API, splits each dataset, merges them with a combineBySql node, transforms the result in a JavaScript Code node, writes it back to Airtable via HTTP Request, and sends a Slack confirmation message.

Stack

n8nRemotive APIAirtable APISlack APIJavaScript (Code node)

n8n backend for a Vapi-powered AI voice receptionist — checks live Google Calendar availability and books confirmed appointments in real time during a phone call.

Two webhook-triggered n8n flows power an AI voice agent (built on Vapi) that answers calls and handles appointment scheduling end-to-end. The "Getslots" endpoint receives call arguments, validates and parses them, then queries Google Calendar Availability; a router checks whether the requested time is open — if yes, it responds immediately, if no, it pulls all events on the calendar, extracts start/end times and event names, sorts them, formats them into a clean available-slots response, and returns the open time ranges to the voice agent so it can offer real alternatives instead of guessing. The "Bookslots" endpoint receives the caller's chosen slot and contact details, validates that all required booking info was captured, escapes/sanitizes the JSON payload, converts the time to CST (America/Chicago), and creates the calendar event; on success it builds a booking payload, returns a success response back to Vapi, and — gated behind an "if the booking is confirmed" filter — saves the finalized booking into Airtable as a permanent record. On failure (missing required info), it returns a structured error response instead of silently failing or creating a bad booking.

Business Value

Lets a business run a fully automated phone receptionist that checks real calendar availability and books appointments live during the call — no hold music, no "someone will call you back," no double-bookings, and no after-hours staffing needed. Splitting availability-checking and booking into two distinct webhook endpoints keeps the voice agent's conversation logic simple (it just calls the right endpoint at the right point in the call) while all calendar and validation complexity stays in n8n. Validating required booking info before writing to the calendar prevents incomplete or garbage bookings, and the Airtable sync creates a durable, searchable record of every confirmed appointment independent of Google Calendar — useful for reporting, follow-ups, or CRM sync.

Estimated Impact

  • Powers a Vapi AI voice agent that checks real Google Calendar availability and books appointments live during a phone call — no hold music, no callback delays
  • Dual-webhook design (Getslots / Bookslots) cleanly separates availability lookups from booking creation, keeping the voice agent's conversation logic simple
  • Falls back to listing actual open time ranges — pulled, sorted, and formatted from live calendar events — when a caller's requested time isn't available, instead of a dead end
  • Required-field validation blocks incomplete bookings before they hit the calendar; a structured error response returns to Vapi instead of a silent failure
  • Confirmed bookings sync to Airtable as a durable, searchable record independent of Google Calendar

Workflow

Getslots / Bookslots — Vapi Voice Booking Backend

Getslots: Fix Arguments → Input JSON arguments → Check Calendar Availability (Google Calendar) → router checks if the requested time is open. If open, responds immediately; if not, Get all Calendar Events → Extract start/end/name → Sort → Format response → Available Start time & Ranges → Respond to Webhook, giving the voice agent real alternatives. Bookslots: Fix Arguments → Input JSON arguments → router checks required info was captured. If complete: Escape JSON → Convert Time to CST (America/Chicago) → Create an event (Google Calendar); on success, Booking Payload → Success Response → Respond to Vapi → "if the booking is confirmed" filter → Info to be saved in Airtable → Create or update a record. If incomplete: BuildError Response → Response2.

Stack

n8nVapi (Voice AI)Google Calendar APIAirtable API
W

Web Projects

Client website builds1 project

Production marketing site for a Philippines-based pest control company, with a contact form that relays leads through a Make.com webhook without ever exposing that webhook to the browser.

A single-page marketing site built with React, Vite, TypeScript, Tailwind CSS, and shadcn/ui, deployed on Vercel. The contact form posts to a same-origin `/api/contact` Vercel Edge Function, which forwards the submission server-side to a Make.com webhook — keeping the webhook URL entirely out of the client bundle. A hidden honeypot field short-circuits bot submissions before they ever reach validation, and the Edge Function re-validates every field server-side (required name/email, Philippines phone number pattern, minimum message length, establishment type, and a 10KB body size cap) so a direct POST bypassing the site's UI can't relay unvalidated data to the webhook. Dedup and rate-limiting on inbound leads are handled inside the Make.com scenario itself.

Business Value

Gives the client a fast, professional web presence with a lead-capture form that's safe to expose publicly — no webhook credentials leak to visitors, no unvalidated data reaches downstream systems, and no bot noise pollutes the lead pipeline. The same server-side proxy pattern is reusable for other client sites that need to relay form submissions into Make.com, Zapier, or a CRM without shipping integration secrets to the browser.

Estimated Impact

  • Contact form posts to a same-origin /api/contact Edge Function — the Make.com webhook URL never ships in the client bundle
  • Server-side re-validation mirrors every client-side rule (required name/email, PH phone pattern, message length, establishment type) plus a 10KB body cap — direct POSTs bypassing the UI can't relay unvalidated data
  • Hidden honeypot field short-circuits bot submissions before validation or forwarding
  • vercel.json enforces X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy, Permissions-Policy, and a CSP restricting default-src to self
  • Deployed live on Vercel, with lead delivery handed off to Make.com for downstream routing

Workflows

Live Site — Hero

The landing page hero section, introducing the pest control service to visitors and driving them toward the contact form.

Stack

ReactViteTypeScriptTailwind CSSshadcn/uiVercel Edge FunctionsMake.com

Ready to automate?

Want something like this built for your business?

Every project above started with a simple conversation. Let's talk about what's slowing your team down and what's possible to automate.

Book a Free Discovery Call →
Skills & Tools

The tools I build with

A decade of working with automation platforms, cloud infrastructure, and monitoring systems — across industries.

Automation & AI

Current Stack
Make.comZapierN8NGoHighLevelClaude APIOpenAIGroqGemini APIMiMoOllamaWebflowNotionShopifyXeroGmail

CRM & Support Tools

Tools I Work With
HubSpotSalesforceFreshdeskAsanaClickUpBasecampGoogle WorkspaceSlackMS TeamsConfluenceZoomZendesk

Technical Background

Infrastructure & Cloud
AWS EC2AWS LambdaAWS S3AWS RDSAWS CloudWatchAWS Step FunctionsAWS SNSActive Directory

Databases

Data Layer & Storage
PostgreSQLMySQLMicrosoft SQL ServerSupabaseMongoDBFirebaseAWS DynamoDBPosticoAirtable

Monitoring Tools

Observability & Alerting
DatadogGrafanaPrometheusCloudWatch
Make.comZapierN8NClaude APIOpenAIHubSpotSalesforceAWS EC2AWS LambdaAirtableFreshdeskNotionDatadogGrafanaPostgreSQLClickUpGoogle WorkspaceShopifyPrometheusCloudWatchMake.comZapierN8NClaude APIOpenAIHubSpotSalesforceAWS EC2AWS LambdaAirtableFreshdeskNotionDatadogGrafanaPostgreSQLClickUpGoogle WorkspaceShopifyPrometheusCloudWatch
Let's Work Together

Ready to automate your workflow?

Pick a date below and book a free 30-minute discovery call. We'll walk through your challenges and explore what's possible.

August 2026

Select an available date

Sun
Mon
Tue
Wed
Thu
Fri
Sat
Available
Unavailable

Pick a date above to continue

Free · 30 minutes · Google Meet · GMT+8 Manila

Free discovery call30 minutesGoogle MeetMon – Fri only
or reach out directlysuperhiyas@gmail.com