Our work

Five systems, in detail.

From a WhatsApp follow-up for property agents to two AI agents negotiating a supply deal. For each one: what it does, what it's built on, and how it holds up.

  1. 01Multi-agent negotiation
  2. 02Lead-to-support lifecycle
  3. 03AI voice follow-up
  4. 04Real estate lead pipeline
  5. 05Zypher, Shopify support agent

01  Procurement · Durian retail · 2026

Multi-agent negotiation system

Two AI agents negotiate a bulk order of Mao Shan Wang durians. One buys for Durian Paradise, the other sells for a plantation. Each can only see its own company's data. They can keep secrets but they can't lie: every message is fact-checked before it's sent, and no deal goes through until the owner approves it on Telegram.

37
n8n nodes
7 of 7
test runs ended in a deal
SGD 31–33.50
agreed price per kg
7
false claims blocked, one per run
Live board: price line with the supplier's secret floor at SGD 29 and the buyer's secret maximum at SGD 34, a deal at SGD 31, each agent's private reasoning and the messages between them
The live board. The yellow band is where a deal was possible, between the supplier's secret floor and the buyer's secret maximum. Neither agent can see it. The side columns show each agent's private reasoning; the middle shows what they actually said.
A supplier message blocked by the verifier because it claimed a rival offer that wasn't in the records
Turn 2 of a run: the supplier agent claims another buyer offered SGD 34/kg. That offer isn't in its records, so the verifier blocks the message and the agent has to try again.
The n8n workflow: buyer agent, verifier, referee, supplier agent, verifier, referee, then Telegram approval and purchase order
The workflow in n8n. Top row: the negotiation loop. Bottom row: owner approval, purchase order and Telegram messages.

How it works

  1. Separate data per side. Each company's data sits behind its own MCP server with read-only database access. The buyer sees stock, demand forecast and budget; the supplier sees harvest lots, pricing and rival offers. Neither can query the other.
  2. Agents decide their own moves. Each agent checks its numbers, then makes an offer, a counter-offer, accepts or walks away, in a fixed structured format.
  3. Every message is fact-checked. A verifier agent checks each outgoing message against the sender's own records. Anything that doesn't match is blocked and sent back to be rewritten.
  4. A referee enforces the rules. Code nodes check each move is valid, keep score of offers and end the negotiation at the turn limit.
  5. A planted trap in the data. One harvest lot is listed twice, which makes 310 kg of stock look like 430 kg. The supplier agent has to spot the duplicate rather than sell stock it doesn't have.
  6. A person signs off. When the agents agree, the owner gets the terms on Telegram. Approve, and a purchase order is created and sent. Reject, and nothing happens.

02  Enterprise · 2026

Lead-to-support lifecycle automation

Every enquiry, whether it comes in as a phone call, a web form or a WhatsApp message, goes through one n8n workflow. It gets cleaned up, enriched, scored and checked against the CRM, then routed by what the customer actually wants. Sales enquiries get a rep, support requests get a ticket with a deadline, billing questions get checked against Stripe, and a day later everyone gets a short feedback survey.

56
n8n nodes
3
intake channels: voice, form, WhatsApp
4
intent routes
2h / 24h
SLA for unhappy / other tickets
First half of the n8n workflow: three intake webhooks, validation, enrichment, lead scoring, CRM deduplication and hot, warm and cold routing
First half. Three intake webhooks on the left, then validation, enrichment, lead scoring, CRM deduplication and the hot / warm / cold split. Bottom left: the daily Slack digest.
Second half of the n8n workflow: OpenAI intent classification splitting into support, billing, sales and other branches, merging into a feedback survey
Second half. OpenAI labels the intent, then the flow splits into support (Zoho Desk with SLA checks), billing (Stripe), sales (Pipedrive) and everything else, before merging into the feedback survey.

