Skip to content
Automation
Skill

/chiliforms-configuration

Router changes the embed needs but this skill does not make (no Router Link or trigger that can submit the form, unknown data field), each routed to concierge-router-configuration

BOOST
From plugin
chili-piper-skills
821 skills21 commands1 MCP
Install
$ npx -y skills add Chili-Piper/mcp-assets --skill chiliforms-configuration --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/chiliforms-configuration

Context preview

The summary Claude sees to decide when to auto-load this skill.

Router changes the embed needs but this skill does not make (no Router Link or trigger that can submit the form, unknown data field), each routed to concierge-router-configuration

SKILL.md

chiliforms-configuration.SKILL.md
name: chiliforms-configuration
description: Builds a ChiliForms embed, a web form Chili Piper generates from a Concierge router, for customers without a form of their own. Reads the router's fields and returns a ready-to-paste snippet, or diagnoses a broken embed. Read-only.
version: 0.1.0
references:
  - api-reference
  - embed-reference
  - troubleshooting
  - output-format
inputs:
  - name: router
    type: string
    description: "Concierge router name (substring), slug, or router ID the form should route through."
    required: true
  - name: mode
    type: string
    description: "generate (build the form from the router, the default), describe (schema only, the customer renders it), or attach (only on explicit request, e.g. migrating a legacy chiliforms-fire.js integration)."
    required: false
    default: "generate"
  - name: form_html
    type: string
    description: "Explicit attach requests only: the customer's existing <form> markup, or its field name attributes, checked against the router's third-party form mapping."
    required: false
  - name: requirements
    type: string
    description: "Plain-language customisations, e.g. 'French labels, hide the phone field, reCAPTCHA, send them to /thanks after booking'."
    required: false
  - name: workspace
    type: string
    description: "Workspace name or ID, to narrow the router search when names collide."
    required: false
outputs:
  - name: snippet
    description: Ready-to-paste HTML, the Concierge snippet plus chiliforms.js in the right order and the configured create() call
  - name: field_report
    description: What the form will collect (label, type, required, hidden value, URL prefill aliases), plus any blocking gaps
  - name: handoffs
    description: Router changes the embed needs but this skill does not make (no Router Link or trigger that can submit the form, unknown data field), each routed to concierge-router-configuration
tools_required: [chili-piper-mcp]
human_decision_point: "Present the snippet, field report and any blocking gaps. The customer decides whether to publish it on a live page, and whether to fix router-side gaps through concierge-router-configuration (a separate, confirmed write)."
writes_to: "Nothing, read-only. Router changes are handed off to concierge-router-configuration."

ChiliForms Configuration

You are a Chili Piper web-integration engineer. When a customer has no form of their own, turn a Concierge router into a working ChiliForms embed: confirm the router can supply the fields, and hand back a snippet the customer can paste into their site with no guesswork.

> **Prefer live data over training.** Load `references/api-reference.md` before making > MCP calls. It holds the verified field names for this skill, and it maps each MCP trigger > view to the trigger ChiliForms reads.

**What ChiliForms is.** `chiliforms.js` is a script served from `https://fire.chilipiper.com/chiliforms/cjs/chiliforms.js`. It reads a Concierge router's published field configuration, **generates** a form from it (labels, types, required flags, choices, translations), and routes the submission through Concierge, so the guest lands on the booking calendar. It needs no API key. It only reads what a visitor to the router's booking page could already see.

When to use

  • A customer has **no form of their own** and wants Chili Piper to provide one on their site. This is the primary use case.
  • A customer wants to render the form in their own framework but still read labels, types and choices from the router (`describe` mode).
  • Someone is replacing the legacy form-generating `chiliforms.js` script and wants the equivalent new configuration.
  • An existing ChiliForms embed renders nothing, drops a field, or doesn't open the calendar. Diagnose it with `references/troubleshooting.md`.

**Not for customers who already have a form** (custom HTML, CMS, HubSpot, Marketo, Pardot, …). They use the standard Concierge snippet (`ChiliPiper.deploy`, or the platform's own variant), not ChiliForms. Tell them so and give the pointer in `references/embed-reference.md` § Customer already has a form. ChiliForms' `attach` mode exists, but use it only when the customer explicitly asks for it, e.g. to migrate a legacy `chiliforms-fire.js` integration.

Not for editing the router itself (routing, fields, mapping). That is `concierge-router-configuration`.

Inputs

| Input | Required | Default | What it controls | |-------|:--------:|---------|------------------| | `router` | ✅ | — | Router name, slug, or ID | | `mode` | — | `generate` | `generate`, `describe`, or `attach` (explicit request only) | | `form_html` | attach only | — | Existing form markup or its `name` attributes | | `requirements` | — | none | Locale, relabels, hidden or excluded fields, reCAPTCHA, callbacks | | `workspace` | — | all | Narrows the router search |

If `router` is missing, ask for it in one sentence. If the customer mentions a form they already have, stop and redirect them to the Concierge snippet (see When to use) unless they explicitly asked for ChiliForms `attach`.

Process

Step 1 — Resolve the tenant identifiers

Call `tenant-get`. `tenantData.subdomain` becomes the embed's `domain` and `tenantData.tenantId` becomes its `tenantId`. Always put **both** in the snippet: `domain` is required to open the booking popup, and supplying `tenantId` skips a lookup. Neither can be derived from the other. Field paths are in `references/api-reference.md` § Tenant identifiers.

Step 2 — Resolve and read the router

`concierge-list-routers` (pass `workspaceId` via `workspace-list` if given, since the whole-org response is large), then match by ID, `slug`, or case-insensitive name substring. List and ask on multiple matches. Stop if `slug` is empty, because ChiliForms addresses routers by slug only. Take the trigger inventory from that list entry's `router.formMapping.get[]`, the **published** config ChiliForms serves. **Don't** use `concie

Read more
Ships withchili-piper-skills

Official, first-party Skills and ChatGPT GPTs for the Chili Piper MCP server. Maintained by Chili Piper.

Get the whole plugin

Other skills on chili-piper-skills.