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

# Add contact to campaign

> Adds one contact to a campaign.

`highlevel.addContactToCampaign` adds one contact to a campaign.

```ts automations/highlevel-add-contact-to-campaign.automation.ts theme={null}
import { automation, markSignificant } from "automate.ax"
import { highlevel } from "automate.ax/highlevel"

export default automation("Add contact to campaign", () => {
  markSignificant(
    highlevel.addContactToCampaign({
      contactId: "3bZD1nQzbul0MCancbQD",
      campaignId: "Y2I9XM7aO1hncuSOlc9L",
    }),
  )
})
```

## Input

| Field        | Type     | Required | Description                  |
| ------------ | -------- | -------- | ---------------------------- |
| `contactId`  | `string` | Yes      | HighLevel contact id value.  |
| `campaignId` | `string` | Yes      | HighLevel campaign id value. |

Automate.ax supplies the connected sub-account's location ID. Optional second argument `{ account }` selects a named HighLevel binding.

## Output

| Field      | Type      | Required | Description                      |
| ---------- | --------- | -------- | -------------------------------- |
| `succeded` | `boolean` | No       | Whether the operation succeeded. |

This action calls `POST /contacts/{contactId}/campaigns/{campaignId}` with HighLevel API version `2021-07-28` and requires `contacts.write`. HighLevel validation and permission errors fail the action. Rate limits honor the provider's retry timing. Automate.ax does not automatically replay this enrollment after an indeterminate transport failure.
