AI & AutomationImplemented & Tested (Database Outbox Monolith)

Signal Desk — Lead Agent

Durable event-driven lead routing pipeline with PostgreSQL outbox & WhatsApp state machine

TypeScriptNode.jsPostgreSQLZodTransactional Outbox

The Problem

Inbound customer inquiries from disparate forms often result in dropped context, missing consent records, and uncoordinated manual follow-up without audit trails.

Engineering Approach

Built a modular monolith using the transactional outbox pattern to guarantee lead persistence and serialize external messaging provider interactions safely.

What I Built & My Contribution

Designed and implemented inbound lead normalization, PostgreSQL transactional outbox jobs, token signature verification, and owner WhatsApp template routing.

Architecture & Data Pipeline

Inbound Form Submission → Token Auth Gate → PostgreSQL Leads & Outbox → Persistent Worker → Provider Delivery

System Architecture
[ Inbound Lead Submission ]
            │ (HMAC Token Signed)
            ▼
┌───────────────────────────────┐
│   PostgreSQL Atomic Commit    │
│   ├── leads table             │
│   └── lead_outbox (sheets/wa) │
└───────────────┬───────────────┘
                │
                ▼ (Advisory Lock Worker)
┌───────────────────────────────┐
│     Worker Outbox Queue       │
│  ├── Google Sheets Adapter    │
│  └── WhatsApp Signed Callback │
└───────────────────────────────┘

Verified Outcomes & Metrics

Atomic persistence receipt; exponential backoff retries (30s to 1hr); zero silent data loss under network failure.

Verified Implementation

The repository contains validated WhatsApp event schemas, durable conversation boundaries, and an advisory-locked worker that prevents concurrent message races. Verification here represents code audit and local inspection, distinguishing functional code paths from external cloud provider accounts.

Boundaries & Known Limitations

Live Meta Cloud API access is unverified without owner approval. Outbound sending remains strictly gated; automated voice is disabled by default.