Agents that improve your customer experience. They answer on WhatsApp and inside your product, take care of each request in your systems, and hand your team whatever needs a person.
SSupport agent · WhatsApprunning on Lelemon · Claude Sonnet
0.0 s
Customer · WhatsApp
Hi, the jacket from order 48213 arrived with a broken zipper. I want to return it.
0.4 s
Thought Looking up the order and checking the return policy.
1.1 s
get_orderorder: "48213"Waterproof jacket · $129.00 · delivered 6 days ago380 ms
1.7 s
search_knowledgequery: "defective item return"Full refund within 30 days, with a photo of the defect290 ms
2.3 s
This qualifies for a full refund of $129.00. Since it is over $100, a supervisor approves it before it is issued.
2.4 s
Approval requiredcreate_refund · $129.00 to the original payment methodWaiting for approvalApproved by Javiera, support supervisor
41 s
create_refundorder: "48213", amount: 129.00Refund R-2291 issued510 ms
42 s
Done. We refunded $129.00 to your card; it shows up in 3 to 5 business days. I sent you the return label.
Approval requiredcreate_refund · $129.00 to the original payment method
Illustrative example with sample data.
Trusted by
Why not build it ourselves?
You can. The model is the easy part; what takes months is everything around it, and that is already built. Your team keeps building your product.
WhatsApp on your numberConnect your WhatsApp Business number with a link and the agent answers from it.
A panel for your teamEvery conversation is a case, with teams, routing and an inbox. Whoever takes it pauses the agent.
Human approvalSensitive actions wait for the person you choose to approve them.
Hand-offs with contextThe case reaches your team with a summary of the conversation.
A log of every actionWhat the agent did, in which system and with what data, in the case history.
Connects to your systemsYour API, your MCP server or signed webhooks. No data migration.
Customer stories
A copilot inside accounting software
Plataforma Contable is accounting software for Chilean accountants. Its copilot runs on Lelemon: the accountant asks for the work in plain words and the agent does it in the system.
Who uses it
Accountants, across their client companies
Where it works
Inside the product and on WhatsApp
How they use it
They connected their software’s actions to the agent without building an agent from scratch.
The same agent works inside the product and on WhatsApp.
The team follows conversations and takes over from the panel or from Claude.
How they control it
They grant the agent the tools it can use, one by one.
Anything that changes taxes stays out of its reach.
Before changing several records, the agent shows what it will do and waits for the accountant to approve it.
TUU support and sales on WhatsApp
Haulmer serves the merchants that use TUU with Lelemon agents integrated with its internal systems: tickets, knowledge base and customer data. Their team steps in when a case needs it.
Customer inquiries
15,000+a month
Where it works
WhatsApp, in sales and support
What it does in their systems
Classifies each contact by reason
Answers from Haulmer’s knowledge base
Recommends the right card terminal for each merchant
Builds the shopping cart and leaves it ready for the customer
Checks ticket status
Hands off to a person with a case summary
Use cases
How Haulmer sells TUU card terminals
TTUU Salesonline
I run a liquor store and want to take card payments. What do I need?
recomendar_maquina
Terminal with printer4G SIM · prints the receipt
For your store this one fits: it prints the receipt on the spot, no wifi needed.
Great, I need 2.
carrito
Your cartTerminal with printer× 2Go to checkout
It recommends, builds the cart in the sales system and keeps the conversation going until the sale closes.
Example: logistics software
Shipments · Quilicura warehouse
Shipment
Customer
Date
D-4417
Ferretería Sur
TomorrowThursday
D-4418
Café Brasilia
TomorrowThursday
D-4419
Bazar Lucía
TomorrowThursday
D-4420
Óptica Centro
TomorrowThursday
D-4421
Minimarket Ana
TomorrowThursday
+ 9 more shipments
Your users ask for the work in their own words and the agent does it with your system’s tools.
# Register an action: an HTTP call to your system.# You define the schema; the agent fills in the parameters.curl -X POST https://api.lelemon.cl/v1/external/actions \ -H"Authorization: Bearer $LELEMON_API_KEY" \ -H"Content-Type: application/json" \ -d '{"slug": "create_ticket","name": "Create a ticket","description": "Opens a ticket when the customer reports a problem.","url": "https://api.yourcompany.com/tickets","method": "POST","parameters": {"type": "object","properties": { "summary": { "type": "string" } },"required": ["summary"] } }'
terminal$ sh 01-register-action.shrunningHTTP/1.1 201 Createdcreate_ticket is now in your organization’s catalog
● api.lelemon.clShellUTF-8
02-grant.sh
# Grant it to an agent. One at a time: other agents don't see it.curl -X PUT https://api.lelemon.cl/v1/external/agents/$AGENT_ID/actions/create_ticket \ -H"Authorization: Bearer $LELEMON_API_KEY"
terminal$ sh 02-grant.shrunningHTTP/1.1 204 No Contentthe support agent can now use create_ticket
● api.lelemon.clShellUTF-8
03-copilot.ts
// Your product talks to the agent from your backend.// externalRef makes every message idempotent: a retry never duplicates it.const api = 'https://api.lelemon.cl/v1/external';const headers = { Authorization: `Bearer ${process.env.LELEMON_API_KEY}`,'Content-Type': 'application/json',};const { conversationId } = await fetch(`${api}/agents/support/conversations`, { method: 'POST', headers, body: JSON.stringify({ externalId: user.id, contactName: user.name }),}).then((r) => r.json());const reply = await fetch(`${api}/conversations/${conversationId}/messages`, { method: 'POST', headers, body: JSON.stringify({ message: text, externalRef: message.id }),}).then((r) => r.json());
terminal$ npx tsx 03-copilot.tsrunning{ "conversationId": "4b1c9e…", "status": "answered", "response": "I opened ticket SAC-20481. Someone will reach out today."}
● api.lelemon.clTypeScriptUTF-8
04-webhook.ts
// When a case needs a person, you get a signed webhook.import { createHmac, timingSafeEqual } from'node:crypto';app.post('/lelemon', express.raw({ type: 'application/json' }), (req, res) => {const ts = req.header('X-Lelemon-Timestamp');const expected = createHmac('sha256', process.env.LELEMON_WEBHOOK_SECRET) .update(`${ts}.${req.body}`) .digest('hex');const received = req.header('X-Lelemon-Signature') ?? '';if (received.length !== expected.length || !timingSafeEqual(Buffer.from(received), Buffer.from(expected))) {return res.sendStatus(401); } notifyYourTeam(JSON.parse(req.body)); res.sendStatus(200);});
# The Lelemon MCP server, in Claude Code.# Have your own MCP server? Connect it to an agent from the panel.claude mcp add --transport http lelemon https://api.lelemon.cl/mcp
terminal$ clauderunning> Which cases are waiting for a person?● lelemon · consultas_pendientes2 cases are waiting. Ferretería Sur is asking about a duplicate invoice.
● api.lelemon.clShellUTF-8
Conversations
POST/agents/:slug/conversationsagents:converseOpen a conversation with an agent
POST/conversations/:id/messagesagents:converseSend a message and get the reply
POST/conversations/:id/derivarconversations:routeHand the case to a person
POST/conversations/:id/resolveconversations:resolveClose the case
Actions
POST/actionsactions:writeRegister an action from your system
PUT/agents/:agentId/actions/:slugactions:writeGrant it to an agent
DELETE/agents/:agentId/actions/:slugactions:writeRevoke it
Knowledge
POST/knowledge/collectionsknowledge:writeCreate a collection
PUT/knowledge/documentsknowledge:writeUpload or update a document
PUT/agents/:agentId/knowledge/:collectionIdknowledge:writeGive it to an agent
Scheduling and metrics
GET/scheduling/availabilityscheduling:readAvailable time slots
POST/scheduling/meetingsscheduling:writeBook a meeting
You pay per conversation, not per seat, and it costs the same with any model. For more volume there is a 5,000-conversation plan at US$2,500 a month, and beyond that, an annual contract from US$0.35 per conversation.
The agent only uses the actions you grant it, one by one. Before doing anything important, it shows what it will do and waits for approval. Every action is logged on the case and your team can take over at any time.
Do I have to change my systems?
No. The agent connects to your systems over API, webhook or your MCP server. You define each action and which agent gets it.
How does my team work with it?
In the Lelemon panel every conversation is a case, with teams, routing and an inbox. Whoever takes a case pauses the agent and hands it back when done. If your team uses Claude, they can handle cases from there over MCP.
Can I use my own WhatsApp number?
Yes. You connect your WhatsApp Business number with a setup link and the agent answers from that number.
Which models does it use and where is the data?
Claude models (Haiku and Sonnet) and open models, on AWS Bedrock. You choose the model for each agent. Each organization sees only its own data and API credentials are scoped. When an action sends data to one of your systems, the purpose and destination country are recorded, as Chile’s Law 21.719 requires.
What counts as a conversation?
One thread with one customer: up to 10 exchanges with the agent or 24 hours, whichever comes first. The next message starts a new conversation. It costs the same with any model. If you go over your plan in a month, each extra conversation costs US$0.80 (US$0.60 on the 5,000 plan) and service never stops. WhatsApp messages are billed by Meta directly to your number, separately from Lelemon.
What does implementation look like?
We start with a paid 60-day pilot: one channel, one or two actions in your system and a written goal before we begin. If the goal is met and you sign the annual contract, the full pilot is credited; if it is not met, we refund half. Implementation is quoted per project and covers setting up the agent, its actions, its knowledge and the hand-off to your team.
Does it replace my support team?
No. The agent handles the first line and resolves what you allowed it to do. Everything else reaches your team with a summary of the conversation.
Book a demo
We show you how the agent would serve your customers, with a real case from your startup connected to one of your systems.