Skip to main content
skill CX Codex

template-builder-ui — Claude Code skill: what it does, how to install

Helps design and audit tenant-facing Sent v3 template builders, preview interfaces, channel validation, and lifecycle states before submitting to providers.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sentdm/sent-plugin --skill template-builder-ui -a claude-code
Open on GitHub

What template-builder-ui does

The skill defines guidelines for building template authoring interfaces around Sent's v3 definition contract. While editors may import Meta templates, canonical payloads must never save as Meta's raw components[] array. The data model expects a required multiChannel body alongside optional body overrides for sms, whatsapp, and rcs. Top-level creation fields named name, channels, body, or header must remain outside the create payload.

Variable management couples placeholders like {{0:variable}} directly to structured entity records. Users must not edit placeholder syntax without updating the entity table, and renumbering happens atomically when placeholders move. Validation rules enforce a 1,024-character cap for message bodies, 60 characters for headers or footers, and a maximum of 10 buttons across allowed types such as QUICK_REPLY and COPY_CODE.

RCS rich cards and carousels are roadmap features, so introducing them into current builder controls will break API expectations. Current RCS support allows only text and up to four suggestion chips. The editor preserves edits on validation errors and keeps submit_for_review: false during routine saves so provider reviews stay intentional.

What it helps with

  • Structure editor forms around the Sent v3 definition payload model
  • Implement atomic renumbering for variable placeholders like {{0:variable}}
  • Enforce text and button limits across SMS, WhatsApp, and RCS previews
  • Guard against unintended provider reviews during draft saves

Example prompts for the agent

  • Design a template editor interface matching the Sent v3 definition contract
  • Audit the variable placeholder UI and button validation logic
  • Set up preview controls for RCS templates using suggestion chips

How to install template-builder-ui

1Skills CLI (Vercel)

npx skills add sentdm/sent-plugin --skill template-builder-ui -a claude-code

2Manually: put the files in place

~/.claude/skills/template-builder-ui/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/template-builder-ui/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about template-builder-ui

How to install template-builder-ui in Claude Code?

Run npx skills add sentdm/sent-plugin --skill template-builder-ui -a claude-code in your terminal.

What does template-builder-ui do?

It guides the UI architecture, validation matrix, preview flows, and payload mapping for tenant-facing Sent template builders.

Which RCS features can be rendered in the template builder?

Current Sent guidance permits text and up to four suggestion chips for RCS. Media attachments and carousels are roadmap items not yet supported.

Source text

SKILL.md · MIT
---
name: template-builder-ui
description: Designs and audits tenant-facing Sent template builders, previews, validation, lifecycle UX, and API payload mapping. Use for template editor forms, variables, channel overrides, WhatsApp review, RCS suggestion chips, authentication templates, and safe submission flows.
---

# Sent Template Builder UI

Design the interface around Sent's v3 `definition` contract. The UI may import Meta material, but its canonical saved and submitted model must never be Meta's `components[]` payload.

## Product model

Use one draft object with:

- optional `category` and `language`;
- required `definition.body.multiChannel`;
- optional complete body overrides for `sms`, `whatsapp`, and `rcs`;
- optional `definition.header`, `footer`, `buttons`, `definitionVersion`, and `authenticationConfig`;
- submission controls for `creation_source`, `submit_for_review`, and `sandbox`.

Do not expose top-level create fields named `name`, `channels`, `body`, `header`, or `buttons`. If the product needs an internal display label, keep it outside the Sent create payload.

## Recommended editor sequence

1. Capture intent and category.
2. Write the `multiChannel` body.
3. Insert variables as structured entities.
4. Add optional per-channel overrides.
5. Add header, footer, and buttons where supported.
6. Review live previews and accessibility.
7. Validate locally and with `sandbox: true`.
8. Save a draft, then explicitly submit for provider review.

Category should not block the first keystroke, but it must be visible before submission because it affects authentication rules and WhatsApp policy review.

## Variable UX

Inserting a variable creates both:

- a placeholder such as `{{0:variable}}`; and
- a matching entity with `id`, `name`, `type`, and `props.sample`.

Renumber atomically when variables move. Never let users edit placeholder syntax independently of the entity table. Show a clear error for naked `{{1}}` or IDs without definitions.

## Validation matrix

