Texting readiness

10DLC approval is invisible and slow, and 'why can't I text yet?' is the support ticket it generates. This card makes the pipeline visible instead.

Left: fully approved. Right: campaign attached, carrier review pending.

Installation

npx shadcn@latest add @handset/texting-readiness

Usage

import { TextingReadiness } from "@/components/handset/texting-readiness";

// On a settings/onboarding page:
<TextingReadiness phoneNumberId={tenant.numberId} />

// Watching for approval to land (e.g. right after campaign submission):
<TextingReadiness phoneNumberId={tenant.numberId} pollMs={30000} />

The three checks map to the number record: active (it exists), campaign attached (campaign_id), carrier approved (messaging_ready — the same flag that gates outbound sends). The footer sets expectations honestly: calls and inbound texts work immediately; only outbound texting waits on carriers.

Props

Props
PropTypeDefaultDescription
phoneNumberIdstring | nullThe number to inspect (num_…).
pollMsnumber00 = fetch once. Set ~30000 to watch approval flip.
classNamestringMerged onto the card.