iachat/app/jobs/webhooks
Muhsin Keloth b686d14044
feat: Handle external echo messages from native apps (#13371)
When businesses use WhatsApp Business App (co-existence mode) or
Instagram App or TikTok alongside Chatwoot, messages sent from the
native apps were not synced properly back to Chatwoot. This left agents
with an incomplete conversation history and no visibility into responses
sent outside the dashboard. Additionally, if these echo messages did
arrive, they appeared as "Sent by: Bot" in the UI since they had no
sender, making it confusing for agents.

This PR subscribes to WhatsApp `smb_message_echoes` webhook events and
routes them through the existing service with an `outgoing_echo` flag,
mirroring how Instagram already handles echoes. On the Instagram side,
echo messages now also carry the `external_echo` content attribute and
`delivered` status.

On the frontend, messages with `externalEcho` are distinguished from bot
messages showing a "Native app" avatar and an advisory note encouraging
agents to reply from Chatwoot to maintain the service window.

<img width="1518" height="524" alt="CleanShot 2026-01-29 at 13 37 57@2x"
src="https://github.com/user-attachments/assets/5aa0b552-6382-441f-96aa-9a62ca716e4a"
/>


Fixes
https://linear.app/chatwoot/issue/CW-4204/display-messages-not-sent-from-chatwoot-in-case-of-outgoing-echo
Fixes
https://linear.app/chatwoot/issue/PLA-33/incoming-from-me-messages-from-whatsapp-business-app-are-not-falling
2026-02-02 15:52:53 +05:30
..
facebook_delivery_job.rb feat: Facebook delivery reports (#8136) 2023-11-20 12:22:45 +05:30
facebook_events_job.rb fix: mutex timeout and error handling (#8770) 2024-01-24 14:18:21 +04:00
instagram_events_job.rb fix: Use contact_id instead of sender_id for Instagram message locks (#12841) 2025-11-12 16:56:52 +05:30
line_events_job.rb feat: Line Channel (#2904) 2021-09-11 01:31:17 +05:30
sms_events_job.rb feat: Bandwidth sms channel delivery reports (#8198) 2023-10-27 14:07:15 -07:00
telegram_events_job.rb feat(channel): add support for Telegram Business bots (#10181) (#11663) 2025-06-16 20:35:23 -07:00
tiktok_events_job.rb feat: Handle external echo messages from native apps (#13371) 2026-02-02 15:52:53 +05:30
twilio_delivery_status_job.rb feat: discard Twilio events when Body parameter is not present (#11096) 2025-03-17 12:47:11 +05:30
twilio_events_job.rb fix: Support location messages in Twilio WhatsApp integration (#11830) 2025-06-30 11:35:32 +05:30
whatsapp_events_job.rb feat: Handle external echo messages from native apps (#13371) 2026-02-02 15:52:53 +05:30