zuora-html-template-designer
Design and generate Zuora invoice, credit memo, and debit memo HTML templates from prompts and pdfs.
Skill by zuora
Chalk Labs
Need help deploying zuora-html-template-designer?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/zuora-zuora-html-template-designer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/zuora-html-template-designer
What's inside
- Skill name
zuora-html-template-designer- Description
- Design and generate Zuora invoice, credit memo, and debit memo HTML templates from prompts and pdfs.
- License
- MIT
- Instructions
- 1,664 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- allowed-tools: must be a space-separated string
- body: 1664 lines (spec recommends under 500)
Files (13)
- SKILL.md
- expressions.md · references/
- functions.md · references/
- javascript.md · references/
- logic-control.md · references/
- merge-field-syntax.md · references/
- objects-index.json · references/
- objects.yaml · references/
- requirements.txt
- convert_office.py · scripts/
- convert_pdf.py · scripts/
- extract_colors.py · scripts/
- security.py · scripts/
SKILL.md (first lines)
Codex-only path resolution: When an instruction refers to `${CLAUDE_PLUGIN_ROOT}`, treat it as the root of this installed plugin. In Codex, resolve that root as the ancestor directory containing `skills/`, `references/`, and `.codex-plugin/`.
## Input
The user's request: $ARGUMENTS
# HTML Template Designer
This skill designs Zuora HTML Templates for Invoice/CreditMemo/DebitMemo documents.
## Workflow Detection
Detect the request type and route to appropriate workflow:
| Request Type | Detection | Workflow |
|--------------|-----------|----------|
| **PDF-based** | Attachment line: `* [PDF] /tmp/...` | 9-step PDF workflow (see below) |
| **Image-based** | Attachment line: `* [PNG]`, `* [JPG]`, `* [JPEG]`, or `* [WEBP] /tmp/...` | Image workflow (Steps 1 + 3–9; skip PDF conversion) |
| **Word-based** | Attachment line: `* [DOC]` or `* [DOCX] /tmp/...` | Office workflow (Steps 1 + Office→PDF + Step 2 + 3–9) |
| **Text-only** | No file attachment | Direct generation |
## Image Workflow (PNG / JPG / WEBP)
When an image attachment is detected, follow the PDF workflow but **skip Step 2** (`convert_pdf.py`).
1. **Step 1** — Setup folders (same as PDF workflow).
2. **Use the uploaded image path directly** as `png_path` for visual analysis (e.g. `/tmp/.../uploads/abc123.png`).
3. **Steps 3–9** — Same as the PDF workflow: analyze the image with Read, generate HTML, self-check, merge fields, validate.
## Word Workflow (DOC / DOCX)
When a Word attachment is detected:
1. **Step 1** — Setup folders (same as PDF workflow).
2. **Convert Office document to PDF** before PNG conversion:
**Install dependencies first (once per session):**
```bash
pip install -r ${CLAUDE_PLUGIN_ROOT}/skills/zuora-html-template-designer/requirements.txt
```
```bash
python ${CLAUDE_PLUGIN_ROOT}/skills/zuora-html-template-designer/scripts/convert_office.py \
--input <doc_file_path> \
--output {session-folder}/uploads/
```
Response:
```json
{
"success": true,
"pdf_path": "/tmp/.../uploads/abc123.pdf",
"source": "docx"
}
```
3. **Step 2** — Run `convert_pdf.py` on `pdf_path` (same as PDF workflow).
4. **Steps 3–9** — Same as the PDF workflow.
---
## CRITICAL: Root Object Rules
**Every merge field MUST trace back to the root object.** This is the #1 cause of validation errors.
| Template Type | Root Object | Example |
|--------------|-------------|---------|
| Invoice | `Invoice` | `{{Invoice.Account.Name}}` |
| CreditMemo | `CreditMemo` | `{{CreditMemo.Account.Name}}` |
| DebitMemo | `DebitMemo` | `{{DebitMemo.Account.Name}}` |
**Two valid approaches:**
1. **Full path**: `{{Invoice.Account.Name}}`
2. **Contextual section**: `{{#Invoice}}{{Account.Name}}{{/Invoice}}`
**WRONG** (will fail validation):
- `{{Account.Name}}` - Missing root object
- `{{InvoiceItems.ChargeName}}` - Missing root object
**CORRECT** equivalents:
- `{{Invoice.Account.Name}}` - Full path from root
- `{{#Invoice.InvoiceItems}}{{ChargeName}}{{/Invoice.InvoiceItems}}` - Inside section
---
## Progress Tracking
**IMPORTANT:** At the start of each workflow, use `TodoWrite` to create a todo list for all steps. Update each todo as you progress (mark in_progress when starting, completed when done). This gives the user visibility into your progress.
---
## Common Pitfalls & Lessons Learned
**Why templates fail user expectations (in order of frequency):**
### 1. Title Case Handling for ALL-CAPS Labels
**Problem:** Users ask for "camel case" on values like `CITY SALES TAX`, but there's no native merge-field function for this. Wrong approaches emerge (CSS-only tricks, unsafe JavaScript hacks).
**Root Cause:** Misunderstanding of "camel case" request (users mean **title case**: `City Sales Tax`). Native Zuora merge-field syntax has no title-case function.
**Solution:** Use a template `<script>` block with a `title-case` CSS class and JavaScript transformation. Requires **Enable JavaScript for HTML templates** in Billing settings. If JS is disabled, fix the value upstream instead.
**Correct approach:**
```html
<style>
.title-case {
/* CSS alone cannot capitalize all words; JavaScript is required */
font-variant: small-caps; /* Optional visual hint while awaiting JS */
}
</style>
<script>
function titleCase(str) {
return str.replace(/\b\w/g, c => c.toUpperCase());
}
document.querySelectorAll('.title-case').forEach(el => {
el.textContent = titleCase(el.textContent);
});From zuora/zuora-coding-agent, MIT.
More from zuora/zuora-coding-agent
- 0.591score
zuora-dynamic-pricing-design
zuora
Design a Commerce Catalog setup with dynamic pricing — gather requirements, inspect tenant state, and propose the catalog structure before execution
SkillAFreshness: A★ 2Claude Code +9 - 0.582score
zuora-dynamic-pricing-build
zuora
Execute a Commerce Catalog dynamic pricing setup — create custom fields, attributes, products, plans, charges, and rate cards on the tenant
SkillAFreshness: A★ 2Claude Code +9 - 0.550score
zuora-cpq-apex-design
zuora
Design legacy Zuora CPQ Apex, Component Library, Visualforce, zQuoteUtil global method, controller extension, or plugin-interface customizations
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-js-design
zuora
Design Zuora CPQ Quote Studio or CPQ X JavaScript extensibility using supported hooks, events, quoteState, pageState, metricState, parentQuoteState, ZQFClient…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-apex-build
zuora
Generate legacy Zuora CPQ Apex, Visualforce, Component Library, zQuoteUtil, controller extension, or plugin-interface artifacts directly into a Salesforce DX…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-js-build
zuora
Generate Zuora CPQ Quote Studio or CPQ X LWC headless or sidebar components, hooks, supported events, quoteState access, ZQFClient usage for package >= 10.58…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-review
zuora
Review Zuora CPQ Apex, Visualforce, Quote Studio LWC, hooks, events, quote state usage, ZQFClient usage for package >= 10.58, registration, tests…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-validate
zuora
Validate Zuora CPQ Apex, Visualforce, Quote Studio JavaScript, LWC hooks, event names, event payloads, quote state usage, ZQFClient usage for package >=…
SkillBFreshness: B★ 2Claude Code +9 - 0.541score
zuora-meter-build
zuora
Build, update, run, and operate Zuora Mediation meters.
SkillBFreshness: B★ 2Claude Code +9 - 0.532score
zuora-context
zuora
This skill should be used when the user mentions "Zuora API", "Zuora SDK", "Zuora Billing", "Zuora Revenue", "Zuora CPQ", "Zuora Payments", "subscription…
SkillBFreshness: B★ 2Claude Code +9 - 0.504score
zuora-cpq-context
zuora
Auto-route Zuora CPQ requests including CPQ X, Quote Studio hooks and events, quoteState, pageState, metricState, zqfClient, headless or sidebar LWC…
SkillCFreshness: C★ 2Claude Code +9 - 0.500score
zuora-cpq-migration-design
zuora
Map, convert, modernize, or migrate legacy Zuora CPQ Visualforce, Apex, Component Library, zQuoteUtil, or plugin-interface customizations to Quote Studio…
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 3
- Open issues
- 1
- Last commit (this folder)
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/zuora/zuora-coding-agent
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from zuora
- 0.591score
zuora-dynamic-pricing-design
zuora
Design a Commerce Catalog setup with dynamic pricing — gather requirements, inspect tenant state, and propose the catalog structure before execution
SkillAFreshness: A★ 2Claude Code +9 - 0.582score
zuora-dynamic-pricing-build
zuora
Execute a Commerce Catalog dynamic pricing setup — create custom fields, attributes, products, plans, charges, and rate cards on the tenant
SkillAFreshness: A★ 2Claude Code +9 - 0.550score
zuora-cpq-validate
zuora
Validate Zuora CPQ Apex, Visualforce, Quote Studio JavaScript, LWC hooks, event names, event payloads, quote state usage, ZQFClient usage for package >=…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-apex-design
zuora
Design legacy Zuora CPQ Apex, Component Library, Visualforce, zQuoteUtil global method, controller extension, or plugin-interface customizations
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-review
zuora
Review Zuora CPQ Apex, Visualforce, Quote Studio LWC, hooks, events, quote state usage, ZQFClient usage for package >= 10.58, registration, tests…
SkillBFreshness: B★ 2Claude Code +9 - 0.550score
zuora-cpq-apex-build
zuora
Generate legacy Zuora CPQ Apex, Visualforce, Component Library, zQuoteUtil, controller extension, or plugin-interface artifacts directly into a Salesforce DX…
SkillBFreshness: B★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get zuora-html-template-designer running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
zuora-html-template-designer skill. Agent Mart. https://agentmart.dev/skills/zuora-zuora-html-template-designer (last updated 2026-10-24)