Skip to main content
ReachOwl campaigns are the primary way you automate outreach on social platforms. When you create a campaign, you define the platform, audience source, action, connected account (executor), messages, and constraints like daily limits and schedules.

Platforms

Action types

Audience types by platform

  • For a synced WhatsApp group, set platform: "whatsapp", audience_type: "group", and pass the group id from Browsers sync as post_url (and/or group_id).
  • For a CSV or contact list, set audience_type: "file_upload". Create the campaign first, then upload rows with POST /api/v1/campaigns/{id}/contacts (or multipart urls_file after create). Use a phone or profile_url column for WhatsApp numbers.
You can refine audiences with audience_keywords and exclude_keywords (default []).

Status and control

You control a campaign lifecycle through the status field. There is no separate /pause or /resume endpoint. Create with POST /api/v1/campaigns, then set status with PATCH or PUT on /api/v1/campaigns/{id}. Clone with clone_from in the create body.

Daily limit

The limit field sets the maximum number of actions per day (default 30).

Schedule

Use the schedule array to restrict when actions are sent:

Messages and placeholders

Message campaigns send one or more messages entries. Each entry contains a text string array and an optional delay (minutes).
Personalize with {{first_name}} and any extra CSV column names declared in variables.

Executors

Link connected accounts with executor_ids from GET /api/v1/app-states. Use a WhatsApp-connected app-state for WhatsApp campaigns.

WhatsApp group example

WhatsApp CSV / contact list example

  1. Create a campaign with audience_type: "file_upload".
  2. Add contacts to that campaign:
WhatsApp rows should include a phone-style member_id (for example 923001234567@c.us) and/or profile_url like https://wa.me/923001234567.