About sent-templates
sent-templates is a skill for finding, inspecting, and deleting existing template records in Sent. It resolves ambiguous matches and requires review and explicit confirmation before destructive changes.
Key features
- 01Filter and paginate template listings
- 02Retrieve templates by identifier or name
- 03Resolve ambiguous template matches
- 04Require confirmation before deletion
- 05Avoid repeating template body content
Use cases
- 01Find templates by available filters
- 02Inspect a known template record
- 03Resolve templates with matching names
- 04Delete a specifically verified template
MCP support
The skill uses MCP tools such as `templates.list`, `templates.get`, `templates.get_by_name`, and `templates.delete`. It uses client-managed OAuth authorization and checks the active organization and Sender Profile before deletion.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ sentdm/ sent-plugin --skill sent-templatesAfter installing, type/sent-templatesin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMESent Templates
Operate existing template records with templates.list, templates.get, templates.get_by_name, and templates.delete.
Establish connection and scope
Use client-managed OAuth 2.1/PKCE and never request or expose credentials. Surface the active organization and Sender Profile before deletion; use sent-account-readiness if the connection context does not expose both.
Avoid repeating template body text or sample data unnecessarily. Prefer template identifiers, names, languages, channels, categories, and statuses in summaries.
An organization grant may select an owned Sender Profile with the tool schema's optional profileId; omit it to act as the authenticated account. Validate ownership with sender_profiles.list or sender_profiles.get, and use the same selector for preflight reads, mutations, and follow-up reads. Profile grants cannot use this selector. Reauthorize for a different organization or a profile outside the grant. Never invent scope fields or request credentials.
Find and inspect templates
- Use
templates.listfor filtered discovery and pagination. - Use
templates.getfor an exact template identifier. - Use
templates.get_by_namewhen the user supplies a name. If a name can match more than one language, channel, or scope, present the candidates and resolve one exact record before continuing.
These tools inspect existing records. For authoring or classification, hand off to waba-template-author; for a tenant-facing creation experience, hand off to template-builder-ui.
Delete a template
- Resolve the request to one exact template.
- Fetch that target first with
templates.getortemplates.get_by_name. Never delete from a guessed identifier, broad filter, or stale list result. - Show a delete preview with the selected organization, Sender Profile, exact template identifier, name, language, channel, category, and status. State that deletion is destructive; do not repeat its body.
- Ask for explicit confirmation to delete this exact target. Earlier or general approval is not sufficient.
- Call
templates.deleteimmediately after confirmation. A change to target, scope, or record invalidates confirmation.
Never call templates.delete without fetching the target and obtaining explicit confirmation immediately before the call. Treat every retry as a new mutation: refetch the target, show a fresh preview, and obtain new explicit confirmation.
If the result is ambiguous, re-read the target when possible. Report uncertainty and do not retry automatically.