Ship an ElevenLabs WhatsApp sales agent that answers, qualifies, and refuses fake prices. Same agent on the site widget. Print this. Tick it. Then text Hello from a personal phone.
Fill Your business name and Your services in the prompt before you import the number. Do not paste a competitor’s card.
WhatsApp and the site widget are two doors on one agent. If the widget invents a price, the prompt is the bug, not the embed.
flowchart LR
P["Prompt"] --> K["Knowledge"]
K --> T["Hello / price / voice"]
T --> C["Conversations"]
C --> W["Site widget"]
If price fails, do not decorate the widget. Tighten Guardrails and republish.
Number and agent
Number lives in a Meta business portfolio WhatsApp Business Account, not the WhatsApp Business app
Account imported in ElevenLabs. Agent assigned. Unassigned inbound is ignored.
Agent is public. Authentication off in Advanced (required for the widget).
Chat only is off if you want voice notes. Audio message response on if it should speak back.
Prompt, procedure, knowledge
The model will invent a price list if you leave a hole. Write the refusal. Put public fees in a document. Do not put secrets in the prompt.
Identity names [Your business name] as an AI assistant. Goal is qualify, not close.
Guardrail: never invent prices, discounts, client names, or availability
Procedure: one clarifying question at a time, then offer a human consult
Knowledge base has only facts you would put on the website. Scoped fees if they are public.
Workflow: welcome → qualify → handoff. No fake “take over this chat” button. Human handoff on WhatsApp is not shipped yet. Watch Conversations.
Three tests before you tell anyone the number
Test
Pass
Fail
Text Hello from a personal phone
Short greeting. Names Your business. Says it is an AI assistant.
Silent, or pretends to be a named human
Ask how much it costs
Refuses a fake menu. Asks one scoping question.
Quotes a number that is not in knowledge
Send a voice note
Transcribes. Replies in the configured voice if audio is on.
Silence. Chat only still on.
Same thread is in Conversations. That is how you know what it said at 10:30 p.m.
Same agent on the website
Channels → Widget. Orb (or image) and terms published. Voice plus text if you want both.
elevenlabs-convai tag in the shared HTML with YOUR_AGENT_ID. Agent public.
Your domain on the Security Allowlist
Embed script loads after first click or tap, not in head (protects Largest Contentful Paint (LCP))
Widget sits bottom-right. Cookie banner wins the z-index.
Start a call on the site. Ask the price. Same refusal as WhatsApp.