> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trycontinuum.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Use Forge from an agent

> Discover a template, map its fields, review a render and retrieve its outputs through the current Forge MCP contract.

Use Forge to fill an existing design with different messages, products or offers. Start here; load the [function reference](https://docs.trycontinuum.ai/forge/functions.md) or a single action schema only when needed. Use the [operation index](https://docs.trycontinuum.ai/forge/agent-manifest.json) for machine routing rather than loading the whole documentation site.

## Discover before calling

Connect through [MCP](https://docs.trycontinuum.ai/quickstart.md#connect-your-assistant), call `brands_list`, select the intended brand with `brands_select`, and check `_brandContext` on results. Discover the selected action:

`{"name":"help_describe","arguments":{"tool":"forge_manage","action":"render_preview"}}`

These examples show MCP `tools/call` parameters. Replace illustrative IDs, tokens and keys with returned values. `help_describe` describes the server; it does not upgrade a client's cached tool schema. If your client cannot express an action, refresh discovery or use a compatible client. Never invent an alternative call.

## Fill and render a template

**1. Inspect**

Call `forge_query` with `action="templates"`. Select its `key` and `bindingId`; call `action="template"` with `templateKey` and that binding. Read variable keys, kinds, required fields, options, text budgets, outputs and `contractHash`. An empty template list is not a rendering failure.

**2. Map and save**

Map your event or brief into the returned variable keys. Media uses Library asset/version references, not guessed URLs. Call `forge_manage` with `action="set_create"`, `templateKey`, optional `bindingId`, a `name`, and `rows` containing `label`, `parentId` and `overrides`. A child row inherits its parent's values. Keep the returned set `id` and numeric `revision`.

For edits, read `forge_query action="set"` first. Use `rows_patch` with `expectedRevision` for selected changes; `set_update.rows` replaces every row. On a conflict, re-read and reconcile.

**3. Review**

Inspect the set's `resolved` rows and `settings`, then call `render_preview`. It validates readiness and returns destinations and `confirmationToken`; it does not render pixels. Omitted settings inherit, so check the saved Meta targets, Slack room and `final` setting. `slackDestinationId=null` disables posting. `final=true` needs Admin or Owner.

**4. Confirm**

Show rows and destinations; explain rendering can spend. Show a known estimate or say it is unavailable. Wait for the person's yes, then call `render_confirm` with the returned `confirmationToken`. Keep `batchId` and job IDs. A refusal stays blocking unless `details.overrides` names a flag and the person accepts that specific problem.

**5. Retrieve**

Use `forge_query action="batch"` with `batchId` and `waitSeconds=50` in a background task until `done=true`. Inspect each job's status and `outputs`; settled includes failed jobs. `action="job"` refreshes one render-set job. Preserve IDs and error reasons. After an uncertain confirmation response, inspect jobs before submitting again.

## Bring in or change a source

Use source preparation only where enabled for your brand and exposed by your client. Before uploading or saving an eligible source, obtain permission for automatic preparation and smoke-render spend: these can start without `template_forge`. `forge_manage source_begin` returns the upload `open_url`; read `source_status` with `upload_intent_id`, then `forge_query sources` for parse state and source `assetId`. Check [source families](https://docs.trycontinuum.ai/forge/design-systems.md).

For a supported revision, read `template_tree`, `template_revision` and `template_layers`. Preview with `template_preview`; save with `template_save` using `parentRevisionId` and either a new `name` or the existing `variantId`. Keep the returned revision's `id` and `sourceAssetId`. The Original is preserved.

For eligible sources, inspect `template_run` using that exact `sourceAssetId`. Publishing can smoke-render and spend automatically: obtain permission first. Admin/Owner may use `template_forge` only when appropriate; re-read on conflicts and intervene only where the run parks. After publication, rediscover `templateKey` and `bindingId` through `sources`/`templates`. Pin the **published** revision UUID with `templateRevisionId` in `set_create` or `set_retarget`. Native HTML, components and Blender never enter `template_forge`.

## Render a scene

Read `forge_query scenes`. Pass its `assetId`, `versionId` and output IDs to `scene_fill`. Review returned values, outputs and potential spend; a price estimate may be unavailable. Recheck the scene before confirming; if it changed, fill/review again. `scene_render` reloads the current scene, so this is not an immutable-version guarantee. After the person's yes, pass its `confirmationToken`. Keep `jobs[].jobId`; use scene history in Forge and the Library for results, not render-set batches.

## Start from an external event

Your application turns an authorized event into the mapping above and retains brand, template/revision, set and job identifiers. Keep confirmation in that flow. No Forge webhook subscription or cancellation action is established here. Refresh short-lived output links when needed; a download URL is not a permanent resource identity.

## What's next

* [Function reference](https://docs.trycontinuum.ai/forge/functions.md): Inputs, effects, permissions and retry behavior.
* [Design systems](https://docs.trycontinuum.ai/forge/design-systems.md): Check each source's actual execution path.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.