Reuse and re-run

Saved configs: tune once, re-run forever.

A config is the reusable unit of work in doctagd. It captures the template, the column-to-placeholder mapping, conditional sections, loops, formatting, and the filename rule - everything that turned your first run into a polished output.

One snapshot, many runs

Save the result of your first successful run. Future Excel uploads of the same shape skip mapping entirely.

Re-run with new data

Drop a fresh Excel on the config page, or call the API. Every column-to-placeholder choice is preserved.

Drift recovery built-in

If your data source renames a header, the mapping screen flags the missing column and lets you remap in one click.

What a config captures

The shape depends on the mode you saved from. Template mode (Mode A) keeps the Word file itself; Quick mode keeps the column choices and formatting rules.

Template config (Mode A)
• Word template (.docx)
• Expected columns from the Excel
• Column → placeholder mapping
• Loop sections    {#items}…{/items}
• Conditional sections   {#show_discount}…{/show_discount}
• Filename pattern
• Per-field formatting rules
Quick config (Mode B)
• Included columns (toggles)
• Document title
• Filename column
• Bullet-rendering columns
• Group-by-ID directive (if applied)
• Per-field formatting rules

When to save vs. ad-hoc

A rough heuristic: if you'll run the same shape of data more than twice, save it. Saved configs also unlock the API - no config, no programmatic runs.

Lifecycle
1. /new           Upload Excel (+ template for Mode A)
2. /map | /confirm   Tune mappings, formatting, conditions
3. Save as config →  /configs/<id>
4. /configs/<id>     Drop a fresh Excel any time
   or POST          /api/v1/configs/<id>/run

Drift recovery

Source systems rename columns - HubSpot, Shopify, internal spreadsheets. When you re-run a config with a renamed header, the mapping screen surfaces a red "column missing" badge on the affected placeholder and offers a dropdown to pick a replacement. Your other mappings are untouched.

Drift in the API (HTTP 409)
{
  "error": "drift",
  "missingColumns": ["client_name"],
  "suggestions": { "client_name": ["customer_name"] }
}

# Inspect a config's expected columns first:
GET /api/v1/configs/<id>

Editing and deleting

Open /configs/[id] to rename, edit mappings (Mode A), edit included columns and formatting (Mode B), or delete the config. Deleting frees one slot against your plan limit; the underlying template blob is removed unless another config references it.

Slot accounting
Free       2 configs
Pro        20 configs
Business   100 configs

# See /docs/limits for what counts against the cap.

Shared licenses

On a shared-license seat, configs stay per user- you only see and run the ones you authored. The monthly document allowance is what's pooled across the team, not the configs themselves. Each member tunes the configs that matter to their workflow.

What is shared on a shared license
Per user             Pooled across the license
─────────────        ───────────────────────────
• Configs            • Monthly document allowance
• API keys
• Saved sessions
• Usage attribution

Tips

Name the config like the workflow

'Service agreement v3' beats 'My config 4'. Configs sort alphabetically on /configs.

Test once, save once

If a run looks right end-to-end, save before you close the tab - mappings live in browser sessionStorage and won't survive a refresh.

Re-save after a template tweak

Edits to mappings and formatting on /configs/[id] save in place. Edits to the Word file itself need a new save.

Use the API once it's stable

A saved config is the only thing the API can run. No config = no automation path.

Next: run a saved config via the API, or see how usage is counted.