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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Upload file

> Upload a file and relate it to JobNimbus records.

`jobNimbus.uploadFile` upload a file and relate it to JobNimbus records.

```ts automations/jobnimbus-upload-file.automation.ts theme={null}
import { automation, onDashboardRun } from "automate.ax"
import { jobNimbus } from "automate.ax/jobnimbus"

export default automation("Upload file", () => {
  onDashboardRun({ title: "Upload file" })
  jobNimbus.uploadFile({
    file: new File(["inspection notes"], "inspection.txt", {
      type: "text/plain",
    }),
    relatedIds: ["job-id"],
    type: 1,
  })
})
```

## Inputs

Provide a `File` smaller than 100 MB, at least one related contact or job ID, and the configured numeric file type. Optional description and privacy are supported; `generateThumbnail` defaults to true. Optional second argument `{ account }` selects a named JobNimbus binding.

## Output

Returns `{ id, filename, thumbnailUrl? }` after the signed upload and JobNimbus completion request both succeed. With the default `generateThumbnail: true`, `thumbnailUrl` contains the generated thumbnail URL. When thumbnail generation is disabled, JobNimbus creates it asynchronously and can omit the URL from this response. Multipart uploads are not exposed.