How it works

  1. One way in. Vapi voice calls, Tally forms and WhatsApp messages each have their own webhook. They're normalised into the same shape and checked for required fields. Incomplete submissions are logged, not silently dropped.
  2. Enrich and score. Company and contact details are looked up, bad email addresses are flagged, and each lead gets a score based on company size, the channel it came from and what the message asks about. Asking about pricing scores higher.
  3. No duplicates. Every lead is checked against the CRM. Existing records are updated; new ones are created.
  4. Hot, warm or cold. A hot lead (score 50 or more) sends a Slack message, puts a hold in the rep's calendar and fires a WhatsApp alert. Warm leads go into a Brevo nurture sequence with a follow-up two days later. Cold leads join the newsletter.
  5. Read the intent. OpenAI labels each message as sales, support, billing or other and rates the sentiment, returning JSON. Parsing is wrapped so one malformed reply can't stop the run.
  6. Support with a deadline. Unhappy customers are escalated on WhatsApp straight away. A Zoho Desk ticket is opened with an SLA of 2 hours for negative sentiment and 24 hours otherwise. The workflow checks back; if the ticket is still open it alerts Slack and logs the breach.
  7. Billing and sales. Billing questions look up the customer and invoice in Stripe and send a Brevo reminder if payment is overdue. Sales enquiries are assigned a rep, posted to Slack, and created as a person and an opportunity in Pipedrive.
  8. Close the loop. All branches merge into one interaction summary. A day later the customer gets an NPS survey and the answer is stored. A daily digest goes to Slack, and any workflow error pings the team.

03  Healthcare clinic · 2026

AI voice agent for lead follow-up

When someone asks a clinic about an appointment, they get a personal WhatsApp and email within a minute, then a phone call from an AI assistant. What happens on that call decides what they hear next: a booking confirmation, another try later, or a polite close.

2
n8n workflows: outreach and call results
8
OpenAI steps
3
channels: phone, WhatsApp, email
<60s
from enquiry to first message
Phone notifications: a WhatsApp and email from the clinic using the lead's name and branch, then follow-ups confirming a 4:00 PM appointment
An end-to-end test on our own phone. The first WhatsApp and email use the lead's name, the clinic and the branch they chose. After the call, both follow-ups confirm the 4:00 PM slot agreed on the call. The booking link is a placeholder in the demo.
n8n Lead Generation workflow: Airtable trigger into three OpenAI steps feeding a Vapi voice call, a WhatsApp alert and a Gmail message
Workflow 1: a new lead in Airtable fans out into the voice call, the WhatsApp message and the email, each written by its own OpenAI step.
n8n Lead Classification workflow: webhook, OpenAI classification, switch into WhatsApp, email, retry with wait, and Airtable updates
Workflow 2: the call result arrives by webhook, OpenAI classifies it, and the flow branches into follow-up, retry or a record update.

How it works

  1. A new lead starts it. When a lead lands in Airtable, the first workflow picks it up and tidies the fields.
  2. Three messages, one record. Three separate OpenAI steps write from the same lead details: a WhatsApp message, a follow-up email, and a short brief for the voice call, so the assistant knows the person's name, clinic and branch before it dials.
  3. The call. After a short wait, Vapi places the call using an ElevenLabs voice cloned for the clinic, so it sounds like the clinic's own receptionist rather than a stock voice.
  4. Read the outcome. When the call ends, Vapi sends the result to the second workflow. OpenAI reads it and decides what happened: booked, not interested, or didn't connect.
  5. Follow up on what was said. If they booked, the WhatsApp and email confirm the time and branch agreed on the call, with a booking link. If they're not interested, the record is updated and nothing else is sent.
  6. Try again, within limits. If the call didn't connect, the workflow waits, then calls again with the lead's details passed into the new attempt. It counts attempts and stops at the limit.
  7. One source of truth. Every outcome updates the lead's record in Airtable, so the clinic can see where each enquiry stands.

04  Real estate · 2025

Multi-stage lead pipeline for property agents

A buyer fills in an enquiry form at 10 pm. The agent is at a viewing and replies the next morning, by which time the buyer has called three other agents. This system replies on WhatsApp within a minute, any time of day, tells the agent on Telegram, logs the lead and follows up with anyone who goes quiet.

