> ## 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.

# Create form

> Create and optionally configure a Google Form in one action.

`createForm` creates a form, then can add its description, settings, and initial
items in display order.

## Example

```ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { createForm } from "automate.ax/google-forms"

export default automation("Create a launch survey", () => {
  onHttpRequest({ scope: "automation" })

  createForm({
    title: "Launch feedback",
    description: "Tell us what worked",
    settings: { emailCollection: "verified" },
    items: [
      {
        type: "question",
        title: "How did it go?",
        question: { type: "paragraph", required: true },
      },
    ],
  })
})
```

## Inputs

`title` is required. `documentTitle` defaults to `title`; `description` is
optional. `settings` can set `emailCollection` (`none`, `verified`, or
`respondentInput`) and/or `isQuiz`. `items` accepts the item definitions listed
on [Add item](/reference/integrations/google-forms/actions/add-item#item-types).
Set `unpublished: true` to create the form unpublished and not accepting
responses. `account` selects the Google account.

## Output

Returns the complete created `Form`; see [Get form](/reference/integrations/google-forms/actions/get-form#output). Provider-generated item and question IDs appear in this result.
