Skip to main content
Plans and offers on a funnel, payment connections of a project, and the Paddle price catalog. Agents call these tools for you; this page lists what each one does and the parameters it takes.

set_plan

Set plan. Changes the draft or settings; live funnels change only after publishing. Create or fully replace a pricing plan. Amounts are integer cents. intro = introductory price for N days (amount 0 = free trial). originalAmount = crossed-out price. For Paddle catalog reuse, prefer list_paddle_prices + bind_paddle_price instead of manually writing providers.paddle ids.

update_plan

Update plan. Changes the draft or settings; live funnels change only after publishing. Deep-merge a patch into a plan, e.g. {“price”:{“amount”:3499}} or {“intro”:{“amount”:99,“days”:7}} or {“badge”:null}. Amounts are cents. For Paddle catalog reuse, prefer list_paddle_prices + bind_paddle_price instead of manually writing providers.paddle ids.

remove_plan

Remove plan. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Delete a plan (fails validation if a PlanSelector still references it).

set_offer

Set offer. Changes the draft or settings; live funnels change only after publishing. Create or replace a one-off upsell product (pricing.offers), charged one-click to the card saved at checkout when an UpsellOffer with the same offerId is accepted. Amounts are integer cents.

remove_offer

Remove offer. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Delete an upsell product. Upsell blocks that sold it switch to replaceWith when given; otherwise they are left without an offer and publish is refused until one is picked (adding a new offer fills an empty upsell block automatically).

sync_prices

Sync prices. Changes the draft or settings; live funnels change only after publishing. Synchronize provider prices for draft plans. For Paddle, first call list_paddle_prices and bind an active existing exact-fit price when one exists. This tool creates/reuses Funeli-managed provider prices only for plans that do not have an explicit Paddle binding.

set_payments

Set payments. Changes the draft or settings; live funnels change only after publishing. Choose which payment connection this funnel checks out with (a connection id from get_account_settings’s paymentConnections, or “mock”; omit/null inherits the account default), Paddle checkout presentation (checkoutMode: overlay, inline, express; Stripe/mock unaffected), the step shown after a successful payment (successStepId; null = step after the paywall), and Paddle metadata templates (customData: {user_id: “{{runtime_id}}”}; {} clears mappings). runtime_id is a server-owned UUID per funnel session; existing external identifiers can use raw answer fields; missing values block checkout. Reserved Funeli metadata cannot be overwritten.

get_account_settings

Get account settings. Read-only. Read payment settings and providers, ad connections, analytics connections (provider, enabled, non-secret config) and projects. Never includes credentials: connect or rotate them in the admin UI, not through an agent.

update_account_payments

Update account payments. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Set a project’s default payment connection (default: the current project): its funnels inherit it unless one picks its own with set_payments. Pass one of that project’s connections (paymentConnections with its projectId in get_account_settings), or “mock” to clear it. Connecting a provider (credentials) is done in the admin UI only.

rename_payment_connection

Rename payment connection. Changes the draft or settings; live funnels change only after publishing. Rename a payment connection (credentials and id unchanged; edit credentials in Workspace). Reruns and returns the three credential checks.

copy_payment_connection

Copy payment connection. Changes the draft or settings; live funnels change only after publishing. Copy a Paddle connection of projectId (default current) into toProjectId; secrets stay server-side, the copy gets its own webhook destination.

test_payment_connection

Test payment connection. Changes the draft or settings; live funnels change only after publishing. Test a saved Paddle connection with read-only Paddle APIs: checks for API key, active client token and webhook secret/destination, plus status and lastError; never credentials. Missing read permissions are not_checked; delivery is not tested.

remove_payment_connection

Remove payment connection. Changes what live visitors see or pay, or removes data. Agents confirm with you first. Disconnect an existing saved payment connection without exposing its credentials. The API refuses removal while the Workspace default or a funnel still points at it.

list_paddle_prices

List paddle prices. Read-only. List reusable prices that already exist in a connected Paddle account. Use this before creating provider prices for a Paddle funnel. Prefer an active exact-fit existing price and bind it to the Funeli plan (recurring price) or upsell offer (one-off price: offerImportable); only create a new provider price when no suitable existing price is available or the user explicitly asks for a new catalog item.

bind_paddle_price

Bind paddle price. Changes the draft or settings; live funnels change only after publishing. Assign an existing Paddle price to a Funeli plan or upsell offer (pass exactly one of planId / offerId). A plan takes a recurring price: Funeli imports its amount, currency, billing interval and supported trial terms. An offer takes a one-off price without a trial: Funeli imports its amount and currency, and the one-click upsell charges exactly that price. Funeli stores the Paddle product/price ids and reuses that price at checkout and on every upsell charge. Pass priceId=null to clear the explicit binding and return the item to Funeli-managed price creation/reuse.

get_paddle_price_status

Get paddle price status. Read-only. Show where each plan and upsell offer of a funnel stands in its Paddle account, without calling Paddle: linked (a plan carries a matching Paddle price, picked from the catalog or created by Funeli), out_of_sync (the plan was edited after linking; checkout and publish fail until it is relinked or a new price is created), managed (Funeli already created a price for these exact terms) or missing (nothing in Paddle yet; it is created on publish or first checkout). Also returns the provider and connection the funnel really checks out with.

create_paddle_prices

Create paddle prices. Changes the draft or settings; live funnels change only after publishing. Give plans and upsell offers a Paddle price now instead of at publish. For each plan or offer that is not linked (or is out_of_sync) Funeli links, in order: the price it already created for the same terms, an active catalog price with exactly the same terms (plans: amount, currency, period and intro; offers: a one-off price with the same amount and currency), or a new price. Links are written to the draft in one revision; paywall copy is untouched. Omit items to cover every plan and offer that needs a price. Call get_paddle_price_status first and tell the user which prices will be created in their Paddle account.