Apply the exact rules in [references/template-validation-matrix.md](references/template-validation-matrix.md), including:

- a 1,024-character maximum for every body;
- 60 characters for header and footer;
- no footer variables;
- 10 buttons total;
- button types `QUICK_REPLY`, `URL`, `VOICE_CALL`, `PHONE_NUMBER`, and `COPY_CODE` with their per-type limits;
- no invented quick-reply-versus-CTA exclusivity;
- `authenticationConfig` and authentication restrictions;
- complete, independently valid channel overrides.

Run the bundled `waba-template-author` linter against serialized JSON. Server validation remains authoritative.

## Channel previews

### SMS

Preview plain text and estimated GSM/UCS-2 segments. Make clear that segment estimates affect billing and are not template body limits.

### WhatsApp

Preview header, body, footer, and buttons. Show sample values, category, language, and provider-review impact.

### RCS

Current Sent RCS guidance supports text plus up to four suggestion chips. Rich cards, carousels, and media attachments are roadmap capabilities, not current Sent builder controls. Do not generate capability declarations for unavailable features.

Channel routing belongs to the send flow, not the template editor. If routing is shown in a simulator:

- omitted `channel` or `["sent"]` means automatic routing and fallback;
- `["rcs"]` pins RCS with no cross-channel fallback;
- multiple explicit values mean broadcast and separate billable messages.

Never describe an explicit RCS-plus-SMS array as ordered fallback.

## Save and review behavior

Use `sandbox: true` for validation. Save with `submit_for_review: false`. Before switching it to `true`, show:

- category and language;
- rendered previews with sample values;
- channel overrides;
- button actions;
- any warnings;
- the fact that provider review is an external state change.

Do not autosubmit on save.

## Lifecycle UX

Resource status values currently include `DRAFT`, `PENDING`, `APPROVED`, `REJECTED`, and `PAUSED`. Keep an unknown-state renderer.

WhatsApp template webhook events use `field: "templates"`, no `sub_type`, and no `event`; the status is `payload.status`. Provider values can include `CATEGORY_UPDATED`, `DISABLED`, and other future strings. See [references/template-status-handling.md](references/template-status-handling.md).

## Accessibility and failure recovery

- Associate every error with a field and a summary.
- Do not rely on preview color alone.
- Preserve user edits after validation failures.
- Keep raw JSON inspection available for advanced users.
- Label imported Meta JSON as “Meta Cloud API source” until converted.
- Provide a diff for server normalization and provider-driven category/status changes.

Use [references/template-ui-wireflows.md](references/template-ui-wireflows.md) for state transitions. Use `waba-template-author` for copy and policy judgment, `sent-templates` for existing-resource operations, and `rcs-agent-onboarding` for RCS launch readiness.

© sentdm · MIT · sentdm/sent-plugin

Similar skills

Everything for Frontend and UI →

From the same set15

sent-contacts A skill that runs Sent contact operations through MCP tools: search, bulk import, messaging summary, deletion. Creates and deletes go through confirmation gates. CX Codex +1 2,900installs sender-profile-architect Designs Sent v3 Sender Profile architecture for multi-tenant and multi-channel applications. It helps set up isolation, API key scoping, WABA, and billing boundaries. CX Codex +1 2,900installs sms-10dlc-registration Prepares and validates a Sent US A2P 10DLC brand and campaign registration: consent evidence, use cases, sample messages. CX Codex +1 2,900installs rcs-agent-onboarding Walks you through Sent RCS and RBM onboarding: launch evidence checklist, Sender Profile readiness, templates and routing tests. CX Codex +1 2,900installs waba-embedded-signup Walks you through WhatsApp Business Account onboarding via Sent and keeps three integration paths apart. Useful when wiring profiles, tokens and completion callbacks. CX Codex +1 2,900installs waba-template-author Converts messaging copy into valid payloads for the Sent v3 API and reviews WhatsApp policy constraints. Useful for building utility, marketing, and OTP templates. CX Codex +1 2,900installs sent Turns vague Sent requests into a specific skill or MCP-backed operation instead of guessing. CX Codex +1 2,900installs sent-profile-provisioning This skill drives the Sender Profile lifecycle in Sent: list, inspect, create, update and delete over MCP tools, plus the wider REST flow. Useful when onboarding a tenant and getting a profile ready to send. CX Codex +1 2,700installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor