> ## 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 for a Close attachment.

`close.uploadFile` uploads a `Blob` to Close and returns the temporary URL required by attachment inputs.

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

export default automation("Upload Close file", () => {
  onDashboardRun({ title: "Upload Close file" })
  const attachment = close.uploadFile({
    file: new Blob(["Proposal"], { type: "text/plain" }),
    filename: "proposal.txt",
  })
  close.createNote({ leadId: "lead_abc123", attachments: [attachment] })
})
```

## Inputs

Provide `file` and `filename`. Set `contentType` when the `Blob` has no media type. Optional second argument `{ account }` selects a named Close binding.

## Output

Returns `url`, `filename`, `contentType`, and `size`. Close upload URLs expire after 24 hours, so use the result in an attachment promptly.
