Skip to main content

WhatsApp reply formats

Relay’s WhatsApp profile chooses a usable presentation for each supported conversation datatype: native text and controls, a static chart preview, an original file, or an explicit app fallback. Your agent does not need WhatsApp-specific writing instructions.

Implementation status

This mapping is defined in contract PR #1378 and implemented in PR #1380. The hosted service was updated on 22 October 2026. An older self-hosted service needs that update; chart previews also require a connection that negotiates outbound media. Deployment and automated checks do not establish delivery to your phone: verify a fresh reply in the actual WhatsApp conversation.

Text and structured replies​

RFC contentWhatsApp presentationLimit or fallback
Paragraphs and headingsOrdered paragraphs; headings become bold textMarkdown heading markers are removed
Bold, italic, strikethroughWhatsApp’s native emphasisUnsupported nesting remains readable
Inline code and fenced codeLiteral monospace/code textCode is not interpreted; language hints stay outside it
Bullets, numbered lists and quotationsReadable markers and indentationMeaning remains clear even when a client shows markers literally
Named links and autolinksVisible safe destination; a differing label appears as Guide (https://example.com/guide)Unsafe destinations are not active links
Markdown tablesOrdered labeled rows with every header and cellNo native table or invented chart dataset
Markdown image syntaxAlternate text and safe URL as textAn image-looking link does not trigger a download or attachment send
Agent messages, progress and final textThe same conversion, split into numbered parts when neededA final message does not by itself prove the agent’s work succeeded
Public plan deliberately sent as message textReadable list/status textStored plan snapshots, receipts and lifecycle/internal records do not become new WhatsApp messages
A2UI Text, Row, Column, List, Card and DividerComplete text plus missing readable card details and separatorsNo raw component JSON or duplicate full reply
Original question choices; matching A2UI ButtonUp to 3 reply buttons, or up to 10 list choices; larger sets use numbered textFull labels/details stay in the body; answer the original question using its control or WhatsApp Reply
A2UI ChoicePicker, TextField, CheckBox; multiple or typed inputs; unmatched Button actionsExplanation of the original inputs/actionsWhen WhatsApp cannot collect or accept the complete answer shape, use the Local Relay app; supported decline/cancel remain available
A2UI AudioPlayerDescription and complete textExplicitly states playback is unavailable; no fabricated audio or transcript

Long replies keep their order, close and reopen formatting/code as needed, and keep a URL together when it fits a part. User text and quoted user content stay literal. An app fallback names the limitation; it does not invent an app link, WhatsApp Flow, download or approval. WhatsApp cannot edit an earlier reply into a refreshed card: an update needs a new message, and old closed/superseded controls cannot regain authority.

Charts and files​

Media needs the connection’s outbound-media capability and must fit both the service’s configured limits and WhatsApp’s declared limits.

RFC media datatypeWhatsApp presentationLimit or fallback
Admitted, enabled canonical bar, line, area, scatter, pie or donut chartGenerated static PNG plus readable title, description, axes/units, named series and every valueNot interactive. Without the capability, keep text; if rendering/preparation fails, state that the preview is unavailable
Original JPEG or PNG attachmentOriginal verified image bytes after the textUp to 5 MB, subject to any smaller service limit
Original plain-text, PDF, DOCX, XLSX or PPTX attachmentOriginal verified file as a document after the textUp to 100 MB, subject to any smaller service limit
GIF/WebP images, CSV/Markdown/JSON files, audio and MP4 videoComplete text/description and explicit availability fallbackThese protocol types are not declared outbound WhatsApp file types in this profile; incoming support does not imply outgoing support
Missing, expired, revoked or inaccessible artifactTruthful unavailable indication with the message textNo substituted file, renewed expiry or invented download URL

A chart preview is a derived image, distinct from an uploaded original. It comes from admitted structured chart data; Relay does not infer a dataset from prose, a Markdown table or an image URL. The canonical data and any original-data reference stay unchanged. A successful preview does not add an “attachment is in the app” message for that chart. An omitted original file keeps its own fallback; only content actually retained may be described as available in the app.

For incoming media, the protocol covers images/stickers, UTF-8 text files, audio/voice notes, PDF/Office documents and MP4 video, within negotiated limits. Optional automatic transcripts remain labeled, unreviewed derivatives of the original audio. Receiving bytes does not prove the agent understood a document, recording or video. WhatsApp locations and contacts receive an unsupported-content notice.

Questions, signals and delivery​

Interaction or evidenceWhat it means on WhatsApp
Permission or formControls retain the original operation, person, allowed answer and expiry. A partial answer, card label, ordinary message or emoji cannot grant a new permission. Native form acceptance that cannot be represented stays in the app
Reply or reactionTargets the original message. One agent reaction per message can replace the business’s acknowledgement reaction
👀 acknowledgement; typingAdmission/activity signals, not completion or proof the agent read the message
Agent-to-agent eventInternal to that exchange; not delivered as a message to the person
Capture, generated PNG or uploaded filePreparation/custody evidence, not delivery to your phone
Provider acceptance, delivered/read statusRecorded transport evidence; a read status does not mean the agent read anything
Failure after any part was acceptedDelivery is uncertain; Relay does not blindly resend the whole reply
Closed customer-service windowText and media are held until an inbound message reopens the window

To verify delivery, inspect the actual WhatsApp conversation: confirm readable text and URLs, open each expected image/document, and test an original question control. Compare chart values with the text. A stored conversation, renderer gallery or successful emission call alone does not establish recipient delivery. See WhatsApp setup.

The governing mappings are RFC011 §3, RFC012 §7.7, and the WhatsApp binding profile.