Skip to main content
Add, change and reorder steps and their components, and look up the component library. Agents call these tools for you; this page lists what each one does and the parameters it takes.

add_step

Add step. Changes the draft or settings; live funnels change only after publishing. Insert a step. Components are created in order; omit props to use each component’s example. showProgress/allowBack only affect paywall and later steps; before the first paywall, use funnel settings. Component border/elevation/appearance are optional and omitted by default.

update_step

Update step. Changes the draft or settings; live funnels change only after publishing. Change step fields: name (a hand-set name stops following the screen text; resetName: true restores the automatic one), kind, id (references are updated), showProgress/allowBack for paywall and later steps, showLogo (false hides the funnel logo here; set the logo with the set_settings op), next (null = end), resetNext, rules (conditional jumps), exitOffer ({“goto”:“<offer paywall step>”,“on”:[“checkout_close”,“back”]}, shown once per session; null removes), checkoutSheet (title, showPlanCard, footer; components / belowFormComponents replace the extra components above / below the form; planCardPosition = rows before the plan card, counting components, the form as one row, then belowFormComponents; unset = just above the form), hook (HTTPS backend call with send/save mappings; null removes it), appearance (step-wide defaults for its components: palette/typography tokens, align, fontWeight, letterSpacing; padding = body inset px or {x,y}; gap = px between components; gradient/glow/shadow/border are component-only; a component’s own appearance wins; null removes), background (screen background: {use:“hero”} picks a named theme background, extra fields override it; {type:“gradient”,color,layers,blur} / {type:“image”,color,image,fit,position,overlay} / {type:“solid”,color} sets one inline; null = theme default; legacy {image,position,fit,scrim} still works). Before the first paywall, progress and back are funnel-level settings.

remove_step

Remove step. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Delete a step (fails if other steps jump to it).

move_step

Move step. Changes the draft or settings; live funnels change only after publishing. Reorder a step.

add_component

Add component. Changes the draft or settings; live funnels change only after publishing. Add a library component to a step. Optional instance treatment: appearance (local theme-token overrides), border, elevation, redact; see get_component_schema for every token. Resolution: component -> step (update_step patch.appearance) -> theme.

update_component

Update component. Changes the draft or settings; live funnels change only after publishing. Change component props and/or visibility. hidden: true keeps the layer but does not render it; false shows it again. mode “merge” (default) shallow-merges into existing props (objects merge deeply, arrays replace, null deletes a key); “replace” sets props wholesale. visibleWhen: conditions on answers/computed fields (e.g. [{“field”:“bmi”,“op”:“gt”,“value”:25}]); null = always show. border/elevation/appearance/redact: same tokens as add_component (full list in get_component_schema); null clears.

remove_component

Remove component. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Remove a component.

move_component

Move component. Changes the draft or settings; live funnels change only after publishing. Reorder a component within its step or move it to another step.

list_components

List components. Read-only. The component library grouped by purpose (headlines, questions, results, social proof, actions, paywall, after purchase): every type with a one-line description. Screens can only be built from these.

get_component_schema

Get component schema. Read-only. JSON Schema of a component’s props plus a complete valid example. Read this before adding or editing a component you have not used yet. Optional instance treatment: appearance = local overrides. Palette/typography tokens (primary, surface, text, border, radius, elevation character, typography, fontRole heading|body) override the theme for this component. Box tokens: gradient {type:“linear”|“radial”, angle, shape, position:{x,y}, size, stops:[{color,at?,opacity?}] 2-8}, glow {color?, radius px, intensity %}, shadow none|sm|md|lg, borderStyle solid|dashed|none, borderWidth px, padding (px or {x,y}), fill (like step backgrounds: {use:“<theme background>”} and/or inline solid/gradient/image; wins over gradient). gap (px between the component’s items), align start|center|end, fontWeight 300-900, letterSpacing em. Resolution: component -> step (update_step patch.appearance) -> theme. Legacy border subtle|strong and elevation sm|md|lg still work; appearance wins. No component-only font families; null removes local appearance. redact {style blur|bar|noise, revealWhen} hides text marked ||like this|| in the component’s text before it reaches the page; purchased=“yes” exists after a successful checkout.

list_lottie_animations

List lottie animations. Read-only. The built-in library of MIT-licensed Lottie animations with stable URLs for Lottie.src. Commercial use is allowed and no visible attribution is required.

list_activity_feed_photos

List activity feed photos. Read-only. List built-in ActivityFeed portraits with ready-to-use absolute API URLs for avatar props. Omit set to return all 40. For ActivityFeed automatic rotation, use items[].photoSet = women, men or mixed instead of copying URLs.

set_computed

Set computed. Changes the draft or settings; live funnels change only after publishing. Create or replace a computed field: a value derived from answers with a JSON expression (no code). Usable in {{placeholders}}, {{date:<field>}}, rules and visibleWhen. Operators: add, sub, mul, div, min, max, abs, neg, round, unit (convert an answer using <field>_unit to kg/lb/g/st/cm/m/in/ft), bmi (weight, height), years_since, if. bands turn the number into a label. Example: {“field”:“bmi”,“expr”:{“op”:“bmi”,“weight”:“weight”,“height”:“height”},“round”:1}.

remove_computed

Remove computed. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Delete a computed field.

set_web_redirect

Set web redirect. Changes the draft or settings; live funnels change only after publishing. Configure Web Handoff after any verified payment. webRedirect.panel sets the success-screen panel (visibility, text, button visuals, position/layout, local appearance); panel.visible=false hides only the panel, keeping delivery and auto-navigation; nested patches keep omitted settings; panel:null restores defaults. handoff=true issues a server context token; identityParam (default web_id) names the canonical UUID query key; redeem returns passFields answers (photos/private fields go there, not in query) and acquisition (UTM/click IDs, also as {{utm_source}}…). delivery configures a purchase-gated server HTTP endpoint (JSON/header templates, owned-photo encoding, receiver idempotency); with delivery.enabled=true and handoff=false the server verifies the purchase, delivers before navigation and adds only the canonical UUID. No secrets in definitions; billing webhooks need no Paddle metadata. Query-template redirects still work; App Handoff can coexist.