> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.meetgail.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.meetgail.com/_mcp/server.

# Add Contacts to Campaign (Bulk)

> Enrolls many existing contacts into a Gail campaign in a single step.

The Add Contacts to Campaign (Bulk) node enrolls many contacts into a campaign at once.
Give it a campaign and a list of contact IDs, and it enrolls them all together. It is the
natural next step after a bulk import that produced a list of new contacts.

## When to use it

* You just created a batch of contacts and want them all enrolled in the same campaign.
* An earlier step produced a list of contact IDs, for example from an import or a payload.
* You want one step to enroll a whole segment rather than looping over people one at a time.

For a single contact, use
[Add Contact to Campaign](/platform/workflows/node-reference/gail/add-contact-to-campaign) instead.

## Inputs

| Field    | What it's for                                                                                              | Example                                                                                                |
| -------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Campaign | The campaign to enroll the contacts in, given by its ID.                                                   | `019c29ad-2f8f-7570-9b3c-4a202d9a4304`                                                                 |
| Contacts | The contact IDs to enroll, between 1 and 1,000. Usually the new contact IDs from an earlier bulk-add step. | The successful IDs from [Add Bulk Contacts](/platform/workflows/node-reference/gail/add-bulk-contacts) |

The Contacts field is commonly a single [expression](/platform/workflows/core-concepts/expressions/using-expressions-in-nodes)
that points at the successful contact IDs from an
[Add Bulk Contacts](/platform/workflows/node-reference/gail/add-bulk-contacts) step, so the two
nodes chain together cleanly.

## Outputs

| Field           | What you get back                                                                                                         |
| --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Outcome         | Whether the enrollment request succeeded.                                                                                 |
| Requested count | How many contact IDs were submitted.                                                                                      |
| Failures        | A list of any contacts the campaign could not enroll, such as ones that were not found. Empty when everyone was accepted. |

A few rejected contacts do not fail the node. It still enrolls the rest and lists the
rejections under Failures, so you can react to them without blocking the whole batch.

## Example

Chen Insurance Group imports 400 renewal prospects with
[Add Bulk Contacts](/platform/workflows/node-reference/gail/add-bulk-contacts), which returns the
IDs of everyone created. The workflow feeds those IDs straight into Add Contacts to
Campaign (Bulk) to enroll them all in the spring renewal campaign in one step.

![The Add Contacts to Campaign (Bulk) node configuration panel, showing the campaign and the contact-IDs expression.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/gail.docs.buildwithfern.com/1816f0688d7b447c01766d0dd30691a2400a504296c58f1006f02dc64592f2c6/docs/pages/platform/workflows/assets/gail-add-contacts-to-campaign-bulk.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260823%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260823T233055Z&X-Amz-Expires=604800&X-Amz-Signature=172913c526caf3b9beeb20ee850fbdf7de615ce85c20d3f3500f90f452553c99&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

A few contacts failing to enroll does not fail the node, so check the Failures list if
you need to know who was left out. Use a [Check](/platform/workflows/node-reference/logic-and-flow/check)
step to branch when the list is not empty.

## Related nodes

#### [Add Contact to Campaign](/platform/workflows/node-reference/gail/add-contact-to-campaign)

Enroll a single contact into a campaign.

#### [Add Bulk Contacts](/platform/workflows/node-reference/gail/add-bulk-contacts)

Create the contacts whose IDs you will enroll.

#### [Create Campaign](/platform/workflows/node-reference/gail/create-campaign)

Clone the campaign to enroll contacts into.

#### [Check](/platform/workflows/node-reference/logic-and-flow/check)

Branch the run based on whether any enrollments failed.