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

> Create or explicitly upsert a saved Apollo contact.

`createContact` creates a contact from the fields you supply. Set `runDedupe`
only when you want Apollo to upsert a match and overwrite those supplied fields.

```ts automations/create-apollo-contact.automation.ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { createContact } from "automate.ax/apollo"

export default automation("Create an Apollo contact", () => {
  onHttpRequest({ scope: "automation" })
  createContact({
    email: "ada@example.com",
    firstName: "Ada",
    lastName: "Lovelace",
    title: "VP Engineering",
    associatedAccount: "example.com",
  })
})
```

At least one contact field is required. Supported fields are `email`,
`firstName`, `lastName`, `title`, `organizationName`, `websiteUrl`,
`associatedAccount`, `stage`, `listNames`, five phone fields,
`presentAddress`, and `customFields`. `runDedupe` defaults to `false`.
Optional `account` selects the Apollo binding.

Returns the created or matched `ApolloContact`.

<Warning>
  `runDedupe: true` is an upsert, not a read-only duplicate check. Apollo can
  overwrite supplied fields on an existing matching contact.
</Warning>
