Skip to Content
Build with GavanaReusable Workflows and Video

Reusable Workflows and Video

Gavana separates saving a reusable workflow from running it. That makes a workflow safe to review and reuse before it asks a connected provider to generate anything.

Reusable canvas workflows

Create is not run

create_canvas_workflow saves a private workflow card on a selected canvas. It can declare typed text, sticky-note, or image inputs; its outputs describe text or image work. Creating it changes the canvas but never starts generation.

For a fixed visual reference, first use save_image_to_canvas, then use its returned image node as an input default. Later runs can supply only the inputs that change.

save_image_to_canvas (fixed reference) → create_canvas_workflow (inputs + outputs + optional fixed default) → review the workflow card on the canvas

Run only with approval

run_canvas_workflow explicitly starts a saved workflow. It may use your connected image provider and can incur cost. Supply the exact returned workflowNodeId, a caller-stable idempotencyKey, and only the inputs you want to replace. Use get_canvas_workflow_run while its run: handle is queued or running.

run_canvas_workflow (exact workflowNodeId, changed inputs, idempotencyKey) → get_canvas_workflow_run (runId) until terminal → return the durable node/asset handles and review link

Image generation

generate_image_in_canvas creates a destination node and briefly waits for the connected image provider. It writes durable canvas work and may incur provider cost. Ask first; do not retry a failed paid request unless the user explicitly requests another attempt.

For precise non-AI transformations in the local MCP or CLI, use the deterministic Image Actions instead. Resize, crop, aspect-ratio change, composite, text overlay, overlay image, color grade, and rotate do not spend AI-generation credits. See the CLI reference and Canvas API reference for their exact schemas.

Video generation

Video is always an explicit, potentially paid action. Before generating, discover the exact connected model and capability; never make up a model: handle.

find_video_models (requested model/provider + required capability) → generate_video (exact returned model handle + prompt + idempotencyKey) → get_video_job (jobId) until terminal

To use a ChatGPT-made image as the first frame, save it to Gavana first and pass the returned node: handle as firstFrame. Use video.generate.fromImage when you need that capability. A last frame requires a first frame; references must be unique.

Agent checklist

  • Inspect the destination canvas first and retain the returned handles.
  • State whether the next action writes only, generates through a provider, or is a deterministic Image Action.
  • Ask for current-turn confirmation before an image, workflow, or video run.
  • Reuse an idempotency key only for the identical intended request.
  • Poll only the matching run or job tool, then hand back durable output handles and a review link.
  • Never expose OAuth tokens, Agent Access tokens, provider configuration, or scoped preview URLs.
Last updated on