WhatsApp¶
WhatsApp is the default channel for Panama PYMES. The scaffold under app/graphql/whatsapp/ exists; finish it.
Mirror emails/ in structure: outgoing sender service, per-client default channel, log of sends, and inbound webhook.
Items¶
- WhatsApp send service (Cloud API or 360dialog/Twilio adapter).
- Acceptance: a
sendWhatsapp(toClientId, templateName, mediaFileId?)mutation that posts to the provider and stores aWhatsappMessagerow. - Send invoice / quote / statement / receipt via WhatsApp with the PDF attached.
- Acceptance: each entity surface exposes a "Enviar por WhatsApp" action that uses the configured template + the entity's PDF.
- Per-client default channel stored on
ClientInvoiceDefault(email / whatsapp / both). - Acceptance: bulk send respects the default per client; UI shows a chip on each line.
- Templated reminders cadence — 3 days before due, day-of, 3 days late, 15 days late.
- Acceptance: scheduler job iterates open invoices nightly and dispatches reminders based on a per-tenant cadence config.
- Inbound WhatsApp → thread linked to client.
- Acceptance: incoming message webhook resolves the phone to a client and appends to a chat thread visible on the client detail page.
- WhatsApp templates UI — author HSM templates and submit for approval (or pick from a shared library).
- Acceptance: Settings → Comunicación → WhatsApp lets the owner add a template, see approval status, and preview.
- Owner morning summary via WhatsApp — see Owner dashboards.
Shipped¶
None yet.