> ## Documentation Index
> Fetch the complete documentation index at: https://reach-owl.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Campaigns: How ReachOwl Automates Outreach

> ReachOwl campaigns send friend requests, messages, or comments to audiences on Facebook. Learn how campaign status, scheduling, and limits work.

ReachOwl campaigns are the primary way you automate outreach on social platforms. When you create a campaign, you define the action ReachOwl should perform (such as sending a friend request or a message), the audience to target, the connected account that executes the work, and constraints like daily limits and schedules. This page explains the core campaign fields and behavior you will configure through the API.

## Action types

Each campaign has an `action_type` that determines what ReachOwl does:

| `action_type`    | Description                                         |
| ---------------- | --------------------------------------------------- |
| `friend_request` | Sends a friend request to each target contact.      |
| `message`        | Sends a text message to each target contact.        |
| `comment`        | Posts a comment on behalf of the connected account. |

## Audience and platform

Campaigns target audiences defined by type and platform.

* `audience_type` — currently `group` is supported, which targets members of a Facebook group.
* `platform` — currently `facebook` is supported.

You can also use keyword arrays to refine who is included or excluded. Include and exclude keyword arrays default to `[]` when omitted.

## Status and control

You control a campaign's lifecycle through the `status` field in the request body. There is no separate `/pause` or `/resume` endpoint.

| Status | Meaning                                                                    |
| ------ | -------------------------------------------------------------------------- |
| `0`    | Paused. The campaign will not perform actions until you set status to `1`. |
| `1`    | Running. ReachOwl actively processes the campaign queue.                   |

You create a campaign with `POST /api/v1/campaigns/create` by defaulting to `status: 0` and then update it to `status: 1` with `POST /api/v1/campaigns/update`. You can also clone a campaign by sending `clone_from: {existing_campaign_id}` in the create body.

## Daily limit

The `limit` field sets the maximum number of actions the campaign performs per day. The default value is `30`. You can set this during creation or update it later to speed up or slow down a campaign.

## Schedule

Use the `schedule` array to restrict when actions are sent. Each entry must include a day name, a start time, and an end time.

```json theme={null}
[
  {
    "day": "Monday",
    "start_time": "09:00",
    "end_time": "17:00"
  }
]
```

ReachOwl only sends actions during the specified windows.

## Messages and placeholders

Message campaigns send one or more `messages` entries. Each entry contains the message text and an optional delay (in minutes) before the next message is sent.

You can personalize messages with the `{{first_name}}` placeholder, which ReachOwl replaces with the contact's first name when the message is sent.

```json theme={null}
[
  {
    "text": "Hi {{first_name}}, thanks for connecting!",
    "delay": 30
  }
]
```

## Executors

Campaigns run through connected social accounts called executors. You link executors by providing `executor_ids`, which are the `id` values returned by `GET /api/v1/app-states`.

## Minimal create example

```bash theme={null}
curl -X POST "{{baseUrl}}/api/v1/campaigns/create" \
  -H "Authorization: Bearer {{token}}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Group Outreach",
    "action_type": "message",
    "audience_type": "group",
    "platform": "facebook",
    "limit": 30,
    "status": 0,
    "include_keywords": [],
    "exclude_keywords": [],
    "schedule": [],
    "messages": [
      {
        "text": "Hi {{first_name}}, I would love to connect!",
        "delay": 0
      }
    ],
    "executor_ids": [1]
  }'
```

## Related endpoints

* [`/api-reference/campaigns/create`](/api-reference/campaigns/create) — create a campaign
* [`/api-reference/campaigns/update`](/api-reference/campaigns/update) — update status, schedule, messages, and limits
* [`/api-reference/campaigns/list`](/api-reference/campaigns/list) — list campaigns
* [`/api-reference/campaigns/get`](/api-reference/campaigns/get) — retrieve a single campaign
