# What are Assembly Instructions?

Transloadit Assembly Instructions define the named Steps in a file-processing workflow. Each Step selects a Robot and its parameters; the `use` parameter determines how uploaded, imported, or generated files flow between Steps.

Request + files

Processing platform

Results + status

A processing platform accepts an authenticated request, executes a workflow, and returns observable results. This diagram shows platform workflows broadly, not specifically Assembly Instructions.

<span aria-hidden="true" id="how-it-works"></span>

## How Assembly Instructions work

Instructions form a directed, acyclic processing graph expressed as named Step configurations and their input relationships. Each Step selects a Robot and parameters, while use determines which uploads or prior results flow into it. Steps that import or generate files can omit use when they do not depend on an earlier Step. Other Steps that omit use are implicitly connected to the preceding Step’s output; the first declared Step defaults to :original. Declare use explicitly when Step order should not determine the graph. The reserved Step name :original refers to uploaded files. A Step declared under that name may only run the /upload/handle Robot, and no other Step may run that Robot; a use value can reference :original without declaring it as a Step. The Instructions document is distinct from an Assembly, which is one execution of the graph, and from a Template, which persists Instructions for reuse. Before media processing begins, Transloadit validates that each Step is a well-formed object naming an existing Robot, that every declared use reference resolves, and that the graph contains no cycles.

<span aria-hidden="true" id="key-facts"></span>

## Key facts

1. 1Step names are graph identifiers. If use names a Step that does not exist, Transloadit rejects the Assembly with ASSEMBLY\_STEP\_UNKNOWN\_USE (HTTP 400) before processing starts.
2. 2A single upstream result can feed several later Steps, enabling derivative generation without repeating the import or upload stage for each output branch.
3. 3A Template keeps reusable workflow logic out of client requests. Clients can override Steps by default; set allow\_steps\_override to false in the Template, and requests that still supply Steps are rejected with TEMPLATE\_DENIES\_STEPS\_OVERRIDE (HTTP 400).

<span aria-hidden="true" id="when-it-matters"></span>

## When Assembly Instructions matter

Save Instructions in a Template when callers should reuse a server-managed workflow. If callers must not alter its Steps, set `allow_steps_override` to `false` and require Signature Authentication. When generating Instructions or renaming Steps, check that every `use` value references a declared Step name or `:original` so the Assembly passes validation.

<span aria-hidden="true" id="category-use-cases"></span>

## Common use cases for platform workflows

These examples cover platform workflows broadly, not specifically Assembly Instructions.

* Running repeatable upload, import, processing, AI, storage, and notification pipelines.
* Tracking long-running media work independently from an application request.
* Referencing centrally stored credentials by name instead of sending storage secrets with each request.

<span aria-hidden="true" id="at-scale"></span>

## Working with platform workflows

This guidance covers platform workflows broadly, not just Assembly Instructions.

A client authenticates and submits files or references together with workflow instructions. The platform validates the request, schedules dependent operations, records state transitions, and exposes results through a response, polling endpoint, or notification.

Platform concepts become reliable only when their lifecycle is explicit. Authentication, idempotency, retries, timeouts, observability, quotas, and terminal states should be designed together rather than added after failures occur.

### What you gain

* Reusable workflows separate application intent from processing infrastructure.
* Stable job identifiers and lifecycle events improve observability and recovery.
* Managed queues and workers let products scale without embedding every media tool.

### What it costs

* Synchronous responses are simple but keep connections open while long work executes.
* Aggressive retries improve recovery from transient faults but can duplicate work or overload a dependency.
* Higher concurrency reduces queue time until resource contention or a downstream limit becomes the bottleneck.

### Before production

1. 1Define authentication, authorization, idempotency, retries, and terminal error behavior.
2. 2Observe queue time, execution time, callbacks, and partial results with stable identifiers.
3. 3Exercise malformed, duplicate, interrupted, and unauthorized requests before launch.

<span aria-hidden="true" id="transloadit"></span>

## How Transloadit helps with Assembly Instructions

Transloadit validates and executes Assembly Instructions as the workflow for an Assembly, so your application does not need to operate each media tool itself. Transloadit models a file workflow as Assembly Instructions. Each named Step invokes one Robot to upload, import, process, analyze, store, or serve files, while the use parameter routes results between Steps. A Template stores Instructions for reuse, an Assembly is one execution of them, and Assembly Status and Notifications report the outcome. This lets you compose documented operations instead of operating the underlying media tools yourself.

Check the linked documentation for the exact Robots, parameters, release stages, inputs, and outputs available for your workflow.

* [Assembly Instructions→](/docs/topics/assembly-instructions.md)
* [Browse all Robots→](/docs/robots.md)

[Explore Transloadit’s platform capabilities](/docs.md)

[← Assembly Execution Progress](/glossary/assembly-execution-progress.md)[Assembly Notification →](/glossary/assembly-notification.md)

More in platform workflows

* [API Rate Limiting](/glossary/api-rate-limiting.md)
* [Assembly](/glossary/assembly.md)
* [Assembly Execution Progress](/glossary/assembly-execution-progress.md)
* [Assembly Notification](/glossary/assembly-notification.md)
* [Assembly Replay](/glossary/assembly-replay.md)
* [Assembly Status](/glossary/assembly-status.md)

[All 505 terms](/glossary.md)

## Turn media knowledge into a working pipeline

Connect uploads, processing, AI, storage, and delivery through one declarative API — with the encoding stack, scaling, and format churn handled for you.

[Try Transloadit for free](/c/signup/)
