Selling an AI agent without a delivery contract is signing that whatever the client imagines is included in the retainer. The agent is not a sealed product: it is a scope (which questions it answers, on which channel, at which hours) plus your setup work plus a channel cost billed by a third party. Those three layers have to appear on paper, with a clear place for what is not included.
This is not a paste-ready template. It is the list of clauses that actually stop a delivery from going wrong: the ones that show up when the client asks for a new flow in week three, when Meta changes the message price, or when someone has to be told they are talking to an AI. Pricing lives in another article; this one is about what you are selling.
Scope: what the agent answers and what it does not
The first page of the contract is not the price. It is the list of intents the agent covers: book an appointment, confirm a reservation, answer opening hours, hand off to a person. If that list does not exist, anything the client types becomes a support ticket for you.
Write the scope in sentences a client understands, not in node names. «Confirm existing appointments» is not the same as «find a gap in the doctor's calendar». The second needs an integration and a rule the first does not. If you leave it as «customer service on WhatsApp», you have signed a bag with no bottom.
- Channel and numberWhatsApp, Instagram or voice; which number or account; who is the Meta business owner.
- Covered intentsThe closed list of what the agent resolves without a person.
- Hours and after hoursWhat it does at eleven at night: answers, takes a note, or stays silent.
- Handoff to a personWhen it escalates, to whom, and what context travels with the handoff.
Hours: setup and the retainer are not the same thing
Setup is work measured in hours: number registration, flow design, templates, calendar connection, tests with real conversations and a handover session. That block is billed once. If you melt it into the monthly fee and the client leaves in month four, you paid for those hours.
The monthly fee is something else: platform access, keeping the agent alive, and the time you will spend on small changes. The contract must say how many change-hours are included each month and what is billed on top. Without that cap, every «just one more thing» eats the margin.
Who pays the channel: Meta does not sign your contract
You control the platform cost. On SignalCore it is a monthly fee (79 € on Starter, 297 € on Growth; 58 € and 166 € billed yearly). WhatsApp is controlled by Meta: it charges per delivered template message, recategorises templates, and has already announced price changes. That invoice does not fit in «everything included».
The contract has to pick one of two: the client pays Meta messages at cost, or you bill them with a margin and a volume cap. If you promise a flat fee on a cost that scales, the month the client sends more templates than your quote assumed, you lose.
Out of scope: the day they ask for something the agent does not do
It will happen. The client will want a new flow, an integration that was not there, or the agent to negotiate a custom price. The contract needs an out-of-scope clause and an extra-hour rate, or a mini-proposal for each extension. If it is missing, the extension sneaks in as support.
There is an out-of-scope that is not product, it is legal. Whoever deploys the agent has to disclose that the other party is talking to an AI. You can build the disclosure; you cannot sign that the client keeps it in place. That duty stays on their side, in writing. The same for WhatsApp consent: you build the circuit, they bring the list.
Sources
Every figure in this article comes from one of these sources. If a source changes, the article is revised and the date above is updated.
- 1.Comisión Europea, FAQ sobre las obligaciones de transparencia del artículo 50El aviso de que se habla con una IA es del desplegador, no de la plantilla de software.
- 2.Meta, documentación de precios de WhatsApp BusinessEl coste del canal lo fija Meta y cambia; el contrato tiene que decir quién lo asume.
Frequently asked questions
Do I need a separate contract if I already have a services agreement?
Yes, or an annex. A services agreement talks about hours and fees. An agent contract has to talk about conversational scope, a channel that has an owner, and a cost you do not set. Without that annex, every new flow walks in through «already paid».
What do I write about WhatsApp message prices?
That Meta sets the price, that it can change, and who pays it. Either the client pays at cost, or you bill it with a monthly volume cap. Do not sign «messages included» without a maximum number per month.
Can I promise a go-live date?
You can promise your own work. You cannot promise Meta verification or template approval. The contract should split the dates you control from the dates you do not.
What if the client wants the agent to close sales?
That is out of scope unless you sold it that way. Closing a custom price or a complaint is not confirming an appointment. If it is not on the intent list, you quote it separately or you hand it to a person.