whatsapp

Send WhatsApp messages for loyalty events via a provider-agnostic interface.

Updated May 7, 2026
One-click install
npx skills add https://github.com/johinsDev/loyalty-app --skill whatsapp-johinsdev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: whatsapp
Source: https://github.com/johinsDev/loyalty-app/tree/main/.claude/skills/whatsapp
Command: npx skills add https://github.com/johinsDev/loyalty-app --skill whatsapp-johinsdev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you send WhatsApp messages reliably in a multi-tenant loyalty app without duplicating provider-specific logic or losing observability into what was sent and why.

Core Features & Use Cases

  • Provider-agnostic sending via @loyalty/whatsapp: Send birthday, points, redemption-ready, and OTP messages through a unified interface.
  • Swappable transports by environment: Use Twilio in production, and automatically fall back to log, folder previews, or DB outbox in non-production.
  • Admin outbox visibility and E2E verification: View message outcomes in the WhatsApp outbox UI and fetch outbox rows via the gated E2E endpoint for tests.

Quick Start

Send a birthday WhatsApp by running the loyalty birthday flow that triggers a WhatsApp send and then verify the result by fetching the preview outbox rows through the local or preview endpoint.

Frequently Asked Questions about whatsapp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send WhatsApp messages reliably from a monorepo without duplicating provider logic?

Send WhatsApp messages reliably by using a provider-agnostic interface that abstracts transport-specific logic, utilizing typed message builders for birthday notifications, OTP delivery, and redemption alerts while recording results in an outbox for observability.

Can I use Twilio for WhatsApp delivery in production and log previews in non-production?

Yes, you can use Twilio for WhatsApp delivery in production and automatically fall back to log, folder previews, or DB outbox transports in non-production environments through a swappable transport configuration.

What is the best way to verify WhatsApp message delivery in E2E testing?

Verify WhatsApp message delivery in E2E testing by fetching outbox rows through a gated E2E endpoint, which allows tests to assert message outcomes and preview sent templated or freeform messages.

How do I build typed WhatsApp templates for loyalty program events?

Build typed WhatsApp templates for loyalty program events using typed message builders within a unified interface, supporting birthday notifications, points-earned updates, redemption-ready alerts, and OTP delivery across routes and jobs.

Does this WhatsApp messaging approach support multi-tenant loyalty apps?

Yes, this WhatsApp messaging approach supports multi-tenant loyalty apps by providing a unified interface that prevents duplicating provider-specific logic while maintaining observability into what was sent and why across customer panels.

Why should I use an outbox pattern for WhatsApp messaging observability?

Use an outbox pattern for WhatsApp messaging observability to record message results, enable admin outbox visibility for viewing message outcomes, and support E2E assertions without losing track of what was sent and why.