Outreach

Get an outreach campaign

outreach_get_campaign · Reads only · Markdown

An outreach campaign with its numbers, each step's emails and replies, and its people page by page with their status.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

How is the hotel campaign going? Who answered and who is still waiting?

Your agent callsoutreach_get_campaignFree*

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "campaign_id": "6f1c1b7e-4a1e-4d55-9a0b-0f7c3e9a2b11",
  "limit": 50
}
What comes back
{
  "campaign": {
    "campaign_id": "6f1c1b7e-4a1e-4d55-9a0b-0f7c3e9a2b11",
    "name": "Guest bikes for Portland hotels",
    "status": "running",
    "paused_reason": null,
    "mailboxes": [
      {
        "mailbox_id": 4101,
        "email": "dana@halversoncycle.example"
      }
    ],
    "steps": [
      {
        "subject": "Guest bikes for {company}",
        "text": "Hi {first_name},\n\n{first_line}\n\nWe rent city bikes to hotels in Portland and service them every week, so your front desk never deals with a flat tire. Guests ride to the waterfront in ten minutes.\n\nCould I bring two bikes by on Thursday so your staff can try them?\n\n{sender_name}\nHalverson Cycle & Repair"
      },
      {
        "subject": "",
        "text": "Hi {first_name}, the two trial bikes for {company} are still yours this month. Should I hold a pair for you?\n\n{sender_first_name}",
        "delay_days": 3
      }
    ],
    "audience": {
      "tag": "hotel"
    },
    "schedule": {
      "days": [
        "mon",
        "tue"
      ],
      "start_hour": 0,
      "end_hour": 24,
      "time_zone": "UTC"
    },
    "daily_limit": 30,
    "people": 2,
    "by": "Pip",
    "created_at": "2026-10-14T08:00:00+00:00",
    "started_at": "2026-10-14T08:00:00Z"
  },
  "stats": {
    "people": 2,
    "queued": 1,
    "messaged": 1,
    "replied": 1,
    "reply_rate": 100,
    "interested": 0,
    "not_interested": 0,
    "bounced": 0,
    "unsubscribed": 0,
    "stopped": 0,
    "emails_sent": 1,
    "charged_usd": "$0.01",
    "steps": [
      {
        "step": 1,
        "subject": "Guest bikes for {company}",
        "sent": 1,
        "replies": 1
      },
      {
        "step": 2,
        "subject": null,
        "sent": 0,
        "replies": 0
      }
    ]
  },
  "people": [
    {
      "email": "owen@hawthornehotel.example",
      "name": "Owen Price",
      "company": "Hawthorne Hotel",
      "contact_id": 4102,
      "status": "replied",
      "emails_sent": 1,
      "next_email_at": null,
      "replied_at": "2026-10-14T08:00:00Z",
      "mailbox_id": 4101,
      "problem": null
    },
    {
      "email": "maya@alderstreethotel.example",
      "name": "Maya Brooks",
      "company": "The Alder Street Hotel",
      "contact_id": 4101,
      "status": "queued",
      "emails_sent": 0,
      "next_email_at": "2026-10-14T08:00:00Z",
      "replied_at": null,
      "mailbox_id": null,
      "problem": null
    }
  ],
  "total": 2,
  "next_offset": null
}

Use it when

To see how a campaign is doing, or who is still waiting for an email.

What it does

One campaign: its settings, its numbers (people queued, messaged, replied, interested, not interested, bounced, unsubscribed, stopped; emails sent, the reply rate, what it cost, and each step's emails and the replies after it) and its people page by page, each with their status (queued, messaged, replied, interested, not_interested, bounced, unsubscribed, stopped, unconfirmed or failed), the emails sent to them, when the next one goes and their CRM contact_id. waiting says why a running campaign sends nothing right now, when the account is paused or its balance can't pay.

What comes back

campaign (as outreach_save_campaign shows it); stats (people, queued, messaged, replied, reply_rate, interested, not_interested, bounced, unsubscribed, stopped, emails_sent, charged_usd, and steps: each step's subject, emails sent and the replies after it); people (email, name, company, contact_id, status, emails_sent, next_email_at, replied_at, mailbox_id, problem); total, next_offset; and waiting, when the account keeps a running campaign from sending. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
campaign_idRequiredstringThe campaign_id outreach_save_campaign answered with. Exactly 36 characters.
statusstringOnly the people in this state. One of: queued,messaged,replied,interested,not_interested,bounced,unsubscribed,stopped,unconfirmed,failed,erased.
offsetintegerAt least 0. Default: 0.
limitinteger1 to 200. Default: 50.

The call

Over MCP, call outreach_get_campaign on https://api.conecto.chat/mcp/outreach. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/outreach_get_campaign \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"campaign_id":"6f1c1b7e-4a1e-4d55-9a0b-0f7c3e9a2b11","limit":50}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No campaign on this account has that id.Use a campaign_id from outreach_campaigns.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md