What's New in v9.5.0
⏰ Scheduled & Recurring Sends, Caption Mentions & Referral Metadata
Version 9.5.0 lets every send endpoint schedule a message for later or on a recurring cadence, adds mentions to image, file and video captions, and exposes Click-to-WhatsApp referral metadata in chat messages. Quoted replies, outgoing chat naming, sticker conversion on ffmpeg 9, and MCP query output all get fixes, and whatsmeow is updated to the latest revision.
✨ Features
Scheduled and Recurring Message Sends (#852)
- Every send endpoint and
POST /message/{message_id}/forwardcan schedule instead of sending: setscheduled_at(RFC3339) andtimezone(IANA), optionallyrecurrence(once/daily/weekly/monthly),weekdays,day_of_month,end_at, andoccurrence_limit - A durable worker backed by a new
scheduled_sendstable sends due jobs, retries transient errors with backoff, waits for offline devices, and never resends an interrupted one-time send - Adds management routes:
GET /send/schedules,GET /send/schedules/{schedule_id}, andPOST /send/schedules/{schedule_id}/pause|resume|cancel - Adds the MCP
whatsapp_scheduletool, letswhatsapp_sendaccept the scheduling args, and reportsscheduled_sends: truein/app/info - Recurrence is DST-safe, and
time/tzdatais embedded so Windows binaries can load IANA zones
Mentions in Image, File and Video Captions (#853)
/send/image,/send/fileand/send/videonow turn@phonein the caption into a real mention- Accept the same
mentionslist as/send/message, including ghost mentions and@everyone - MCP
whatsapp_sendpassesmentionsforimage,videoanddocument
Referral Metadata in Chat Messages (#829)
GET /chat/{chat_jid}/messagesnow returnsreferral_metadata(Meta Ads / Click-to-WhatsApp attribution), which was already stored but never exposed- Documented in the
ChatMessageOpenAPI schema and available through the MCPwhatsapp_chatmessages action
🐛 Bug Fixes
Quoted Replies Show Pre-Edit Text (#820)
UpdateMessagenow writes API edits to chat storage and records edit history, so replies quote the edited text- Sent messages store the sender without the device suffix, so the quoted participant resolves on the recipient's client
Peer Name Preserved for Outgoing Messages (#824)
- Messages sent from the primary phone no longer rename the peer's chat to your own push name
Sticker Conversion on ffmpeg 9 (#847)
- Drops the
-vsyncflag that ffmpeg 9 removed, so PNG and JPG stickers convert again; the command still works on older ffmpeg versions
MCP Query Results Visible to Text-Only Clients (#849)
whatsapp_chatandwhatsapp_groupquery actions now put the JSON result in text content as well asStructuredContent, so text-preferring clients and agents can see chat JIDs, senders and message bodies
🔧 Technical Improvements
Dependency Updates
- Updates whatsmeow to the latest revision
What's Changed
- feat(send): support mentions in image, file and video captions (#853) by @aldinokemal
- chore: update whatsmeow to latest by @aldinokemal
- feat: expose referral metadata in chat messages (#829) by @Kizuno18 and @juliomuhlbauer
- fix(chat): preserve peer name for outgoing messages (#824) by @hamedyosefian
- fix(message,send): quoted replies show pre-edit text and an unresolvable participant (#820) by @alenphilipgeorge
- feat(schedule): scheduled and recurring message sends (#852) by @aldinokemal
- fix(send): drop -vsync from sticker WebP conversion for ffmpeg 9 (#847) by @MalikD2004
- fix(mcp): serialize query results into text content for backwards compatibility (#849) by @edosulai
- chore(release): v9.5.0 by @aldinokemal
Contributors
Full Changelog: v9.4.0...v9.5.0