<60s
to the first WhatsApp reply
3
Make.com scenarios
24h
until an automatic follow-up
2h
reminder before each viewing
Make.com scenario: Tally form, set variables, OpenAI, Twilio WhatsApp request, Airtable record and Telegram message
The main Make.com scenario: Tally form, tidy the fields, OpenAI writes the reply, WhatsApp sends it, Airtable logs the lead, Telegram tells the agent.
WhatsApp message confirming a property consultation with a date, time and reschedule link
What the buyer gets after booking: a WhatsApp confirmation with the time and a link to reschedule.
Telegram new lead alert listing intent, property type, budget, timeline and preferred area
What the agent gets: a Telegram summary of the lead seconds after the form is sent. Phone number hidden.
Airtable Kanban board with columns New, Contacted, Viewing Booked and Closed
The agent's Airtable board. Leads move from New to Contacted to Viewing Booked by themselves; the agent moves them to Closed. Test data.

How it works

  1. One form link everywhere. The agent puts a single Tally link in their Instagram bio, Facebook ads, PropertyGuru listings and on flyers as a QR code. It asks whether they want to buy, rent or invest, plus property type, budget, timeline and area.
  2. Instant trigger. A new submission starts the Make.com scenario straight away, not on a timer.
  3. A reply that reads like a person. OpenAI writes a short WhatsApp message: greets them by first name, confirms what they're looking for in one sentence, says the agent will be in touch and includes a Calendly link.
  4. Send, log, alert. The message goes out through the WhatsApp API, the lead is saved in Airtable, and the agent gets a Telegram summary on their phone.
  5. Chase the quiet ones once. A second scenario runs every morning. Anyone still marked New after 24 hours without a booking gets a follow-up and is moved to Contacted, so nobody is messaged twice.
  6. Bookings handle themselves. A third scenario watches Calendly. A booking marks the lead as Viewing Booked, sends a WhatsApp confirmation and a reminder two hours before.

05  SaaS · Shopify app · 2025–26

Zypher, an AI support agent for Shopify stores

A Shopify app that adds a support assistant to a store. It reads that store's own policies and pages, so when a customer asks about refunds it answers with the store's actual return window and conditions, not a generic reply. Merchants install it, sync, and switch it on from inside Shopify admin. We designed and built it end to end.

3
parts: backend, merchant app, storefront widget
11
store sources synced on the test store
4
most relevant sources used per answer
Shopify theme editor with the Zypher widget open on a test store, answering a refund policy question from the store's own policy
The widget on a test store. Asked "what is the refund policy", it answers from the store's own policy: 30 days, unused items, refunds in 5 to 10 business days, shipping not refunded. Appearance is set in the theme editor on the left.
Zypher merchant page inside Shopify admin showing setup checks, store connection and usage metrics
The merchant page inside Shopify admin: setup checks, store sync and usage metrics in one place.

How it works

  1. Install and connect. The merchant installs the app from Shopify and the store connects through Shopify's OAuth. There's nothing to set up outside Shopify.
  2. Sync the store's knowledge. One click imports the store's policies and pages as knowledge sources.
  3. Answer from the store, not the internet. For each question the backend splits the sources into chunks, picks the few that matter and gives only those to the model, with instructions to answer from them. Each answer records which sources it used.
  4. Fast repeats. Common questions are served from a short cache keyed on the store, the question and the source content, so answers update as soon as the store re-syncs.
  5. Merchant controls. Assistant name, greeting, tone and a switch to pause replies without losing settings. Usage numbers and customer conversations are on the same page, with a way to review answers.
  6. Widget in the theme. The storefront widget is a theme app extension, so launcher text, accent colour, position and size are set in Shopify's theme editor.
  7. Billing built in. Plans run through Shopify's own subscriptions. Syncing and the widget unlock once a plan is active.

Let's look at your workflow.

Book a free 20-minute call. We'll look at one process and tell you honestly what we'd automate, and what we'd leave alone.